More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 53 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 20810331 | 109 days ago | IN | 0 ETH | 0.00038879 | ||||
Approve | 20810222 | 109 days ago | IN | 0 ETH | 0.00039411 | ||||
Approve | 18782771 | 393 days ago | IN | 0 ETH | 0.00234392 | ||||
Approve | 18415985 | 444 days ago | IN | 0 ETH | 0.00089342 | ||||
Approve | 18415964 | 444 days ago | IN | 0 ETH | 0.0009708 | ||||
Approve | 18415958 | 444 days ago | IN | 0 ETH | 0.00086503 | ||||
Approve | 18415948 | 444 days ago | IN | 0 ETH | 0.00086141 | ||||
Approve | 18393888 | 447 days ago | IN | 0 ETH | 0.00089817 | ||||
Approve | 18331570 | 456 days ago | IN | 0 ETH | 0.00037618 | ||||
Approve | 18331491 | 456 days ago | IN | 0 ETH | 0.00025045 | ||||
Approve | 18331068 | 456 days ago | IN | 0 ETH | 0.00058902 | ||||
Approve | 18330404 | 456 days ago | IN | 0 ETH | 0.00028991 | ||||
Approve | 18329322 | 456 days ago | IN | 0 ETH | 0.00082514 | ||||
Approve | 18329291 | 456 days ago | IN | 0 ETH | 0.00084756 | ||||
Approve | 18329290 | 456 days ago | IN | 0 ETH | 0.00196198 | ||||
Renounce Ownersh... | 18329279 | 456 days ago | IN | 0 ETH | 0.00028598 | ||||
Approve | 18329275 | 456 days ago | IN | 0 ETH | 0.00065516 | ||||
Remove Limits | 18329273 | 456 days ago | IN | 0 ETH | 0.00034485 | ||||
Reduce Fee | 18329270 | 456 days ago | IN | 0 ETH | 0.00026923 | ||||
Approve | 18329270 | 456 days ago | IN | 0 ETH | 0.00055675 | ||||
Approve | 18329269 | 456 days ago | IN | 0 ETH | 0.00056711 | ||||
Approve | 18329267 | 456 days ago | IN | 0 ETH | 0.00053246 | ||||
Approve | 18329266 | 456 days ago | IN | 0 ETH | 0.00054804 | ||||
Set Structure | 18329264 | 456 days ago | IN | 0 ETH | 0.0002672 | ||||
Approve | 18329263 | 456 days ago | IN | 0 ETH | 0.00053957 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
20810335 | 109 days ago | 0.00300062 ETH | ||||
20810335 | 109 days ago | 0.00300062 ETH | ||||
20810335 | 109 days ago | 0.00301126 ETH | ||||
20810335 | 109 days ago | 0.00301126 ETH | ||||
20810241 | 109 days ago | 0.00326255 ETH | ||||
20810241 | 109 days ago | 0.00326255 ETH | ||||
18415950 | 444 days ago | 0.00280381 ETH | ||||
18415950 | 444 days ago | 0.00280381 ETH | ||||
18370502 | 451 days ago | 0.00306468 ETH | ||||
18370502 | 451 days ago | 0.00306468 ETH | ||||
18362735 | 452 days ago | 0.00314719 ETH | ||||
18362735 | 452 days ago | 0.00314719 ETH | ||||
18336156 | 455 days ago | 0.00326218 ETH | ||||
18336156 | 455 days ago | 0.00326218 ETH | ||||
18332893 | 456 days ago | 0.00310767 ETH | ||||
18332893 | 456 days ago | 0.00310767 ETH | ||||
18332117 | 456 days ago | 0.00330123 ETH | ||||
18332117 | 456 days ago | 0.00330123 ETH | ||||
18331572 | 456 days ago | 0.0037622 ETH | ||||
18331572 | 456 days ago | 0.0037622 ETH | ||||
18331572 | 456 days ago | 0.00381993 ETH | ||||
18331572 | 456 days ago | 0.00381993 ETH | ||||
18331540 | 456 days ago | 0.00392413 ETH | ||||
18331540 | 456 days ago | 0.00392413 ETH | ||||
18331535 | 456 days ago | 0.00413979 ETH |
Loading...
Loading
Contract Name:
amphetaMEME
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-10-11 */ // Website: https://amphetameme.xyz/ // Twitter: https://x.com/Amphetameme2023 // Telegram: https://t.me/amphetameme // SPDX-License-Identifier: MIT pragma solidity 0.8.20; interface ERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); 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); } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; return msg.data; } } contract Ownable is Context { address public _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; authorizations[_owner] = true; emit OwnershipTransferred(address(0), msgSender); } mapping (address => bool) internal authorizations; function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public 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 IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( 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; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface InterfaceLP { function sync() external; } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract amphetaMEME is Ownable, ERC20 { using SafeMath for uint256; address WETH; address constant DEAD = 0x000000000000000000000000000000000000dEaD; address constant ZERO = 0x0000000000000000000000000000000000000000; string constant _name = "amphetaMEME"; string constant _symbol = "UPPER"; uint8 constant _decimals = 18; event AutoLiquify(uint256 amountETH, uint256 amountTokens); event EditTax(uint8 Buy, uint8 Sell, uint8 Transfer); event user_exemptfromfees(address Wallet, bool Exempt); event user_TxExempt(address Wallet, bool Exempt); event ClearStuck(uint256 amount); event ClearToken(address TokenAddressCleared, uint256 Amount); event set_Receivers(address marketingFeeReceiver, address buybackFeeReceiver,address burnFeeReceiver,address devFeeReceiver); event set_MaxWallet(uint256 maxWallet); event set_MaxTX(uint256 maxTX); event set_SwapBack(uint256 Amount, bool Enabled); uint256 _totalSupply = 1000000000 * 10**_decimals; uint256 public _maxTxAmount = _totalSupply.mul(5).div(100); uint256 public _maxWalletToken = _totalSupply.mul(5).div(100); mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) isexemptfromfees; mapping (address => bool) isexemptfrommaxTX; uint256 private liquidityFee = 0; uint256 private marketingFee = 990; uint256 private devFee = 0; uint256 private buybackFee = 0; uint256 private burnFee = 0; uint256 public totalFee = buybackFee + marketingFee + liquidityFee + devFee + burnFee; uint256 private feeDenominator = 1000; uint256 sellpercent = 990; uint256 buypercent = 990; uint256 transferpercent = 990; address private autoLiquidityReceiver; address private marketingFeeReceiver; address private devFeeReceiver; address private buybackFeeReceiver; address private burnFeeReceiver; uint256 setRatio = 30; uint256 setRatioDenominator = 100; IDEXRouter public router; InterfaceLP private pairContract; address public pair; bool public TradingOpen = false; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply / 1000; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); WETH = router.WETH(); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); pairContract = InterfaceLP(pair); _allowances[address(this)][address(router)] = type(uint256).max; isexemptfromfees[msg.sender] = true; isexemptfromfees[marketingFeeReceiver] = true; isexemptfromfees[address(this)] = true; isexemptfromfees[DEAD] = true; isexemptfrommaxTX[msg.sender] = true; isexemptfrommaxTX[pair] = true; isexemptfrommaxTX[marketingFeeReceiver] = true; isexemptfrommaxTX[address(this)] = true; isexemptfrommaxTX[DEAD] = true; autoLiquidityReceiver = 0xc92f27DE389D271E80E9F97ADc85a83e50f7878a; marketingFeeReceiver = 0xc92f27DE389D271E80E9F97ADc85a83e50f7878a; devFeeReceiver = msg.sender; buybackFeeReceiver = msg.sender; burnFeeReceiver = DEAD; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable { } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) {return owner();} function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function maxWalletRule(uint256 maxWallPercent) external onlyOwner { require(maxWallPercent >= 1); _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000; emit set_MaxWallet(_maxWalletToken); } function removeLimits () external onlyOwner { _maxTxAmount = _totalSupply; _maxWalletToken = _totalSupply; } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwap){ return _basicTransfer(sender, recipient, amount); } if(!authorizations[sender] && !authorizations[recipient]){ require(TradingOpen,"Trading not open yet"); } if (!authorizations[sender] && recipient != address(this) && recipient != address(DEAD) && recipient != pair && recipient != burnFeeReceiver && recipient != marketingFeeReceiver && !isexemptfrommaxTX[recipient]){ uint256 heldTokens = balanceOf(recipient); require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");} checkTxLimit(sender, amount); if(shouldSwapBack()){ swapBack(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = (isexemptfromfees[sender] || isexemptfromfees[recipient]) ? amount : takeFee(sender, amount, recipient); _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function checkTxLimit(address sender, uint256 amount) internal view { require(amount <= _maxTxAmount || isexemptfrommaxTX[sender], "TX Limit Exceeded"); } function shouldTakeFee(address sender) internal view returns (bool) { return !isexemptfromfees[sender]; } function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) { uint256 percent = transferpercent; if(recipient == pair) { percent = sellpercent; } else if(sender == pair) { percent = buypercent; } uint256 feeAmount = amount.mul(totalFee).mul(percent).div(feeDenominator * 1000); uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee); uint256 contractTokens = feeAmount.sub(burnTokens); _balances[address(this)] = _balances[address(this)].add(contractTokens); _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens); emit Transfer(sender, address(this), contractTokens); if(burnTokens > 0){ _totalSupply = _totalSupply.sub(burnTokens); emit Transfer(sender, ZERO, burnTokens); } return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function manualSend() external { payable(autoLiquidityReceiver).transfer(address(this).balance); } function clearStuckToken(address tokenAddress, uint256 tokens) external onlyOwner returns (bool success) { if(tokens == 0){ tokens = ERC20(tokenAddress).balanceOf(address(this)); } emit ClearToken(tokenAddress, tokens); return ERC20(tokenAddress).transfer(autoLiquidityReceiver, tokens); } function setStructure(uint256 _percentonbuy, uint256 _percentonsell, uint256 _wallettransfer) external onlyOwner { sellpercent = _percentonsell; buypercent = _percentonbuy; transferpercent = _wallettransfer; } function startTrading() public onlyOwner { TradingOpen = true; } function reduceFee() public onlyOwner { buypercent = 0; sellpercent = 0; transferpercent = 0; } function swapBack() internal swapping { uint256 dynamicLiquidityFee = 0; uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2); uint256 amountToSwap = swapThreshold.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance.sub(balanceBefore); uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2)); uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2); uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee); uint256 amountETHbuyback = amountETH.mul(buybackFee).div(totalETHFee); uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee); (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}(""); (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHdev}(""); (tmpSuccess,) = payable(buybackFeeReceiver).call{value: amountETHbuyback}(""); tmpSuccess = false; if(amountToLiquify > 0){ router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } } function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner { swapEnabled = _enabled; swapThreshold = _amount; emit set_SwapBack(swapThreshold, swapEnabled); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClearStuck","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"Buy","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Sell","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Transfer","type":"uint8"}],"name":"EditTax","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxTX","type":"uint256"}],"name":"set_MaxTX","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"set_MaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketingFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"buybackFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"burnFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"devFeeReceiver","type":"address"}],"name":"set_Receivers","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"Enabled","type":"bool"}],"name":"set_SwapBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_TxExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_exemptfromfees","type":"event"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"maxWalletRule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percentonbuy","type":"uint256"},{"internalType":"uint256","name":"_percentonsell","type":"uint256"},{"internalType":"uint256","name":"_wallettransfer","type":"uint256"}],"name":"setStructure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","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
60806040526012600a62000014919062000e7e565b633b9aca0062000025919062000ece565b60035562000055606462000046600560035462000bae60201b90919060201c565b62000c2e60201b90919060201c565b60045562000085606462000076600560035462000bae60201b90919060201c565b62000c2e60201b90919060201c565b6005555f600a556103de600b555f600c555f600d555f600e55600e54600c54600a54600b54600d54620000b9919062000f18565b620000c5919062000f18565b620000d1919062000f18565b620000dd919062000f18565b600f556103e86010556103de6011556103de6012556103de601355601e6019556064601a555f601d60146101000a81548160ff0219169083151502179055506001601d60156101000a81548160ff0219169083151502179055506103e860035462000149919062000f7f565b601e5534801562000158575f80fd5b505f6200016a62000c7f60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001805f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d601b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000339573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200035f91906200101b565b60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000409573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200042f91906200101b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200048c9291906200105c565b6020604051808303815f875af1158015620004a9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004cf91906200101b565b601d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555073c92f27de389d271e80e9f97adc85a83e50f7878a60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c92f27de389d271e80e9f97adc85a83e50f7878a60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead60185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060035460065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000ba0919062001098565b60405180910390a3620011fd565b5f80830362000bc0575f905062000c28565b5f828462000bcf919062000ece565b905082848262000be0919062000f7f565b1462000c23576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c1a9062001137565b60405180910390fd5b809150505b92915050565b5f62000c7783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000c8660201b60201c565b905092915050565b5f33905090565b5f808311829062000ccf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000cc69190620011db565b60405180910390fd5b505f838562000cdf919062000f7f565b9050809150509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000d765780860481111562000d4e5762000d4d62000cec565b5b600185161562000d5e5780820291505b808102905062000d6e8562000d19565b945062000d2e565b94509492505050565b5f8262000d90576001905062000e62565b8162000d9f575f905062000e62565b816001811462000db8576002811462000dc35762000df9565b600191505062000e62565b60ff84111562000dd85762000dd762000cec565b5b8360020a91508482111562000df25762000df162000cec565b5b5062000e62565b5060208310610133831016604e8410600b841016171562000e335782820a90508381111562000e2d5762000e2c62000cec565b5b62000e62565b62000e42848484600162000d25565b9250905081840481111562000e5c5762000e5b62000cec565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f62000e8a8262000e69565b915062000e978362000e72565b925062000ec67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000d7f565b905092915050565b5f62000eda8262000e69565b915062000ee78362000e69565b925082820262000ef78162000e69565b9150828204841483151762000f115762000f1062000cec565b5b5092915050565b5f62000f248262000e69565b915062000f318362000e69565b925082820190508082111562000f4c5762000f4b62000cec565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000f8b8262000e69565b915062000f988362000e69565b92508262000fab5762000faa62000f52565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000fe58262000fba565b9050919050565b62000ff78162000fd9565b811462001002575f80fd5b50565b5f81519050620010158162000fec565b92915050565b5f6020828403121562001033576200103262000fb6565b5b5f620010428482850162001005565b91505092915050565b620010568162000fd9565b82525050565b5f604082019050620010715f8301856200104b565b6200108060208301846200104b565b9392505050565b620010928162000e69565b82525050565b5f602082019050620010ad5f83018462001087565b92915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6200111f602183620010b3565b91506200112c82620010c3565b604082019050919050565b5f6020820190508181035f830152620011508162001111565b9050919050565b5f81519050919050565b5f5b838110156200118057808201518184015260208101905062001163565b5f8484015250505050565b5f601f19601f8301169050919050565b5f620011a78262001157565b620011b38185620010b3565b9350620011c581856020860162001161565b620011d0816200118b565b840191505092915050565b5f6020820190508181035f830152620011f581846200119b565b905092915050565b61382f806200120b5f395ff3fe6080604052600436106101db575f3560e01c806377b54bad11610101578063a9059cbb11610094578063df20fd4911610063578063df20fd491461067e578063f2fde38b146106a6578063f4293890146106ce578063f887ea40146106e4576101e2565b8063a9059cbb146105b4578063b2bdfa7b146105f0578063c0cbdea41461061a578063dd62ed3e14610642576101e2565b80638da5cb5b116100d05780638da5cb5b1461052057806395d89b411461054a578063a70419d214610574578063a8aa1b311461058a576101e2565b806377b54bad1461046657806378109e54146104a25780637d1db4a5146104cc578063893d20e8146104f6576101e2565b8063293230b8116101795780636ddd1713116101485780636ddd1713146103d457806370a08231146103fe578063715018a61461043a578063751039fc14610450576101e2565b8063293230b814610330578063313ce56714610346578063571ac8b0146103705780635d83e1d5146103ac576101e2565b8063095ea7b3116101b5578063095ea7b31461026457806318160ddd146102a05780631df4ccfc146102ca57806323b872dd146102f4576101e2565b80630445b667146101e657806306fdde031461021057806308fd3d051461023a576101e2565b366101e257005b5f80fd5b3480156101f1575f80fd5b506101fa61070e565b6040516102079190612bd1565b60405180910390f35b34801561021b575f80fd5b50610224610714565b6040516102319190612c74565b60405180910390f35b348015610245575f80fd5b5061024e610751565b60405161025b9190612cae565b60405180910390f35b34801561026f575f80fd5b5061028a60048036038101906102859190612d4f565b610764565b6040516102979190612cae565b60405180910390f35b3480156102ab575f80fd5b506102b4610851565b6040516102c19190612bd1565b60405180910390f35b3480156102d5575f80fd5b506102de61085a565b6040516102eb9190612bd1565b60405180910390f35b3480156102ff575f80fd5b5061031a60048036038101906103159190612d8d565b610860565b6040516103279190612cae565b60405180910390f35b34801561033b575f80fd5b50610344610a53565b005b348015610351575f80fd5b5061035a610b04565b6040516103679190612df8565b60405180910390f35b34801561037b575f80fd5b5061039660048036038101906103919190612e11565b610b0c565b6040516103a39190612cae565b60405180910390f35b3480156103b7575f80fd5b506103d260048036038101906103cd9190612e3c565b610b3e565b005b3480156103df575f80fd5b506103e8610c3c565b6040516103f59190612cae565b60405180910390f35b348015610409575f80fd5b50610424600480360381019061041f9190612e11565b610c4f565b6040516104319190612bd1565b60405180910390f35b348015610445575f80fd5b5061044e610c95565b005b34801561045b575f80fd5b50610464610de3565b005b348015610471575f80fd5b5061048c60048036038101906104879190612d4f565b610e8b565b6040516104999190612cae565b60405180910390f35b3480156104ad575f80fd5b506104b661107f565b6040516104c39190612bd1565b60405180910390f35b3480156104d7575f80fd5b506104e0611085565b6040516104ed9190612bd1565b60405180910390f35b348015610501575f80fd5b5061050a61108b565b6040516105179190612e76565b60405180910390f35b34801561052b575f80fd5b50610534611099565b6040516105419190612e76565b60405180910390f35b348015610555575f80fd5b5061055e6110c0565b60405161056b9190612c74565b60405180910390f35b34801561057f575f80fd5b506105886110fd565b005b348015610595575f80fd5b5061059e6111a8565b6040516105ab9190612e76565b60405180910390f35b3480156105bf575f80fd5b506105da60048036038101906105d59190612d4f565b6111cd565b6040516105e79190612cae565b60405180910390f35b3480156105fb575f80fd5b506106046111e1565b6040516106119190612e76565b60405180910390f35b348015610625575f80fd5b50610640600480360381019061063b9190612e8f565b611204565b005b34801561064d575f80fd5b5061066860048036038101906106639190612edf565b6112b2565b6040516106759190612bd1565b60405180910390f35b348015610689575f80fd5b506106a4600480360381019061069f9190612f47565b611334565b005b3480156106b1575f80fd5b506106cc60048036038101906106c79190612e11565b611437565b005b3480156106d9575f80fd5b506106e26115f4565b005b3480156106ef575f80fd5b506106f861165b565b6040516107059190612fe0565b60405180910390f35b601e5481565b60606040518060400160405280600b81526020017f616d70686574614d454d45000000000000000000000000000000000000000000815250905090565b601d60149054906101000a900460ff1681565b5f8160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161083f9190612bd1565b60405180910390a36001905092915050565b5f600354905090565b600f5481565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610a3f576109c2826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546116809092919063ffffffff16565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610a4a8484846116e2565b90509392505050565b610a5b611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ade90613043565b60405180910390fd5b6001601d60146101000a81548160ff021916908315150217905550565b5f6012905090565b5f610b37827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610764565b9050919050565b610b46611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc990613043565b60405180910390fd5b6001811015610bdf575f80fd5b6103e881600354610bf0919061308e565b610bfa91906130fc565b6005819055507f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be51600554604051610c319190612bd1565b60405180910390a150565b601d60159054906101000a900460ff1681565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c9d611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2090613043565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610deb611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6e90613043565b60405180910390fd5b600354600481905550600354600581905550565b5f610e94611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1790613043565b60405180910390fd5b5f8203610fa2578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f609190612e76565b602060405180830381865afa158015610f7b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f9f9190613140565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f8383604051610fd392919061316b565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b815260040161103792919061316b565b6020604051808303815f875af1158015611053573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061107791906131a6565b905092915050565b60055481565b60045481565b5f611094611099565b905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f5550504552000000000000000000000000000000000000000000000000000000815250905090565b611105611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611191576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118890613043565b60405180910390fd5b5f6012819055505f6011819055505f601381905550565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6111d93384846116e2565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61120c611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128f90613043565b60405180910390fd5b816011819055508260128190555080601381905550505050565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61133c611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bf90613043565b60405180910390fd5b81601d60156101000a81548160ff02191690831515021790555080601e819055507f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60601e54601d60159054906101000a900460ff1660405161142b9291906131d1565b60405180910390a15050565b61143f611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c290613043565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611539576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153090613268565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611658573d5f803e3d5ffd5b50565b601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8383111582906116c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116be9190612c74565b60405180910390fd5b505f83856116d59190613286565b9050809150509392505050565b5f601f5f9054906101000a900460ff161561170957611702848484611d20565b9050611d12565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156117a7575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156117fc57601d60149054906101000a900460ff166117fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f290613303565b60405180910390fd5b5b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561187f57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118b9575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119125750601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561196b575060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119c4575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a17575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a7a575f611a2684610c4f565b90506005548382611a379190613321565b1115611a78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6f906133c4565b60405180910390fd5b505b611a848483611eea565b611a8c611f84565b15611a9a57611a99612056565b5b611b21826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546116809092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611bfe575060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611c1257611c0d858486612633565b611c14565b825b9050611c668160065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129f290919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d049190612bd1565b60405180910390a360019150505b9392505050565b5f33905090565b5f611da8826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546116809092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611e398260065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129f290919063ffffffff16565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ed79190612bd1565b60405180910390a3600190509392505050565b60045481111580611f41575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611f80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f779061342c565b60405180910390fd5b5050565b5f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611fee5750601f5f9054906101000a900460ff16155b80156120065750601d60159054906101000a900460ff165b80156120515750601e5460065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b6001601f5f6101000a81548160ff0219169083151502179055505f806120ae60026120a0600f5461209286601e54612a4f90919063ffffffff16565b612ac690919063ffffffff16565b612ac690919063ffffffff16565b90505f6120c682601e54612b0f90919063ffffffff16565b90505f600267ffffffffffffffff8111156120e4576120e361344a565b5b6040519080825280602002602001820160405280156121125781602001602082028036833780820191505090505b50905030815f8151811061212957612128613477565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061219957612198613477565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f479050601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8530426040518663ffffffff1660e01b8152600401612239959493929190613594565b5f604051808303815f87803b158015612250575f80fd5b505af1158015612262573d5f803e3d5ffd5b505050505f61227a8247612b0f90919063ffffffff16565b90505f6122a5612294600289612ac690919063ffffffff16565b600f54612b0f90919063ffffffff16565b90505f6122e060026122d2846122c48c88612a4f90919063ffffffff16565b612ac690919063ffffffff16565b612ac690919063ffffffff16565b90505f61230a836122fc600b5487612a4f90919063ffffffff16565b612ac690919063ffffffff16565b90505f61233484612326600d5488612a4f90919063ffffffff16565b612ac690919063ffffffff16565b90505f61235e85612350600c5489612a4f90919063ffffffff16565b612ac690919063ffffffff16565b90505f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16846040516123a690613619565b5f6040518083038185875af1925050503d805f81146123e0576040519150601f19603f3d011682016040523d82523d5f602084013e6123e5565b606091505b5050905060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161242e90613619565b5f6040518083038185875af1925050503d805f8114612468576040519150601f19603f3d011682016040523d82523d5f602084013e61246d565b606091505b50508091505060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516124b890613619565b5f6040518083038185875af1925050503d805f81146124f2576040519150601f19603f3d011682016040523d82523d5f602084013e6124f7565b606091505b5050809150505f90505f8b111561260c57601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e5f8060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161258e9695949392919061362d565b60606040518083038185885af11580156125aa573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906125cf919061368c565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c6040516126039291906136dc565b60405180910390a15b5050505050505050505050505f601f5f6101000a81548160ff021916908315150217905550565b5f806013549050601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036126985760115490506126f3565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036126f25760125490505b5b5f61273c6103e8601054612707919061308e565b61272e84612720600f548a612a4f90919063ffffffff16565b612a4f90919063ffffffff16565b612ac690919063ffffffff16565b90505f612768600f5461275a600e5485612a4f90919063ffffffff16565b612ac690919063ffffffff16565b90505f61277e8284612b0f90919063ffffffff16565b90506127d08160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129f290919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506128828260065f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129f290919063ffffffff16565b60065f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516129419190612bd1565b60405180910390a35f8211156129d25761296682600354612b0f90919063ffffffff16565b6003819055505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129c99190612bd1565b60405180910390a35b6129e58388612b0f90919063ffffffff16565b9450505050509392505050565b5f808284612a009190613321565b905083811015612a45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a3c9061374d565b60405180910390fd5b8091505092915050565b5f808303612a5f575f9050612ac0565b5f8284612a6c919061308e565b9050828482612a7b91906130fc565b14612abb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ab2906137db565b60405180910390fd5b809150505b92915050565b5f612b0783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b58565b905092915050565b5f612b5083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611680565b905092915050565b5f8083118290612b9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b959190612c74565b60405180910390fd5b505f8385612bac91906130fc565b9050809150509392505050565b5f819050919050565b612bcb81612bb9565b82525050565b5f602082019050612be45f830184612bc2565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612c21578082015181840152602081019050612c06565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612c4682612bea565b612c508185612bf4565b9350612c60818560208601612c04565b612c6981612c2c565b840191505092915050565b5f6020820190508181035f830152612c8c8184612c3c565b905092915050565b5f8115159050919050565b612ca881612c94565b82525050565b5f602082019050612cc15f830184612c9f565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612cf482612ccb565b9050919050565b612d0481612cea565b8114612d0e575f80fd5b50565b5f81359050612d1f81612cfb565b92915050565b612d2e81612bb9565b8114612d38575f80fd5b50565b5f81359050612d4981612d25565b92915050565b5f8060408385031215612d6557612d64612cc7565b5b5f612d7285828601612d11565b9250506020612d8385828601612d3b565b9150509250929050565b5f805f60608486031215612da457612da3612cc7565b5b5f612db186828701612d11565b9350506020612dc286828701612d11565b9250506040612dd386828701612d3b565b9150509250925092565b5f60ff82169050919050565b612df281612ddd565b82525050565b5f602082019050612e0b5f830184612de9565b92915050565b5f60208284031215612e2657612e25612cc7565b5b5f612e3384828501612d11565b91505092915050565b5f60208284031215612e5157612e50612cc7565b5b5f612e5e84828501612d3b565b91505092915050565b612e7081612cea565b82525050565b5f602082019050612e895f830184612e67565b92915050565b5f805f60608486031215612ea657612ea5612cc7565b5b5f612eb386828701612d3b565b9350506020612ec486828701612d3b565b9250506040612ed586828701612d3b565b9150509250925092565b5f8060408385031215612ef557612ef4612cc7565b5b5f612f0285828601612d11565b9250506020612f1385828601612d11565b9150509250929050565b612f2681612c94565b8114612f30575f80fd5b50565b5f81359050612f4181612f1d565b92915050565b5f8060408385031215612f5d57612f5c612cc7565b5b5f612f6a85828601612f33565b9250506020612f7b85828601612d3b565b9150509250929050565b5f819050919050565b5f612fa8612fa3612f9e84612ccb565b612f85565b612ccb565b9050919050565b5f612fb982612f8e565b9050919050565b5f612fca82612faf565b9050919050565b612fda81612fc0565b82525050565b5f602082019050612ff35f830184612fd1565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61302d602083612bf4565b915061303882612ff9565b602082019050919050565b5f6020820190508181035f83015261305a81613021565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61309882612bb9565b91506130a383612bb9565b92508282026130b181612bb9565b915082820484148315176130c8576130c7613061565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61310682612bb9565b915061311183612bb9565b925082613121576131206130cf565b5b828204905092915050565b5f8151905061313a81612d25565b92915050565b5f6020828403121561315557613154612cc7565b5b5f6131628482850161312c565b91505092915050565b5f60408201905061317e5f830185612e67565b61318b6020830184612bc2565b9392505050565b5f815190506131a081612f1d565b92915050565b5f602082840312156131bb576131ba612cc7565b5b5f6131c884828501613192565b91505092915050565b5f6040820190506131e45f830185612bc2565b6131f16020830184612c9f565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613252602683612bf4565b915061325d826131f8565b604082019050919050565b5f6020820190508181035f83015261327f81613246565b9050919050565b5f61329082612bb9565b915061329b83612bb9565b92508282039050818111156132b3576132b2613061565b5b92915050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f6132ed601483612bf4565b91506132f8826132b9565b602082019050919050565b5f6020820190508181035f83015261331a816132e1565b9050919050565b5f61332b82612bb9565b915061333683612bb9565b925082820190508082111561334e5761334d613061565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d69745f8201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b5f6133ae603e83612bf4565b91506133b982613354565b604082019050919050565b5f6020820190508181035f8301526133db816133a2565b9050919050565b7f5458204c696d69742045786365656465640000000000000000000000000000005f82015250565b5f613416601183612bf4565b9150613421826133e2565b602082019050919050565b5f6020820190508181035f8301526134438161340a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f6134c76134c26134bd846134a4565b612f85565b612bb9565b9050919050565b6134d7816134ad565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61350f81612cea565b82525050565b5f6135208383613506565b60208301905092915050565b5f602082019050919050565b5f613542826134dd565b61354c81856134e7565b9350613557836134f7565b805f5b8381101561358757815161356e8882613515565b97506135798361352c565b92505060018101905061355a565b5085935050505092915050565b5f60a0820190506135a75f830188612bc2565b6135b460208301876134ce565b81810360408301526135c68186613538565b90506135d56060830185612e67565b6135e26080830184612bc2565b9695505050505050565b5f81905092915050565b50565b5f6136045f836135ec565b915061360f826135f6565b5f82019050919050565b5f613623826135f9565b9150819050919050565b5f60c0820190506136405f830189612e67565b61364d6020830188612bc2565b61365a60408301876134ce565b61366760608301866134ce565b6136746080830185612e67565b61368160a0830184612bc2565b979650505050505050565b5f805f606084860312156136a3576136a2612cc7565b5b5f6136b08682870161312c565b93505060206136c18682870161312c565b92505060406136d28682870161312c565b9150509250925092565b5f6040820190506136ef5f830185612bc2565b6136fc6020830184612bc2565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613737601b83612bf4565b915061374282613703565b602082019050919050565b5f6020820190508181035f8301526137648161372b565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6137c5602183612bf4565b91506137d08261376b565b604082019050919050565b5f6020820190508181035f8301526137f2816137b9565b905091905056fea2646970667358221220d79729560aa1fe6e0293d9216e84f3d68434bc9d4e60c971e50fef0d28e72ddf64736f6c63430008140033
Deployed Bytecode
0x6080604052600436106101db575f3560e01c806377b54bad11610101578063a9059cbb11610094578063df20fd4911610063578063df20fd491461067e578063f2fde38b146106a6578063f4293890146106ce578063f887ea40146106e4576101e2565b8063a9059cbb146105b4578063b2bdfa7b146105f0578063c0cbdea41461061a578063dd62ed3e14610642576101e2565b80638da5cb5b116100d05780638da5cb5b1461052057806395d89b411461054a578063a70419d214610574578063a8aa1b311461058a576101e2565b806377b54bad1461046657806378109e54146104a25780637d1db4a5146104cc578063893d20e8146104f6576101e2565b8063293230b8116101795780636ddd1713116101485780636ddd1713146103d457806370a08231146103fe578063715018a61461043a578063751039fc14610450576101e2565b8063293230b814610330578063313ce56714610346578063571ac8b0146103705780635d83e1d5146103ac576101e2565b8063095ea7b3116101b5578063095ea7b31461026457806318160ddd146102a05780631df4ccfc146102ca57806323b872dd146102f4576101e2565b80630445b667146101e657806306fdde031461021057806308fd3d051461023a576101e2565b366101e257005b5f80fd5b3480156101f1575f80fd5b506101fa61070e565b6040516102079190612bd1565b60405180910390f35b34801561021b575f80fd5b50610224610714565b6040516102319190612c74565b60405180910390f35b348015610245575f80fd5b5061024e610751565b60405161025b9190612cae565b60405180910390f35b34801561026f575f80fd5b5061028a60048036038101906102859190612d4f565b610764565b6040516102979190612cae565b60405180910390f35b3480156102ab575f80fd5b506102b4610851565b6040516102c19190612bd1565b60405180910390f35b3480156102d5575f80fd5b506102de61085a565b6040516102eb9190612bd1565b60405180910390f35b3480156102ff575f80fd5b5061031a60048036038101906103159190612d8d565b610860565b6040516103279190612cae565b60405180910390f35b34801561033b575f80fd5b50610344610a53565b005b348015610351575f80fd5b5061035a610b04565b6040516103679190612df8565b60405180910390f35b34801561037b575f80fd5b5061039660048036038101906103919190612e11565b610b0c565b6040516103a39190612cae565b60405180910390f35b3480156103b7575f80fd5b506103d260048036038101906103cd9190612e3c565b610b3e565b005b3480156103df575f80fd5b506103e8610c3c565b6040516103f59190612cae565b60405180910390f35b348015610409575f80fd5b50610424600480360381019061041f9190612e11565b610c4f565b6040516104319190612bd1565b60405180910390f35b348015610445575f80fd5b5061044e610c95565b005b34801561045b575f80fd5b50610464610de3565b005b348015610471575f80fd5b5061048c60048036038101906104879190612d4f565b610e8b565b6040516104999190612cae565b60405180910390f35b3480156104ad575f80fd5b506104b661107f565b6040516104c39190612bd1565b60405180910390f35b3480156104d7575f80fd5b506104e0611085565b6040516104ed9190612bd1565b60405180910390f35b348015610501575f80fd5b5061050a61108b565b6040516105179190612e76565b60405180910390f35b34801561052b575f80fd5b50610534611099565b6040516105419190612e76565b60405180910390f35b348015610555575f80fd5b5061055e6110c0565b60405161056b9190612c74565b60405180910390f35b34801561057f575f80fd5b506105886110fd565b005b348015610595575f80fd5b5061059e6111a8565b6040516105ab9190612e76565b60405180910390f35b3480156105bf575f80fd5b506105da60048036038101906105d59190612d4f565b6111cd565b6040516105e79190612cae565b60405180910390f35b3480156105fb575f80fd5b506106046111e1565b6040516106119190612e76565b60405180910390f35b348015610625575f80fd5b50610640600480360381019061063b9190612e8f565b611204565b005b34801561064d575f80fd5b5061066860048036038101906106639190612edf565b6112b2565b6040516106759190612bd1565b60405180910390f35b348015610689575f80fd5b506106a4600480360381019061069f9190612f47565b611334565b005b3480156106b1575f80fd5b506106cc60048036038101906106c79190612e11565b611437565b005b3480156106d9575f80fd5b506106e26115f4565b005b3480156106ef575f80fd5b506106f861165b565b6040516107059190612fe0565b60405180910390f35b601e5481565b60606040518060400160405280600b81526020017f616d70686574614d454d45000000000000000000000000000000000000000000815250905090565b601d60149054906101000a900460ff1681565b5f8160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161083f9190612bd1565b60405180910390a36001905092915050565b5f600354905090565b600f5481565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610a3f576109c2826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546116809092919063ffffffff16565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610a4a8484846116e2565b90509392505050565b610a5b611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ade90613043565b60405180910390fd5b6001601d60146101000a81548160ff021916908315150217905550565b5f6012905090565b5f610b37827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610764565b9050919050565b610b46611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc990613043565b60405180910390fd5b6001811015610bdf575f80fd5b6103e881600354610bf0919061308e565b610bfa91906130fc565b6005819055507f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be51600554604051610c319190612bd1565b60405180910390a150565b601d60159054906101000a900460ff1681565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c9d611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2090613043565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610deb611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6e90613043565b60405180910390fd5b600354600481905550600354600581905550565b5f610e94611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1790613043565b60405180910390fd5b5f8203610fa2578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f609190612e76565b602060405180830381865afa158015610f7b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f9f9190613140565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f8383604051610fd392919061316b565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b815260040161103792919061316b565b6020604051808303815f875af1158015611053573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061107791906131a6565b905092915050565b60055481565b60045481565b5f611094611099565b905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f5550504552000000000000000000000000000000000000000000000000000000815250905090565b611105611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611191576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118890613043565b60405180910390fd5b5f6012819055505f6011819055505f601381905550565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6111d93384846116e2565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61120c611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128f90613043565b60405180910390fd5b816011819055508260128190555080601381905550505050565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61133c611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bf90613043565b60405180910390fd5b81601d60156101000a81548160ff02191690831515021790555080601e819055507f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60601e54601d60159054906101000a900460ff1660405161142b9291906131d1565b60405180910390a15050565b61143f611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c290613043565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611539576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153090613268565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611658573d5f803e3d5ffd5b50565b601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8383111582906116c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116be9190612c74565b60405180910390fd5b505f83856116d59190613286565b9050809150509392505050565b5f601f5f9054906101000a900460ff161561170957611702848484611d20565b9050611d12565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156117a7575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156117fc57601d60149054906101000a900460ff166117fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f290613303565b60405180910390fd5b5b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561187f57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118b9575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119125750601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561196b575060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119c4575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a17575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a7a575f611a2684610c4f565b90506005548382611a379190613321565b1115611a78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6f906133c4565b60405180910390fd5b505b611a848483611eea565b611a8c611f84565b15611a9a57611a99612056565b5b611b21826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546116809092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611bfe575060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611c1257611c0d858486612633565b611c14565b825b9050611c668160065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129f290919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d049190612bd1565b60405180910390a360019150505b9392505050565b5f33905090565b5f611da8826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546116809092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611e398260065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129f290919063ffffffff16565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ed79190612bd1565b60405180910390a3600190509392505050565b60045481111580611f41575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611f80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f779061342c565b60405180910390fd5b5050565b5f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611fee5750601f5f9054906101000a900460ff16155b80156120065750601d60159054906101000a900460ff165b80156120515750601e5460065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b6001601f5f6101000a81548160ff0219169083151502179055505f806120ae60026120a0600f5461209286601e54612a4f90919063ffffffff16565b612ac690919063ffffffff16565b612ac690919063ffffffff16565b90505f6120c682601e54612b0f90919063ffffffff16565b90505f600267ffffffffffffffff8111156120e4576120e361344a565b5b6040519080825280602002602001820160405280156121125781602001602082028036833780820191505090505b50905030815f8151811061212957612128613477565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061219957612198613477565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f479050601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8530426040518663ffffffff1660e01b8152600401612239959493929190613594565b5f604051808303815f87803b158015612250575f80fd5b505af1158015612262573d5f803e3d5ffd5b505050505f61227a8247612b0f90919063ffffffff16565b90505f6122a5612294600289612ac690919063ffffffff16565b600f54612b0f90919063ffffffff16565b90505f6122e060026122d2846122c48c88612a4f90919063ffffffff16565b612ac690919063ffffffff16565b612ac690919063ffffffff16565b90505f61230a836122fc600b5487612a4f90919063ffffffff16565b612ac690919063ffffffff16565b90505f61233484612326600d5488612a4f90919063ffffffff16565b612ac690919063ffffffff16565b90505f61235e85612350600c5489612a4f90919063ffffffff16565b612ac690919063ffffffff16565b90505f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16846040516123a690613619565b5f6040518083038185875af1925050503d805f81146123e0576040519150601f19603f3d011682016040523d82523d5f602084013e6123e5565b606091505b5050905060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161242e90613619565b5f6040518083038185875af1925050503d805f8114612468576040519150601f19603f3d011682016040523d82523d5f602084013e61246d565b606091505b50508091505060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516124b890613619565b5f6040518083038185875af1925050503d805f81146124f2576040519150601f19603f3d011682016040523d82523d5f602084013e6124f7565b606091505b5050809150505f90505f8b111561260c57601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e5f8060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161258e9695949392919061362d565b60606040518083038185885af11580156125aa573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906125cf919061368c565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c6040516126039291906136dc565b60405180910390a15b5050505050505050505050505f601f5f6101000a81548160ff021916908315150217905550565b5f806013549050601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036126985760115490506126f3565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036126f25760125490505b5b5f61273c6103e8601054612707919061308e565b61272e84612720600f548a612a4f90919063ffffffff16565b612a4f90919063ffffffff16565b612ac690919063ffffffff16565b90505f612768600f5461275a600e5485612a4f90919063ffffffff16565b612ac690919063ffffffff16565b90505f61277e8284612b0f90919063ffffffff16565b90506127d08160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129f290919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506128828260065f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129f290919063ffffffff16565b60065f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516129419190612bd1565b60405180910390a35f8211156129d25761296682600354612b0f90919063ffffffff16565b6003819055505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129c99190612bd1565b60405180910390a35b6129e58388612b0f90919063ffffffff16565b9450505050509392505050565b5f808284612a009190613321565b905083811015612a45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a3c9061374d565b60405180910390fd5b8091505092915050565b5f808303612a5f575f9050612ac0565b5f8284612a6c919061308e565b9050828482612a7b91906130fc565b14612abb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ab2906137db565b60405180910390fd5b809150505b92915050565b5f612b0783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b58565b905092915050565b5f612b5083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611680565b905092915050565b5f8083118290612b9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b959190612c74565b60405180910390fd5b505f8385612bac91906130fc565b9050809150509392505050565b5f819050919050565b612bcb81612bb9565b82525050565b5f602082019050612be45f830184612bc2565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612c21578082015181840152602081019050612c06565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612c4682612bea565b612c508185612bf4565b9350612c60818560208601612c04565b612c6981612c2c565b840191505092915050565b5f6020820190508181035f830152612c8c8184612c3c565b905092915050565b5f8115159050919050565b612ca881612c94565b82525050565b5f602082019050612cc15f830184612c9f565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612cf482612ccb565b9050919050565b612d0481612cea565b8114612d0e575f80fd5b50565b5f81359050612d1f81612cfb565b92915050565b612d2e81612bb9565b8114612d38575f80fd5b50565b5f81359050612d4981612d25565b92915050565b5f8060408385031215612d6557612d64612cc7565b5b5f612d7285828601612d11565b9250506020612d8385828601612d3b565b9150509250929050565b5f805f60608486031215612da457612da3612cc7565b5b5f612db186828701612d11565b9350506020612dc286828701612d11565b9250506040612dd386828701612d3b565b9150509250925092565b5f60ff82169050919050565b612df281612ddd565b82525050565b5f602082019050612e0b5f830184612de9565b92915050565b5f60208284031215612e2657612e25612cc7565b5b5f612e3384828501612d11565b91505092915050565b5f60208284031215612e5157612e50612cc7565b5b5f612e5e84828501612d3b565b91505092915050565b612e7081612cea565b82525050565b5f602082019050612e895f830184612e67565b92915050565b5f805f60608486031215612ea657612ea5612cc7565b5b5f612eb386828701612d3b565b9350506020612ec486828701612d3b565b9250506040612ed586828701612d3b565b9150509250925092565b5f8060408385031215612ef557612ef4612cc7565b5b5f612f0285828601612d11565b9250506020612f1385828601612d11565b9150509250929050565b612f2681612c94565b8114612f30575f80fd5b50565b5f81359050612f4181612f1d565b92915050565b5f8060408385031215612f5d57612f5c612cc7565b5b5f612f6a85828601612f33565b9250506020612f7b85828601612d3b565b9150509250929050565b5f819050919050565b5f612fa8612fa3612f9e84612ccb565b612f85565b612ccb565b9050919050565b5f612fb982612f8e565b9050919050565b5f612fca82612faf565b9050919050565b612fda81612fc0565b82525050565b5f602082019050612ff35f830184612fd1565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61302d602083612bf4565b915061303882612ff9565b602082019050919050565b5f6020820190508181035f83015261305a81613021565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61309882612bb9565b91506130a383612bb9565b92508282026130b181612bb9565b915082820484148315176130c8576130c7613061565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61310682612bb9565b915061311183612bb9565b925082613121576131206130cf565b5b828204905092915050565b5f8151905061313a81612d25565b92915050565b5f6020828403121561315557613154612cc7565b5b5f6131628482850161312c565b91505092915050565b5f60408201905061317e5f830185612e67565b61318b6020830184612bc2565b9392505050565b5f815190506131a081612f1d565b92915050565b5f602082840312156131bb576131ba612cc7565b5b5f6131c884828501613192565b91505092915050565b5f6040820190506131e45f830185612bc2565b6131f16020830184612c9f565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613252602683612bf4565b915061325d826131f8565b604082019050919050565b5f6020820190508181035f83015261327f81613246565b9050919050565b5f61329082612bb9565b915061329b83612bb9565b92508282039050818111156132b3576132b2613061565b5b92915050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f6132ed601483612bf4565b91506132f8826132b9565b602082019050919050565b5f6020820190508181035f83015261331a816132e1565b9050919050565b5f61332b82612bb9565b915061333683612bb9565b925082820190508082111561334e5761334d613061565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d69745f8201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b5f6133ae603e83612bf4565b91506133b982613354565b604082019050919050565b5f6020820190508181035f8301526133db816133a2565b9050919050565b7f5458204c696d69742045786365656465640000000000000000000000000000005f82015250565b5f613416601183612bf4565b9150613421826133e2565b602082019050919050565b5f6020820190508181035f8301526134438161340a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f6134c76134c26134bd846134a4565b612f85565b612bb9565b9050919050565b6134d7816134ad565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61350f81612cea565b82525050565b5f6135208383613506565b60208301905092915050565b5f602082019050919050565b5f613542826134dd565b61354c81856134e7565b9350613557836134f7565b805f5b8381101561358757815161356e8882613515565b97506135798361352c565b92505060018101905061355a565b5085935050505092915050565b5f60a0820190506135a75f830188612bc2565b6135b460208301876134ce565b81810360408301526135c68186613538565b90506135d56060830185612e67565b6135e26080830184612bc2565b9695505050505050565b5f81905092915050565b50565b5f6136045f836135ec565b915061360f826135f6565b5f82019050919050565b5f613623826135f9565b9150819050919050565b5f60c0820190506136405f830189612e67565b61364d6020830188612bc2565b61365a60408301876134ce565b61366760608301866134ce565b6136746080830185612e67565b61368160a0830184612bc2565b979650505050505050565b5f805f606084860312156136a3576136a2612cc7565b5b5f6136b08682870161312c565b93505060206136c18682870161312c565b92505060406136d28682870161312c565b9150509250925092565b5f6040820190506136ef5f830185612bc2565b6136fc6020830184612bc2565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613737601b83612bf4565b915061374282613703565b602082019050919050565b5f6020820190508181035f8301526137648161372b565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6137c5602183612bf4565b91506137d08261376b565b604082019050919050565b5f6020820190508181035f8301526137f2816137b9565b905091905056fea2646970667358221220d79729560aa1fe6e0293d9216e84f3d68434bc9d4e60c971e50fef0d28e72ddf64736f6c63430008140033
Deployed Bytecode Sourcemap
5103:11812:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7438:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9079:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7355:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9501:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8809:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6723:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10019:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14659:81;;;;;;;;;;;;;:::i;:::-;;8903:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9725:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10397:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7401:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9249:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2017:148;;;;;;;;;;;;;:::i;:::-;;10654:139;;;;;;;;;;;;;:::i;:::-;;14036:343;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6226:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6161:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9165:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1803:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8989:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14748:127;;;;;;;;;;;;;:::i;:::-;;7323:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9855:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1423:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14387:257;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9360:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16701:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2173:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13897:132;;;;;;;;;;;;;:::i;:::-;;7253:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7438:50;;;;:::o;9079:80::-;9127:13;9151:5;;;;;;;;;;;;;;;;;9144:12;;9079:80;:::o;7355:31::-;;;;;;;;;;;;;:::o;9501:216::-;9576:4;9628:6;9593:11;:23;9605:10;9593:23;;;;;;;;;;;;;;;:32;9617:7;9593:32;;;;;;;;;;;;;;;:41;;;;9671:7;9650:37;;9659:10;9650:37;;;9680:6;9650:37;;;;;;:::i;:::-;;;;;;;;9705:4;9698:11;;9501:216;;;;:::o;8809:88::-;8864:7;8882:12;;8875:19;;8809:88;:::o;6723:93::-;;;;:::o;10019:370::-;10119:4;10174:17;10139:11;:19;10151:6;10139:19;;;;;;;;;;;;;;;:31;10159:10;10139:31;;;;;;;;;;;;;;;;:52;10136:186;;10241:69;10277:6;10241:69;;;;;;;;;;;;;;;;;:11;:19;10253:6;10241:19;;;;;;;;;;;;;;;:31;10261:10;10241:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;10207:11;:19;10219:6;10207:19;;;;;;;;;;;;;;;:31;10227:10;10207:31;;;;;;;;;;;;;;;:103;;;;10136:186;10341:40;10355:6;10363:9;10374:6;10341:13;:40::i;:::-;10334:47;;10019:370;;;;;:::o;14659:81::-;1940:12;:10;:12::i;:::-;1930:22;;:6;;;;;;;;;;:22;;;1922:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14725:4:::1;14711:11;;:18;;;;;;;;;;;;;;;;;;14659:81::o:0;8903:80::-;8955:5;5468:2;8964:16;;8903:80;:::o;9725:122::-;9780:4;9804:35;9812:7;9821:17;9804:7;:35::i;:::-;9797:42;;9725:122;;;:::o;10397:247::-;1940:12;:10;:12::i;:::-;1930:22;;:6;;;;;;;;;;:22;;;1922:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10501:1:::1;10483:14;:19;;10475:28;;;::::0;::::1;;10568:4;10549:14;10534:12;;:29;;;;:::i;:::-;10533:39;;;;:::i;:::-;10515:15;:57;;;;10588:30;10602:15;;10588:30;;;;;;:::i;:::-;;;;;;;;10397:247:::0;:::o;7401:30::-;;;;;;;;;;;;;:::o;9249:105::-;9315:7;9333:9;:18;9343:7;9333:18;;;;;;;;;;;;;;;;9326:25;;9249:105;;;:::o;2017:148::-;1940:12;:10;:12::i;:::-;1930:22;;:6;;;;;;;;;;:22;;;1922:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2124:1:::1;2087:40;;2108:6;::::0;::::1;;;;;;;;2087:40;;;;;;;;;;;;2155:1;2138:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2017:148::o:0;10654:139::-;1940:12;:10;:12::i;:::-;1930:22;;:6;;;;;;;;;;:22;;;1922:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10728:12:::1;;10713;:27;;;;10773:12;;10755:15;:30;;;;10654:139::o:0;14036:343::-;14127:12;1940;:10;:12::i;:::-;1930:22;;:6;;;;;;;;;;:22;;;1922:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14165:1:::1;14155:6;:11:::0;14152:95:::1;;14197:12;14191:29;;;14229:4;14191:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14182:53;;14152:95;14262:32;14273:12;14287:6;14262:32;;;;;;;:::i;:::-;;;;;;;;14318:12;14312:28;;;14341:21;;;;;;;;;;;14364:6;14312:59;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14305:66;;14036:343:::0;;;;:::o;6226:61::-;;;;:::o;6161:58::-;;;;:::o;9165:78::-;9217:7;9234;:5;:7::i;:::-;9227:14;;9165:78;:::o;1803:79::-;1841:7;1868:6;;;;;;;;;;;1861:13;;1803:79;:::o;8989:84::-;9039:13;9063:7;;;;;;;;;;;;;;;;;9056:14;;8989:84;:::o;14748:127::-;1940:12;:10;:12::i;:::-;1930:22;;:6;;;;;;;;;;:22;;;1922:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14810:1:::1;14797:10;:14;;;;14836:1;14822:11;:15;;;;14866:1;14848:15;:19;;;;14748:127::o:0;7323:19::-;;;;;;;;;;;;;:::o;9855:156::-;9935:4;9959:44;9973:10;9985:9;9996:6;9959:13;:44::i;:::-;9952:51;;9855:156;;;;:::o;1423:21::-;;;;;;;;;;;;:::o;14387:257::-;1940:12;:10;:12::i;:::-;1930:22;;:6;;;;;;;;;;:22;;;1922:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14525:14:::1;14511:11;:28;;;;14563:13;14550:10;:26;;;;14605:15;14587;:33;;;;14387:257:::0;;;:::o;9360:133::-;9444:7;9462:11;:19;9474:6;9462:19;;;;;;;;;;;;;;;:28;9482:7;9462:28;;;;;;;;;;;;;;;;9455:35;;9360:133;;;;:::o;16701:211::-;1940:12;:10;:12::i;:::-;1930:22;;:6;;;;;;;;;;:22;;;1922:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16806:8:::1;16792:11;;:22;;;;;;;;;;;;;;;;;;16841:7;16825:13;:23;;;;16864:40;16877:13;;16892:11;;;;;;;;;;;16864:40;;;;;;;:::i;:::-;;;;;;;;16701:211:::0;;:::o;2173:244::-;1940:12;:10;:12::i;:::-;1930:22;;:6;;;;;;;;;;:22;;;1922:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2282:1:::1;2262:22;;:8;:22;;::::0;2254:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2372:8;2343:38;;2364:6;::::0;::::1;;;;;;;;2343:38;;;;;;;;;;;;2401:8;2392:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2173:244:::0;:::o;13897:132::-;13953:21;;;;;;;;;;;13945:39;;:62;13985:21;13945:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13897:132::o;7253:24::-;;;;;;;;;;;;;:::o;4315:192::-;4401:7;4434:1;4429;:6;;4437:12;4421:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4461:9;4477:1;4473;:5;;;;:::i;:::-;4461:17;;4498:1;4491:8;;;4315:192;;;;;:::o;10809:1238::-;10901:4;10921:6;;;;;;;;;;;10918:63;;;10937:41;10952:6;10960:9;10971:6;10937:14;:41::i;:::-;10930:48;;;;10918:63;10997:14;:22;11012:6;10997:22;;;;;;;;;;;;;;;;;;;;;;;;;10996:23;:53;;;;;11024:14;:25;11039:9;11024:25;;;;;;;;;;;;;;;;;;;;;;;;;11023:26;10996:53;10993:139;;;11073:11;;;;;;;;;;;11065:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;10993:139;11174:14;:22;11189:6;11174:22;;;;;;;;;;;;;;;;;;;;;;;;;11173:23;:53;;;;;11221:4;11200:26;;:9;:26;;;;11173:53;:84;;;;;5227:42;11231:26;;:9;:26;;;;11173:84;:105;;;;;11274:4;;;;;;;;;;;11261:17;;:9;:17;;;;11173:105;:137;;;;;11295:15;;;;;;;;;;;11282:28;;:9;:28;;;;11173:137;:174;;;;;11327:20;;;;;;;;;;;11314:33;;:9;:33;;;;11173:174;:207;;;;;11352:17;:28;11370:9;11352:28;;;;;;;;;;;;;;;;;;;;;;;;;11351:29;11173:207;11169:399;;;11396:18;11417:20;11427:9;11417;:20::i;:::-;11396:41;;11485:15;;11474:6;11461:10;:19;;;;:::i;:::-;11460:40;;11452:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;11381:187;11169:399;11580:28;11593:6;11601;11580:12;:28::i;:::-;11626:16;:14;:16::i;:::-;11623:35;;;11645:10;:8;:10::i;:::-;11623:35;11688:53;11710:6;11688:53;;;;;;;;;;;;;;;;;:9;:17;11698:6;11688:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11668:9;:17;11678:6;11668:17;;;;;;;;;;;;;;;:73;;;;11754:22;11780:16;:24;11797:6;11780:24;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;11808:16;:27;11825:9;11808:27;;;;;;;;;;;;;;;;;;;;;;;;;11780:55;11779:103;;11848:34;11856:6;11864;11872:9;11848:7;:34::i;:::-;11779:103;;;11839:6;11779:103;11754:128;;11916:40;11941:14;11916:9;:20;11926:9;11916:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;11893:9;:20;11903:9;11893:20;;;;;;;;;;;;;;;:63;;;;11991:9;11974:43;;11983:6;11974:43;;;12002:14;11974:43;;;;;;:::i;:::-;;;;;;;;12035:4;12028:11;;;10809:1238;;;;;;:::o;1144:115::-;1197:15;1240:10;1225:26;;1144:115;:::o;12056:330::-;12149:4;12186:53;12208:6;12186:53;;;;;;;;;;;;;;;;;:9;:17;12196:6;12186:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;12166:9;:17;12176:6;12166:17;;;;;;;;;;;;;;;:73;;;;12273:32;12298:6;12273:9;:20;12283:9;12273:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12250:9;:20;12260:9;12250:20;;;;;;;;;;;;;;;:55;;;;12338:9;12321:35;;12330:6;12321:35;;;12349:6;12321:35;;;;;;:::i;:::-;;;;;;;;12374:4;12367:11;;12056:330;;;;;:::o;12394:168::-;12491:12;;12481:6;:22;;:51;;;;12507:17;:25;12525:6;12507:25;;;;;;;;;;;;;;;;;;;;;;;;;12481:51;12473:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;12394:168;;:::o;13688:197::-;13737:4;13775;;;;;;;;;;;13761:18;;:10;:18;;;;:38;;;;;13793:6;;;;;;;;;;;13792:7;13761:38;:62;;;;;13812:11;;;;;;;;;;;13761:62;:116;;;;;13864:13;;13836:9;:24;13854:4;13836:24;;;;;;;;;;;;;;;;:41;;13761:116;13754:123;;13688:197;:::o;14898:1795::-;7545:4;7536:6;;:13;;;;;;;;;;;;;;;;;;14947:27:::1;14989:23:::0;15015:59:::1;15072:1;15015:52;15058:8;;15015:38;15033:19;15015:13;;:17;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;14989:85;;15085:20;15108:34;15126:15;15108:13;;:17;;:34;;;;:::i;:::-;15085:57;;15155:21;15193:1;15179:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15155:40;;15224:4;15206;15211:1;15206:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;15250:4;;;;;;;;;;;15240;15245:1;15240:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;15267:21;15291;15267:45;;15325:6;;;;;;;;;;;:57;;;15397:12;15424:1;15440:4;15467;15487:15;15325:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15526:17;15546:40;15572:13;15546:21;:25;;:40;;;;:::i;:::-;15526:60;;15599:19;15621:40;15634:26;15658:1;15634:19;:23;;:26;;;;:::i;:::-;15621:8;;:12;;:40;;;;:::i;:::-;15599:62;;15682:26;15711:58;15767:1;15711:51;15750:11;15711:34;15725:19;15711:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;15682:87;;15780:26;15809:44;15841:11;15809:27;15823:12;;15809:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;15780:73;;15864:24;15891:42;15921:11;15891:25;15905:10;;15891:9;:13;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;15864:69;;15944:20;15967:38;15993:11;15967:21;15981:6;;15967:9;:13;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;15944:61;;16019:15;16047:20;;;;;;;;;;;16039:34;;16081:18;16039:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16018:86;;;16139:14;;;;;;;;;;;16131:28;;16167:12;16131:53;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16115:69;;;;;16219:18;;;;;;;;;;;16211:32;;16251:16;16211:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16195:77;;;;;16306:5;16293:18;;16345:1;16327:15;:19;16324:362;;;16362:6;;;;;;;;;;;:22;;;16392:18;16438:4;16462:15;16496:1;16516::::0;16536:21:::1;;;;;;;;;;;16576:15;16362:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16626:48;16638:18;16658:15;16626:48;;;;;;;:::i;:::-;;;;;;;;16324:362;14936:1757;;;;;;;;;;;;7563:5:::0;7554:6;;:14;;;;;;;;;;;;;;;;;;14898:1795::o;12697:983::-;12783:7;12813:15;12831;;12813:33;;12873:4;;;;;;;;;;;12860:17;;:9;:17;;;12857:142;;12904:11;;12894:21;;12857:142;;;12946:4;;;;;;;;;;;12936:14;;:6;:14;;;12933:66;;12977:10;;12967:20;;12933:66;12857:142;13011:17;13031:60;13086:4;13069:14;;:21;;;;:::i;:::-;13031:33;13056:7;13031:20;13042:8;;13031:6;:10;;:20;;;;:::i;:::-;:24;;:33;;;;:::i;:::-;:37;;:60;;;;:::i;:::-;13011:80;;13102:18;13123:36;13150:8;;13123:22;13137:7;;13123:9;:13;;:22;;;;:::i;:::-;:26;;:36;;;;:::i;:::-;13102:57;;13170:22;13195:25;13209:10;13195:9;:13;;:25;;;;:::i;:::-;13170:50;;13258:44;13287:14;13258:9;:24;13276:4;13258:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;13231:9;:24;13249:4;13231:24;;;;;;;;;;;;;;;:71;;;;13342:42;13373:10;13342:9;:26;13352:15;;;;;;;;;;;13342:26;;;;;;;;;;;;;;;;:30;;:42;;;;:::i;:::-;13313:9;:26;13323:15;;;;;;;;;;;13313:26;;;;;;;;;;;;;;;:71;;;;13425:4;13400:47;;13409:6;13400:47;;;13432:14;13400:47;;;;;;:::i;:::-;;;;;;;;13494:1;13481:10;:14;13478:154;;;13526:28;13543:10;13526:12;;:16;;:28;;;;:::i;:::-;13511:12;:43;;;;5300:42;13574:34;;13583:6;13574:34;;;13597:10;13574:34;;;;;;:::i;:::-;;;;;;;;13478:154;13651:21;13662:9;13651:6;:10;;:21;;;;:::i;:::-;13644:28;;;;;;12697:983;;;;;:::o;3986:181::-;4044:7;4064:9;4080:1;4076;:5;;;;:::i;:::-;4064:17;;4105:1;4100;:6;;4092:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4158:1;4151:8;;;3986:181;;;;:::o;4513:250::-;4571:7;4600:1;4595;:6;4591:47;;4625:1;4618:8;;;;4591:47;4650:9;4666:1;4662;:5;;;;:::i;:::-;4650:17;;4695:1;4690;4686;:5;;;;:::i;:::-;:10;4678:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4754:1;4747:8;;;4513:250;;;;;:::o;4769:132::-;4827:7;4854:39;4858:1;4861;4854:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4847:46;;4769:132;;;;:::o;4173:136::-;4231:7;4258:43;4262:1;4265;4258:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4251:50;;4173:136;;;;:::o;4907:189::-;4993:7;5025:1;5021;:5;5028:12;5013:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5052:9;5068:1;5064;:5;;;;:::i;:::-;5052:17;;5087:1;5080:8;;;4907:189;;;;;:::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:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1784:90::-;1818:7;1861:5;1854:13;1847:21;1836:32;;1784:90;;;:::o;1880:109::-;1961:21;1976:5;1961:21;:::i;:::-;1956:3;1949:34;1880:109;;:::o;1995:210::-;2082:4;2120:2;2109:9;2105:18;2097:26;;2133:65;2195:1;2184:9;2180:17;2171:6;2133:65;:::i;:::-;1995:210;;;;:::o;2292:117::-;2401:1;2398;2391:12;2538:126;2575:7;2615:42;2608:5;2604:54;2593:65;;2538:126;;;:::o;2670:96::-;2707:7;2736:24;2754:5;2736:24;:::i;:::-;2725:35;;2670:96;;;:::o;2772:122::-;2845:24;2863:5;2845:24;:::i;:::-;2838:5;2835:35;2825:63;;2884:1;2881;2874:12;2825:63;2772:122;:::o;2900:139::-;2946:5;2984:6;2971:20;2962:29;;3000:33;3027:5;3000:33;:::i;:::-;2900:139;;;;:::o;3045:122::-;3118:24;3136:5;3118:24;:::i;:::-;3111:5;3108:35;3098:63;;3157:1;3154;3147:12;3098:63;3045:122;:::o;3173:139::-;3219:5;3257:6;3244:20;3235:29;;3273:33;3300:5;3273:33;:::i;:::-;3173:139;;;;:::o;3318:474::-;3386:6;3394;3443:2;3431:9;3422:7;3418:23;3414:32;3411:119;;;3449:79;;:::i;:::-;3411:119;3569:1;3594:53;3639:7;3630:6;3619:9;3615:22;3594:53;:::i;:::-;3584:63;;3540:117;3696:2;3722:53;3767:7;3758:6;3747:9;3743:22;3722:53;:::i;:::-;3712:63;;3667:118;3318:474;;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:619::-;5952:6;5960;5968;6017:2;6005:9;5996:7;5992:23;5988:32;5985:119;;;6023:79;;:::i;:::-;5985:119;6143:1;6168:53;6213:7;6204:6;6193:9;6189:22;6168:53;:::i;:::-;6158:63;;6114:117;6270:2;6296:53;6341:7;6332:6;6321:9;6317:22;6296:53;:::i;:::-;6286:63;;6241:118;6398:2;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6369:118;5875:619;;;;;:::o;6500:474::-;6568:6;6576;6625:2;6613:9;6604:7;6600:23;6596:32;6593:119;;;6631:79;;:::i;:::-;6593:119;6751:1;6776:53;6821:7;6812:6;6801:9;6797:22;6776:53;:::i;:::-;6766:63;;6722:117;6878:2;6904:53;6949:7;6940:6;6929:9;6925:22;6904:53;:::i;:::-;6894:63;;6849:118;6500:474;;;;;:::o;6980:116::-;7050:21;7065:5;7050:21;:::i;:::-;7043:5;7040:32;7030:60;;7086:1;7083;7076:12;7030:60;6980:116;:::o;7102:133::-;7145:5;7183:6;7170:20;7161:29;;7199:30;7223:5;7199:30;:::i;:::-;7102:133;;;;:::o;7241:468::-;7306:6;7314;7363:2;7351:9;7342:7;7338:23;7334:32;7331:119;;;7369:79;;:::i;:::-;7331:119;7489:1;7514:50;7556:7;7547:6;7536:9;7532:22;7514:50;:::i;:::-;7504:60;;7460:114;7613:2;7639:53;7684:7;7675:6;7664:9;7660:22;7639:53;:::i;:::-;7629:63;;7584:118;7241:468;;;;;:::o;7715:60::-;7743:3;7764:5;7757:12;;7715:60;;;:::o;7781:142::-;7831:9;7864:53;7882:34;7891:24;7909:5;7891:24;:::i;:::-;7882:34;:::i;:::-;7864:53;:::i;:::-;7851:66;;7781:142;;;:::o;7929:126::-;7979:9;8012:37;8043:5;8012:37;:::i;:::-;7999:50;;7929:126;;;:::o;8061:144::-;8129:9;8162:37;8193:5;8162:37;:::i;:::-;8149:50;;8061:144;;;:::o;8211:167::-;8316:55;8365:5;8316:55;:::i;:::-;8311:3;8304:68;8211:167;;:::o;8384:258::-;8495:4;8533:2;8522:9;8518:18;8510:26;;8546:89;8632:1;8621:9;8617:17;8608:6;8546:89;:::i;:::-;8384:258;;;;:::o;8648:182::-;8788:34;8784:1;8776:6;8772:14;8765:58;8648:182;:::o;8836:366::-;8978:3;8999:67;9063:2;9058:3;8999:67;:::i;:::-;8992:74;;9075:93;9164:3;9075:93;:::i;:::-;9193:2;9188:3;9184:12;9177:19;;8836:366;;;:::o;9208:419::-;9374:4;9412:2;9401:9;9397:18;9389:26;;9461:9;9455:4;9451:20;9447:1;9436:9;9432:17;9425:47;9489:131;9615:4;9489:131;:::i;:::-;9481:139;;9208:419;;;:::o;9633:180::-;9681:77;9678:1;9671:88;9778:4;9775:1;9768:15;9802:4;9799:1;9792:15;9819:410;9859:7;9882:20;9900:1;9882:20;:::i;:::-;9877:25;;9916:20;9934:1;9916:20;:::i;:::-;9911:25;;9971:1;9968;9964:9;9993:30;10011:11;9993:30;:::i;:::-;9982:41;;10172:1;10163:7;10159:15;10156:1;10153:22;10133:1;10126:9;10106:83;10083:139;;10202:18;;:::i;:::-;10083:139;9867:362;9819:410;;;;:::o;10235:180::-;10283:77;10280:1;10273:88;10380:4;10377:1;10370:15;10404:4;10401:1;10394:15;10421:185;10461:1;10478:20;10496:1;10478:20;:::i;:::-;10473:25;;10512:20;10530:1;10512:20;:::i;:::-;10507:25;;10551:1;10541:35;;10556:18;;:::i;:::-;10541:35;10598:1;10595;10591:9;10586:14;;10421:185;;;;:::o;10612:143::-;10669:5;10700:6;10694:13;10685:22;;10716:33;10743:5;10716:33;:::i;:::-;10612:143;;;;:::o;10761:351::-;10831:6;10880:2;10868:9;10859:7;10855:23;10851:32;10848:119;;;10886:79;;:::i;:::-;10848:119;11006:1;11031:64;11087:7;11078:6;11067:9;11063:22;11031:64;:::i;:::-;11021:74;;10977:128;10761:351;;;;:::o;11118:332::-;11239:4;11277:2;11266:9;11262:18;11254:26;;11290:71;11358:1;11347:9;11343:17;11334:6;11290:71;:::i;:::-;11371:72;11439:2;11428:9;11424:18;11415:6;11371:72;:::i;:::-;11118:332;;;;;:::o;11456:137::-;11510:5;11541:6;11535:13;11526:22;;11557:30;11581:5;11557:30;:::i;:::-;11456:137;;;;:::o;11599:345::-;11666:6;11715:2;11703:9;11694:7;11690:23;11686:32;11683:119;;;11721:79;;:::i;:::-;11683:119;11841:1;11866:61;11919:7;11910:6;11899:9;11895:22;11866:61;:::i;:::-;11856:71;;11812:125;11599:345;;;;:::o;11950:320::-;12065:4;12103:2;12092:9;12088:18;12080:26;;12116:71;12184:1;12173:9;12169:17;12160:6;12116:71;:::i;:::-;12197:66;12259:2;12248:9;12244:18;12235:6;12197:66;:::i;:::-;11950:320;;;;;:::o;12276:225::-;12416:34;12412:1;12404:6;12400:14;12393:58;12485:8;12480:2;12472:6;12468:15;12461:33;12276:225;:::o;12507:366::-;12649:3;12670:67;12734:2;12729:3;12670:67;:::i;:::-;12663:74;;12746:93;12835:3;12746:93;:::i;:::-;12864:2;12859:3;12855:12;12848:19;;12507:366;;;:::o;12879:419::-;13045:4;13083:2;13072:9;13068:18;13060:26;;13132:9;13126:4;13122:20;13118:1;13107:9;13103:17;13096:47;13160:131;13286:4;13160:131;:::i;:::-;13152:139;;12879:419;;;:::o;13304:194::-;13344:4;13364:20;13382:1;13364:20;:::i;:::-;13359:25;;13398:20;13416:1;13398:20;:::i;:::-;13393:25;;13442:1;13439;13435:9;13427:17;;13466:1;13460:4;13457:11;13454:37;;;13471:18;;:::i;:::-;13454:37;13304:194;;;;:::o;13504:170::-;13644:22;13640:1;13632:6;13628:14;13621:46;13504:170;:::o;13680:366::-;13822:3;13843:67;13907:2;13902:3;13843:67;:::i;:::-;13836:74;;13919:93;14008:3;13919:93;:::i;:::-;14037:2;14032:3;14028:12;14021:19;;13680:366;;;:::o;14052:419::-;14218:4;14256:2;14245:9;14241:18;14233:26;;14305:9;14299:4;14295:20;14291:1;14280:9;14276:17;14269:47;14333:131;14459:4;14333:131;:::i;:::-;14325:139;;14052:419;;;:::o;14477:191::-;14517:3;14536:20;14554:1;14536:20;:::i;:::-;14531:25;;14570:20;14588:1;14570:20;:::i;:::-;14565:25;;14613:1;14610;14606:9;14599:16;;14634:3;14631:1;14628:10;14625:36;;;14641:18;;:::i;:::-;14625:36;14477:191;;;;:::o;14674:249::-;14814:34;14810:1;14802:6;14798:14;14791:58;14883:32;14878:2;14870:6;14866:15;14859:57;14674:249;:::o;14929:366::-;15071:3;15092:67;15156:2;15151:3;15092:67;:::i;:::-;15085:74;;15168:93;15257:3;15168:93;:::i;:::-;15286:2;15281:3;15277:12;15270:19;;14929:366;;;:::o;15301:419::-;15467:4;15505:2;15494:9;15490:18;15482:26;;15554:9;15548:4;15544:20;15540:1;15529:9;15525:17;15518:47;15582:131;15708:4;15582:131;:::i;:::-;15574:139;;15301:419;;;:::o;15726:167::-;15866:19;15862:1;15854:6;15850:14;15843:43;15726:167;:::o;15899:366::-;16041:3;16062:67;16126:2;16121:3;16062:67;:::i;:::-;16055:74;;16138:93;16227:3;16138:93;:::i;:::-;16256:2;16251:3;16247:12;16240:19;;15899:366;;;:::o;16271:419::-;16437:4;16475:2;16464:9;16460:18;16452:26;;16524:9;16518:4;16514:20;16510:1;16499:9;16495:17;16488:47;16552:131;16678:4;16552:131;:::i;:::-;16544:139;;16271:419;;;:::o;16696:180::-;16744:77;16741:1;16734:88;16841:4;16838:1;16831:15;16865:4;16862:1;16855:15;16882:180;16930:77;16927:1;16920:88;17027:4;17024:1;17017:15;17051:4;17048:1;17041:15;17068:85;17113:7;17142:5;17131:16;;17068:85;;;:::o;17159:158::-;17217:9;17250:61;17268:42;17277:32;17303:5;17277:32;:::i;:::-;17268:42;:::i;:::-;17250:61;:::i;:::-;17237:74;;17159:158;;;:::o;17323:147::-;17418:45;17457:5;17418:45;:::i;:::-;17413:3;17406:58;17323:147;;:::o;17476:114::-;17543:6;17577:5;17571:12;17561:22;;17476:114;;;:::o;17596:184::-;17695:11;17729:6;17724:3;17717:19;17769:4;17764:3;17760:14;17745:29;;17596:184;;;;:::o;17786:132::-;17853:4;17876:3;17868:11;;17906:4;17901:3;17897:14;17889:22;;17786:132;;;:::o;17924:108::-;18001:24;18019:5;18001:24;:::i;:::-;17996:3;17989:37;17924:108;;:::o;18038:179::-;18107:10;18128:46;18170:3;18162:6;18128:46;:::i;:::-;18206:4;18201:3;18197:14;18183:28;;18038:179;;;;:::o;18223:113::-;18293:4;18325;18320:3;18316:14;18308:22;;18223:113;;;:::o;18372:732::-;18491:3;18520:54;18568:5;18520:54;:::i;:::-;18590:86;18669:6;18664:3;18590:86;:::i;:::-;18583:93;;18700:56;18750:5;18700:56;:::i;:::-;18779:7;18810:1;18795:284;18820:6;18817:1;18814:13;18795:284;;;18896:6;18890:13;18923:63;18982:3;18967:13;18923:63;:::i;:::-;18916:70;;19009:60;19062:6;19009:60;:::i;:::-;18999:70;;18855:224;18842:1;18839;18835:9;18830:14;;18795:284;;;18799:14;19095:3;19088:10;;18496:608;;;18372:732;;;;:::o;19110:831::-;19373:4;19411:3;19400:9;19396:19;19388:27;;19425:71;19493:1;19482:9;19478:17;19469:6;19425:71;:::i;:::-;19506:80;19582:2;19571:9;19567:18;19558:6;19506:80;:::i;:::-;19633:9;19627:4;19623:20;19618:2;19607:9;19603:18;19596:48;19661:108;19764:4;19755:6;19661:108;:::i;:::-;19653:116;;19779:72;19847:2;19836:9;19832:18;19823:6;19779:72;:::i;:::-;19861:73;19929:3;19918:9;19914:19;19905:6;19861:73;:::i;:::-;19110:831;;;;;;;;:::o;19947:147::-;20048:11;20085:3;20070:18;;19947:147;;;;:::o;20100:114::-;;:::o;20220:398::-;20379:3;20400:83;20481:1;20476:3;20400:83;:::i;:::-;20393:90;;20492:93;20581:3;20492:93;:::i;:::-;20610:1;20605:3;20601:11;20594:18;;20220:398;;;:::o;20624:379::-;20808:3;20830:147;20973:3;20830:147;:::i;:::-;20823:154;;20994:3;20987:10;;20624:379;;;:::o;21009:807::-;21258:4;21296:3;21285:9;21281:19;21273:27;;21310:71;21378:1;21367:9;21363:17;21354:6;21310:71;:::i;:::-;21391:72;21459:2;21448:9;21444:18;21435:6;21391:72;:::i;:::-;21473:80;21549:2;21538:9;21534:18;21525:6;21473:80;:::i;:::-;21563;21639:2;21628:9;21624:18;21615:6;21563:80;:::i;:::-;21653:73;21721:3;21710:9;21706:19;21697:6;21653:73;:::i;:::-;21736;21804:3;21793:9;21789:19;21780:6;21736:73;:::i;:::-;21009:807;;;;;;;;;:::o;21822:663::-;21910:6;21918;21926;21975:2;21963:9;21954:7;21950:23;21946:32;21943:119;;;21981:79;;:::i;:::-;21943:119;22101:1;22126:64;22182:7;22173:6;22162:9;22158:22;22126:64;:::i;:::-;22116:74;;22072:128;22239:2;22265:64;22321:7;22312:6;22301:9;22297:22;22265:64;:::i;:::-;22255:74;;22210:129;22378:2;22404:64;22460:7;22451:6;22440:9;22436:22;22404:64;:::i;:::-;22394:74;;22349:129;21822:663;;;;;:::o;22491:332::-;22612:4;22650:2;22639:9;22635:18;22627:26;;22663:71;22731:1;22720:9;22716:17;22707:6;22663:71;:::i;:::-;22744:72;22812:2;22801:9;22797:18;22788:6;22744:72;:::i;:::-;22491:332;;;;;:::o;22829:177::-;22969:29;22965:1;22957:6;22953:14;22946:53;22829:177;:::o;23012:366::-;23154:3;23175:67;23239:2;23234:3;23175:67;:::i;:::-;23168:74;;23251:93;23340:3;23251:93;:::i;:::-;23369:2;23364:3;23360:12;23353:19;;23012:366;;;:::o;23384:419::-;23550:4;23588:2;23577:9;23573:18;23565:26;;23637:9;23631:4;23627:20;23623:1;23612:9;23608:17;23601:47;23665:131;23791:4;23665:131;:::i;:::-;23657:139;;23384:419;;;:::o;23809:220::-;23949:34;23945:1;23937:6;23933:14;23926:58;24018:3;24013:2;24005:6;24001:15;23994:28;23809:220;:::o;24035:366::-;24177:3;24198:67;24262:2;24257:3;24198:67;:::i;:::-;24191:74;;24274:93;24363:3;24274:93;:::i;:::-;24392:2;24387:3;24383:12;24376:19;;24035:366;;;:::o;24407:419::-;24573:4;24611:2;24600:9;24596:18;24588:26;;24660:9;24654:4;24650:20;24646:1;24635:9;24631:17;24624:47;24688:131;24814:4;24688:131;:::i;:::-;24680:139;;24407:419;;;:::o
Swarm Source
ipfs://d79729560aa1fe6e0293d9216e84f3d68434bc9d4e60c971e50fef0d28e72ddf
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.