ERC-20
Overview
Max Total Supply
1,000,000,000 ROVER
Holders
11
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
15,630,988.446360879687740771 ROVERValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
BlockRover
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-25 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.20; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping (address => uint256) internal _balances; mapping (address => mapping (address => uint256)) internal _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor (string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); _balances[sender] = senderBalance - amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } } library Address{ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IFactory{ function createPair(address tokenA, address tokenB) external returns (address pair); } interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; } contract BlockRover is ERC20, Ownable{ using Address for address payable; IRouter public router; address public pair; bool private swapping; bool public swapEnabled; bool public launched; event TransferForeignToken(address token, uint256 amount); event Launched(); event SwapEnabled(); event SwapThresholdUpdated(); event BuyTaxesUpdated(); event SellTaxesUpdated(); event MarketingWalletUpdated(); event DevWalletUpdated(); event ExcludedFromFeesUpdated(); event MaxTxAmountUpdated(); event MaxWalletAmountUpdated(); event StuckEthersCleared(); uint256 public swapThreshold = 1000000 * 10**18; //0.1% of total supply uint256 public maxTxAmount = 1000000000 * 10**18; uint256 public maxWalletAmount = 1000000000 * 10**18; address public marketingWallet = 0x80Af268627Cb5c9f241952f538de6ae9312B0970; address public devWallet = 0x66E355305044414c1fdE8893fdDC0F55C2B0C715; struct Taxes { uint256 marketing; uint256 liquidity; uint256 dev; } Taxes public buyTaxes = Taxes(4,0,1); Taxes public sellTaxes = Taxes(4,0,1); uint256 private totBuyTax = 5; uint256 private totSellTax = 5; mapping (address => bool) public excludedFromFees; modifier inSwap() { if (!swapping) { swapping = true; _; swapping = false; } } constructor() ERC20("Block Rover", "ROVER") { _mint(msg.sender, 1000000000 * 10 ** decimals()); excludedFromFees[msg.sender] = true; IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _pair = IFactory(_router.factory()) .createPair(address(this), _router.WETH()); router = _router; pair = _pair; excludedFromFees[address(this)] = true; excludedFromFees[marketingWallet] = true; excludedFromFees[devWallet] = true; } function _transfer(address sender, address recipient, uint256 amount) internal override { require(amount > 0, "Transfer amount must be greater than zero"); if(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){ require(launched, "Trading not active yet"); require(amount <= maxTxAmount, "You are exceeding maxTxAmount"); if(recipient != pair){ require(balanceOf(recipient) + amount <= maxWalletAmount, "You are exceeding maxWalletAmount"); } } uint256 fee; if (swapping || excludedFromFees[sender] || excludedFromFees[recipient]) fee = 0; else{ if(recipient == pair) fee = amount * totSellTax / 100; else if(sender == pair) fee = amount * totBuyTax / 100; else fee = 0; } if (swapEnabled && !swapping && sender != pair && fee > 0) swapForFees(); super._transfer(sender, recipient, amount - fee); if(fee > 0) super._transfer(sender, address(this) ,fee); } function swapForFees() private inSwap { uint256 contractBalance = balanceOf(address(this)); if (contractBalance >= swapThreshold) { uint256 denominator = totSellTax * 2; uint256 tokensToAddLiquidityWith = contractBalance * sellTaxes.liquidity / denominator; uint256 toSwap = contractBalance - tokensToAddLiquidityWith; uint256 initialBalance = address(this).balance; swapTokensForETH(toSwap); uint256 deltaBalance = address(this).balance - initialBalance; uint256 unitBalance= deltaBalance / (denominator - sellTaxes.liquidity); uint256 ethToAddLiquidityWith = unitBalance * sellTaxes.liquidity; if(tokensToAddLiquidityWith > 0 && ethToAddLiquidityWith > 0){ // Add liquidity to dex addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith); } uint256 marketingAmt = unitBalance * 2 * sellTaxes.marketing; if(marketingAmt > 0){ payable(marketingWallet).sendValue(marketingAmt); } uint256 devAmt = unitBalance * 2 * sellTaxes.dev; if(devAmt > 0){ payable(devWallet).sendValue(devAmt); } } } function swapTokensForETH(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); // make the swap router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp); } function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(router), tokenAmount); // add the liquidity router.addLiquidityETH{value: bnbAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable address(0xdead), block.timestamp ); } function setSwapEnabled(bool state) external onlyOwner { // to be used only in case of dire emergency swapEnabled = state; emit SwapEnabled(); } function setSwapThreshold(uint256 new_amount) external onlyOwner { require(new_amount >= 10000, "Swap amount cannot be lower than 0.001% total supply."); require(new_amount <= 30000000, "Swap amount cannot be higher than 3% total supply."); swapThreshold = new_amount * (10**18); emit SwapThresholdUpdated(); } function launch() external onlyOwner{ require(!launched, "Trading already active"); launched = true; swapEnabled = true; emit Launched(); } function setBuyTaxes(uint256 _marketing, uint256 _liquidity, uint256 _dev) external onlyOwner{ buyTaxes = Taxes(_marketing, _liquidity, _dev); totBuyTax = _marketing + _liquidity + _dev; require(totBuyTax <= 5,"Total buy fees cannot be greater than 5%"); emit BuyTaxesUpdated(); } function setSellTaxes(uint256 _marketing, uint256 _liquidity, uint256 _dev) external onlyOwner{ sellTaxes = Taxes(_marketing, _liquidity, _dev); totSellTax = _marketing + _liquidity + _dev; require(totSellTax <= 99,"Total sell fees cannot be greater than 99%"); require(totSellTax >= 1,"Total sell fees cannot beless than 1%"); emit SellTaxesUpdated(); } function updateMarketingWallet(address newWallet) external onlyOwner{ excludedFromFees[marketingWallet] = false; require(newWallet != address(0), "Marketing Wallet cannot be zero address"); marketingWallet = newWallet; emit MarketingWalletUpdated(); } function updateDevWallet(address newWallet) external onlyOwner{ excludedFromFees[devWallet] = false; require(newWallet != address(0), "Dev Wallet cannot be zero address"); devWallet = newWallet; emit DevWalletUpdated(); } function updateExcludedFromFees(address _address, bool state) external onlyOwner { excludedFromFees[_address] = state; emit ExcludedFromFeesUpdated(); } function updateMaxTxAmount(uint256 amount) external onlyOwner{ require(amount >= 2500000, "Cannot set maxSell lower than 0.25%"); maxTxAmount = amount * (10**18); emit MaxTxAmountUpdated(); } function updateMaxWalletAmount(uint256 amount) external onlyOwner{ require(amount >= 2500000, "Cannot set maxSell lower than 0.25%"); maxWalletAmount = amount * (10**18); emit MaxWalletAmountUpdated(); } function withdrawStuckTokens(address _token, address _to) external onlyOwner returns (bool _sent) { require(_token != address(this), "Can't withdraw Rover tokens"); uint256 _contractBalance = IERC20(_token).balanceOf(address(this)); _sent = IERC20(_token).transfer(_to, _contractBalance); emit TransferForeignToken(_token, _contractBalance); } function clearStuckEthers(uint256 amountPercentage) external onlyOwner { uint256 amountETH = address(this).balance; payable(msg.sender).transfer((amountETH * amountPercentage) / 100); emit StuckEthersCleared(); } // fallbacks receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"BuyTaxesUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"DevWalletUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"ExcludedFromFeesUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"Launched","type":"event"},{"anonymous":false,"inputs":[],"name":"MarketingWalletUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"MaxWalletAmountUpdated","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":[],"name":"SellTaxesUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"StuckEthersCleared","type":"event"},{"anonymous":false,"inputs":[],"name":"SwapEnabled","type":"event"},{"anonymous":false,"inputs":[],"name":"SwapThresholdUpdated","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":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferForeignToken","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckEthers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launched","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"withdrawStuckTokens","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
69d3c21bcecceda10000006008556b033b2e3c9fd0803ce80000006009819055600a55600b80546001600160a01b03199081167380af268627cb5c9f241952f538de6ae9312b097017909155600c80549091167366e355305044414c1fde8893fddc0f55c2b0c715179055600460808190525f60a0819052600160c0819052600d839055600e829055600f81905561014060405260e083905261010082905261012081905260109290925560115560125560056013819055601455348015620000c6575f80fd5b506040518060400160405280600b81526020016a213637b1b5902937bb32b960a91b815250604051806040016040528060058152602001642927ab22a960d91b81525081600390816200011a919062000537565b50600462000129828262000537565b50505062000146620001406200035960201b60201c565b6200035d565b6200016f33620001596012600a6200070e565b6200016990633b9aca0062000725565b620003ae565b335f908152601560209081526040808320805460ff19166001179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a015592600480830193928290030181865afa158015620001d7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001fd91906200073f565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000249573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200026f91906200073f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002ba573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002e091906200073f565b600680546001600160a01b03199081166001600160a01b03958616179091556007805490911691841691909117905550305f90815260156020526040808220805460ff199081166001908117909255600b54851684528284208054821683179055600c549094168352912080549092161790556200077d565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620004095760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f8282546200041c919062000767565b90915550506001600160a01b0382165f90815260208190526040812080548392906200044a90849062000767565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620004c157607f821691505b602082108103620004e057634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000493575f81815260208120601f850160051c810160208610156200050e5750805b601f850160051c820191505b818110156200052f578281556001016200051a565b505050505050565b81516001600160401b0381111562000553576200055362000498565b6200056b81620005648454620004ac565b84620004e6565b602080601f831160018114620005a1575f8415620005895750858301515b5f19600386901b1c1916600185901b1785556200052f565b5f85815260208120601f198616915b82811015620005d157888601518255948401946001909101908401620005b0565b5085821015620005ef57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200065357815f1904821115620006375762000637620005ff565b808516156200064557918102915b93841c939080029062000618565b509250929050565b5f826200066b5750600162000708565b816200067957505f62000708565b81600181146200069257600281146200069d57620006bd565b600191505062000708565b60ff841115620006b157620006b1620005ff565b50506001821b62000708565b5060208310610133831016604e8410600b8410161715620006e2575081810a62000708565b620006ee838362000613565b805f1904821115620007045762000704620005ff565b0290505b92915050565b5f6200071e60ff8416836200065b565b9392505050565b8082028115828204841417620007085762000708620005ff565b5f6020828403121562000750575f80fd5b81516001600160a01b03811681146200071e575f80fd5b80820180821115620007085762000708620005ff565b6123af806200078b5f395ff3fe608060405260043610610220575f3560e01c80638c0b5e221161011e578063aa4bde28116100a8578063e01af92c1161006d578063e01af92c1461067e578063e545fd6d1461069d578063f2fde38b146106bc578063f66895a3146106db578063f887ea40146106f9575f80fd5b8063aa4bde28146105b9578063aacebbe3146105ce578063c18bc195146105ed578063dbe66ca01461060c578063dd62ed3e1461063a575f80fd5b80639aed7370116100ee5780639aed73701461051e5780639d0014b11461053d578063a457c2d71461055c578063a8aa1b311461057b578063a9059cbb1461059a575f80fd5b80638c0b5e22146104b95780638da5cb5b146104ce5780638ea5220f146104eb57806395d89b411461050a575f80fd5b806325b86edf116101aa57806370a082311161016f57806370a08231146103e1578063715018a61461041557806375f0a874146104295780638091f3bf14610460578063864701a514610480575f80fd5b806325b86edf14610349578063313ce5671461036857806339509351146103835780636256d181146103a25780636ddd1713146103c1575f80fd5b8063095ea7b3116101f0578063095ea7b3146102a957806318160ddd146102d85780631816467f146102ec5780631870517a1461030b57806323b872dd1461032a575f80fd5b806301339c211461022b5780630445b6671461024157806306fdde0314610269578063087332141461028a575f80fd5b3661022757005b5f80fd5b348015610236575f80fd5b5061023f610718565b005b34801561024c575f80fd5b5061025660085481565b6040519081526020015b60405180910390f35b348015610274575f80fd5b5061027d6107dd565b6040516102609190611faa565b348015610295575f80fd5b5061023f6102a4366004611ff5565b61086d565b3480156102b4575f80fd5b506102c86102c3366004612032565b6109ca565b6040519015158152602001610260565b3480156102e3575f80fd5b50600254610256565b3480156102f7575f80fd5b5061023f61030636600461205c565b6109e0565b348015610316575f80fd5b5061023f610325366004611ff5565b610acb565b348015610335575f80fd5b506102c861034436600461207e565b610bc4565b348015610354575f80fd5b506102c86103633660046120bc565b610c73565b348015610373575f80fd5b5060405160128152602001610260565b34801561038e575f80fd5b506102c861039d366004612032565b610e1f565b3480156103ad575f80fd5b5061023f6103bc3660046120f3565b610e55565b3480156103cc575f80fd5b506007546102c890600160a81b900460ff1681565b3480156103ec575f80fd5b506102566103fb36600461205c565b6001600160a01b03165f9081526020819052604090205490565b348015610420575f80fd5b5061023f610ee2565b348015610434575f80fd5b50600b54610448906001600160a01b031681565b6040516001600160a01b039091168152602001610260565b34801561046b575f80fd5b506007546102c890600160b01b900460ff1681565b34801561048b575f80fd5b50600d54600e54600f5461049e92919083565b60408051938452602084019290925290820152606001610260565b3480156104c4575f80fd5b5061025660095481565b3480156104d9575f80fd5b506005546001600160a01b0316610448565b3480156104f6575f80fd5b50600c54610448906001600160a01b031681565b348015610515575f80fd5b5061027d610f17565b348015610529575f80fd5b5061023f6105383660046120f3565b610f26565b348015610548575f80fd5b5061023f6105573660046120f3565b610fbd565b348015610567575f80fd5b506102c8610576366004612032565b611105565b348015610586575f80fd5b50600754610448906001600160a01b031681565b3480156105a5575f80fd5b506102c86105b4366004612032565b61119f565b3480156105c4575f80fd5b50610256600a5481565b3480156105d9575f80fd5b5061023f6105e836600461205c565b6111ab565b3480156105f8575f80fd5b5061023f6106073660046120f3565b61129c565b348015610617575f80fd5b506102c861062636600461205c565b60156020525f908152604090205460ff1681565b348015610645575f80fd5b506102566106543660046120bc565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610689575f80fd5b5061023f610698366004612117565b611329565b3480156106a8575f80fd5b5061023f6106b7366004612132565b611395565b3480156106c7575f80fd5b5061023f6106d636600461205c565b61140c565b3480156106e6575f80fd5b5060105460115460125461049e92919083565b348015610704575f80fd5b50600654610448906001600160a01b031681565b6005546001600160a01b0316331461074b5760405162461bcd60e51b81526004016107429061215e565b60405180910390fd5b600754600160b01b900460ff161561079e5760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b6044820152606401610742565b6007805461ffff60a81b191661010160a81b1790556040517fba61a96074b3d636edeee92caddc86293c917d5b6818b7d3698bb52e02ec86c8905f90a1565b6060600380546107ec90612193565b80601f016020809104026020016040519081016040528092919081815260200182805461081890612193565b80156108635780601f1061083a57610100808354040283529160200191610863565b820191905f5260205f20905b81548152906001019060200180831161084657829003601f168201915b5050505050905090565b6005546001600160a01b031633146108975760405162461bcd60e51b81526004016107429061215e565b604080516060810182528481526020810184905201819052601083905560118290556012819055806108c983856121df565b6108d391906121df565b60148190556063101561093b5760405162461bcd60e51b815260206004820152602a60248201527f546f74616c2073656c6c20666565732063616e6e6f742062652067726561746560448201526972207468616e2039392560b01b6064820152608401610742565b6001601454101561099d5760405162461bcd60e51b815260206004820152602660248201527f546f74616c2073656c6c20666565732063616e6e6f742062656c65737320207460448201526568616e20312560d01b6064820152608401610742565b6040517f13f91d6936cb30f23ecef75125dc94fead23e2cb4beb9d95058df43aa8c30785905f90a1505050565b5f6109d63384846114a7565b5060015b92915050565b6005546001600160a01b03163314610a0a5760405162461bcd60e51b81526004016107429061215e565b600c546001600160a01b039081165f908152601560205260409020805460ff191690558116610a855760405162461bcd60e51b815260206004820152602160248201527f4465762057616c6c65742063616e6e6f74206265207a65726f206164647265736044820152607360f81b6064820152608401610742565b600c80546001600160a01b0319166001600160a01b0383161790556040517fb1ff7734afd0bd4b584e4245b67b49289f9a8f5cce43431866ec130f40d81831905f90a150565b6005546001600160a01b03163314610af55760405162461bcd60e51b81526004016107429061215e565b604080516060810182528481526020810184905201819052600d839055600e829055600f81905580610b2783856121df565b610b3191906121df565b601381905560051015610b975760405162461bcd60e51b815260206004820152602860248201527f546f74616c2062757920666565732063616e6e6f742062652067726561746572604482015267207468616e20352560c01b6064820152608401610742565b6040517f5603f0cab8983038ffb2c31e46a497a67322819231397b1a4eff19e46e39851d905f90a1505050565b5f610bd08484846115ca565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610c545760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610742565b610c688533610c6386856121f2565b6114a7565b506001949350505050565b6005545f906001600160a01b03163314610c9f5760405162461bcd60e51b81526004016107429061215e565b306001600160a01b03841603610cf75760405162461bcd60e51b815260206004820152601b60248201527f43616e277420776974686472617720526f76657220746f6b656e7300000000006044820152606401610742565b6040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610d3b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d5f9190612205565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303815f875af1158015610daf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd3919061221c565b604080516001600160a01b0387168152602081018490529193507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e438910160405180910390a15092915050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916109d6918590610c639086906121df565b6005546001600160a01b03163314610e7f5760405162461bcd60e51b81526004016107429061215e565b622625a0811015610ea25760405162461bcd60e51b815260040161074290612237565b610eb481670de0b6b3a764000061227a565b6009556040517f3fb2441f7fb0cf4882020ee77c4b9fb347bdbbf2fa439c76ca667e1b55f18b2b905f90a150565b6005546001600160a01b03163314610f0c5760405162461bcd60e51b81526004016107429061215e565b610f155f611902565b565b6060600480546107ec90612193565b6005546001600160a01b03163314610f505760405162461bcd60e51b81526004016107429061215e565b47336108fc6064610f61858561227a565b610f6b9190612291565b6040518115909202915f818181858888f19350505050158015610f90573d5f803e3d5ffd5b506040517ff20a449062e534a116785d71bddf65609cfc0bc86030f808c97d76660ddb4bf9905f90a15050565b6005546001600160a01b03163314610fe75760405162461bcd60e51b81526004016107429061215e565b6127108110156110575760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610742565b6301c9c3808111156110c65760405162461bcd60e51b815260206004820152603260248201527f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160448201527137101992903a37ba30b61039bab838363c9760711b6064820152608401610742565b6110d881670de0b6b3a764000061227a565b6008556040517ee5ce26a39fffb27e333aa941bc88d6cc7491c7ad00e1dc92cae29c83aec93d905f90a150565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156111865760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610742565b6111953385610c6386856121f2565b5060019392505050565b5f6109d63384846115ca565b6005546001600160a01b031633146111d55760405162461bcd60e51b81526004016107429061215e565b600b546001600160a01b039081165f908152601560205260409020805460ff1916905581166112565760405162461bcd60e51b815260206004820152602760248201527f4d61726b6574696e672057616c6c65742063616e6e6f74206265207a65726f206044820152666164647265737360c81b6064820152608401610742565b600b80546001600160a01b0319166001600160a01b0383161790556040517fecc84d499d57318161ab7effa4a1797c7500e9cce582fce989611566acadb0e0905f90a150565b6005546001600160a01b031633146112c65760405162461bcd60e51b81526004016107429061215e565b622625a08110156112e95760405162461bcd60e51b815260040161074290612237565b6112fb81670de0b6b3a764000061227a565b600a556040517f49b5ebe6b6bd29b732eb93789df6cb9d7d384e64ab8600b8ab879f82a4fb1dec905f90a150565b6005546001600160a01b031633146113535760405162461bcd60e51b81526004016107429061215e565b6007805460ff60a81b1916600160a81b831515021790556040517f41c787961cb389554b90a8dbfb700790a3f278f50ba1d330c0b555d884789b5a905f90a150565b6005546001600160a01b031633146113bf5760405162461bcd60e51b81526004016107429061215e565b6001600160a01b0382165f90815260156020526040808220805460ff1916841515179055517fd03e5aecc1463f851cb441202cc200cd8754891d6b125b332588db1948d4cbed9190a15050565b6005546001600160a01b031633146114365760405162461bcd60e51b81526004016107429061215e565b6001600160a01b03811661149b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610742565b6114a481611902565b50565b6001600160a01b0383166115095760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610742565b6001600160a01b03821661156a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610742565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f811161162b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610742565b6001600160a01b0383165f9081526015602052604090205460ff1615801561166b57506001600160a01b0382165f9081526015602052604090205460ff16155b80156116815750600754600160a01b900460ff16155b156117c357600754600160b01b900460ff166116d85760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b6044820152606401610742565b60095481111561172a5760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e740000006044820152606401610742565b6007546001600160a01b038381169116146117c357600a5481611761846001600160a01b03165f9081526020819052604090205490565b61176b91906121df565b11156117c35760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e6044820152601d60fa1b6064820152608401610742565b6007545f90600160a01b900460ff16806117f457506001600160a01b0384165f9081526015602052604090205460ff165b8061181657506001600160a01b0383165f9081526015602052604090205460ff165b1561182257505f611882565b6007546001600160a01b039081169084160361185957606460145483611848919061227a565b6118529190612291565b9050611882565b6007546001600160a01b039081169085160361187f57606460135483611848919061227a565b505f5b600754600160a81b900460ff1680156118a55750600754600160a01b900460ff16155b80156118bf57506007546001600160a01b03858116911614155b80156118ca57505f81115b156118d7576118d7611953565b6118eb84846118e684866121f2565b611abb565b80156118fc576118fc843083611abb565b50505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b600754600160a01b900460ff16610f15576007805460ff60a01b1916600160a01b179055305f9081526020819052604081205490506008548110611aab575f60145460026119a1919061227a565b90505f81601060010154846119b6919061227a565b6119c09190612291565b90505f6119cd82856121f2565b9050476119d982611c91565b5f6119e482476121f2565b6011549091505f906119f690876121f2565b611a009083612291565b6011549091505f90611a12908361227a565b90505f86118015611a2257505f81115b15611a3157611a318682611de1565b6010545f90611a4184600261227a565b611a4b919061227a565b90508015611a6957600b54611a69906001600160a01b031682611e90565b6012545f90611a7985600261227a565b611a83919061227a565b90508015611aa157600c54611aa1906001600160a01b031682611e90565b5050505050505050505b506007805460ff60a01b19169055565b6001600160a01b038316611b1f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610742565b6001600160a01b038216611b815760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610742565b6001600160a01b0383165f9081526020819052604090205481811015611bf85760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610742565b611c0282826121f2565b6001600160a01b038086165f908152602081905260408082209390935590851681529081208054849290611c379084906121df565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c8391815260200190565b60405180910390a350505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611cc457611cc46122b0565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d3f91906122c4565b81600181518110611d5257611d526122b0565b6001600160a01b039283166020918202929092010152600654611d7891309116846114a7565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611db09085905f908690309042906004016122df565b5f604051808303815f87803b158015611dc7575f80fd5b505af1158015611dd9573d5f803e3d5ffd5b505050505050565b600654611df99030906001600160a01b0316846114a7565b60065460405163f305d71960e01b8152306004820152602481018490525f60448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611e64573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611e89919061234e565b5050505050565b80471015611ee05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610742565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611f29576040519150601f19603f3d011682016040523d82523d5f602084013e611f2e565b606091505b5050905080611fa55760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610742565b505050565b5f6020808352835180828501525f5b81811015611fd557858101830151858201604001528201611fb9565b505f604082860101526040601f19601f8301168501019250505092915050565b5f805f60608486031215612007575f80fd5b505081359360208301359350604090920135919050565b6001600160a01b03811681146114a4575f80fd5b5f8060408385031215612043575f80fd5b823561204e8161201e565b946020939093013593505050565b5f6020828403121561206c575f80fd5b81356120778161201e565b9392505050565b5f805f60608486031215612090575f80fd5b833561209b8161201e565b925060208401356120ab8161201e565b929592945050506040919091013590565b5f80604083850312156120cd575f80fd5b82356120d88161201e565b915060208301356120e88161201e565b809150509250929050565b5f60208284031215612103575f80fd5b5035919050565b80151581146114a4575f80fd5b5f60208284031215612127575f80fd5b81356120778161210a565b5f8060408385031215612143575f80fd5b823561214e8161201e565b915060208301356120e88161210a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c908216806121a757607f821691505b6020821081036121c557634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156109da576109da6121cb565b818103818111156109da576109da6121cb565b5f60208284031215612215575f80fd5b5051919050565b5f6020828403121561222c575f80fd5b81516120778161210a565b60208082526023908201527f43616e6e6f7420736574206d617853656c6c206c6f776572207468616e20302e60408201526232352560e81b606082015260800190565b80820281158282048414176109da576109da6121cb565b5f826122ab57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156122d4575f80fd5b81516120778161201e565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561232d5784516001600160a01b031683529383019391830191600101612308565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612360575f80fd5b835192506020840151915060408401519050925092509256fea264697066735822122067b89a437af4f756087956f3320099d6e9e97ffb9fdd03057b704fa780ca8e9164736f6c63430008140033
Deployed Bytecode
0x608060405260043610610220575f3560e01c80638c0b5e221161011e578063aa4bde28116100a8578063e01af92c1161006d578063e01af92c1461067e578063e545fd6d1461069d578063f2fde38b146106bc578063f66895a3146106db578063f887ea40146106f9575f80fd5b8063aa4bde28146105b9578063aacebbe3146105ce578063c18bc195146105ed578063dbe66ca01461060c578063dd62ed3e1461063a575f80fd5b80639aed7370116100ee5780639aed73701461051e5780639d0014b11461053d578063a457c2d71461055c578063a8aa1b311461057b578063a9059cbb1461059a575f80fd5b80638c0b5e22146104b95780638da5cb5b146104ce5780638ea5220f146104eb57806395d89b411461050a575f80fd5b806325b86edf116101aa57806370a082311161016f57806370a08231146103e1578063715018a61461041557806375f0a874146104295780638091f3bf14610460578063864701a514610480575f80fd5b806325b86edf14610349578063313ce5671461036857806339509351146103835780636256d181146103a25780636ddd1713146103c1575f80fd5b8063095ea7b3116101f0578063095ea7b3146102a957806318160ddd146102d85780631816467f146102ec5780631870517a1461030b57806323b872dd1461032a575f80fd5b806301339c211461022b5780630445b6671461024157806306fdde0314610269578063087332141461028a575f80fd5b3661022757005b5f80fd5b348015610236575f80fd5b5061023f610718565b005b34801561024c575f80fd5b5061025660085481565b6040519081526020015b60405180910390f35b348015610274575f80fd5b5061027d6107dd565b6040516102609190611faa565b348015610295575f80fd5b5061023f6102a4366004611ff5565b61086d565b3480156102b4575f80fd5b506102c86102c3366004612032565b6109ca565b6040519015158152602001610260565b3480156102e3575f80fd5b50600254610256565b3480156102f7575f80fd5b5061023f61030636600461205c565b6109e0565b348015610316575f80fd5b5061023f610325366004611ff5565b610acb565b348015610335575f80fd5b506102c861034436600461207e565b610bc4565b348015610354575f80fd5b506102c86103633660046120bc565b610c73565b348015610373575f80fd5b5060405160128152602001610260565b34801561038e575f80fd5b506102c861039d366004612032565b610e1f565b3480156103ad575f80fd5b5061023f6103bc3660046120f3565b610e55565b3480156103cc575f80fd5b506007546102c890600160a81b900460ff1681565b3480156103ec575f80fd5b506102566103fb36600461205c565b6001600160a01b03165f9081526020819052604090205490565b348015610420575f80fd5b5061023f610ee2565b348015610434575f80fd5b50600b54610448906001600160a01b031681565b6040516001600160a01b039091168152602001610260565b34801561046b575f80fd5b506007546102c890600160b01b900460ff1681565b34801561048b575f80fd5b50600d54600e54600f5461049e92919083565b60408051938452602084019290925290820152606001610260565b3480156104c4575f80fd5b5061025660095481565b3480156104d9575f80fd5b506005546001600160a01b0316610448565b3480156104f6575f80fd5b50600c54610448906001600160a01b031681565b348015610515575f80fd5b5061027d610f17565b348015610529575f80fd5b5061023f6105383660046120f3565b610f26565b348015610548575f80fd5b5061023f6105573660046120f3565b610fbd565b348015610567575f80fd5b506102c8610576366004612032565b611105565b348015610586575f80fd5b50600754610448906001600160a01b031681565b3480156105a5575f80fd5b506102c86105b4366004612032565b61119f565b3480156105c4575f80fd5b50610256600a5481565b3480156105d9575f80fd5b5061023f6105e836600461205c565b6111ab565b3480156105f8575f80fd5b5061023f6106073660046120f3565b61129c565b348015610617575f80fd5b506102c861062636600461205c565b60156020525f908152604090205460ff1681565b348015610645575f80fd5b506102566106543660046120bc565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610689575f80fd5b5061023f610698366004612117565b611329565b3480156106a8575f80fd5b5061023f6106b7366004612132565b611395565b3480156106c7575f80fd5b5061023f6106d636600461205c565b61140c565b3480156106e6575f80fd5b5060105460115460125461049e92919083565b348015610704575f80fd5b50600654610448906001600160a01b031681565b6005546001600160a01b0316331461074b5760405162461bcd60e51b81526004016107429061215e565b60405180910390fd5b600754600160b01b900460ff161561079e5760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b6044820152606401610742565b6007805461ffff60a81b191661010160a81b1790556040517fba61a96074b3d636edeee92caddc86293c917d5b6818b7d3698bb52e02ec86c8905f90a1565b6060600380546107ec90612193565b80601f016020809104026020016040519081016040528092919081815260200182805461081890612193565b80156108635780601f1061083a57610100808354040283529160200191610863565b820191905f5260205f20905b81548152906001019060200180831161084657829003601f168201915b5050505050905090565b6005546001600160a01b031633146108975760405162461bcd60e51b81526004016107429061215e565b604080516060810182528481526020810184905201819052601083905560118290556012819055806108c983856121df565b6108d391906121df565b60148190556063101561093b5760405162461bcd60e51b815260206004820152602a60248201527f546f74616c2073656c6c20666565732063616e6e6f742062652067726561746560448201526972207468616e2039392560b01b6064820152608401610742565b6001601454101561099d5760405162461bcd60e51b815260206004820152602660248201527f546f74616c2073656c6c20666565732063616e6e6f742062656c65737320207460448201526568616e20312560d01b6064820152608401610742565b6040517f13f91d6936cb30f23ecef75125dc94fead23e2cb4beb9d95058df43aa8c30785905f90a1505050565b5f6109d63384846114a7565b5060015b92915050565b6005546001600160a01b03163314610a0a5760405162461bcd60e51b81526004016107429061215e565b600c546001600160a01b039081165f908152601560205260409020805460ff191690558116610a855760405162461bcd60e51b815260206004820152602160248201527f4465762057616c6c65742063616e6e6f74206265207a65726f206164647265736044820152607360f81b6064820152608401610742565b600c80546001600160a01b0319166001600160a01b0383161790556040517fb1ff7734afd0bd4b584e4245b67b49289f9a8f5cce43431866ec130f40d81831905f90a150565b6005546001600160a01b03163314610af55760405162461bcd60e51b81526004016107429061215e565b604080516060810182528481526020810184905201819052600d839055600e829055600f81905580610b2783856121df565b610b3191906121df565b601381905560051015610b975760405162461bcd60e51b815260206004820152602860248201527f546f74616c2062757920666565732063616e6e6f742062652067726561746572604482015267207468616e20352560c01b6064820152608401610742565b6040517f5603f0cab8983038ffb2c31e46a497a67322819231397b1a4eff19e46e39851d905f90a1505050565b5f610bd08484846115ca565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610c545760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610742565b610c688533610c6386856121f2565b6114a7565b506001949350505050565b6005545f906001600160a01b03163314610c9f5760405162461bcd60e51b81526004016107429061215e565b306001600160a01b03841603610cf75760405162461bcd60e51b815260206004820152601b60248201527f43616e277420776974686472617720526f76657220746f6b656e7300000000006044820152606401610742565b6040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610d3b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d5f9190612205565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303815f875af1158015610daf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd3919061221c565b604080516001600160a01b0387168152602081018490529193507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e438910160405180910390a15092915050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916109d6918590610c639086906121df565b6005546001600160a01b03163314610e7f5760405162461bcd60e51b81526004016107429061215e565b622625a0811015610ea25760405162461bcd60e51b815260040161074290612237565b610eb481670de0b6b3a764000061227a565b6009556040517f3fb2441f7fb0cf4882020ee77c4b9fb347bdbbf2fa439c76ca667e1b55f18b2b905f90a150565b6005546001600160a01b03163314610f0c5760405162461bcd60e51b81526004016107429061215e565b610f155f611902565b565b6060600480546107ec90612193565b6005546001600160a01b03163314610f505760405162461bcd60e51b81526004016107429061215e565b47336108fc6064610f61858561227a565b610f6b9190612291565b6040518115909202915f818181858888f19350505050158015610f90573d5f803e3d5ffd5b506040517ff20a449062e534a116785d71bddf65609cfc0bc86030f808c97d76660ddb4bf9905f90a15050565b6005546001600160a01b03163314610fe75760405162461bcd60e51b81526004016107429061215e565b6127108110156110575760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610742565b6301c9c3808111156110c65760405162461bcd60e51b815260206004820152603260248201527f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160448201527137101992903a37ba30b61039bab838363c9760711b6064820152608401610742565b6110d881670de0b6b3a764000061227a565b6008556040517ee5ce26a39fffb27e333aa941bc88d6cc7491c7ad00e1dc92cae29c83aec93d905f90a150565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156111865760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610742565b6111953385610c6386856121f2565b5060019392505050565b5f6109d63384846115ca565b6005546001600160a01b031633146111d55760405162461bcd60e51b81526004016107429061215e565b600b546001600160a01b039081165f908152601560205260409020805460ff1916905581166112565760405162461bcd60e51b815260206004820152602760248201527f4d61726b6574696e672057616c6c65742063616e6e6f74206265207a65726f206044820152666164647265737360c81b6064820152608401610742565b600b80546001600160a01b0319166001600160a01b0383161790556040517fecc84d499d57318161ab7effa4a1797c7500e9cce582fce989611566acadb0e0905f90a150565b6005546001600160a01b031633146112c65760405162461bcd60e51b81526004016107429061215e565b622625a08110156112e95760405162461bcd60e51b815260040161074290612237565b6112fb81670de0b6b3a764000061227a565b600a556040517f49b5ebe6b6bd29b732eb93789df6cb9d7d384e64ab8600b8ab879f82a4fb1dec905f90a150565b6005546001600160a01b031633146113535760405162461bcd60e51b81526004016107429061215e565b6007805460ff60a81b1916600160a81b831515021790556040517f41c787961cb389554b90a8dbfb700790a3f278f50ba1d330c0b555d884789b5a905f90a150565b6005546001600160a01b031633146113bf5760405162461bcd60e51b81526004016107429061215e565b6001600160a01b0382165f90815260156020526040808220805460ff1916841515179055517fd03e5aecc1463f851cb441202cc200cd8754891d6b125b332588db1948d4cbed9190a15050565b6005546001600160a01b031633146114365760405162461bcd60e51b81526004016107429061215e565b6001600160a01b03811661149b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610742565b6114a481611902565b50565b6001600160a01b0383166115095760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610742565b6001600160a01b03821661156a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610742565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f811161162b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610742565b6001600160a01b0383165f9081526015602052604090205460ff1615801561166b57506001600160a01b0382165f9081526015602052604090205460ff16155b80156116815750600754600160a01b900460ff16155b156117c357600754600160b01b900460ff166116d85760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b6044820152606401610742565b60095481111561172a5760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e740000006044820152606401610742565b6007546001600160a01b038381169116146117c357600a5481611761846001600160a01b03165f9081526020819052604090205490565b61176b91906121df565b11156117c35760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e6044820152601d60fa1b6064820152608401610742565b6007545f90600160a01b900460ff16806117f457506001600160a01b0384165f9081526015602052604090205460ff165b8061181657506001600160a01b0383165f9081526015602052604090205460ff165b1561182257505f611882565b6007546001600160a01b039081169084160361185957606460145483611848919061227a565b6118529190612291565b9050611882565b6007546001600160a01b039081169085160361187f57606460135483611848919061227a565b505f5b600754600160a81b900460ff1680156118a55750600754600160a01b900460ff16155b80156118bf57506007546001600160a01b03858116911614155b80156118ca57505f81115b156118d7576118d7611953565b6118eb84846118e684866121f2565b611abb565b80156118fc576118fc843083611abb565b50505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b600754600160a01b900460ff16610f15576007805460ff60a01b1916600160a01b179055305f9081526020819052604081205490506008548110611aab575f60145460026119a1919061227a565b90505f81601060010154846119b6919061227a565b6119c09190612291565b90505f6119cd82856121f2565b9050476119d982611c91565b5f6119e482476121f2565b6011549091505f906119f690876121f2565b611a009083612291565b6011549091505f90611a12908361227a565b90505f86118015611a2257505f81115b15611a3157611a318682611de1565b6010545f90611a4184600261227a565b611a4b919061227a565b90508015611a6957600b54611a69906001600160a01b031682611e90565b6012545f90611a7985600261227a565b611a83919061227a565b90508015611aa157600c54611aa1906001600160a01b031682611e90565b5050505050505050505b506007805460ff60a01b19169055565b6001600160a01b038316611b1f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610742565b6001600160a01b038216611b815760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610742565b6001600160a01b0383165f9081526020819052604090205481811015611bf85760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610742565b611c0282826121f2565b6001600160a01b038086165f908152602081905260408082209390935590851681529081208054849290611c379084906121df565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c8391815260200190565b60405180910390a350505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611cc457611cc46122b0565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d3f91906122c4565b81600181518110611d5257611d526122b0565b6001600160a01b039283166020918202929092010152600654611d7891309116846114a7565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611db09085905f908690309042906004016122df565b5f604051808303815f87803b158015611dc7575f80fd5b505af1158015611dd9573d5f803e3d5ffd5b505050505050565b600654611df99030906001600160a01b0316846114a7565b60065460405163f305d71960e01b8152306004820152602481018490525f60448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611e64573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611e89919061234e565b5050505050565b80471015611ee05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610742565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611f29576040519150601f19603f3d011682016040523d82523d5f602084013e611f2e565b606091505b5050905080611fa55760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610742565b505050565b5f6020808352835180828501525f5b81811015611fd557858101830151858201604001528201611fb9565b505f604082860101526040601f19601f8301168501019250505092915050565b5f805f60608486031215612007575f80fd5b505081359360208301359350604090920135919050565b6001600160a01b03811681146114a4575f80fd5b5f8060408385031215612043575f80fd5b823561204e8161201e565b946020939093013593505050565b5f6020828403121561206c575f80fd5b81356120778161201e565b9392505050565b5f805f60608486031215612090575f80fd5b833561209b8161201e565b925060208401356120ab8161201e565b929592945050506040919091013590565b5f80604083850312156120cd575f80fd5b82356120d88161201e565b915060208301356120e88161201e565b809150509250929050565b5f60208284031215612103575f80fd5b5035919050565b80151581146114a4575f80fd5b5f60208284031215612127575f80fd5b81356120778161210a565b5f8060408385031215612143575f80fd5b823561214e8161201e565b915060208301356120e88161210a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c908216806121a757607f821691505b6020821081036121c557634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156109da576109da6121cb565b818103818111156109da576109da6121cb565b5f60208284031215612215575f80fd5b5051919050565b5f6020828403121561222c575f80fd5b81516120778161210a565b60208082526023908201527f43616e6e6f7420736574206d617853656c6c206c6f776572207468616e20302e60408201526232352560e81b606082015260800190565b80820281158282048414176109da576109da6121cb565b5f826122ab57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156122d4575f80fd5b81516120778161201e565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561232d5784516001600160a01b031683529383019391830191600101612308565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612360575f80fd5b835192506020840151915060408401519050925092509256fea264697066735822122067b89a437af4f756087956f3320099d6e9e97ffb9fdd03057b704fa780ca8e9164736f6c63430008140033
Deployed Bytecode Sourcemap
7256:8903:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13286:180;;;;;;;;;;;;;:::i;:::-;;7921:47;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;7921:47:0;;;;;;;;1693:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;13803:405::-;;;;;;;;;;-1:-1:-1;13803:405:0;;;;;:::i;:::-;;:::i;2607:169::-;;;;;;;;;;-1:-1:-1;2607:169:0;;;;;:::i;:::-;;:::i;:::-;;;1691:14:1;;1684:22;1666:41;;1654:2;1639:18;2607:169:0;1526:187:1;2014:108:0;;;;;;;;;;-1:-1:-1;2102:12:0;;2014:108;;14528:262;;;;;;;;;;-1:-1:-1;14528:262:0;;;;;:::i;:::-;;:::i;13474:321::-;;;;;;;;;;-1:-1:-1;13474:321:0;;;;;:::i;:::-;;:::i;2784:422::-;;;;;;;;;;-1:-1:-1;2784:422:0;;;;;:::i;:::-;;:::i;15463:384::-;;;;;;;;;;-1:-1:-1;15463:384:0;;;;;:::i;:::-;;:::i;1913:93::-;;;;;;;;;;-1:-1:-1;1913:93:0;;1996:2;2966:36:1;;2954:2;2939:18;1913:93:0;2824:184:1;3214:215:0;;;;;;;;;;-1:-1:-1;3214:215:0;;;;;:::i;:::-;;:::i;14985:223::-;;;;;;;;;;-1:-1:-1;14985:223:0;;;;;:::i;:::-;;:::i;7434:23::-;;;;;;;;;;-1:-1:-1;7434:23:0;;;;-1:-1:-1;;;7434:23:0;;;;;;2130:127;;;;;;;;;;-1:-1:-1;2130:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;2231:18:0;2204:7;2231:18;;;;;;;;;;;;2130:127;6033:94;;;;;;;;;;;;;:::i;8119:75::-;;;;;;;;;;-1:-1:-1;8119:75:0;;;;-1:-1:-1;;;;;8119:75:0;;;;;;-1:-1:-1;;;;;3362:32:1;;;3344:51;;3332:2;3317:18;8119:75:0;3198:203:1;7464:20:0;;;;;;;;;;-1:-1:-1;7464:20:0;;;;-1:-1:-1;;;7464:20:0;;;;;;8395:36;;;;;;;;;;-1:-1:-1;8395:36:0;;;;;;;;;;;;;;;;3608:25:1;;;3664:2;3649:18;;3642:34;;;;3692:18;;;3685:34;3596:2;3581:18;8395:36:0;3406:319:1;7998:48:0;;;;;;;;;;;;;;;;5810:87;;;;;;;;;;-1:-1:-1;5883:6:0;;-1:-1:-1;;;;;5883:6:0;5810:87;;8201:69;;;;;;;;;;-1:-1:-1;8201:69:0;;;;-1:-1:-1;;;;;8201:69:0;;;1801:104;;;;;;;;;;;;;:::i;15855:244::-;;;;;;;;;;-1:-1:-1;15855:244:0;;;;;:::i;:::-;;:::i;12927:351::-;;;;;;;;;;-1:-1:-1;12927:351:0;;;;;:::i;:::-;;:::i;3437:377::-;;;;;;;;;;-1:-1:-1;3437:377:0;;;;;:::i;:::-;;:::i;7374:19::-;;;;;;;;;;-1:-1:-1;7374:19:0;;;;-1:-1:-1;;;;;7374:19:0;;;2265:175;;;;;;;;;;-1:-1:-1;2265:175:0;;;;;:::i;:::-;;:::i;8054:52::-;;;;;;;;;;;;;;;;14220:297;;;;;;;;;;-1:-1:-1;14220:297:0;;;;;:::i;:::-;;:::i;15220:235::-;;;;;;;;;;-1:-1:-1;15220:235:0;;;;;:::i;:::-;;:::i;8561:49::-;;;;;;;;;;-1:-1:-1;8561:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2448:151;;;;;;;;;;-1:-1:-1;2448:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;2564:18:0;;;2537:7;2564:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2448:151;12752:167;;;;;;;;;;-1:-1:-1;12752:167:0;;;;;:::i;:::-;;:::i;14798:175::-;;;;;;;;;;-1:-1:-1;14798:175:0;;;;;:::i;:::-;;:::i;6135:192::-;;;;;;;;;;-1:-1:-1;6135:192:0;;;;;:::i;:::-;;:::i;8438:37::-;;;;;;;;;;-1:-1:-1;8438:37:0;;;;;;;;;;;;7346:21;;;;;;;;;;-1:-1:-1;7346:21:0;;;;-1:-1:-1;;;;;7346:21:0;;;13286:180;5883:6;;-1:-1:-1;;;;;5883:6:0;175:10;5945:23;5937:68;;;;-1:-1:-1;;;5937:68:0;;;;;;;:::i;:::-;;;;;;;;;13342:8:::1;::::0;-1:-1:-1;;;13342:8:0;::::1;;;13341:9;13333:44;;;::::0;-1:-1:-1;;;13333:44:0;;5272:2:1;13333:44:0::1;::::0;::::1;5254:21:1::0;5311:2;5291:18;;;5284:30;-1:-1:-1;;;5330:18:1;;;5323:52;5392:18;;13333:44:0::1;5070:346:1::0;13333:44:0::1;13388:8;:15:::0;;-1:-1:-1;;;;13414:18:0;-1:-1:-1;;;13414:18:0;;;13448:10:::1;::::0;::::1;::::0;-1:-1:-1;;13448:10:0::1;13286:180::o:0;1693:100::-;1747:13;1780:5;1773:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1693:100;:::o;13803:405::-;5883:6;;-1:-1:-1;;;;;5883:6:0;175:10;5945:23;5937:68;;;;-1:-1:-1;;;5937:68:0;;;;;;;:::i;:::-;13920:35:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;13908:9:::1;:47:::0;;;;;;;;;;;13950:4;13979:23:::1;13938:10:::0;13926;13979:23:::1;:::i;:::-;:30;;;;:::i;:::-;13966:10;:43:::0;;;14042:2:::1;-1:-1:-1::0;14028:16:0::1;14020:70;;;::::0;-1:-1:-1;;;14020:70:0;;6270:2:1;14020:70:0::1;::::0;::::1;6252:21:1::0;6309:2;6289:18;;;6282:30;6348:34;6328:18;;;6321:62;-1:-1:-1;;;6399:18:1;;;6392:40;6449:19;;14020:70:0::1;6068:406:1::0;14020:70:0::1;14123:1;14109:10;;:15;;14101:65;;;::::0;-1:-1:-1;;;14101:65:0;;6681:2:1;14101:65:0::1;::::0;::::1;6663:21:1::0;6720:2;6700:18;;;6693:30;6759:34;6739:18;;;6732:62;-1:-1:-1;;;6810:18:1;;;6803:36;6856:19;;14101:65:0::1;6479:402:1::0;14101:65:0::1;14182:18;::::0;::::1;::::0;;;::::1;13803:405:::0;;;:::o;2607:169::-;2690:4;2707:39;175:10;2730:7;2739:6;2707:8;:39::i;:::-;-1:-1:-1;2764:4:0;2607:169;;;;;:::o;14528:262::-;5883:6;;-1:-1:-1;;;;;5883:6:0;175:10;5945:23;5937:68;;;;-1:-1:-1;;;5937:68:0;;;;;;;:::i;:::-;14618:9:::1;::::0;-1:-1:-1;;;;;14618:9:0;;::::1;14631:5;14601:27:::0;;;:16:::1;:27;::::0;;;;:35;;-1:-1:-1;;14601:35:0::1;::::0;;14655:23;::::1;14647:69;;;::::0;-1:-1:-1;;;14647:69:0;;7088:2:1;14647:69:0::1;::::0;::::1;7070:21:1::0;7127:2;7107:18;;;7100:30;7166:34;7146:18;;;7139:62;-1:-1:-1;;;7217:18:1;;;7210:31;7258:19;;14647:69:0::1;6886:397:1::0;14647:69:0::1;14727:9;:21:::0;;-1:-1:-1;;;;;;14727:21:0::1;-1:-1:-1::0;;;;;14727:21:0;::::1;;::::0;;14764:18:::1;::::0;::::1;::::0;-1:-1:-1;;14764:18:0::1;14528:262:::0;:::o;13474:321::-;5883:6;;-1:-1:-1;;;;;5883:6:0;175:10;5945:23;5937:68;;;;-1:-1:-1;;;5937:68:0;;;;;;;:::i;:::-;13589:35:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;13578:8:::1;:46:::0;;;;;;;;;;;13619:4;13647:23:::1;13607:10:::0;13595;13647:23:::1;:::i;:::-;:30;;;;:::i;:::-;13635:9;:42:::0;;;13709:1:::1;-1:-1:-1::0;13696:14:0::1;13688:66;;;::::0;-1:-1:-1;;;13688:66:0;;7490:2:1;13688:66:0::1;::::0;::::1;7472:21:1::0;7529:2;7509:18;;;7502:30;7568:34;7548:18;;;7541:62;-1:-1:-1;;;7619:18:1;;;7612:38;7667:19;;13688:66:0::1;7288:404:1::0;13688:66:0::1;13770:17;::::0;::::1;::::0;;;::::1;13474:321:::0;;;:::o;2784:422::-;2890:4;2907:36;2917:6;2925:9;2936:6;2907:9;:36::i;:::-;-1:-1:-1;;;;;2983:19:0;;2956:24;2983:19;;;:11;:19;;;;;;;;175:10;2983:33;;;;;;;;3035:26;;;;3027:79;;;;-1:-1:-1;;;3027:79:0;;7899:2:1;3027:79:0;;;7881:21:1;7938:2;7918:18;;;7911:30;7977:34;7957:18;;;7950:62;-1:-1:-1;;;8028:18:1;;;8021:38;8076:19;;3027:79:0;7697:404:1;3027:79:0;3117:57;3126:6;175:10;3148:25;3167:6;3148:16;:25;:::i;:::-;3117:8;:57::i;:::-;-1:-1:-1;3194:4:0;;2784:422;-1:-1:-1;;;;2784:422:0:o;15463:384::-;5883:6;;15549:10;;-1:-1:-1;;;;;5883:6:0;175:10;5945:23;5937:68;;;;-1:-1:-1;;;5937:68:0;;;;;;;:::i;:::-;15598:4:::1;-1:-1:-1::0;;;;;15580:23:0;::::1;::::0;15572:63:::1;;;::::0;-1:-1:-1;;;15572:63:0;;8441:2:1;15572:63:0::1;::::0;::::1;8423:21:1::0;8480:2;8460:18;;;8453:30;8519:29;8499:18;;;8492:57;8566:18;;15572:63:0::1;8239:351:1::0;15572:63:0::1;15673:39;::::0;-1:-1:-1;;;15673:39:0;;15706:4:::1;15673:39;::::0;::::1;3344:51:1::0;15646:24:0::1;::::0;-1:-1:-1;;;;;15673:24:0;::::1;::::0;::::1;::::0;3317:18:1;;15673:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15731:46;::::0;-1:-1:-1;;;15731:46:0;;-1:-1:-1;;;;;8976:32:1;;;15731:46:0::1;::::0;::::1;8958:51:1::0;9025:18;;;9018:34;;;15646:66:0;;-1:-1:-1;15731:23:0;;::::1;::::0;::::1;::::0;8931:18:1;;15731:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15793;::::0;;-1:-1:-1;;;;;8976:32:1;;8958:51;;9040:2;9025:18;;9018:34;;;15723:54:0;;-1:-1:-1;15793:46:0::1;::::0;8931:18:1;15793:46:0::1;;;;;;;15561:286;15463:384:::0;;;;:::o;3214:215::-;175:10;3302:4;3351:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3351:34:0;;;;;;;;;;3302:4;;3319:80;;3342:7;;3351:47;;3388:10;;3351:47;:::i;14985:223::-;5883:6;;-1:-1:-1;;;;;5883:6:0;175:10;5945:23;5937:68;;;;-1:-1:-1;;;5937:68:0;;;;;;;:::i;:::-;15075:7:::1;15065:6;:17;;15057:65;;;;-1:-1:-1::0;;;15057:65:0::1;;;;;;;:::i;:::-;15147:17;:6:::0;15157::::1;15147:17;:::i;:::-;15133:11;:31:::0;15180:20:::1;::::0;::::1;::::0;;;::::1;14985:223:::0;:::o;6033:94::-;5883:6;;-1:-1:-1;;;;;5883:6:0;175:10;5945:23;5937:68;;;;-1:-1:-1;;;5937:68:0;;;;;;;:::i;:::-;6098:21:::1;6116:1;6098:9;:21::i;:::-;6033:94::o:0;1801:104::-;1857:13;1890:7;1883:14;;;;;:::i;15855:244::-;5883:6;;-1:-1:-1;;;;;5883:6:0;175:10;5945:23;5937:68;;;;-1:-1:-1;;;5937:68:0;;;;;;;:::i;:::-;15957:21:::1;15997:10;15989:66;16051:3;16019:28;16031:16:::0;15957:21;16019:28:::1;:::i;:::-;16018:36;;;;:::i;:::-;15989:66;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;16071:20:0::1;::::0;::::1;::::0;;;::::1;15926:173;15855:244:::0;:::o;12927:351::-;5883:6;;-1:-1:-1;;;;;5883:6:0;175:10;5945:23;5937:68;;;;-1:-1:-1;;;5937:68:0;;;;;;;:::i;:::-;13025:5:::1;13011:10;:19;;13003:85;;;::::0;-1:-1:-1;;;13003:85:0;;10314:2:1;13003:85:0::1;::::0;::::1;10296:21:1::0;10353:2;10333:18;;;10326:30;10392:34;10372:18;;;10365:62;-1:-1:-1;;;10443:18:1;;;10436:51;10504:19;;13003:85:0::1;10112:417:1::0;13003:85:0::1;13121:8;13107:10;:22;;13099:85;;;::::0;-1:-1:-1;;;13099:85:0;;10736:2:1;13099:85:0::1;::::0;::::1;10718:21:1::0;10775:2;10755:18;;;10748:30;10814:34;10794:18;;;10787:62;-1:-1:-1;;;10865:18:1;;;10858:48;10923:19;;13099:85:0::1;10534:414:1::0;13099:85:0::1;13211:21;:10:::0;13225:6:::1;13211:21;:::i;:::-;13195:13;:37:::0;13248:22:::1;::::0;::::1;::::0;;;::::1;12927:351:::0;:::o;3437:377::-;175:10;3530:4;3574:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3574:34:0;;;;;;;;;;3627:35;;;;3619:85;;;;-1:-1:-1;;;3619:85:0;;11155:2:1;3619:85:0;;;11137:21:1;11194:2;11174:18;;;11167:30;11233:34;11213:18;;;11206:62;-1:-1:-1;;;11284:18:1;;;11277:35;11329:19;;3619:85:0;10953:401:1;3619:85:0;3715:67;175:10;3738:7;3747:34;3766:15;3747:16;:34;:::i;3715:67::-;-1:-1:-1;3802:4:0;;3437:377;-1:-1:-1;;;3437:377:0:o;2265:175::-;2351:4;2368:42;175:10;2392:9;2403:6;2368:9;:42::i;14220:297::-;5883:6;;-1:-1:-1;;;;;5883:6:0;175:10;5945:23;5937:68;;;;-1:-1:-1;;;5937:68:0;;;;;;;:::i;:::-;14316:15:::1;::::0;-1:-1:-1;;;;;14316:15:0;;::::1;14335:5;14299:33:::0;;;:16:::1;:33;::::0;;;;:41;;-1:-1:-1;;14299:41:0::1;::::0;;14359:23;::::1;14351:75;;;::::0;-1:-1:-1;;;14351:75:0;;11561:2:1;14351:75:0::1;::::0;::::1;11543:21:1::0;11600:2;11580:18;;;11573:30;11639:34;11619:18;;;11612:62;-1:-1:-1;;;11690:18:1;;;11683:37;11737:19;;14351:75:0::1;11359:403:1::0;14351:75:0::1;14437:15;:27:::0;;-1:-1:-1;;;;;;14437:27:0::1;-1:-1:-1::0;;;;;14437:27:0;::::1;;::::0;;14480:24:::1;::::0;::::1;::::0;-1:-1:-1;;14480:24:0::1;14220:297:::0;:::o;15220:235::-;5883:6;;-1:-1:-1;;;;;5883:6:0;175:10;5945:23;5937:68;;;;-1:-1:-1;;;5937:68:0;;;;;;;:::i;:::-;15314:7:::1;15304:6;:17;;15296:65;;;;-1:-1:-1::0;;;15296:65:0::1;;;;;;;:::i;:::-;15390:17;:6:::0;15400::::1;15390:17;:::i;:::-;15372:15;:35:::0;15423:24:::1;::::0;::::1;::::0;;;::::1;15220:235:::0;:::o;12752:167::-;5883:6;;-1:-1:-1;;;;;5883:6:0;175:10;5945:23;5937:68;;;;-1:-1:-1;;;5937:68:0;;;;;;;:::i;:::-;12863:11:::1;:19:::0;;-1:-1:-1;;;;12863:19:0::1;-1:-1:-1::0;;;12863:19:0;::::1;;;;::::0;;12898:13:::1;::::0;::::1;::::0;-1:-1:-1;;12898:13:0::1;12752:167:::0;:::o;14798:175::-;5883:6;;-1:-1:-1;;;;;5883:6:0;175:10;5945:23;5937:68;;;;-1:-1:-1;;;5937:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14890:26:0;::::1;;::::0;;;:16:::1;:26;::::0;;;;;:34;;-1:-1:-1;;14890:34:0::1;::::0;::::1;;;::::0;;14940:25;::::1;::::0;14890:26;14940:25:::1;14798:175:::0;;:::o;6135:192::-;5883:6;;-1:-1:-1;;;;;5883:6:0;175:10;5945:23;5937:68;;;;-1:-1:-1;;;5937:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6224:22:0;::::1;6216:73;;;::::0;-1:-1:-1;;;6216:73:0;;11969:2:1;6216:73:0::1;::::0;::::1;11951:21:1::0;12008:2;11988:18;;;11981:30;12047:34;12027:18;;;12020:62;-1:-1:-1;;;12098:18:1;;;12091:36;12144:19;;6216:73:0::1;11767:402:1::0;6216:73:0::1;6300:19;6310:8;6300:9;:19::i;:::-;6135:192:::0;:::o;4780:346::-;-1:-1:-1;;;;;4882:19:0;;4874:68;;;;-1:-1:-1;;;4874:68:0;;12376:2:1;4874:68:0;;;12358:21:1;12415:2;12395:18;;;12388:30;12454:34;12434:18;;;12427:62;-1:-1:-1;;;12505:18:1;;;12498:34;12549:19;;4874:68:0;12174:400:1;4874:68:0;-1:-1:-1;;;;;4961:21:0;;4953:68;;;;-1:-1:-1;;;4953:68:0;;12781:2:1;4953:68:0;;;12763:21:1;12820:2;12800:18;;;12793:30;12859:34;12839:18;;;12832:62;-1:-1:-1;;;12910:18:1;;;12903:32;12952:19;;4953:68:0;12579:398:1;4953:68:0;-1:-1:-1;;;;;5034:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5086:32;;160:25:1;;;5086:32:0;;133:18:1;5086:32:0;;;;;;;4780:346;;;:::o;9329:1145::-;9445:1;9436:6;:10;9428:64;;;;-1:-1:-1;;;9428:64:0;;13184:2:1;9428:64:0;;;13166:21:1;13223:2;13203:18;;;13196:30;13262:34;13242:18;;;13235:62;-1:-1:-1;;;13313:18:1;;;13306:39;13362:19;;9428:64:0;12982:405:1;9428:64:0;-1:-1:-1;;;;;9535:24:0;;;;;;:16;:24;;;;;;;;9534:25;:57;;;;-1:-1:-1;;;;;;9564:27:0;;;;;;:16;:27;;;;;;;;9563:28;9534:57;:70;;;;-1:-1:-1;9596:8:0;;-1:-1:-1;;;9596:8:0;;;;9595:9;9534:70;9531:386;;;9628:8;;-1:-1:-1;;;9628:8:0;;;;9620:43;;;;-1:-1:-1;;;9620:43:0;;13594:2:1;9620:43:0;;;13576:21:1;13633:2;13613:18;;;13606:30;-1:-1:-1;;;13652:18:1;;;13645:52;13714:18;;9620:43:0;13392:346:1;9620:43:0;9696:11;;9686:6;:21;;9678:63;;;;-1:-1:-1;;;9678:63:0;;13945:2:1;9678:63:0;;;13927:21:1;13984:2;13964:18;;;13957:30;14023:31;14003:18;;;13996:59;14072:18;;9678:63:0;13743:353:1;9678:63:0;9772:4;;-1:-1:-1;;;;;9759:17:0;;;9772:4;;9759:17;9756:150;;9837:15;;9827:6;9804:20;9814:9;-1:-1:-1;;;;;2231:18:0;2204:7;2231:18;;;;;;;;;;;;2130:127;9804:20;:29;;;;:::i;:::-;:48;;9796:94;;;;-1:-1:-1;;;9796:94:0;;14303:2:1;9796:94:0;;;14285:21:1;14342:2;14322:18;;;14315:30;14381:34;14361:18;;;14354:62;-1:-1:-1;;;14432:18:1;;;14425:31;14473:19;;9796:94:0;14101:397:1;9796:94:0;9967:8;;9929:11;;-1:-1:-1;;;9967:8:0;;;;;:36;;-1:-1:-1;;;;;;9979:24:0;;;;;;:16;:24;;;;;;;;9967:36;:67;;;-1:-1:-1;;;;;;10007:27:0;;;;;;:16;:27;;;;;;;;9967:67;9963:282;;;-1:-1:-1;10042:1:0;9963:282;;;10100:4;;-1:-1:-1;;;;;10100:4:0;;;10087:17;;;;10084:149;;10134:3;10121:10;;10112:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;10106:31;;10084:149;;;10170:4;;-1:-1:-1;;;;;10170:4:0;;;10160:14;;;;10157:76;;10203:3;10191:9;;10182:6;:18;;;;:::i;10157:76::-;-1:-1:-1;10232:1:0;10157:76;10269:11;;-1:-1:-1;;;10269:11:0;;;;:24;;;;-1:-1:-1;10285:8:0;;-1:-1:-1;;;10285:8:0;;;;10284:9;10269:24;:42;;;;-1:-1:-1;10307:4:0;;-1:-1:-1;;;;;10297:14:0;;;10307:4;;10297:14;;10269:42;:53;;;;;10321:1;10315:3;:7;10269:53;10265:72;;;10324:13;:11;:13::i;:::-;10350:48;10366:6;10374:9;10385:12;10394:3;10385:6;:12;:::i;:::-;10350:15;:48::i;:::-;10412:7;;10409:55;;10421:43;10437:6;10453:4;10460:3;10421:15;:43::i;:::-;9417:1057;9329:1145;;;:::o;6335:173::-;6410:6;;;-1:-1:-1;;;;;6427:17:0;;;-1:-1:-1;;;;;;6427:17:0;;;;;;;6460:40;;6410:6;;;6427:17;6410:6;;6460:40;;6391:16;;6460:40;6380:128;6335:173;:::o;10480:1349::-;8657:8;;-1:-1:-1;;;8657:8:0;;;;8652:104;;8682:8;:15;;-1:-1:-1;;;;8682:15:0;-1:-1:-1;;;8682:15:0;;;10573:4:::1;-1:-1:-1::0;2231:18:0;;;;;;;;;;;10529:50:::1;;10615:13;;10596:15;:32;10592:1230;;10647:19;10669:10;;10682:1;10669:14;;;;:::i;:::-;10647:36;;10698:32;10773:11;10751:9;:19;;;10733:15;:37;;;;:::i;:::-;:51;;;;:::i;:::-;10698:86:::0;-1:-1:-1;10799:14:0::1;10816:42;10698:86:::0;10816:15;:42:::1;:::i;:::-;10799:59:::0;-1:-1:-1;10904:21:0::1;10946:24;10799:59:::0;10946:16:::1;:24::i;:::-;10991:20;11014:38;11038:14:::0;11014:21:::1;:38;:::i;:::-;11118:19:::0;;10991:61;;-1:-1:-1;11067:19:0::1;::::0;11104:33:::1;::::0;:11;:33:::1;:::i;:::-;11088:50;::::0;:12;:50:::1;:::i;:::-;11199:19:::0;;11067:71;;-1:-1:-1;11153:29:0::1;::::0;11185:33:::1;::::0;11067:71;11185:33:::1;:::i;:::-;11153:65;;11269:1;11242:24;:28;:57;;;;;11298:1;11274:21;:25;11242:57;11239:198;;;11360:61;11373:24;11399:21;11360:12;:61::i;:::-;11498:9;:19:::0;11457:20:::1;::::0;11480:15:::1;:11:::0;11494:1:::1;11480:15;:::i;:::-;:37;;;;:::i;:::-;11457:60:::0;-1:-1:-1;11535:16:0;;11532:103:::1;;11579:15;::::0;11571:48:::1;::::0;-1:-1:-1;;;;;11579:15:0::1;11606:12:::0;11571:34:::1;:48::i;:::-;11698:13:::0;;11663:14:::1;::::0;11680:15:::1;:11:::0;11698:13:::1;11680:15;:::i;:::-;:31;;;;:::i;:::-;11663:48:::0;-1:-1:-1;11729:10:0;;11726:85:::1;;11767:9;::::0;11759:36:::1;::::0;-1:-1:-1;;;;;11767:9:0::1;11788:6:::0;11759:28:::1;:36::i;:::-;10630:1192;;;;;;;;;10592:1230;-1:-1:-1::0;8728:8:0;:16;;-1:-1:-1;;;;8728:16:0;;;10480:1349::o;3822:604::-;-1:-1:-1;;;;;3928:20:0;;3920:70;;;;-1:-1:-1;;;3920:70:0;;14705:2:1;3920:70:0;;;14687:21:1;14744:2;14724:18;;;14717:30;14783:34;14763:18;;;14756:62;-1:-1:-1;;;14834:18:1;;;14827:35;14879:19;;3920:70:0;14503:401:1;3920:70:0;-1:-1:-1;;;;;4009:23:0;;4001:71;;;;-1:-1:-1;;;4001:71:0;;15111:2:1;4001:71:0;;;15093:21:1;15150:2;15130:18;;;15123:30;15189:34;15169:18;;;15162:62;-1:-1:-1;;;15240:18:1;;;15233:33;15283:19;;4001:71:0;14909:399:1;4001:71:0;-1:-1:-1;;;;;4169:17:0;;4145:21;4169:17;;;;;;;;;;;4205:23;;;;4197:74;;;;-1:-1:-1;;;4197:74:0;;15515:2:1;4197:74:0;;;15497:21:1;15554:2;15534:18;;;15527:30;15593:34;15573:18;;;15566:62;-1:-1:-1;;;15644:18:1;;;15637:36;15690:19;;4197:74:0;15313:402:1;4197:74:0;4302:22;4318:6;4302:13;:22;:::i;:::-;-1:-1:-1;;;;;4282:17:0;;;:9;:17;;;;;;;;;;;:42;;;;4335:20;;;;;;;;:30;;4359:6;;4282:9;4335:30;;4359:6;;4335:30;:::i;:::-;;;;;;;;4400:9;-1:-1:-1;;;;;4383:35:0;4392:6;-1:-1:-1;;;;;4383:35:0;;4411:6;4383:35;;;;160:25:1;;148:2;133:18;;14:177;4383:35:0;;;;;;;;3909:517;3822:604;;;:::o;11837:398::-;11927:16;;;11941:1;11927:16;;;;;;;;11903:21;;11927:16;;;;;;;;;;-1:-1:-1;11927:16:0;11903:40;;11972:4;11954;11959:1;11954:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11954:23:0;;;:7;;;;;;;;;;:23;;;;11998:6;;:13;;;-1:-1:-1;;;11998:13:0;;;;:6;;;;;:11;;:13;;;;;11954:7;;11998:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11988:4;11993:1;11988:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11988:23:0;;;:7;;;;;;;;;:23;12056:6;;12024:53;;12041:4;;12056:6;12065:11;12024:8;:53::i;:::-;12116:6;;:111;;-1:-1:-1;;;12116:111:0;;-1:-1:-1;;;;;12116:6:0;;;;:57;;:111;;12174:11;;12116:6;;12190:4;;12204;;12211:15;;12116:111;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11892:343;11837:398;:::o;12243:503::-;12423:6;;12391:53;;12408:4;;-1:-1:-1;;;;;12423:6:0;12432:11;12391:8;:53::i;:::-;12487:6;;:251;;-1:-1:-1;;;12487:251:0;;12550:4;12487:251;;;17566:34:1;17616:18;;;17609:34;;;12487:6:0;17659:18:1;;;17652:34;;;17702:18;;;17695:34;12690:6:0;17745:19:1;;;17738:44;12712:15:0;17798:19:1;;;17791:35;-1:-1:-1;;;;;12487:6:0;;;;:22;;12517:9;;17500:19:1;;12487:251:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12243:503;;:::o;5255:317::-;5370:6;5345:21;:31;;5337:73;;;;-1:-1:-1;;;5337:73:0;;18350:2:1;5337:73:0;;;18332:21:1;18389:2;18369:18;;;18362:30;18428:31;18408:18;;;18401:59;18477:18;;5337:73:0;18148:353:1;5337:73:0;5424:12;5442:9;-1:-1:-1;;;;;5442:14:0;5464:6;5442:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5423:52;;;5494:7;5486:78;;;;-1:-1:-1;;;5486:78:0;;18918:2:1;5486:78:0;;;18900:21:1;18957:2;18937:18;;;18930:30;18996:34;18976:18;;;18969:62;19067:28;19047:18;;;19040:56;19113:19;;5486:78:0;18716:422:1;5486:78:0;5326:246;5255:317;;:::o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:316::-;826:6;834;842;895:2;883:9;874:7;870:23;866:32;863:52;;;911:1;908;901:12;863:52;-1:-1:-1;;934:23:1;;;1004:2;989:18;;976:32;;-1:-1:-1;1055:2:1;1040:18;;;1027:32;;749:316;-1:-1:-1;749:316:1:o;1070:131::-;-1:-1:-1;;;;;1145:31:1;;1135:42;;1125:70;;1191:1;1188;1181:12;1206:315;1274:6;1282;1335:2;1323:9;1314:7;1310:23;1306:32;1303:52;;;1351:1;1348;1341:12;1303:52;1390:9;1377:23;1409:31;1434:5;1409:31;:::i;:::-;1459:5;1511:2;1496:18;;;;1483:32;;-1:-1:-1;;;1206:315:1:o;1718:247::-;1777:6;1830:2;1818:9;1809:7;1805:23;1801:32;1798:52;;;1846:1;1843;1836:12;1798:52;1885:9;1872:23;1904:31;1929:5;1904:31;:::i;:::-;1954:5;1718:247;-1:-1:-1;;;1718:247:1:o;1970:456::-;2047:6;2055;2063;2116:2;2104:9;2095:7;2091:23;2087:32;2084:52;;;2132:1;2129;2122:12;2084:52;2171:9;2158:23;2190:31;2215:5;2190:31;:::i;:::-;2240:5;-1:-1:-1;2297:2:1;2282:18;;2269:32;2310:33;2269:32;2310:33;:::i;:::-;1970:456;;2362:7;;-1:-1:-1;;;2416:2:1;2401:18;;;;2388:32;;1970:456::o;2431:388::-;2499:6;2507;2560:2;2548:9;2539:7;2535:23;2531:32;2528:52;;;2576:1;2573;2566:12;2528:52;2615:9;2602:23;2634:31;2659:5;2634:31;:::i;:::-;2684:5;-1:-1:-1;2741:2:1;2726:18;;2713:32;2754:33;2713:32;2754:33;:::i;:::-;2806:7;2796:17;;;2431:388;;;;;:::o;3013:180::-;3072:6;3125:2;3113:9;3104:7;3100:23;3096:32;3093:52;;;3141:1;3138;3131:12;3093:52;-1:-1:-1;3164:23:1;;3013:180;-1:-1:-1;3013:180:1:o;3730:118::-;3816:5;3809:13;3802:21;3795:5;3792:32;3782:60;;3838:1;3835;3828:12;3853:241;3909:6;3962:2;3950:9;3941:7;3937:23;3933:32;3930:52;;;3978:1;3975;3968:12;3930:52;4017:9;4004:23;4036:28;4058:5;4036:28;:::i;4099:382::-;4164:6;4172;4225:2;4213:9;4204:7;4200:23;4196:32;4193:52;;;4241:1;4238;4231:12;4193:52;4280:9;4267:23;4299:31;4324:5;4299:31;:::i;:::-;4349:5;-1:-1:-1;4406:2:1;4391:18;;4378:32;4419:30;4378:32;4419:30;:::i;4709:356::-;4911:2;4893:21;;;4930:18;;;4923:30;4989:34;4984:2;4969:18;;4962:62;5056:2;5041:18;;4709:356::o;5421:380::-;5500:1;5496:12;;;;5543;;;5564:61;;5618:4;5610:6;5606:17;5596:27;;5564:61;5671:2;5663:6;5660:14;5640:18;5637:38;5634:161;;5717:10;5712:3;5708:20;5705:1;5698:31;5752:4;5749:1;5742:15;5780:4;5777:1;5770:15;5634:161;;5421:380;;;:::o;5806:127::-;5867:10;5862:3;5858:20;5855:1;5848:31;5898:4;5895:1;5888:15;5922:4;5919:1;5912:15;5938:125;6003:9;;;6024:10;;;6021:36;;;6037:18;;:::i;8106:128::-;8173:9;;;8194:11;;;8191:37;;;8208:18;;:::i;8595:184::-;8665:6;8718:2;8706:9;8697:7;8693:23;8689:32;8686:52;;;8734:1;8731;8724:12;8686:52;-1:-1:-1;8757:16:1;;8595:184;-1:-1:-1;8595:184:1:o;9063:245::-;9130:6;9183:2;9171:9;9162:7;9158:23;9154:32;9151:52;;;9199:1;9196;9189:12;9151:52;9231:9;9225:16;9250:28;9272:5;9250:28;:::i;9313:399::-;9515:2;9497:21;;;9554:2;9534:18;;;9527:30;9593:34;9588:2;9573:18;;9566:62;-1:-1:-1;;;9659:2:1;9644:18;;9637:33;9702:3;9687:19;;9313:399::o;9717:168::-;9790:9;;;9821;;9838:15;;;9832:22;;9818:37;9808:71;;9859:18;;:::i;9890:217::-;9930:1;9956;9946:132;;10000:10;9995:3;9991:20;9988:1;9981:31;10035:4;10032:1;10025:15;10063:4;10060:1;10053:15;9946:132;-1:-1:-1;10092:9:1;;9890:217::o;15852:127::-;15913:10;15908:3;15904:20;15901:1;15894:31;15944:4;15941:1;15934:15;15968:4;15965:1;15958:15;15984:251;16054:6;16107:2;16095:9;16086:7;16082:23;16078:32;16075:52;;;16123:1;16120;16113:12;16075:52;16155:9;16149:16;16174:31;16199:5;16174:31;:::i;16240:980::-;16502:4;16550:3;16539:9;16535:19;16581:6;16570:9;16563:25;16607:2;16645:6;16640:2;16629:9;16625:18;16618:34;16688:3;16683:2;16672:9;16668:18;16661:31;16712:6;16747;16741:13;16778:6;16770;16763:22;16816:3;16805:9;16801:19;16794:26;;16855:2;16847:6;16843:15;16829:29;;16876:1;16886:195;16900:6;16897:1;16894:13;16886:195;;;16965:13;;-1:-1:-1;;;;;16961:39:1;16949:52;;17056:15;;;;17021:12;;;;16997:1;16915:9;16886:195;;;-1:-1:-1;;;;;;;17137:32:1;;;;17132:2;17117:18;;17110:60;-1:-1:-1;;;17201:3:1;17186:19;17179:35;17098:3;16240:980;-1:-1:-1;;;16240:980:1:o;17837:306::-;17925:6;17933;17941;17994:2;17982:9;17973:7;17969:23;17965:32;17962:52;;;18010:1;18007;18000:12;17962:52;18039:9;18033:16;18023:26;;18089:2;18078:9;18074:18;18068:25;18058:35;;18133:2;18122:9;18118:18;18112:25;18102:35;;17837:306;;;;;:::o
Swarm Source
ipfs://67b89a437af4f756087956f3320099d6e9e97ffb9fdd03057b704fa780ca8e91
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.