ERC-20
Overview
Max Total Supply
1,000,000,000 ERC20 ***
Holders
5
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
28,167,516.613385793241715444 ERC20 ***Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
DaiTengu
Compiler Version
v0.8.13+commit.abaa5c0e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-08-30 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.13; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } 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; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } interface IBEP20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IBEP20Metadata is IBEP20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } contract BEP20 is Context, IBEP20, IBEP20Metadata { using SafeMath for uint256; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 internal _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "BEP20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "BEP20: decreased allowance below zero")); return true; } function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "BEP20: transfer from the zero address"); require(recipient != address(0), "BEP20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); _balances[sender] = _balances[sender].sub(amount,"BEP20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "BEP20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "BEP20: approve from the zero address"); require(spender != address(0), "BEP20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {} } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() 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 IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint256 value); event Transfer(address indexed from, address indexed to, uint256 value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom(address from, address to, uint256 value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external; event Swap(address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function swap(uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity(address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline) external returns (uint256 amountA, uint256 amountB, uint256 liquidity); function addLiquidityETH(address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); function removeLiquidity(address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETH(address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) external returns (uint256 amountToken, uint256 amountETH); function removeLiquidityWithPermit(address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETHWithPermit(address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s) external returns (uint256 amountToken, uint256 amountETH); function swapExactTokensForTokens(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external returns (uint256[] memory amounts); function swapTokensForExactTokens(uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline) external returns (uint256[] memory amounts); function swapExactETHForTokens(uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external payable returns (uint256[] memory amounts); function swapTokensForExactETH(uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline) external returns (uint256[] memory amounts); function swapExactTokensForETH(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external returns (uint256[] memory amounts); function swapETHForExactTokens(uint256 amountOut, address[] calldata path, address to, uint256 deadline) external payable returns (uint256[] memory amounts); function quote(uint256 amountA, uint256 reserveA, uint256 reserveB) external pure returns (uint256 amountB); function getAmountOut(uint256 amountIn, uint256 reserveIn, uint256 reserveOut) external pure returns (uint256 amountOut); function getAmountIn(uint256 amountOut, uint256 reserveIn, uint256 reserveOut) external pure returns (uint256 amountIn); function getAmountsOut(uint256 amountIn, address[] calldata path) external view returns (uint256[] memory amounts); function getAmountsIn(uint256 amountOut, address[] calldata path) external view returns (uint256[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens(address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) external returns (uint256 amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s) external returns (uint256 amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external; function swapExactETHForTokensSupportingFeeOnTransferTokens(uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external; } contract DaiTengu is BEP20, Ownable { // using SafeMath for uint256; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; address public DEAD = 0x000000000000000000000000000000000000dEaD; bool private swapping; bool public tradingEnabled = false; uint256 internal sellAmount = 0; uint256 internal buyAmount = 0; uint256 private totalSellFees; uint256 private totalBuyFees; address payable public marketingWallet; // address payable public devWallet; // uint256 public maxWallet; bool public maxWalletEnabled = true; uint256 public swapTokensAtAmount; uint256 public sellMarketingFees; uint256 public sellBurnFee; uint256 public buyMarketingFees; uint256 public buyBurnFee; uint256 public buyDevFee; uint256 public sellDevFee; bool public swapAndLiquifyEnabled = true; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) public automatedMarketMakerPairs; mapping(address => bool) private canTransferBeforeTradingIsEnabled; bool public limitsInEffect = false; uint256 private gasPriceLimit = 7 * 1 gwei; // MAX GWEI mapping(address => uint256) private _holderLastTransferBlock; // FOR 1TX PER BLOCK mapping(address => uint256) private _holderLastTransferTimestamp; // FOR COOLDOWN uint256 public launchblock; // FOR DEADBLOCKS uint256 public launchtimestamp; // FOR LAUNCH TIMESTAMP uint256 public cooldowntimer = 0; // DEFAULT COOLDOWN TIMER event EnableSwapAndLiquify(bool enabled); event SetPreSaleWallet(address wallet); event updateMarketingWallet(address wallet); event updateDevWallet(address wallet); event UpdateUniswapV2Router(address indexed newAddress, address indexed oldAddress); event TradingEnabled(); event UpdateFees(uint256 sellMarketingFees, uint256 sellBurnFee, uint256 buyMarketingFees, uint256 buyBurnFee, uint256 buyDevFee, uint256 sellDevFee); event Airdrop(address holder, uint256 amount); event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity); event SendDividends(uint256 opAmount, bool success); constructor() BEP20("The Great Divine Dog", "DaiTengu") { // marketingWallet = payable(0xe00a84937B4e72FC4fdd8ddd89C5599f92793dec); // devWallet = payable(0xe00a84937B4e72FC4fdd8ddd89C5599f92793dec); // address router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; //INITIAL FEE VALUES HERE buyMarketingFees = 2; sellMarketingFees = 2; buyBurnFee = 0; sellBurnFee = 0; buyDevFee = 0; sellDevFee = 2; // TOTAL BUY AND TOTAL SELL FEE CALCS totalBuyFees = buyMarketingFees.add(buyDevFee); totalSellFees = sellMarketingFees.add(sellDevFee); uniswapV2Router = IUniswapV2Router02(router); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair( address(this), uniswapV2Router.WETH()); _setAutomatedMarketMakerPair(uniswapV2Pair, true); _isExcludedFromFees[address(this)] = true; _isExcludedFromFees[msg.sender] = true; _isExcludedFromFees[marketingWallet] = true; uint256 totalSupply = (1_000_000_000) * (10**18); // TOTAL SUPPLY IS SET HERE _mint(owner(), totalSupply); // only time internal mint function is ever called is to create supply maxWallet = _totalSupply / 2; // 2% swapTokensAtAmount = _totalSupply / 100; // 2%; canTransferBeforeTradingIsEnabled[owner()] = true; canTransferBeforeTradingIsEnabled[address(this)] = true; } function decimals() public view virtual override returns (uint8) { return 18; } receive() external payable {} function enableTrading() external onlyOwner { require(!tradingEnabled); tradingEnabled = true; launchblock = block.number; launchtimestamp = block.timestamp; emit TradingEnabled(); } function setMarketingWallet(address wallet) external onlyOwner { _isExcludedFromFees[wallet] = true; marketingWallet = payable(wallet); emit updateMarketingWallet(wallet); } function setDevWallet(address wallet) external onlyOwner { _isExcludedFromFees[wallet] = true; devWallet = payable(wallet); emit updateDevWallet(wallet); } function setExcludeFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function setCanTransferBefore(address wallet, bool enable) external onlyOwner { canTransferBeforeTradingIsEnabled[wallet] = enable; } function setLimitsInEffect(bool value) external onlyOwner { limitsInEffect = value; } function setMaxWalletEnabled(bool value) external onlyOwner { maxWalletEnabled = value; } function setcooldowntimer(uint256 value) external onlyOwner { require(value <= 300, "cooldown timer cannot exceed 5 minutes"); cooldowntimer = value; } function setmaxWallet(uint256 value) external onlyOwner { value = value * (10**18); require(value >= _totalSupply / 100, "max wallet cannot be set to less than 1%"); maxWallet = value; } // TAKES ALL BNB FROM THE CONTRACT ADDRESS AND SENDS IT TO OWNERS WALLET function Sweep() external onlyOwner { uint256 amountBNB = address(this).balance; payable(msg.sender).transfer(amountBNB); } function setSwapTriggerAmount(uint256 amount) public onlyOwner { swapTokensAtAmount = amount * (10**18); } function enableSwapAndLiquify(bool enabled) public onlyOwner { require(swapAndLiquifyEnabled != enabled); swapAndLiquifyEnabled = enabled; emit EnableSwapAndLiquify(enabled); } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } // THIS IS THE ONE YOU USE TO TRASNFER OWNER IF U EVER DO function transferAdmin(address newOwner) public onlyOwner { _isExcludedFromFees[newOwner] = true; canTransferBeforeTradingIsEnabled[newOwner] = true; transferOwnership(newOwner); } function updateFees(uint256 marketingBuy, uint256 marketingSell, uint256 burnBuy, uint256 burnSell, uint256 devBuy, uint256 devSell) public onlyOwner { buyMarketingFees = marketingBuy; buyBurnFee = burnBuy; sellMarketingFees = marketingSell; sellBurnFee = burnSell; buyDevFee = devBuy; sellDevFee = devSell; totalSellFees = sellMarketingFees.add(sellDevFee); totalBuyFees = buyMarketingFees.add(buyDevFee); // require(totalSellFees <= 99 && totalBuyFees <= 99, "t"); emit UpdateFees(sellMarketingFees, sellBurnFee, sellDevFee, buyMarketingFees, buyBurnFee, buyDevFee); } function isExcludedFromFees(address account) public view returns (bool) { return _isExcludedFromFees[account]; } function _transfer(address from, address to, uint256 amount) internal override { require(from != address(0), "IBEP20: transfer from the zero address"); require(to != address(0), "IBEP20: transfer to the zero address"); uint256 marketingFees; uint256 burnFee; uint256 devFee; if (!canTransferBeforeTradingIsEnabled[from]) { require(tradingEnabled, "Trading has not yet been enabled"); } if (amount == 0) { super._transfer(from, to, 0); return; } else if ( !swapping && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { bool isSelling = automatedMarketMakerPairs[to]; if (isSelling) { marketingFees = sellMarketingFees; burnFee = sellBurnFee; devFee = sellDevFee; if (limitsInEffect) { require(block.timestamp >= _holderLastTransferTimestamp[tx.origin] + cooldowntimer, "cooldown period active"); _holderLastTransferTimestamp[tx.origin] = block.timestamp; } } else { marketingFees = buyMarketingFees; burnFee = buyBurnFee; devFee = buyDevFee; if (limitsInEffect) { require(block.number > launchblock + 0,"you shall not pass"); require(tx.gasprice <= gasPriceLimit,"Gas price exceeds limit."); require(_holderLastTransferBlock[tx.origin] != block.number,"Too many TX in block"); require(block.timestamp >= _holderLastTransferTimestamp[tx.origin] + cooldowntimer, "cooldown period active"); _holderLastTransferBlock[tx.origin] = block.number; _holderLastTransferTimestamp[tx.origin] = block.timestamp; } if (maxWalletEnabled) { uint256 contractBalanceRecipient = balanceOf(to); require(contractBalanceRecipient + amount <= maxWallet, "Exceeds maximum wallet token amount." ); } } uint256 totalFees = marketingFees.add(devFee); uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if (canSwap && !automatedMarketMakerPairs[from]) { swapping = true; uint256 swapBalance = swapTokensAtAmount; swapAndSendDividends(swapBalance); buyAmount = 0; sellAmount = 0; swapping = false; } uint256 fees = amount.mul(totalFees).div(100); uint256 burntokens = amount.mul(burnFee).div(100); amount = amount.sub(fees + burntokens); if (isSelling) { sellAmount = sellAmount.add(fees); } else { buyAmount = buyAmount.add(fees); } super._transfer(from, address(this), fees); if (burntokens > 0) { super._transfer(from, DEAD, burntokens); _totalSupply = _totalSupply.sub(burntokens); } } super._transfer(from, to, amount); } function swapAndLiquify(uint256 tokens) private { uint256 half = tokens.div(2); uint256 otherHalf = tokens.sub(half); uint256 initialBalance = address(this).balance; swapTokensForEth(half); // <- this breaks the ETH -> HATE swap when swap+liquify is triggered uint256 newBalance = address(this).balance.sub(initialBalance); addLiquidity(otherHalf, newBalance); emit SwapAndLiquify(half, newBalance, otherHalf); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); } function forceSwapAndSendDividends(uint256 tokens) public onlyOwner { tokens = tokens * (10**18); uint256 totalAmount = buyAmount.add(sellAmount); uint256 fromBuy = tokens.mul(buyAmount).div(totalAmount); uint256 fromSell = tokens.mul(sellAmount).div(totalAmount); swapAndSendDividends(tokens); buyAmount = buyAmount.sub(fromBuy); sellAmount = sellAmount.sub(fromSell); } // TAX PAYOUT CODE function swapAndSendDividends(uint256 tokens) private { if (tokens == 0) { return; } swapTokensForEth(tokens); bool success = true; bool successOp1 = true; uint256 _marketDevTotal = sellMarketingFees.add(sellDevFee) + buyMarketingFees.add(buyDevFee); uint256 feePortions; if (_marketDevTotal > 0) { feePortions = address(this).balance.div(_marketDevTotal); } uint256 marketingPayout = buyMarketingFees.add(sellMarketingFees) * feePortions; uint256 devPayout = buyDevFee.add(sellDevFee) * feePortions; if (marketingPayout > 0) { (success, ) = address(marketingWallet).call{value: marketingPayout}(""); } if (devPayout > 0) { (successOp1, ) = address(devWallet).call{value: devPayout}(""); } emit SendDividends( marketingPayout, success && successOp1 ); } function airdropToWallets( address[] memory airdropWallets, uint256[] memory amount ) external onlyOwner { require(airdropWallets.length == amount.length, "Arrays must be the same length"); require(airdropWallets.length <= 200, "Wallets list length must be <= 200"); for (uint256 i = 0; i < airdropWallets.length; i++) { address wallet = airdropWallets[i]; uint256 airdropAmount = amount[i] * (10**18); super._transfer(msg.sender, wallet, airdropAmount); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Airdrop","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"EnableSwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"opAmount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"success","type":"bool"}],"name":"SendDividends","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"wallet","type":"address"}],"name":"SetPreSaleWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[],"name":"TradingEnabled","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":"sellMarketingFees","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellBurnFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"buyMarketingFees","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"buyBurnFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"buyDevFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellDevFee","type":"uint256"}],"name":"UpdateFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"wallet","type":"address"}],"name":"updateDevWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"wallet","type":"address"}],"name":"updateMarketingWallet","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Sweep","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"airdropWallets","type":"address[]"},{"internalType":"uint256[]","name":"amount","type":"uint256[]"}],"name":"airdropToWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cooldowntimer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"enableSwapAndLiquify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"forceSwapAndSendDividends","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchblock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchtimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setCanTransferBefore","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"setLimitsInEffect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"setMaxWalletEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapTriggerAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setcooldowntimer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setmaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferAdmin","outputs":[],"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"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketingBuy","type":"uint256"},{"internalType":"uint256","name":"marketingSell","type":"uint256"},{"internalType":"uint256","name":"burnBuy","type":"uint256"},{"internalType":"uint256","name":"burnSell","type":"uint256"},{"internalType":"uint256","name":"devBuy","type":"uint256"},{"internalType":"uint256","name":"devSell","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405260088054600161ff0160a01b03191661dead17905560006009819055600a8190556010805460ff199081166001908117909255601880548216909217909155601c805490911690556401a13b8600601d556022553480156200006557600080fd5b50604080518082018252601481527f54686520477265617420446976696e6520446f6700000000000000000000000060208083019182528351808501909452600884526744616954656e677560c01b908401528151919291620000cb9160039162000658565b508051620000e190600490602084019062000658565b5050506000620000f66200049660201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600d805473e00a84937b4e72fc4fdd8ddd89c5599f92793dec6001600160a01b03199182168117909255600e8054909116909117905560026014819055601281905560006015819055601381905560168190556017829055737a250d5630b4cf539739df2c5dacb4c659f2488d91620001c9916200049a602090811b6200161017901c565b600c81905550620001ed6017546012546200049a60201b620016101790919060201c565b600b55600680546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200024a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002709190620006fe565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002d3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f99190620006fe565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000347573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200036d9190620006fe565b600780546001600160a01b0319166001600160a01b039290921691821790556200039990600162000508565b306000908152601960205260408082208054600160ff1991821681179092553384528284208054821683179055600d546001600160a01b0316845291909220805490911690911790556b033b2e3c9fd0803ce80000006200040d620004066005546001600160a01b031690565b826200055c565b600280546200041d919062000729565b600f55600254620004319060649062000729565b6011556001601b60006200044d6005546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff19958616179055308152601b90925290208054909116600117905550620007af9050565b3390565b600080620004a983856200074c565b905083811015620005015760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064015b60405180910390fd5b9392505050565b6001600160a01b0382166000818152601a6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038216620005b45760405162461bcd60e51b815260206004820152601f60248201527f42455032303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620004f8565b620005d0816002546200049a60201b620016101790919060201c565b6002556001600160a01b0382166000908152602081815260409091205462000603918390620016106200049a821b17901c565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b828054620006669062000773565b90600052602060002090601f0160209004810192826200068a5760008555620006d5565b82601f10620006a557805160ff1916838001178555620006d5565b82800160010185558215620006d5579182015b82811115620006d5578251825591602001919060010190620006b8565b50620006e3929150620006e7565b5090565b5b80821115620006e35760008155600101620006e8565b6000602082840312156200071157600080fd5b81516001600160a01b03811681146200050157600080fd5b6000826200074757634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156200076e57634e487b7160e01b600052601160045260246000fd5b500190565b600181811c908216806200078857607f821691505b602082108103620007a957634e487b7160e01b600052602260045260246000fd5b50919050565b6129a180620007bf6000396000f3fe60806040526004361061031e5760003560e01c806375f0a874116101ab578063a614ff75116100f7578063d5e3725111610095578063e71dc3f51161006f578063e71dc3f514610942578063f2fde38b14610958578063f8b45b0514610978578063fc6b151c1461098e57600080fd5b8063d5e37251146108c6578063dd62ed3e146108e6578063e2f456051461092c57600080fd5b8063b4942988116100d1578063b494298814610846578063b62496f51461085c578063b74e3b111461088c578063d045a329146108ac57600080fd5b8063a614ff75146107f0578063a9059cbb14610810578063adb873bd1461083057600080fd5b806395451c29116101645780639a7a23d61161013e5780639a7a23d6146107845780639c3b4fdc146107a4578063a0d82dc5146107ba578063a457c2d7146107d057600080fd5b806395451c291461073957806395d89b411461074f578063992c58e41461076457600080fd5b806375f0a874146106905780637fdde05c146106b05780638a8c523c146106d05780638c3c82b2146106e55780638da5cb5b146106fb5780638ea5220f1461071957600080fd5b806349bd5a5e1161026a5780635d098b38116102235780637088fb7f116101fd5780637088fb7f1461061057806370a0823114610625578063715018a61461065b57806375829def1461067057600080fd5b80635d098b38146105b05780635eee4bae146105d0578063679ca6e9146105f057600080fd5b806349bd5a5e146104ec5780634a62bb651461050c5780634a74bb02146105265780634ada218b146105405780634fbee193146105615780635124f8741461059a57600080fd5b806318160ddd116102d75780632307b441116102b15780632307b4411461047057806323b872dd14610490578063313ce567146104b057806339509351146104cc57600080fd5b806318160ddd1461041b5780631d7b1fb41461043a5780631f53ac021461045057600080fd5b806303fd2a451461032a57806305ca5f081461036757806306fdde031461038957806308dfe8a5146103ab578063095ea7b3146103cb5780631694505e146103fb57600080fd5b3661032557005b600080fd5b34801561033657600080fd5b5060085461034a906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561037357600080fd5b506103876103823660046123c0565b6109ae565b005b34801561039557600080fd5b5061039e610a7f565b60405161035e91906123d9565b3480156103b757600080fd5b506103876103c6366004612458565b610b11565b3480156103d757600080fd5b506103eb6103e636600461248d565b610b9a565b604051901515815260200161035e565b34801561040757600080fd5b5060065461034a906001600160a01b031681565b34801561042757600080fd5b506002545b60405190815260200161035e565b34801561044657600080fd5b5061042c60225481565b34801561045c57600080fd5b5061038761046b3660046124b9565b610bb1565b34801561047c57600080fd5b5061038761048b3660046125ac565b610c48565b34801561049c57600080fd5b506103eb6104ab36600461266e565b610da0565b3480156104bc57600080fd5b506040516012815260200161035e565b3480156104d857600080fd5b506103eb6104e736600461248d565b610e09565b3480156104f857600080fd5b5060075461034a906001600160a01b031681565b34801561051857600080fd5b50601c546103eb9060ff1681565b34801561053257600080fd5b506018546103eb9060ff1681565b34801561054c57600080fd5b506008546103eb90600160a81b900460ff1681565b34801561056d57600080fd5b506103eb61057c3660046124b9565b6001600160a01b031660009081526019602052604090205460ff1690565b3480156105a657600080fd5b5061042c60145481565b3480156105bc57600080fd5b506103876105cb3660046124b9565b610e3f565b3480156105dc57600080fd5b506103876105eb3660046123c0565b610ecf565b3480156105fc57600080fd5b5061038761060b3660046126af565b610f11565b34801561061c57600080fd5b50610387610f4e565b34801561063157600080fd5b5061042c6106403660046124b9565b6001600160a01b031660009081526020819052604090205490565b34801561066757600080fd5b50610387610fab565b34801561067c57600080fd5b5061038761068b3660046124b9565b61101f565b34801561069c57600080fd5b50600d5461034a906001600160a01b031681565b3480156106bc57600080fd5b506103876106cb366004612458565b611090565b3480156106dc57600080fd5b506103876110e5565b3480156106f157600080fd5b5061042c60215481565b34801561070757600080fd5b506005546001600160a01b031661034a565b34801561072557600080fd5b50600e5461034a906001600160a01b031681565b34801561074557600080fd5b5061042c60125481565b34801561075b57600080fd5b5061039e61116c565b34801561077057600080fd5b5061038761077f3660046126ca565b61117b565b34801561079057600080fd5b5061038761079f366004612458565b611294565b3480156107b057600080fd5b5061042c60165481565b3480156107c657600080fd5b5061042c60175481565b3480156107dc57600080fd5b506103eb6107eb36600461248d565b6112c8565b3480156107fc57600080fd5b5061038761080b3660046126af565b611317565b34801561081c57600080fd5b506103eb61082b36600461248d565b611354565b34801561083c57600080fd5b5061042c60135481565b34801561085257600080fd5b5061042c60205481565b34801561086857600080fd5b506103eb6108773660046124b9565b601a6020526000908152604090205460ff1681565b34801561089857600080fd5b506103876108a73660046123c0565b611361565b3480156108b857600080fd5b506010546103eb9060ff1681565b3480156108d257600080fd5b506103876108e13660046126af565b6113f1565b3480156108f257600080fd5b5061042c61090136600461270d565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561093857600080fd5b5061042c60115481565b34801561094e57600080fd5b5061042c60155481565b34801561096457600080fd5b506103876109733660046124b9565b611473565b34801561098457600080fd5b5061042c600f5481565b34801561099a57600080fd5b506103876109a93660046123c0565b61155e565b6005546001600160a01b031633146109e15760405162461bcd60e51b81526004016109d890612746565b60405180910390fd5b6109f381670de0b6b3a7640000612791565b90506000610a0e600954600a5461161090919063ffffffff16565b90506000610a3182610a2b600a548661167690919063ffffffff16565b906116f8565b90506000610a4e83610a2b6009548761167690919063ffffffff16565b9050610a598461173a565b600a54610a6690836118eb565b600a55600954610a7690826118eb565b60095550505050565b606060038054610a8e906127b0565b80601f0160208091040260200160405190810160405280929190818152602001828054610aba906127b0565b8015610b075780601f10610adc57610100808354040283529160200191610b07565b820191906000526020600020905b815481529060010190602001808311610aea57829003601f168201915b5050505050905090565b6005546001600160a01b03163314610b3b5760405162461bcd60e51b81526004016109d890612746565b6001600160a01b038216600081815260196020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6000610ba733848461192d565b5060015b92915050565b6005546001600160a01b03163314610bdb5760405162461bcd60e51b81526004016109d890612746565b6001600160a01b038116600081815260196020908152604091829020805460ff19166001179055600e80546001600160a01b0319168417905590519182527f1816467f4e41d8dd27500ca11dc471852ca93f9b624c4d8d4430b8c4fa6424fa91015b60405180910390a150565b6005546001600160a01b03163314610c725760405162461bcd60e51b81526004016109d890612746565b8051825114610cc35760405162461bcd60e51b815260206004820152601e60248201527f417272617973206d757374206265207468652073616d65206c656e677468000060448201526064016109d8565b60c882511115610d205760405162461bcd60e51b815260206004820152602260248201527f57616c6c657473206c697374206c656e677468206d757374206265203c3d2032604482015261030360f41b60648201526084016109d8565b60005b8251811015610d9b576000838281518110610d4057610d406127ea565b602002602001015190506000838381518110610d5e57610d5e6127ea565b6020026020010151670de0b6b3a7640000610d799190612791565b9050610d86338383611a52565b50508080610d9390612800565b915050610d23565b505050565b6000610dad848484611bd5565b610dff8433610dfa856040518060600160405280602881526020016128f9602891396001600160a01b038a16600090815260016020908152604080832033845290915290205491906121b2565b61192d565b5060019392505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610ba7918590610dfa9086611610565b6005546001600160a01b03163314610e695760405162461bcd60e51b81526004016109d890612746565b6001600160a01b038116600081815260196020908152604091829020805460ff19166001179055600d80546001600160a01b0319168417905590519182527faacebbe32c0dbd14817cfb53e3cc8be68c7e133928317145be50a0d86c2244339101610c3d565b6005546001600160a01b03163314610ef95760405162461bcd60e51b81526004016109d890612746565b610f0b81670de0b6b3a7640000612791565b60115550565b6005546001600160a01b03163314610f3b5760405162461bcd60e51b81526004016109d890612746565b601c805460ff1916911515919091179055565b6005546001600160a01b03163314610f785760405162461bcd60e51b81526004016109d890612746565b6040514790339082156108fc029083906000818181858888f19350505050158015610fa7573d6000803e3d6000fd5b5050565b6005546001600160a01b03163314610fd55760405162461bcd60e51b81526004016109d890612746565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146110495760405162461bcd60e51b81526004016109d890612746565b6001600160a01b03811660009081526019602090815260408083208054600160ff199182168117909255601b90935292208054909116909117905561108d81611473565b50565b6005546001600160a01b031633146110ba5760405162461bcd60e51b81526004016109d890612746565b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b6005546001600160a01b0316331461110f5760405162461bcd60e51b81526004016109d890612746565b600854600160a81b900460ff161561112657600080fd5b6008805460ff60a81b1916600160a81b17905543602055426021556040517f799663458a5ef2936f7fa0c99b3336c69c25890f82974f04e811e5bb359186c790600090a1565b606060048054610a8e906127b0565b6005546001600160a01b031633146111a55760405162461bcd60e51b81526004016109d890612746565b6014869055601584905560128590556013839055601682905560178190556111cd8582611610565b600b556016546014546111df91611610565b600c55600b546063108015906111f857506063600c5411155b6112285760405162461bcd60e51b81526020600482015260016024820152601d60fa1b60448201526064016109d8565b601254601354601754601454601554601654604080519687526020870195909552938501929092526060840152608083015260a08201527ffb0d6f48717e74b9ad8ae84d152197402ac50bd6431ea28437926861021948ff9060c00160405180910390a1505050505050565b6005546001600160a01b031633146112be5760405162461bcd60e51b81526004016109d890612746565b610fa782826121ec565b6000610ba73384610dfa85604051806060016040528060258152602001612947602591393360009081526001602090815260408083206001600160a01b038d16845290915290205491906121b2565b6005546001600160a01b031633146113415760405162461bcd60e51b81526004016109d890612746565b6010805460ff1916911515919091179055565b6000610ba7338484611bd5565b6005546001600160a01b0316331461138b5760405162461bcd60e51b81526004016109d890612746565b61012c8111156113ec5760405162461bcd60e51b815260206004820152602660248201527f636f6f6c646f776e2074696d65722063616e6e6f74206578636565642035206d604482015265696e7574657360d01b60648201526084016109d8565b602255565b6005546001600160a01b0316331461141b5760405162461bcd60e51b81526004016109d890612746565b60185481151560ff90911615150361143257600080fd5b6018805460ff19168215159081179091556040519081527fff5917043f8453af413305b2dbd1ed9748a37df481beb71ba4b9b212a07b9bef90602001610c3d565b6005546001600160a01b0316331461149d5760405162461bcd60e51b81526004016109d890612746565b6001600160a01b0381166115025760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109d8565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146115885760405162461bcd60e51b81526004016109d890612746565b61159a81670de0b6b3a7640000612791565b905060646002546115ab9190612819565b81101561160b5760405162461bcd60e51b815260206004820152602860248201527f6d61782077616c6c65742063616e6e6f742062652073657420746f206c657373604482015267207468616e20312560c01b60648201526084016109d8565b600f55565b60008061161d838561283b565b90508381101561166f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109d8565b9392505050565b60008260000361168857506000610bab565b60006116948385612791565b9050826116a18583612819565b1461166f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109d8565b600061166f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612240565b806000036117455750565b61174e8161226e565b60165460145460019182916000916117669190611610565b60175460125461177591611610565b61177f919061283b565b9050600081156117965761179347836116f8565b90505b6000816117b060125460145461161090919063ffffffff16565b6117ba9190612791565b90506000826117d660175460165461161090919063ffffffff16565b6117e09190612791565b9050811561184057600d546040516001600160a01b03909116908390600081818185875af1925050503d8060008114611835576040519150601f19603f3d011682016040523d82523d6000602084013e61183a565b606091505b50909650505b801561189e57600e546040516001600160a01b03909116908290600081818185875af1925050503d8060008114611893576040519150601f19603f3d011682016040523d82523d6000602084013e611898565b606091505b50909550505b7f31ea026303a62d39c4ad14716f9621f1afe3242309c2ed761d4e241ae4bf2ea9828780156118ca5750865b6040805192835290151560208301520160405180910390a150505050505050565b600061166f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121b2565b6001600160a01b03831661198f5760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109d8565b6001600160a01b0382166119f05760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109d8565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316611ab65760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109d8565b6001600160a01b038216611b185760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109d8565b611b5581604051806060016040528060268152602001612921602691396001600160a01b03861660009081526020819052604090205491906121b2565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611b849082611610565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101611a45565b6001600160a01b038316611c3a5760405162461bcd60e51b815260206004820152602660248201527f4942455032303a207472616e736665722066726f6d20746865207a65726f206160448201526564647265737360d01b60648201526084016109d8565b6001600160a01b038216611c9c5760405162461bcd60e51b8152602060048201526024808201527f4942455032303a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016109d8565b6001600160a01b0383166000908152601b60205260408120548190819060ff16611d1957600854600160a81b900460ff16611d195760405162461bcd60e51b815260206004820181905260248201527f54726164696e6720686173206e6f7420796574206265656e20656e61626c656460448201526064016109d8565b83600003611d3557611d2d86866000611a52565b505050505050565b600854600160a01b900460ff16158015611d6857506001600160a01b03861660009081526019602052604090205460ff16155b8015611d8d57506001600160a01b03851660009081526019602052604090205460ff16155b156121a7576001600160a01b0385166000908152601a602052604090205460ff168015611e4d57601254601354601754601c54929650909450925060ff1615611e4857602254326000908152601f6020526040902054611ded919061283b565b421015611e355760405162461bcd60e51b8152602060048201526016602482015275636f6f6c646f776e20706572696f642061637469766560501b60448201526064016109d8565b326000908152601f602052604090204290555b612074565b601454601554601654601c54929650909450925060ff1615611fe757602054611e7790600061283b565b4311611eba5760405162461bcd60e51b8152602060048201526012602482015271796f75207368616c6c206e6f74207061737360701b60448201526064016109d8565b601d543a1115611f0c5760405162461bcd60e51b815260206004820152601860248201527f4761732070726963652065786365656473206c696d69742e000000000000000060448201526064016109d8565b326000908152601e6020526040902054439003611f625760405162461bcd60e51b8152602060048201526014602482015273546f6f206d616e7920545820696e20626c6f636b60601b60448201526064016109d8565b602254326000908152601f6020526040902054611f7f919061283b565b421015611fc75760405162461bcd60e51b8152602060048201526016602482015275636f6f6c646f776e20706572696f642061637469766560501b60448201526064016109d8565b326000908152601e60209081526040808320439055601f90915290204290555b60105460ff1615612074576001600160a01b038616600090815260208190526040902054600f54612018878361283b565b11156120725760405162461bcd60e51b8152602060048201526024808201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152633ab73a1760e11b60648201526084016109d8565b505b60006120808584611610565b3060009081526020819052604090205460115491925090811080159081906120c157506001600160a01b038a166000908152601a602052604090205460ff16155b156120fe576008805460ff60a01b1916600160a01b1790556011546120e58161173a565b506000600a8190556009556008805460ff60a01b191690555b600061210f6064610a2b8b87611676565b905060006121226064610a2b8c8b611676565b9050612138612131828461283b565b8b906118eb565b995085156121555760095461214d9083611610565b600955612166565b600a546121629083611610565b600a555b6121718c3084611a52565b80156121a05760085461218f908d906001600160a01b031683611a52565b60025461219c90826118eb565b6002555b5050505050505b611d2d868686611a52565b600081848411156121d65760405162461bcd60e51b81526004016109d891906123d9565b5060006121e38486612853565b95945050505050565b6001600160a01b0382166000818152601a6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b600081836122615760405162461bcd60e51b81526004016109d891906123d9565b5060006121e38486612819565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106122a3576122a36127ea565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156122fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612320919061286a565b81600181518110612333576123336127ea565b6001600160a01b039283166020918202929092010152600654612359913091168461192d565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790612392908590600090869030904290600401612887565b600060405180830381600087803b1580156123ac57600080fd5b505af1158015611d2d573d6000803e3d6000fd5b6000602082840312156123d257600080fd5b5035919050565b600060208083528351808285015260005b81811015612406578581018301518582016040015282016123ea565b81811115612418576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461108d57600080fd5b8035801515811461245357600080fd5b919050565b6000806040838503121561246b57600080fd5b82356124768161242e565b915061248460208401612443565b90509250929050565b600080604083850312156124a057600080fd5b82356124ab8161242e565b946020939093013593505050565b6000602082840312156124cb57600080fd5b813561166f8161242e565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612515576125156124d6565b604052919050565b600067ffffffffffffffff821115612537576125376124d6565b5060051b60200190565b600082601f83011261255257600080fd5b813560206125676125628361251d565b6124ec565b82815260059290921b8401810191818101908684111561258657600080fd5b8286015b848110156125a1578035835291830191830161258a565b509695505050505050565b600080604083850312156125bf57600080fd5b823567ffffffffffffffff808211156125d757600080fd5b818501915085601f8301126125eb57600080fd5b813560206125fb6125628361251d565b82815260059290921b8401810191818101908984111561261a57600080fd5b948201945b838610156126415785356126328161242e565b8252948201949082019061261f565b9650508601359250508082111561265757600080fd5b5061266485828601612541565b9150509250929050565b60008060006060848603121561268357600080fd5b833561268e8161242e565b9250602084013561269e8161242e565b929592945050506040919091013590565b6000602082840312156126c157600080fd5b61166f82612443565b60008060008060008060c087890312156126e357600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6000806040838503121561272057600080fd5b823561272b8161242e565b9150602083013561273b8161242e565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156127ab576127ab61277b565b500290565b600181811c908216806127c457607f821691505b6020821081036127e457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b6000600182016128125761281261277b565b5060010190565b60008261283657634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111561284e5761284e61277b565b500190565b6000828210156128655761286561277b565b500390565b60006020828403121561287c57600080fd5b815161166f8161242e565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128d75784516001600160a01b0316835293830193918301916001016128b2565b50506001600160a01b0396909616606085015250505060800152939250505056fe42455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e636542455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c85f4cad478988f3350ed7eecdeeb6ff91a3b4ae4885c65bd07d8558de65628564736f6c634300080d0033
Deployed Bytecode
0x60806040526004361061031e5760003560e01c806375f0a874116101ab578063a614ff75116100f7578063d5e3725111610095578063e71dc3f51161006f578063e71dc3f514610942578063f2fde38b14610958578063f8b45b0514610978578063fc6b151c1461098e57600080fd5b8063d5e37251146108c6578063dd62ed3e146108e6578063e2f456051461092c57600080fd5b8063b4942988116100d1578063b494298814610846578063b62496f51461085c578063b74e3b111461088c578063d045a329146108ac57600080fd5b8063a614ff75146107f0578063a9059cbb14610810578063adb873bd1461083057600080fd5b806395451c29116101645780639a7a23d61161013e5780639a7a23d6146107845780639c3b4fdc146107a4578063a0d82dc5146107ba578063a457c2d7146107d057600080fd5b806395451c291461073957806395d89b411461074f578063992c58e41461076457600080fd5b806375f0a874146106905780637fdde05c146106b05780638a8c523c146106d05780638c3c82b2146106e55780638da5cb5b146106fb5780638ea5220f1461071957600080fd5b806349bd5a5e1161026a5780635d098b38116102235780637088fb7f116101fd5780637088fb7f1461061057806370a0823114610625578063715018a61461065b57806375829def1461067057600080fd5b80635d098b38146105b05780635eee4bae146105d0578063679ca6e9146105f057600080fd5b806349bd5a5e146104ec5780634a62bb651461050c5780634a74bb02146105265780634ada218b146105405780634fbee193146105615780635124f8741461059a57600080fd5b806318160ddd116102d75780632307b441116102b15780632307b4411461047057806323b872dd14610490578063313ce567146104b057806339509351146104cc57600080fd5b806318160ddd1461041b5780631d7b1fb41461043a5780631f53ac021461045057600080fd5b806303fd2a451461032a57806305ca5f081461036757806306fdde031461038957806308dfe8a5146103ab578063095ea7b3146103cb5780631694505e146103fb57600080fd5b3661032557005b600080fd5b34801561033657600080fd5b5060085461034a906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561037357600080fd5b506103876103823660046123c0565b6109ae565b005b34801561039557600080fd5b5061039e610a7f565b60405161035e91906123d9565b3480156103b757600080fd5b506103876103c6366004612458565b610b11565b3480156103d757600080fd5b506103eb6103e636600461248d565b610b9a565b604051901515815260200161035e565b34801561040757600080fd5b5060065461034a906001600160a01b031681565b34801561042757600080fd5b506002545b60405190815260200161035e565b34801561044657600080fd5b5061042c60225481565b34801561045c57600080fd5b5061038761046b3660046124b9565b610bb1565b34801561047c57600080fd5b5061038761048b3660046125ac565b610c48565b34801561049c57600080fd5b506103eb6104ab36600461266e565b610da0565b3480156104bc57600080fd5b506040516012815260200161035e565b3480156104d857600080fd5b506103eb6104e736600461248d565b610e09565b3480156104f857600080fd5b5060075461034a906001600160a01b031681565b34801561051857600080fd5b50601c546103eb9060ff1681565b34801561053257600080fd5b506018546103eb9060ff1681565b34801561054c57600080fd5b506008546103eb90600160a81b900460ff1681565b34801561056d57600080fd5b506103eb61057c3660046124b9565b6001600160a01b031660009081526019602052604090205460ff1690565b3480156105a657600080fd5b5061042c60145481565b3480156105bc57600080fd5b506103876105cb3660046124b9565b610e3f565b3480156105dc57600080fd5b506103876105eb3660046123c0565b610ecf565b3480156105fc57600080fd5b5061038761060b3660046126af565b610f11565b34801561061c57600080fd5b50610387610f4e565b34801561063157600080fd5b5061042c6106403660046124b9565b6001600160a01b031660009081526020819052604090205490565b34801561066757600080fd5b50610387610fab565b34801561067c57600080fd5b5061038761068b3660046124b9565b61101f565b34801561069c57600080fd5b50600d5461034a906001600160a01b031681565b3480156106bc57600080fd5b506103876106cb366004612458565b611090565b3480156106dc57600080fd5b506103876110e5565b3480156106f157600080fd5b5061042c60215481565b34801561070757600080fd5b506005546001600160a01b031661034a565b34801561072557600080fd5b50600e5461034a906001600160a01b031681565b34801561074557600080fd5b5061042c60125481565b34801561075b57600080fd5b5061039e61116c565b34801561077057600080fd5b5061038761077f3660046126ca565b61117b565b34801561079057600080fd5b5061038761079f366004612458565b611294565b3480156107b057600080fd5b5061042c60165481565b3480156107c657600080fd5b5061042c60175481565b3480156107dc57600080fd5b506103eb6107eb36600461248d565b6112c8565b3480156107fc57600080fd5b5061038761080b3660046126af565b611317565b34801561081c57600080fd5b506103eb61082b36600461248d565b611354565b34801561083c57600080fd5b5061042c60135481565b34801561085257600080fd5b5061042c60205481565b34801561086857600080fd5b506103eb6108773660046124b9565b601a6020526000908152604090205460ff1681565b34801561089857600080fd5b506103876108a73660046123c0565b611361565b3480156108b857600080fd5b506010546103eb9060ff1681565b3480156108d257600080fd5b506103876108e13660046126af565b6113f1565b3480156108f257600080fd5b5061042c61090136600461270d565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561093857600080fd5b5061042c60115481565b34801561094e57600080fd5b5061042c60155481565b34801561096457600080fd5b506103876109733660046124b9565b611473565b34801561098457600080fd5b5061042c600f5481565b34801561099a57600080fd5b506103876109a93660046123c0565b61155e565b6005546001600160a01b031633146109e15760405162461bcd60e51b81526004016109d890612746565b60405180910390fd5b6109f381670de0b6b3a7640000612791565b90506000610a0e600954600a5461161090919063ffffffff16565b90506000610a3182610a2b600a548661167690919063ffffffff16565b906116f8565b90506000610a4e83610a2b6009548761167690919063ffffffff16565b9050610a598461173a565b600a54610a6690836118eb565b600a55600954610a7690826118eb565b60095550505050565b606060038054610a8e906127b0565b80601f0160208091040260200160405190810160405280929190818152602001828054610aba906127b0565b8015610b075780601f10610adc57610100808354040283529160200191610b07565b820191906000526020600020905b815481529060010190602001808311610aea57829003601f168201915b5050505050905090565b6005546001600160a01b03163314610b3b5760405162461bcd60e51b81526004016109d890612746565b6001600160a01b038216600081815260196020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6000610ba733848461192d565b5060015b92915050565b6005546001600160a01b03163314610bdb5760405162461bcd60e51b81526004016109d890612746565b6001600160a01b038116600081815260196020908152604091829020805460ff19166001179055600e80546001600160a01b0319168417905590519182527f1816467f4e41d8dd27500ca11dc471852ca93f9b624c4d8d4430b8c4fa6424fa91015b60405180910390a150565b6005546001600160a01b03163314610c725760405162461bcd60e51b81526004016109d890612746565b8051825114610cc35760405162461bcd60e51b815260206004820152601e60248201527f417272617973206d757374206265207468652073616d65206c656e677468000060448201526064016109d8565b60c882511115610d205760405162461bcd60e51b815260206004820152602260248201527f57616c6c657473206c697374206c656e677468206d757374206265203c3d2032604482015261030360f41b60648201526084016109d8565b60005b8251811015610d9b576000838281518110610d4057610d406127ea565b602002602001015190506000838381518110610d5e57610d5e6127ea565b6020026020010151670de0b6b3a7640000610d799190612791565b9050610d86338383611a52565b50508080610d9390612800565b915050610d23565b505050565b6000610dad848484611bd5565b610dff8433610dfa856040518060600160405280602881526020016128f9602891396001600160a01b038a16600090815260016020908152604080832033845290915290205491906121b2565b61192d565b5060019392505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610ba7918590610dfa9086611610565b6005546001600160a01b03163314610e695760405162461bcd60e51b81526004016109d890612746565b6001600160a01b038116600081815260196020908152604091829020805460ff19166001179055600d80546001600160a01b0319168417905590519182527faacebbe32c0dbd14817cfb53e3cc8be68c7e133928317145be50a0d86c2244339101610c3d565b6005546001600160a01b03163314610ef95760405162461bcd60e51b81526004016109d890612746565b610f0b81670de0b6b3a7640000612791565b60115550565b6005546001600160a01b03163314610f3b5760405162461bcd60e51b81526004016109d890612746565b601c805460ff1916911515919091179055565b6005546001600160a01b03163314610f785760405162461bcd60e51b81526004016109d890612746565b6040514790339082156108fc029083906000818181858888f19350505050158015610fa7573d6000803e3d6000fd5b5050565b6005546001600160a01b03163314610fd55760405162461bcd60e51b81526004016109d890612746565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146110495760405162461bcd60e51b81526004016109d890612746565b6001600160a01b03811660009081526019602090815260408083208054600160ff199182168117909255601b90935292208054909116909117905561108d81611473565b50565b6005546001600160a01b031633146110ba5760405162461bcd60e51b81526004016109d890612746565b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b6005546001600160a01b0316331461110f5760405162461bcd60e51b81526004016109d890612746565b600854600160a81b900460ff161561112657600080fd5b6008805460ff60a81b1916600160a81b17905543602055426021556040517f799663458a5ef2936f7fa0c99b3336c69c25890f82974f04e811e5bb359186c790600090a1565b606060048054610a8e906127b0565b6005546001600160a01b031633146111a55760405162461bcd60e51b81526004016109d890612746565b6014869055601584905560128590556013839055601682905560178190556111cd8582611610565b600b556016546014546111df91611610565b600c55600b546063108015906111f857506063600c5411155b6112285760405162461bcd60e51b81526020600482015260016024820152601d60fa1b60448201526064016109d8565b601254601354601754601454601554601654604080519687526020870195909552938501929092526060840152608083015260a08201527ffb0d6f48717e74b9ad8ae84d152197402ac50bd6431ea28437926861021948ff9060c00160405180910390a1505050505050565b6005546001600160a01b031633146112be5760405162461bcd60e51b81526004016109d890612746565b610fa782826121ec565b6000610ba73384610dfa85604051806060016040528060258152602001612947602591393360009081526001602090815260408083206001600160a01b038d16845290915290205491906121b2565b6005546001600160a01b031633146113415760405162461bcd60e51b81526004016109d890612746565b6010805460ff1916911515919091179055565b6000610ba7338484611bd5565b6005546001600160a01b0316331461138b5760405162461bcd60e51b81526004016109d890612746565b61012c8111156113ec5760405162461bcd60e51b815260206004820152602660248201527f636f6f6c646f776e2074696d65722063616e6e6f74206578636565642035206d604482015265696e7574657360d01b60648201526084016109d8565b602255565b6005546001600160a01b0316331461141b5760405162461bcd60e51b81526004016109d890612746565b60185481151560ff90911615150361143257600080fd5b6018805460ff19168215159081179091556040519081527fff5917043f8453af413305b2dbd1ed9748a37df481beb71ba4b9b212a07b9bef90602001610c3d565b6005546001600160a01b0316331461149d5760405162461bcd60e51b81526004016109d890612746565b6001600160a01b0381166115025760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109d8565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146115885760405162461bcd60e51b81526004016109d890612746565b61159a81670de0b6b3a7640000612791565b905060646002546115ab9190612819565b81101561160b5760405162461bcd60e51b815260206004820152602860248201527f6d61782077616c6c65742063616e6e6f742062652073657420746f206c657373604482015267207468616e20312560c01b60648201526084016109d8565b600f55565b60008061161d838561283b565b90508381101561166f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109d8565b9392505050565b60008260000361168857506000610bab565b60006116948385612791565b9050826116a18583612819565b1461166f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109d8565b600061166f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612240565b806000036117455750565b61174e8161226e565b60165460145460019182916000916117669190611610565b60175460125461177591611610565b61177f919061283b565b9050600081156117965761179347836116f8565b90505b6000816117b060125460145461161090919063ffffffff16565b6117ba9190612791565b90506000826117d660175460165461161090919063ffffffff16565b6117e09190612791565b9050811561184057600d546040516001600160a01b03909116908390600081818185875af1925050503d8060008114611835576040519150601f19603f3d011682016040523d82523d6000602084013e61183a565b606091505b50909650505b801561189e57600e546040516001600160a01b03909116908290600081818185875af1925050503d8060008114611893576040519150601f19603f3d011682016040523d82523d6000602084013e611898565b606091505b50909550505b7f31ea026303a62d39c4ad14716f9621f1afe3242309c2ed761d4e241ae4bf2ea9828780156118ca5750865b6040805192835290151560208301520160405180910390a150505050505050565b600061166f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121b2565b6001600160a01b03831661198f5760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109d8565b6001600160a01b0382166119f05760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109d8565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316611ab65760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109d8565b6001600160a01b038216611b185760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109d8565b611b5581604051806060016040528060268152602001612921602691396001600160a01b03861660009081526020819052604090205491906121b2565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611b849082611610565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101611a45565b6001600160a01b038316611c3a5760405162461bcd60e51b815260206004820152602660248201527f4942455032303a207472616e736665722066726f6d20746865207a65726f206160448201526564647265737360d01b60648201526084016109d8565b6001600160a01b038216611c9c5760405162461bcd60e51b8152602060048201526024808201527f4942455032303a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016109d8565b6001600160a01b0383166000908152601b60205260408120548190819060ff16611d1957600854600160a81b900460ff16611d195760405162461bcd60e51b815260206004820181905260248201527f54726164696e6720686173206e6f7420796574206265656e20656e61626c656460448201526064016109d8565b83600003611d3557611d2d86866000611a52565b505050505050565b600854600160a01b900460ff16158015611d6857506001600160a01b03861660009081526019602052604090205460ff16155b8015611d8d57506001600160a01b03851660009081526019602052604090205460ff16155b156121a7576001600160a01b0385166000908152601a602052604090205460ff168015611e4d57601254601354601754601c54929650909450925060ff1615611e4857602254326000908152601f6020526040902054611ded919061283b565b421015611e355760405162461bcd60e51b8152602060048201526016602482015275636f6f6c646f776e20706572696f642061637469766560501b60448201526064016109d8565b326000908152601f602052604090204290555b612074565b601454601554601654601c54929650909450925060ff1615611fe757602054611e7790600061283b565b4311611eba5760405162461bcd60e51b8152602060048201526012602482015271796f75207368616c6c206e6f74207061737360701b60448201526064016109d8565b601d543a1115611f0c5760405162461bcd60e51b815260206004820152601860248201527f4761732070726963652065786365656473206c696d69742e000000000000000060448201526064016109d8565b326000908152601e6020526040902054439003611f625760405162461bcd60e51b8152602060048201526014602482015273546f6f206d616e7920545820696e20626c6f636b60601b60448201526064016109d8565b602254326000908152601f6020526040902054611f7f919061283b565b421015611fc75760405162461bcd60e51b8152602060048201526016602482015275636f6f6c646f776e20706572696f642061637469766560501b60448201526064016109d8565b326000908152601e60209081526040808320439055601f90915290204290555b60105460ff1615612074576001600160a01b038616600090815260208190526040902054600f54612018878361283b565b11156120725760405162461bcd60e51b8152602060048201526024808201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152633ab73a1760e11b60648201526084016109d8565b505b60006120808584611610565b3060009081526020819052604090205460115491925090811080159081906120c157506001600160a01b038a166000908152601a602052604090205460ff16155b156120fe576008805460ff60a01b1916600160a01b1790556011546120e58161173a565b506000600a8190556009556008805460ff60a01b191690555b600061210f6064610a2b8b87611676565b905060006121226064610a2b8c8b611676565b9050612138612131828461283b565b8b906118eb565b995085156121555760095461214d9083611610565b600955612166565b600a546121629083611610565b600a555b6121718c3084611a52565b80156121a05760085461218f908d906001600160a01b031683611a52565b60025461219c90826118eb565b6002555b5050505050505b611d2d868686611a52565b600081848411156121d65760405162461bcd60e51b81526004016109d891906123d9565b5060006121e38486612853565b95945050505050565b6001600160a01b0382166000818152601a6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b600081836122615760405162461bcd60e51b81526004016109d891906123d9565b5060006121e38486612819565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106122a3576122a36127ea565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156122fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612320919061286a565b81600181518110612333576123336127ea565b6001600160a01b039283166020918202929092010152600654612359913091168461192d565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790612392908590600090869030904290600401612887565b600060405180830381600087803b1580156123ac57600080fd5b505af1158015611d2d573d6000803e3d6000fd5b6000602082840312156123d257600080fd5b5035919050565b600060208083528351808285015260005b81811015612406578581018301518582016040015282016123ea565b81811115612418576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461108d57600080fd5b8035801515811461245357600080fd5b919050565b6000806040838503121561246b57600080fd5b82356124768161242e565b915061248460208401612443565b90509250929050565b600080604083850312156124a057600080fd5b82356124ab8161242e565b946020939093013593505050565b6000602082840312156124cb57600080fd5b813561166f8161242e565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612515576125156124d6565b604052919050565b600067ffffffffffffffff821115612537576125376124d6565b5060051b60200190565b600082601f83011261255257600080fd5b813560206125676125628361251d565b6124ec565b82815260059290921b8401810191818101908684111561258657600080fd5b8286015b848110156125a1578035835291830191830161258a565b509695505050505050565b600080604083850312156125bf57600080fd5b823567ffffffffffffffff808211156125d757600080fd5b818501915085601f8301126125eb57600080fd5b813560206125fb6125628361251d565b82815260059290921b8401810191818101908984111561261a57600080fd5b948201945b838610156126415785356126328161242e565b8252948201949082019061261f565b9650508601359250508082111561265757600080fd5b5061266485828601612541565b9150509250929050565b60008060006060848603121561268357600080fd5b833561268e8161242e565b9250602084013561269e8161242e565b929592945050506040919091013590565b6000602082840312156126c157600080fd5b61166f82612443565b60008060008060008060c087890312156126e357600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6000806040838503121561272057600080fd5b823561272b8161242e565b9150602083013561273b8161242e565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156127ab576127ab61277b565b500290565b600181811c908216806127c457607f821691505b6020821081036127e457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b6000600182016128125761281261277b565b5060010190565b60008261283657634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111561284e5761284e61277b565b500190565b6000828210156128655761286561277b565b500390565b60006020828403121561287c57600080fd5b815161166f8161242e565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128d75784516001600160a01b0316835293830193918301916001016128b2565b50506001600160a01b0396909616606085015250505060800152939250505056fe42455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e636542455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c85f4cad478988f3350ed7eecdeeb6ff91a3b4ae4885c65bd07d8558de65628564736f6c634300080d0033
Deployed Bytecode Sourcemap
15353:14880:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15520:64;;;;;;;;;;-1:-1:-1;15520:64:0;;;;-1:-1:-1;;;;;15520:64:0;;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;15520:64:0;;;;;;;;28160:443;;;;;;;;;;-1:-1:-1;28160:443:0;;;;;:::i;:::-;;:::i;:::-;;3236:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;20088:181::-;;;;;;;;;;-1:-1:-1;20088:181:0;;;;;:::i;:::-;;:::i;4150:169::-;;;;;;;;;;-1:-1:-1;4150:169:0;;;;;:::i;:::-;;:::i;:::-;;;2115:14:1;;2108:22;2090:41;;2078:2;2063:18;4150:169:0;1950:187:1;15435:41:0;;;;;;;;;;-1:-1:-1;15435:41:0;;;;-1:-1:-1;;;;;15435:41:0;;;3557:108;;;;;;;;;;-1:-1:-1;3645:12:0;;3557:108;;;2523:25:1;;;2511:2;2496:18;3557:108:0;2377:177:1;16862:32:0;;;;;;;;;;;;;;;;19889:187;;;;;;;;;;-1:-1:-1;19889:187:0;;;;;:::i;:::-;;:::i;29669:561::-;;;;;;;;;;-1:-1:-1;29669:561:0;;;;;:::i;:::-;;:::i;4327:345::-;;;;;;;;;;-1:-1:-1;4327:345:0;;;;;:::i;:::-;;:::i;19294:93::-;;;;;;;;;;-1:-1:-1;19294:93:0;;19377:2;5901:36:1;;5889:2;5874:18;19294:93:0;5759:184:1;4680:218:0;;;;;;;;;;-1:-1:-1;4680:218:0;;;;;:::i;:::-;;:::i;15485:28::-;;;;;;;;;;-1:-1:-1;15485:28:0;;;;-1:-1:-1;;;;;15485:28:0;;;16471:34;;;;;;;;;;-1:-1:-1;16471:34:0;;;;;;;;16224:40;;;;;;;;;;-1:-1:-1;16224:40:0;;;;;;;;15619:34;;;;;;;;;;-1:-1:-1;15619:34:0;;;;-1:-1:-1;;;15619:34:0;;;;;;23008:126;;;;;;;;;;-1:-1:-1;23008:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;23098:28:0;23074:4;23098:28;;;:19;:28;;;;;;;;;23008:126;16089:31;;;;;;;;;;;;;;;;19676:205;;;;;;;;;;-1:-1:-1;19676:205:0;;;;;:::i;:::-;;:::i;21296:120::-;;;;;;;;;;-1:-1:-1;21296:120:0;;;;;:::i;:::-;;:::i;20432:99::-;;;;;;;;;;-1:-1:-1;20432:99:0;;;;;:::i;:::-;;:::i;21142:146::-;;;;;;;;;;;;;:::i;3673:127::-;;;;;;;;;;-1:-1:-1;3673:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3774:18:0;3747:7;3774:18;;;;;;;;;;;;3673:127;7128:148;;;;;;;;;;;;;:::i;22047:212::-;;;;;;;;;;-1:-1:-1;22047:212:0;;;;;:::i;:::-;;:::i;15812:38::-;;;;;;;;;;-1:-1:-1;15812:38:0;;;;-1:-1:-1;;;;;15812:38:0;;;20277:147;;;;;;;;;;-1:-1:-1;20277:147:0;;;;;:::i;:::-;;:::i;19432:232::-;;;;;;;;;;;;;:::i;16800:30::-;;;;;;;;;;;;;;;;6914:79;;;;;;;;;;-1:-1:-1;6979:6:0;;-1:-1:-1;;;;;6979:6:0;6914:79;;15860:32;;;;;;;;;;-1:-1:-1;15860:32:0;;;;-1:-1:-1;;;;;15860:32:0;;;16017;;;;;;;;;;;;;;;;3344:104;;;;;;;;;;;;;:::i;22267:733::-;;;;;;;;;;-1:-1:-1;22267:733:0;;;;;:::i;:::-;;:::i;21640:140::-;;;;;;;;;;-1:-1:-1;21640:140:0;;;;;:::i;:::-;;:::i;16159:24::-;;;;;;;;;;;;;;;;16190:25;;;;;;;;;;;;;;;;4906:286;;;;;;;;;;-1:-1:-1;4906:286:0;;;;;:::i;:::-;;:::i;20539:103::-;;;;;;;;;;-1:-1:-1;20539:103:0;;;;;:::i;:::-;;:::i;3808:175::-;;;;;;;;;;-1:-1:-1;3808:175:0;;;;;:::i;:::-;;:::i;16056:26::-;;;;;;;;;;;;;;;;16749;;;;;;;;;;;;;;;;16332:57;;;;;;;;;;-1:-1:-1;16332:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;20650:174;;;;;;;;;;-1:-1:-1;20650:174:0;;;;;:::i;:::-;;:::i;15935:35::-;;;;;;;;;;-1:-1:-1;15935:35:0;;;;;;;;21424:208;;;;;;;;;;-1:-1:-1;21424:208:0;;;;;:::i;:::-;;:::i;3991:151::-;;;;;;;;;;-1:-1:-1;3991:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;4107:18:0;;;4080:7;4107:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3991:151;15977:33;;;;;;;;;;;;;;;;16127:25;;;;;;;;;;;;;;;;7284:244;;;;;;;;;;-1:-1:-1;7284:244:0;;;;;:::i;:::-;;:::i;15904:24::-;;;;;;;;;;;;;;;;20838:218;;;;;;;;;;-1:-1:-1;20838:218:0;;;;;:::i;:::-;;:::i;28160:443::-;7041:6;;-1:-1:-1;;;;;7041:6:0;174:10;7041:22;7033:67;;;;-1:-1:-1;;;7033:67:0;;;;;;;:::i;:::-;;;;;;;;;28248:17:::1;:6:::0;28258::::1;28248:17;:::i;:::-;28239:26;;28276:19;28298:25;28312:10;;28298:9;;:13;;:25;;;;:::i;:::-;28276:47;;28334:15;28352:38;28378:11;28352:21;28363:9;;28352:6;:10;;:21;;;;:::i;:::-;:25:::0;::::1;:38::i;:::-;28334:56;;28401:16;28420:39;28447:11;28420:22;28431:10;;28420:6;:10;;:22;;;;:::i;:39::-;28401:58;;28472:28;28493:6;28472:20;:28::i;:::-;28525:9;::::0;:22:::1;::::0;28539:7;28525:13:::1;:22::i;:::-;28513:9;:34:::0;28571:10:::1;::::0;:24:::1;::::0;28586:8;28571:14:::1;:24::i;:::-;28558:10;:37:::0;-1:-1:-1;;;;28160:443:0:o;3236:100::-;3290:13;3323:5;3316:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3236:100;:::o;20088:181::-;7041:6;;-1:-1:-1;;;;;7041:6:0;174:10;7041:22;7033:67;;;;-1:-1:-1;;;7033:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20172:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;20172:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;20227:34;;2090:41:1;;;20227:34:0::1;::::0;2063:18:1;20227:34:0::1;;;;;;;20088:181:::0;;:::o;4150:169::-;4233:4;4250:39;174:10;4273:7;4282:6;4250:8;:39::i;:::-;-1:-1:-1;4307:4:0;4150:169;;;;;:::o;19889:187::-;7041:6;;-1:-1:-1;;;;;7041:6:0;174:10;7041:22;7033:67;;;;-1:-1:-1;;;7033:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19957:27:0;::::1;;::::0;;;:19:::1;:27;::::0;;;;;;;;:34;;-1:-1:-1;;19957:34:0::1;19987:4;19957:34;::::0;;20002:9:::1;:27:::0;;-1:-1:-1;;;;;;20002:27:0::1;::::0;::::1;::::0;;20045:23;;160:51:1;;;20045:23:0::1;::::0;133:18:1;20045:23:0::1;;;;;;;;19889:187:::0;:::o;29669:561::-;7041:6;;-1:-1:-1;;;;;7041:6:0;174:10;7041:22;7033:67;;;;-1:-1:-1;;;7033:67:0;;;;;;;:::i;:::-;29841:6:::1;:13;29816:14;:21;:38;29808:81;;;::::0;-1:-1:-1;;;29808:81:0;;8531:2:1;29808:81:0::1;::::0;::::1;8513:21:1::0;8570:2;8550:18;;;8543:30;8609:32;8589:18;;;8582:60;8659:18;;29808:81:0::1;8329:354:1::0;29808:81:0::1;29933:3;29908:14;:21;:28;;29900:75;;;::::0;-1:-1:-1;;;29900:75:0;;8890:2:1;29900:75:0::1;::::0;::::1;8872:21:1::0;8929:2;8909:18;;;8902:30;8968:34;8948:18;;;8941:62;-1:-1:-1;;;9019:18:1;;;9012:32;9061:19;;29900:75:0::1;8688:398:1::0;29900:75:0::1;29991:9;29986:237;30010:14;:21;30006:1;:25;29986:237;;;30053:14;30070;30085:1;30070:17;;;;;;;;:::i;:::-;;;;;;;30053:34;;30102:21;30126:6;30133:1;30126:9;;;;;;;;:::i;:::-;;;;;;;30139:6;30126:20;;;;:::i;:::-;30102:44;;30161:50;30177:10;30189:6;30197:13;30161:15;:50::i;:::-;30038:185;;30033:3;;;;;:::i;:::-;;;;29986:237;;;;29669:561:::0;;:::o;4327:345::-;4440:4;4457:36;4467:6;4475:9;4486:6;4457:9;:36::i;:::-;4504:138;4513:6;174:10;4535:106;4573:6;4535:106;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4535:19:0;;;;;;:11;:19;;;;;;;;174:10;4535:33;;;;;;;;;;:37;:106::i;:::-;4504:8;:138::i;:::-;-1:-1:-1;4660:4:0;4327:345;;;;;:::o;4680:218::-;174:10;4768:4;4817:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4817:34:0;;;;;;;;;;4768:4;;4785:83;;4808:7;;4817:50;;4856:10;4817:38;:50::i;19676:205::-;7041:6;;-1:-1:-1;;;;;7041:6:0;174:10;7041:22;7033:67;;;;-1:-1:-1;;;7033:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19750:27:0;::::1;;::::0;;;:19:::1;:27;::::0;;;;;;;;:34;;-1:-1:-1;;19750:34:0::1;19780:4;19750:34;::::0;;19795:15:::1;:33:::0;;-1:-1:-1;;;;;;19795:33:0::1;::::0;::::1;::::0;;19844:29;;160:51:1;;;19844:29:0::1;::::0;133:18:1;19844:29:0::1;14:203:1::0;21296:120:0;7041:6;;-1:-1:-1;;;;;7041:6:0;174:10;7041:22;7033:67;;;;-1:-1:-1;;;7033:67:0;;;;;;;:::i;:::-;21391:17:::1;:6:::0;21401::::1;21391:17;:::i;:::-;21370:18;:38:::0;-1:-1:-1;21296:120:0:o;20432:99::-;7041:6;;-1:-1:-1;;;;;7041:6:0;174:10;7041:22;7033:67;;;;-1:-1:-1;;;7033:67:0;;;;;;;:::i;:::-;20501:14:::1;:22:::0;;-1:-1:-1;;20501:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20432:99::o;21142:146::-;7041:6;;-1:-1:-1;;;;;7041:6:0;174:10;7041:22;7033:67;;;;-1:-1:-1;;;7033:67:0;;;;;;;:::i;:::-;21241:39:::1;::::0;21209:21:::1;::::0;21249:10:::1;::::0;21241:39;::::1;;;::::0;21209:21;;21189:17:::1;21241:39:::0;21189:17;21241:39;21209:21;21249:10;21241:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;21178:110;21142:146::o:0;7128:148::-;7041:6;;-1:-1:-1;;;;;7041:6:0;174:10;7041:22;7033:67;;;;-1:-1:-1;;;7033:67:0;;;;;;;:::i;:::-;7219:6:::1;::::0;7198:40:::1;::::0;7235:1:::1;::::0;-1:-1:-1;;;;;7219:6:0::1;::::0;7198:40:::1;::::0;7235:1;;7198:40:::1;7249:6;:19:::0;;-1:-1:-1;;;;;;7249:19:0::1;::::0;;7128:148::o;22047:212::-;7041:6;;-1:-1:-1;;;;;7041:6:0;174:10;7041:22;7033:67;;;;-1:-1:-1;;;7033:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22116:29:0;::::1;;::::0;;;:19:::1;:29;::::0;;;;;;;:36;;22148:4:::1;-1:-1:-1::0;;22116:36:0;;::::1;::::0;::::1;::::0;;;22163:33:::1;:43:::0;;;;;:50;;;;::::1;::::0;;::::1;::::0;;22224:27:::1;22116:29:::0;22224:17:::1;:27::i;:::-;22047:212:::0;:::o;20277:147::-;7041:6;;-1:-1:-1;;;;;7041:6:0;174:10;7041:22;7033:67;;;;-1:-1:-1;;;7033:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20366:41:0;;;::::1;;::::0;;;:33:::1;:41;::::0;;;;:50;;-1:-1:-1;;20366:50:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20277:147::o;19432:232::-;7041:6;;-1:-1:-1;;;;;7041:6:0;174:10;7041:22;7033:67;;;;-1:-1:-1;;;7033:67:0;;;;;;;:::i;:::-;19496:14:::1;::::0;-1:-1:-1;;;19496:14:0;::::1;;;19495:15;19487:24;;;::::0;::::1;;19522:14;:21:::0;;-1:-1:-1;;;;19522:21:0::1;-1:-1:-1::0;;;19522:21:0::1;::::0;;19568:12:::1;19554:11;:26:::0;19609:15:::1;19591;:33:::0;19640:16:::1;::::0;::::1;::::0;19522:21;;19640:16:::1;19432:232::o:0;3344:104::-;3400:13;3433:7;3426:14;;;;;:::i;22267:733::-;7041:6;;-1:-1:-1;;;;;7041:6:0;174:10;7041:22;7033:67;;;;-1:-1:-1;;;7033:67:0;;;;;;;:::i;:::-;22455:16:::1;:31:::0;;;22497:10:::1;:20:::0;;;22528:17:::1;:33:::0;;;22572:11:::1;:22:::0;;;22605:9:::1;:18:::0;;;22634:10:::1;:20:::0;;;22683:33:::1;22548:13:::0;22647:7;22683:21:::1;:33::i;:::-;22667:13;:49:::0;22763:9:::1;::::0;22742:16:::1;::::0;:31:::1;::::0;:20:::1;:31::i;:::-;22727:12;:46:::0;22807:13:::1;::::0;22824:2:::1;-1:-1:-1::0;22807:19:0;::::1;::::0;:41:::1;;;22846:2;22830:12;;:18;;22807:41;22799:55;;;::::0;-1:-1:-1;;;22799:55:0;;9565:2:1;22799:55:0::1;::::0;::::1;9547:21:1::0;9604:1;9584:18;;;9577:29;-1:-1:-1;;;9622:18:1;;;9615:31;9663:18;;22799:55:0::1;9363:324:1::0;22799:55:0::1;22883:17;::::0;22902:11:::1;::::0;22915:10:::1;::::0;22927:16:::1;::::0;22970:10:::1;::::0;22982:9:::1;::::0;22872:120:::1;::::0;;9979:25:1;;;10035:2;10020:18;;10013:34;;;;10063:18;;;10056:34;;;;10121:2;10106:18;;10099:34;10164:3;10149:19;;10142:35;10208:3;10193:19;;10186:35;22872:120:0::1;::::0;9966:3:1;9951:19;22872:120:0::1;;;;;;;22267:733:::0;;;;;;:::o;21640:140::-;7041:6;;-1:-1:-1;;;;;7041:6:0;174:10;7041:22;7033:67;;;;-1:-1:-1;;;7033:67:0;;;;;;;:::i;:::-;21731:41:::1;21760:4;21766:5;21731:28;:41::i;4906:286::-:0;4999:4;5016:146;174:10;5039:7;5048:113;5087:15;5048:113;;;;;;;;;;;;;;;;;174:10;5048:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5048:34:0;;;;;;;;;;;;:38;:113::i;20539:103::-;7041:6;;-1:-1:-1;;;;;7041:6:0;174:10;7041:22;7033:67;;;;-1:-1:-1;;;7033:67:0;;;;;;;:::i;:::-;20610:16:::1;:24:::0;;-1:-1:-1;;20610:24:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20539:103::o;3808:175::-;3894:4;3911:42;174:10;3935:9;3946:6;3911:9;:42::i;20650:174::-;7041:6;;-1:-1:-1;;;;;7041:6:0;174:10;7041:22;7033:67;;;;-1:-1:-1;;;7033:67:0;;;;;;;:::i;:::-;20738:3:::1;20729:5;:12;;20721:63;;;::::0;-1:-1:-1;;;20721:63:0;;10434:2:1;20721:63:0::1;::::0;::::1;10416:21:1::0;10473:2;10453:18;;;10446:30;10512:34;10492:18;;;10485:62;-1:-1:-1;;;10563:18:1;;;10556:36;10609:19;;20721:63:0::1;10232:402:1::0;20721:63:0::1;20795:13;:21:::0;20650:174::o;21424:208::-;7041:6;;-1:-1:-1;;;;;7041:6:0;174:10;7041:22;7033:67;;;;-1:-1:-1;;;7033:67:0;;;;;;;:::i;:::-;21504:21:::1;::::0;:32;::::1;;:21;::::0;;::::1;:32;;::::0;21496:41:::1;;;::::0;::::1;;21548:21;:31:::0;;-1:-1:-1;;21548:31:0::1;::::0;::::1;;::::0;;::::1;::::0;;;21595:29:::1;::::0;2090:41:1;;;21595:29:0::1;::::0;2078:2:1;2063:18;21595:29:0::1;1950:187:1::0;7284:244:0;7041:6;;-1:-1:-1;;;;;7041:6:0;174:10;7041:22;7033:67;;;;-1:-1:-1;;;7033:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7373:22:0;::::1;7365:73;;;::::0;-1:-1:-1;;;7365:73:0;;10841:2:1;7365:73:0::1;::::0;::::1;10823:21:1::0;10880:2;10860:18;;;10853:30;10919:34;10899:18;;;10892:62;-1:-1:-1;;;10970:18:1;;;10963:36;11016:19;;7365:73:0::1;10639:402:1::0;7365:73:0::1;7475:6;::::0;7454:38:::1;::::0;-1:-1:-1;;;;;7454:38:0;;::::1;::::0;7475:6:::1;::::0;7454:38:::1;::::0;7475:6:::1;::::0;7454:38:::1;7503:6;:17:::0;;-1:-1:-1;;;;;;7503:17:0::1;-1:-1:-1::0;;;;;7503:17:0;;;::::1;::::0;;;::::1;::::0;;7284:244::o;20838:218::-;7041:6;;-1:-1:-1;;;;;7041:6:0;174:10;7041:22;7033:67;;;;-1:-1:-1;;;7033:67:0;;;;;;;:::i;:::-;20913:16:::1;:5:::0;20922:6:::1;20913:16;:::i;:::-;20905:24;;20972:3;20957:12;;:18;;;;:::i;:::-;20948:5;:27;;20940:80;;;::::0;-1:-1:-1;;;20940:80:0;;11470:2:1;20940:80:0::1;::::0;::::1;11452:21:1::0;11509:2;11489:18;;;11482:30;11548:34;11528:18;;;11521:62;-1:-1:-1;;;11599:18:1;;;11592:38;11647:19;;20940:80:0::1;11268:404:1::0;20940:80:0::1;21031:9;:17:::0;20838:218::o;470:179::-;528:7;;560:5;564:1;560;:5;:::i;:::-;548:17;;589:1;584;:6;;576:46;;;;-1:-1:-1;;;576:46:0;;12012:2:1;576:46:0;;;11994:21:1;12051:2;12031:18;;;12024:30;12090:29;12070:18;;;12063:57;12137:18;;576:46:0;11810:351:1;576:46:0;640:1;470:179;-1:-1:-1;;;470:179:0:o;999:248::-;1057:7;1081:1;1086;1081:6;1077:47;;-1:-1:-1;1111:1:0;1104:8;;1077:47;1136:9;1148:5;1152:1;1148;:5;:::i;:::-;1136:17;-1:-1:-1;1181:1:0;1172:5;1176:1;1136:17;1172:5;:::i;:::-;:10;1164:56;;;;-1:-1:-1;;;1164:56:0;;12368:2:1;1164:56:0;;;12350:21:1;12407:2;12387:18;;;12380:30;12446:34;12426:18;;;12419:62;-1:-1:-1;;;12497:18:1;;;12490:31;12538:19;;1164:56:0;12166:397:1;1255:132:0;1313:7;1340:39;1344:1;1347;1340:39;;;;;;;;;;;;;;;;;:3;:39::i;28636:1025::-;28705:6;28715:1;28705:11;28701:50;;28636:1025;:::o;28701:50::-;28761:24;28778:6;28761:16;:24::i;:::-;28954:9;;28933:16;;28813:4;;;;28798:12;;28933:31;;:16;:20;:31::i;:::-;28919:10;;28897:17;;:33;;:21;:33::i;:::-;:67;;;;:::i;:::-;28871:93;-1:-1:-1;28977:19:0;29011;;29007:108;;29061:42;:21;29087:15;29061:25;:42::i;:::-;29047:56;;29007:108;29125:23;29193:11;29151:39;29172:17;;29151:16;;:20;;:39;;;;:::i;:::-;:53;;;;:::i;:::-;29125:79;;29215:17;29263:11;29235:25;29249:10;;29235:9;;:13;;:25;;;;:::i;:::-;:39;;;;:::i;:::-;29215:59;-1:-1:-1;29299:19:0;;29295:123;;29357:15;;29349:57;;-1:-1:-1;;;;;29357:15:0;;;;29386;;29349:57;;;;29386:15;29357;29349:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29335:71:0;;-1:-1:-1;;29295:123:0;29442:13;;29438:108;;29497:9;;29489:45;;-1:-1:-1;;;;;29497:9:0;;;;29520;;29489:45;;;;29520:9;29497;29489:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29472:62:0;;-1:-1:-1;;29438:108:0;29563:90;29591:15;29621:7;:21;;;;;29632:10;29621:21;29563:90;;;12946:25:1;;;13014:14;;13007:22;13002:2;12987:18;;12980:50;12919:18;29563:90:0;;;;;;;28690:971;;;;;;28636:1025;:::o;657:136::-;715:7;742:43;746:1;749;742:43;;;;;;;;;;;;;;;;;:3;:43::i;6132:346::-;-1:-1:-1;;;;;6234:19:0;;6226:68;;;;-1:-1:-1;;;6226:68:0;;13243:2:1;6226:68:0;;;13225:21:1;13282:2;13262:18;;;13255:30;13321:34;13301:18;;;13294:62;-1:-1:-1;;;13372:18:1;;;13365:34;13416:19;;6226:68:0;13041:400:1;6226:68:0;-1:-1:-1;;;;;6313:21:0;;6305:68;;;;-1:-1:-1;;;6305:68:0;;13648:2:1;6305:68:0;;;13630:21:1;13687:2;13667:18;;;13660:30;13726:34;13706:18;;;13699:62;-1:-1:-1;;;13777:18:1;;;13770:32;13819:19;;6305:68:0;13446:398:1;6305:68:0;-1:-1:-1;;;;;6386:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6438:32;;2523:25:1;;;6438:32:0;;2496:18:1;6438:32:0;;;;;;;;6132:346;;;:::o;5200:538::-;-1:-1:-1;;;;;5306:20:0;;5298:70;;;;-1:-1:-1;;;5298:70:0;;14051:2:1;5298:70:0;;;14033:21:1;14090:2;14070:18;;;14063:30;14129:34;14109:18;;;14102:62;-1:-1:-1;;;14180:18:1;;;14173:35;14225:19;;5298:70:0;13849:401:1;5298:70:0;-1:-1:-1;;;;;5387:23:0;;5379:71;;;;-1:-1:-1;;;5379:71:0;;14457:2:1;5379:71:0;;;14439:21:1;14496:2;14476:18;;;14469:30;14535:34;14515:18;;;14508:62;-1:-1:-1;;;14586:18:1;;;14579:33;14629:19;;5379:71:0;14255:399:1;5379:71:0;5543:70;5565:6;5543:70;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5543:17:0;;:9;:17;;;;;;;;;;;;:70;:21;:70::i;:::-;-1:-1:-1;;;;;5523:17:0;;;:9;:17;;;;;;;;;;;:90;;;;5647:20;;;;;;;:32;;5672:6;5647:24;:32::i;:::-;-1:-1:-1;;;;;5624:20:0;;;:9;:20;;;;;;;;;;;;:55;;;;5695:35;2523:25:1;;;5624:20:0;;5695:35;;;;;;2496:18:1;5695:35:0;2377:177:1;23142:3494:0;-1:-1:-1;;;;;23242:18:0;;23234:69;;;;-1:-1:-1;;;23234:69:0;;14861:2:1;23234:69:0;;;14843:21:1;14900:2;14880:18;;;14873:30;14939:34;14919:18;;;14912:62;-1:-1:-1;;;14990:18:1;;;14983:36;15036:19;;23234:69:0;14659:402:1;23234:69:0;-1:-1:-1;;;;;23322:16:0;;23314:65;;;;-1:-1:-1;;;23314:65:0;;15268:2:1;23314:65:0;;;15250:21:1;15307:2;15287:18;;;15280:30;15346:34;15326:18;;;15319:62;-1:-1:-1;;;15397:18:1;;;15390:34;15441:19;;23314:65:0;15066:400:1;23314:65:0;-1:-1:-1;;;;;23482:39:0;;23392:21;23482:39;;;:33;:39;;;;;;23392:21;;;;23482:39;;23477:142;;23546:14;;-1:-1:-1;;;23546:14:0;;;;23538:59;;;;-1:-1:-1;;;23538:59:0;;15673:2:1;23538:59:0;;;15655:21:1;;;15692:18;;;15685:30;15751:34;15731:18;;;15724:62;15803:18;;23538:59:0;15471:356:1;23538:59:0;23635:6;23645:1;23635:11;23631:2942;;23663:28;23679:4;23685:2;23689:1;23663:15;:28::i;:::-;23706:7;;;23142:3494;;;:::o;23631:2942::-;23769:8;;-1:-1:-1;;;23769:8:0;;;;23768:9;:39;;;;-1:-1:-1;;;;;;23782:25:0;;;;;;:19;:25;;;;;;;;23781:26;23768:39;:67;;;;-1:-1:-1;;;;;;23812:23:0;;;;;;:19;:23;;;;;;;;23811:24;23768:67;23750:2823;;;-1:-1:-1;;;;;23879:29:0;;23862:14;23879:29;;;:25;:29;;;;;;;;23923:1494;;;;23973:17;;24019:11;;24058:10;;24093:14;;23973:17;;-1:-1:-1;24019:11:0;;-1:-1:-1;24058:10:0;-1:-1:-1;24093:14:0;;24089:269;;;24197:13;;24184:9;24155:39;;;;:28;:39;;;;;;:55;;24197:13;24155:55;:::i;:::-;24136:15;:74;;24128:134;;;;-1:-1:-1;;;24128:134:0;;16034:2:1;24128:134:0;;;16016:21:1;16073:2;16053:18;;;16046:30;-1:-1:-1;;;16092:18:1;;;16085:52;16154:18;;24128:134:0;15832:346:1;24128:134:0;24310:9;24281:39;;;;:28;:39;;;;;24323:15;24281:57;;24089:269;23923:1494;;;24442:16;;24487:10;;24525:9;;24559:14;;24442:16;;-1:-1:-1;24487:10:0;;-1:-1:-1;24525:9:0;-1:-1:-1;24559:14:0;;24555:598;;;24617:11;;:15;;24631:1;24617:15;:::i;:::-;24602:12;:30;24594:60;;;;-1:-1:-1;;;24594:60:0;;16385:2:1;24594:60:0;;;16367:21:1;16424:2;16404:18;;;16397:30;-1:-1:-1;;;16443:18:1;;;16436:48;16501:18;;24594:60:0;16183:342:1;24594:60:0;24696:13;;24681:11;:28;;24673:64;;;;-1:-1:-1;;;24673:64:0;;16732:2:1;24673:64:0;;;16714:21:1;16771:2;16751:18;;;16744:30;16810:26;16790:18;;;16783:54;16854:18;;24673:64:0;16530:348:1;24673:64:0;24789:9;24764:35;;;;:24;:35;;;;;;24803:12;24764:51;;24756:83;;;;-1:-1:-1;;;24756:83:0;;17085:2:1;24756:83:0;;;17067:21:1;17124:2;17104:18;;;17097:30;-1:-1:-1;;;17143:18:1;;;17136:50;17203:18;;24756:83:0;16883:344:1;24756:83:0;24927:13;;24914:9;24885:39;;;;:28;:39;;;;;;:55;;24927:13;24885:55;:::i;:::-;24866:15;:74;;24858:134;;;;-1:-1:-1;;;24858:134:0;;16034:2:1;24858:134:0;;;16016:21:1;16073:2;16053:18;;;16046:30;-1:-1:-1;;;16092:18:1;;;16085:52;16154:18;;24858:134:0;15832:346:1;24858:134:0;25036:9;25011:35;;;;:24;:35;;;;;;;;25049:12;25011:50;;25080:28;:39;;;;;25122:15;25080:57;;24555:598;25173:16;;;;25169:233;;;-1:-1:-1;;;;;3774:18:0;;25206:32;3774:18;;;;;;;;;;;25314:9;;25277:33;25304:6;3774:18;25277:33;:::i;:::-;:46;;25269:117;;;;-1:-1:-1;;;25269:117:0;;17434:2:1;25269:117:0;;;17416:21:1;17473:2;17453:18;;;17446:30;17512:34;17492:18;;;17485:62;-1:-1:-1;;;17563:18:1;;;17556:34;17607:19;;25269:117:0;17232:400:1;25269:117:0;25191:211;25169:233;25433:17;25453:25;:13;25471:6;25453:17;:25::i;:::-;25544:4;25495:28;3774:18;;;;;;;;;;;25606;;25433:45;;-1:-1:-1;3774:18:0;25582:42;;;;;;;25645:43;;-1:-1:-1;;;;;;25657:31:0;;;;;;:25;:31;;;;;;;;25656:32;25645:43;25641:325;;;25709:8;:15;;-1:-1:-1;;;;25709:15:0;-1:-1:-1;;;25709:15:0;;;25780:18;;25817:33;25780:18;25817:20;:33::i;:::-;-1:-1:-1;25881:1:0;25869:9;:13;;;25901:10;:14;25934:8;:16;;-1:-1:-1;;;;25934:16:0;;;25641:325;25982:12;25997:30;26023:3;25997:21;:6;26008:9;25997:10;:21::i;:30::-;25982:45;-1:-1:-1;26042:18:0;26063:28;26087:3;26063:19;:6;26074:7;26063:10;:19::i;:28::-;26042:49;-1:-1:-1;26117:29:0;26128:17;26042:49;26128:4;:17;:::i;:::-;26117:6;;:10;:29::i;:::-;26108:38;;26167:9;26163:155;;;26210:10;;:20;;26225:4;26210:14;:20::i;:::-;26197:10;:33;26163:155;;;26283:9;;:19;;26297:4;26283:13;:19::i;:::-;26271:9;:31;26163:155;26334:42;26350:4;26364;26371;26334:15;:42::i;:::-;26397:14;;26393:156;;26454:4;;26432:39;;26448:4;;-1:-1:-1;;;;;26454:4:0;26460:10;26432:15;:39::i;:::-;26505:12;;:28;;26522:10;26505:16;:28::i;:::-;26490:12;:43;26393:156;23847:2726;;;;;;23750:2823;26585:33;26601:4;26607:2;26611:6;26585:15;:33::i;801:190::-;887:7;923:12;915:6;;;;907:29;;;;-1:-1:-1;;;907:29:0;;;;;;;;:::i;:::-;-1:-1:-1;947:9:0;959:5;963:1;959;:5;:::i;:::-;947:17;801:190;-1:-1:-1;;;;;801:190:0:o;21788:188::-;-1:-1:-1;;;;;21871:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;21871:39:0;;;;;;;;;;21928:40;;21871:39;;:31;21928:40;;;21788:188;;:::o;1395:189::-;1481:7;1516:12;1509:5;1501:28;;;;-1:-1:-1;;;1501:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1540:9:0;1552:5;1556:1;1552;:5;:::i;27132:499::-;27222:16;;;27236:1;27222:16;;;;;;;;27198:21;;27222:16;;;;;;;;;;-1:-1:-1;27222:16:0;27198:40;;27267:4;27249;27254:1;27249:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;27249:23:0;;;:7;;;;;;;;;;:23;;;;27293:15;;:22;;;-1:-1:-1;;;27293:22:0;;;;:15;;;;;:20;;:22;;;;;27249:7;;27293:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27283:4;27288:1;27283:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;27283:32:0;;;:7;;;;;;;;;:32;27358:15;;27326:62;;27343:4;;27358:15;27376:11;27326:8;:62::i;:::-;27399:15;;:224;;-1:-1:-1;;;27399:224:0;;-1:-1:-1;;;;;27399:15:0;;;;:66;;:224;;27480:11;;27399:15;;27550:4;;27577;;27597:15;;27399:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;222:180:1;281:6;334:2;322:9;313:7;309:23;305:32;302:52;;;350:1;347;340:12;302:52;-1:-1:-1;373:23:1;;222:180;-1:-1:-1;222:180:1:o;407:597::-;519:4;548:2;577;566:9;559:21;609:6;603:13;652:6;647:2;636:9;632:18;625:34;677:1;687:140;701:6;698:1;695:13;687:140;;;796:14;;;792:23;;786:30;762:17;;;781:2;758:26;751:66;716:10;;687:140;;;845:6;842:1;839:13;836:91;;;915:1;910:2;901:6;890:9;886:22;882:31;875:42;836:91;-1:-1:-1;988:2:1;967:15;-1:-1:-1;;963:29:1;948:45;;;;995:2;944:54;;407:597;-1:-1:-1;;;407:597:1:o;1009:131::-;-1:-1:-1;;;;;1084:31:1;;1074:42;;1064:70;;1130:1;1127;1120:12;1145:160;1210:20;;1266:13;;1259:21;1249:32;;1239:60;;1295:1;1292;1285:12;1239:60;1145:160;;;:::o;1310:315::-;1375:6;1383;1436:2;1424:9;1415:7;1411:23;1407:32;1404:52;;;1452:1;1449;1442:12;1404:52;1491:9;1478:23;1510:31;1535:5;1510:31;:::i;:::-;1560:5;-1:-1:-1;1584:35:1;1615:2;1600:18;;1584:35;:::i;:::-;1574:45;;1310:315;;;;;:::o;1630:::-;1698:6;1706;1759:2;1747:9;1738:7;1734:23;1730:32;1727:52;;;1775:1;1772;1765:12;1727:52;1814:9;1801:23;1833:31;1858:5;1833:31;:::i;:::-;1883:5;1935:2;1920:18;;;;1907:32;;-1:-1:-1;;;1630:315:1:o;2559:247::-;2618:6;2671:2;2659:9;2650:7;2646:23;2642:32;2639:52;;;2687:1;2684;2677:12;2639:52;2726:9;2713:23;2745:31;2770:5;2745:31;:::i;2811:127::-;2872:10;2867:3;2863:20;2860:1;2853:31;2903:4;2900:1;2893:15;2927:4;2924:1;2917:15;2943:275;3014:2;3008:9;3079:2;3060:13;;-1:-1:-1;;3056:27:1;3044:40;;3114:18;3099:34;;3135:22;;;3096:62;3093:88;;;3161:18;;:::i;:::-;3197:2;3190:22;2943:275;;-1:-1:-1;2943:275:1:o;3223:183::-;3283:4;3316:18;3308:6;3305:30;3302:56;;;3338:18;;:::i;:::-;-1:-1:-1;3383:1:1;3379:14;3395:4;3375:25;;3223:183::o;3411:662::-;3465:5;3518:3;3511:4;3503:6;3499:17;3495:27;3485:55;;3536:1;3533;3526:12;3485:55;3572:6;3559:20;3598:4;3622:60;3638:43;3678:2;3638:43;:::i;:::-;3622:60;:::i;:::-;3716:15;;;3802:1;3798:10;;;;3786:23;;3782:32;;;3747:12;;;;3826:15;;;3823:35;;;3854:1;3851;3844:12;3823:35;3890:2;3882:6;3878:15;3902:142;3918:6;3913:3;3910:15;3902:142;;;3984:17;;3972:30;;4022:12;;;;3935;;3902:142;;;-1:-1:-1;4062:5:1;3411:662;-1:-1:-1;;;;;;3411:662:1:o;4078:1215::-;4196:6;4204;4257:2;4245:9;4236:7;4232:23;4228:32;4225:52;;;4273:1;4270;4263:12;4225:52;4313:9;4300:23;4342:18;4383:2;4375:6;4372:14;4369:34;;;4399:1;4396;4389:12;4369:34;4437:6;4426:9;4422:22;4412:32;;4482:7;4475:4;4471:2;4467:13;4463:27;4453:55;;4504:1;4501;4494:12;4453:55;4540:2;4527:16;4562:4;4586:60;4602:43;4642:2;4602:43;:::i;4586:60::-;4680:15;;;4762:1;4758:10;;;;4750:19;;4746:28;;;4711:12;;;;4786:19;;;4783:39;;;4818:1;4815;4808:12;4783:39;4842:11;;;;4862:217;4878:6;4873:3;4870:15;4862:217;;;4958:3;4945:17;4975:31;5000:5;4975:31;:::i;:::-;5019:18;;4895:12;;;;5057;;;;4862:217;;;5098:5;-1:-1:-1;;5141:18:1;;5128:32;;-1:-1:-1;;5172:16:1;;;5169:36;;;5201:1;5198;5191:12;5169:36;;5224:63;5279:7;5268:8;5257:9;5253:24;5224:63;:::i;:::-;5214:73;;;4078:1215;;;;;:::o;5298:456::-;5375:6;5383;5391;5444:2;5432:9;5423:7;5419:23;5415:32;5412:52;;;5460:1;5457;5450:12;5412:52;5499:9;5486:23;5518:31;5543:5;5518:31;:::i;:::-;5568:5;-1:-1:-1;5625:2:1;5610:18;;5597:32;5638:33;5597:32;5638:33;:::i;:::-;5298:456;;5690:7;;-1:-1:-1;;;5744:2:1;5729:18;;;;5716:32;;5298:456::o;5948:180::-;6004:6;6057:2;6045:9;6036:7;6032:23;6028:32;6025:52;;;6073:1;6070;6063:12;6025:52;6096:26;6112:9;6096:26;:::i;6357:523::-;6461:6;6469;6477;6485;6493;6501;6554:3;6542:9;6533:7;6529:23;6525:33;6522:53;;;6571:1;6568;6561:12;6522:53;-1:-1:-1;;6594:23:1;;;6664:2;6649:18;;6636:32;;-1:-1:-1;6715:2:1;6700:18;;6687:32;;6766:2;6751:18;;6738:32;;-1:-1:-1;6817:3:1;6802:19;;6789:33;;-1:-1:-1;6869:3:1;6854:19;6841:33;;-1:-1:-1;6357:523:1;-1:-1:-1;6357:523:1:o;6885:388::-;6953:6;6961;7014:2;7002:9;6993:7;6989:23;6985:32;6982:52;;;7030:1;7027;7020:12;6982:52;7069:9;7056:23;7088:31;7113:5;7088:31;:::i;:::-;7138:5;-1:-1:-1;7195:2:1;7180:18;;7167:32;7208:33;7167:32;7208:33;:::i;:::-;7260:7;7250:17;;;6885:388;;;;;:::o;7278:356::-;7480:2;7462:21;;;7499:18;;;7492:30;7558:34;7553:2;7538:18;;7531:62;7625:2;7610:18;;7278:356::o;7639:127::-;7700:10;7695:3;7691:20;7688:1;7681:31;7731:4;7728:1;7721:15;7755:4;7752:1;7745:15;7771:168;7811:7;7877:1;7873;7869:6;7865:14;7862:1;7859:21;7854:1;7847:9;7840:17;7836:45;7833:71;;;7884:18;;:::i;:::-;-1:-1:-1;7924:9:1;;7771:168::o;7944:380::-;8023:1;8019:12;;;;8066;;;8087:61;;8141:4;8133:6;8129:17;8119:27;;8087:61;8194:2;8186:6;8183:14;8163:18;8160:38;8157:161;;8240:10;8235:3;8231:20;8228:1;8221:31;8275:4;8272:1;8265:15;8303:4;8300:1;8293:15;8157:161;;7944:380;;;:::o;9091:127::-;9152:10;9147:3;9143:20;9140:1;9133:31;9183:4;9180:1;9173:15;9207:4;9204:1;9197:15;9223:135;9262:3;9283:17;;;9280:43;;9303:18;;:::i;:::-;-1:-1:-1;9350:1:1;9339:13;;9223:135::o;11046:217::-;11086:1;11112;11102:132;;11156:10;11151:3;11147:20;11144:1;11137:31;11191:4;11188:1;11181:15;11219:4;11216:1;11209:15;11102:132;-1:-1:-1;11248:9:1;;11046:217::o;11677:128::-;11717:3;11748:1;11744:6;11741:1;11738:13;11735:39;;;11754:18;;:::i;:::-;-1:-1:-1;11790:9:1;;11677:128::o;17637:125::-;17677:4;17705:1;17702;17699:8;17696:34;;;17710:18;;:::i;:::-;-1:-1:-1;17747:9:1;;17637:125::o;17767:251::-;17837:6;17890:2;17878:9;17869:7;17865:23;17861:32;17858:52;;;17906:1;17903;17896:12;17858:52;17938:9;17932:16;17957:31;17982:5;17957:31;:::i;18023:980::-;18285:4;18333:3;18322:9;18318:19;18364:6;18353:9;18346:25;18390:2;18428:6;18423:2;18412:9;18408:18;18401:34;18471:3;18466:2;18455:9;18451:18;18444:31;18495:6;18530;18524:13;18561:6;18553;18546:22;18599:3;18588:9;18584:19;18577:26;;18638:2;18630:6;18626:15;18612:29;;18659:1;18669:195;18683:6;18680:1;18677:13;18669:195;;;18748:13;;-1:-1:-1;;;;;18744:39:1;18732:52;;18839:15;;;;18804:12;;;;18780:1;18698:9;18669:195;;;-1:-1:-1;;;;;;;18920:32:1;;;;18915:2;18900:18;;18893:60;-1:-1:-1;;;18984:3:1;18969:19;18962:35;18881:3;18023:980;-1:-1:-1;;;18023:980:1:o
Swarm Source
ipfs://c85f4cad478988f3350ed7eecdeeb6ff91a3b4ae4885c65bd07d8558de656285
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.