ERC-20
Overview
Max Total Supply
1,000,000,000,000 BoK
Holders
74
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
351,653,031.881217949 BoKValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
BankOfKakuan
Compiler Version
v0.8.13+commit.abaa5c0e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-05-07 */ // SPDX-License-Identifier: Unlicensed pragma solidity 0.8.13; /** * Standard SafeMath, stripped down to just add/sub/mul/div */ 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) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } } /** * ERC20 standard interface. */ interface IERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } /** * Allows for contract ownership along with multi-address authorization */ abstract contract Auth { address internal owner; constructor(address _owner) { owner = _owner; } /** * Function modifier to require caller to be contract deployer */ modifier onlyOwner() { require(isOwner(msg.sender), "!Owner"); _; } /** * Check if address is owner */ function isOwner(address account) public view returns (bool) { return account == owner; } /** * Transfer ownership to new address. Caller must be deployer. Leaves old deployer authorized */ function transferOwnership(address payable adr) public onlyOwner { owner = adr; emit OwnershipTransferred(adr); } event OwnershipTransferred(address owner); } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface IDividendDistributor { function setShare(address shareholder, uint256 amount) external; function deposit(uint256 amount) external; function claimDividend(address shareholder) external; function getDividendsClaimedOf (address shareholder) external returns (uint256); } contract DividendDistributor is IDividendDistributor { using SafeMath for uint256; address public _token; address public _owner; address public immutable Kakuan = address(0xcd452Ad761BD624cb016d40CE9D232f180e55d73); struct Share { uint256 amount; uint256 totalExcluded; uint256 totalClaimed; } address[] private shareholders; mapping (address => uint256) private shareholderIndexes; mapping (address => Share) public shares; uint256 public totalShares; uint256 public totalDividends; uint256 public totalClaimed; uint256 public dividendsPerShare; uint256 private dividendsPerShareAccuracyFactor = 10 ** 36; modifier onlyToken() { require(msg.sender == _token); _; } modifier onlyOwner() { require(msg.sender == _owner); _; } constructor (address owner) { _token = msg.sender; _owner = owner; } receive() external payable { } function setShare(address shareholder, uint256 amount) external override onlyToken { if(shares[shareholder].amount > 0){ distributeDividend(shareholder); } if(amount > 0 && shares[shareholder].amount == 0){ addShareholder(shareholder); }else if(amount == 0 && shares[shareholder].amount > 0){ removeShareholder(shareholder); } totalShares = totalShares.sub(shares[shareholder].amount).add(amount); shares[shareholder].amount = amount; shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } function deposit(uint256 amount) external override onlyToken { if (amount > 0) { totalDividends = totalDividends.add(amount); dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares)); } } function distributeDividend(address shareholder) internal { if(shares[shareholder].amount == 0){ return; } uint256 amount = getClaimableDividendOf(shareholder); if(amount > 0){ totalClaimed = totalClaimed.add(amount); shares[shareholder].totalClaimed = shares[shareholder].totalClaimed.add(amount); shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); IERC20(Kakuan).transfer(shareholder, amount); } } function claimDividend(address shareholder) external override onlyToken { distributeDividend(shareholder); } function getClaimableDividendOf(address shareholder) public view returns (uint256) { if(shares[shareholder].amount == 0){ return 0; } uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount); uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded; if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; } return shareholderTotalDividends.sub(shareholderTotalExcluded); } function getCumulativeDividends(uint256 share) internal view returns (uint256) { return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor); } function addShareholder(address shareholder) internal { shareholderIndexes[shareholder] = shareholders.length; shareholders.push(shareholder); } function removeShareholder(address shareholder) internal { shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1]; shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder]; shareholders.pop(); } function manualSend(uint256 amount, address holder) external onlyOwner { uint256 contractETHBalance = address(this).balance; payable(holder).transfer(amount > 0 ? amount : contractETHBalance); } function getDividendsClaimedOf (address shareholder) external view returns (uint256) { require (shares[shareholder].amount > 0, "You're not a KakuanBANK shareholder!"); return shares[shareholder].totalClaimed; } } contract BankOfKakuan is IERC20, Auth { using SafeMath for uint256; address private WETH; address private DEAD = 0x000000000000000000000000000000000000dEaD; address private ZERO = 0x0000000000000000000000000000000000000000; address public immutable Kakuan = address(0xf0f9D895aCa5c8678f706FB8216fa22957685A13); //UNI string private constant _name = "Bank Of Kakuan"; string private constant _symbol = "BoK"; uint8 private constant _decimals = 9; uint256 private _totalSupply = 1000000000000 * (10 ** _decimals); uint256 private _maxTxAmountBuy = _totalSupply; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => uint256) private cooldown; mapping (address => bool) private isFeeExempt; mapping (address => bool) private isDividendExempt; mapping (address => bool) private isBot; uint256 private totalFee = 14; uint256 private feeDenominator = 100; address payable public marketingWallet = payable(0xE1f23B47CF02f198B1C4fc94F285c06F7999df88); IDEXRouter public router; address public pair; bool private buyLimit = true; uint256 private maxBuy = 10000000001 * (10 ** _decimals); uint256 public numTokensSellToAddToLiquidity = 4000000000 * 10**9; DividendDistributor private distributor; bool public blacklistEnabled = true; bool private inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor ( address _owner ) Auth(_owner) { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); WETH = router.WETH(); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); _allowances[address(this)][address(router)] = type(uint256).max; distributor = new DividendDistributor(_owner); isFeeExempt[_owner] = true; isFeeExempt[marketingWallet] = true; isDividendExempt[pair] = true; isDividendExempt[address(this)] = true; isDividendExempt[DEAD] = true; _balances[_owner] = _totalSupply; emit Transfer(address(0), _owner, _totalSupply); } receive() external payable { } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return owner; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if (blacklistEnabled) { require (!isBot[sender] && !isBot[recipient], "Bot!"); } if (buyLimit) { if (sender!=owner && recipient!= owner) require (amount<=maxBuy, "Too much sir"); } if(inSwap){ return _basicTransfer(sender, recipient, amount); } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity; bool shouldSwapBack = (overMinTokenBalance && recipient==pair && balanceOf(address(this)) > 0); if(shouldSwapBack){ swapBack(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, amount) : amount; _balances[recipient] = _balances[recipient].add(amountReceived); if(sender != pair && !isDividendExempt[sender]){ try distributor.setShare(sender, _balances[sender]) {} catch {} } if(recipient != pair && !isDividendExempt[recipient]){ try distributor.setShare(recipient, _balances[recipient]) {} catch {} } emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function shouldTakeFee(address sender, address recipient) internal view returns (bool) { return ( !(isFeeExempt[sender] || isFeeExempt[recipient]) && (sender == pair || recipient == pair) ); } function takeFee(address sender, uint256 amount) internal returns (uint256) { uint256 feeAmount; feeAmount = amount.mul(totalFee).div(feeDenominator); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function swapBack() internal swapping { uint256 amountToSwap = balanceOf(address(this)); swapTokensForEth(amountToSwap.div(2)); swapTokensForKakuan(amountToSwap.div(2)); uint256 dividends = IERC20(Kakuan).balanceOf(address(this)); bool success = IERC20(Kakuan).transfer(address(distributor), dividends); if (success) { distributor.deposit(dividends); } payable(marketingWallet).transfer(address(this).balance); } function swapTokensForKakuan(uint256 tokenAmount) private { address[] memory path = new address[](3); path[0] = address(this); path[1] = WETH; path[2] = Kakuan; // make the swap router.swapExactTokensForTokensSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; // make the swap router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // add the liquidity router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner, block.timestamp ); } function setBot(address _address, bool toggle) external onlyOwner { isBot[_address] = toggle; _setIsDividendExempt(_address, toggle); } function _setIsDividendExempt(address holder, bool exempt) internal { require(holder != address(this) && holder != pair); isDividendExempt[holder] = exempt; if(exempt){ distributor.setShare(holder, 0); }else{ distributor.setShare(holder, _balances[holder]); } } function setIsDividendExempt(address holder, bool exempt) external onlyOwner { _setIsDividendExempt(holder, exempt); } function setIsFeeExempt(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; } function setFee (uint256 _fee) external onlyOwner { require (_fee <= 14, "Fee can't exceed 14%"); totalFee = _fee; } function manualSend() external onlyOwner { uint256 contractETHBalance = address(this).balance; payable(marketingWallet).transfer(contractETHBalance); } function claimDividend() external { distributor.claimDividend(msg.sender); } function claimDividend(address holder) external onlyOwner { distributor.claimDividend(holder); } function getClaimableDividendOf(address shareholder) public view returns (uint256) { return distributor.getClaimableDividendOf(shareholder); } function manualBurn(uint256 amount) external onlyOwner returns (bool) { return _basicTransfer(address(this), DEAD, amount); } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function setMarketingWallet(address _marketingWallet) external onlyOwner { marketingWallet = payable(_marketingWallet); } function getTotalDividends() external view returns (uint256) { return distributor.totalDividends(); } function getTotalClaimed() external view returns (uint256) { return distributor.totalClaimed(); } function getDividendsClaimedOf (address shareholder) external view returns (uint256) { return distributor.getDividendsClaimedOf(shareholder); } function removeBuyLimit() external onlyOwner { buyLimit = false; } function checkBot(address account) public view returns (bool) { return isBot[account]; } function setSwapThresholdAmount (uint256 amount) external onlyOwner { require (amount <= _totalSupply.div(100), "can't exceed 1%"); numTokensSellToAddToLiquidity = amount * 10 ** 9; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Kakuan","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blacklistEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"checkBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getClaimableDividendOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getDividendsClaimedOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualBurn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"numTokensSellToAddToLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeBuyLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"toggle","type":"bool"}],"name":"setBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapThresholdAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a0604052600280546001600160a01b031990811661dead1790915560038054909116905573f0f9d895aca5c8678f706fb8216fa22957685a136080526200004a6009600a62000528565b6200005b9064e8d4a5100062000540565b6004819055600555600e600c8190556064600d5580546001600160a01b03191673e1f23b47cf02f198b1c4fc94f285c06f7999df881790556010805460ff60a01b1916600160a01b179055620000b46009600a62000528565b620000c5906402540be40162000540565b601155673782dace9d9000006012556013805460ff60a01b1916600160a01b179055348015620000f457600080fd5b50604051620031e6380380620031e6833981016040819052620001179162000562565b600080546001600160a01b03199081166001600160a01b03841617909155600f8054737a250d5630b4cf539739df2c5dacb4c659f2488d921682179055604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000190573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b6919062000562565b600180546001600160a01b0319166001600160a01b03928316179055600f546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000215573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023b919062000562565b6001546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af11580156200028d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b3919062000562565b601080546001600160a01b0319166001600160a01b03928316179055306000908152600760209081526040808320600f5490941683529290528190206000199055518190620003029062000405565b6001600160a01b039091168152602001604051809103906000f0801580156200032f573d6000803e3d6000fd5b50601380546001600160a01b0319166001600160a01b039283161790558181166000818152600960209081526040808320805460ff199081166001908117909255600e5487168552828520805482168317905560105487168552600a8452828520805482168317905530855282852080548216831790556002549096168452818420805490961617909455600454838352600682528483208190559351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3506200058d565b610da2806200244483390190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200046a5781600019048211156200044e576200044e62000413565b808516156200045c57918102915b93841c93908002906200042e565b509250929050565b600082620004835750600162000522565b81620004925750600062000522565b8160018114620004ab5760028114620004b657620004d6565b600191505062000522565b60ff841115620004ca57620004ca62000413565b50506001821b62000522565b5060208310610133831016604e8410600b8410161715620004fb575081810a62000522565b62000507838362000429565b80600019048211156200051e576200051e62000413565b0290505b92915050565b60006200053960ff84168362000472565b9392505050565b60008160001904831182151516156200055d576200055d62000413565b500290565b6000602082840312156200057557600080fd5b81516001600160a01b03811681146200053957600080fd5b608051611e86620005be6000396000818161061c01528181611627015281816116c90152611a6e0152611e866000f3fe6080604052600436106102135760003560e01c806370a0823111610118578063bffb691d116100a0578063f0fc6bca1161006f578063f0fc6bca1461069a578063f2fde38b146106af578063f4293890146106cf578063f708a64f146106e4578063f887ea401461070457600080fd5b8063bffb691d146105e9578063c09f3cc51461060a578063d12a76881461063e578063dd62ed3e1461065457600080fd5b80638ecc37fb116100e75780638ecc37fb1461052457806395d89b4114610544578063a8aa1b3114610570578063a9059cbb14610590578063b1a4e0dc146105b057600080fd5b806370a0823114610483578063736a83a1146104b957806375f0a874146104ce578063893d20e81461050657600080fd5b8063313ce5671161019b5780635cc33f741161016a5780635cc33f74146103ee5780635d098b381461040e578063658d4b7f1461042e57806367ee5f091461044e57806369fe0e2d1461046357600080fd5b8063313ce5671461037d578063342aa8b5146103995780633e07ce5b146103b9578063571ac8b0146103ce57600080fd5b806323b63585116101e257806323b63585146102d957806323b872dd146102f957806329e04b4a146103195780632b112e49146103395780632f54bf6e1461034e57600080fd5b806306fdde031461021f578063095ea7b31461026857806315f7e05e1461029857806318160ddd146102ba57600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5060408051808201909152600e81526d2130b7359027b31025b0b5bab0b760911b60208201525b60405161025f9190611b68565b60405180910390f35b34801561027457600080fd5b50610288610283366004611bd5565b610724565b604051901515815260200161025f565b3480156102a457600080fd5b506102b86102b3366004611c01565b610791565b005b3480156102c657600080fd5b506004545b60405190815260200161025f565b3480156102e557600080fd5b506102886102f4366004611c1e565b610826565b34801561030557600080fd5b50610288610314366004611c37565b610869565b34801561032557600080fd5b506102b8610334366004611c1e565b61092b565b34801561034557600080fd5b506102cb6109b8565b34801561035a57600080fd5b50610288610369366004611c01565b6000546001600160a01b0391821691161490565b34801561038957600080fd5b506040516009815260200161025f565b3480156103a557600080fd5b506102b86103b4366004611c86565b610a0a565b3480156103c557600080fd5b506102b8610a66565b3480156103da57600080fd5b506102886103e9366004611c01565b610a9f565b3480156103fa57600080fd5b506102cb610409366004611c01565b610aad565b34801561041a57600080fd5b506102b8610429366004611c01565b610b1d565b34801561043a57600080fd5b506102b8610449366004611c86565b610b69565b34801561045a57600080fd5b506102cb610bbe565b34801561046f57600080fd5b506102b861047e366004611c1e565b610c2c565b34801561048f57600080fd5b506102cb61049e366004611c01565b6001600160a01b031660009081526006602052604090205490565b3480156104c557600080fd5b506102cb610ca3565b3480156104da57600080fd5b50600e546104ee906001600160a01b031681565b6040516001600160a01b03909116815260200161025f565b34801561051257600080fd5b506000546001600160a01b03166104ee565b34801561053057600080fd5b506102cb61053f366004611c01565b610ced565b34801561055057600080fd5b50604080518082019091526003815262426f4b60e81b6020820152610252565b34801561057c57600080fd5b506010546104ee906001600160a01b031681565b34801561059c57600080fd5b506102886105ab366004611bd5565b610d20565b3480156105bc57600080fd5b506102886105cb366004611c01565b6001600160a01b03166000908152600b602052604090205460ff1690565b3480156105f557600080fd5b5060135461028890600160a01b900460ff1681565b34801561061657600080fd5b506104ee7f000000000000000000000000000000000000000000000000000000000000000081565b34801561064a57600080fd5b506102cb60125481565b34801561066057600080fd5b506102cb61066f366004611cbf565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b3480156106a657600080fd5b506102b8610d2d565b3480156106bb57600080fd5b506102b86106ca366004611c01565b610d8c565b3480156106db57600080fd5b506102b8610e0a565b3480156106f057600080fd5b506102b86106ff366004611c86565b610e6e565b34801561071057600080fd5b50600f546104ee906001600160a01b031681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061077f9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146107c45760405162461bcd60e51b81526004016107bb90611ced565b60405180910390fd5b601354604051630afbf02f60e11b81526001600160a01b038381166004830152909116906315f7e05e90602401600060405180830381600087803b15801561080b57600080fd5b505af115801561081f573d6000803e3d6000fd5b5050505050565b600080546001600160a01b031633146108515760405162461bcd60e51b81526004016107bb90611ced565b60025461078b9030906001600160a01b031684610ea2565b6001600160a01b038316600090815260076020908152604080832033845290915281205460001914610916576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526007825283812033825290915291909120546108f1918490610f88565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b610921848484610fc2565b90505b9392505050565b6000546001600160a01b031633146109555760405162461bcd60e51b81526004016107bb90611ced565b6004546109639060646113d0565b8111156109a45760405162461bcd60e51b815260206004820152600f60248201526e63616e27742065786365656420312560881b60448201526064016107bb565b6109b281633b9aca00611d23565b60125550565b6003546001600160a01b0316600090815260066020526040812054610a05906002546001600160a01b03166000908152600660205260409020546109ff9060045490611412565b90611412565b905090565b6000546001600160a01b03163314610a345760405162461bcd60e51b81526004016107bb90611ced565b6001600160a01b0382166000908152600b60205260409020805460ff1916821515179055610a628282611454565b5050565b6000546001600160a01b03163314610a905760405162461bcd60e51b81526004016107bb90611ced565b6010805460ff60a01b19169055565b600061078b82600019610724565b601354604051631730cfdd60e21b81526001600160a01b0383811660048301526000921690635cc33f74906024015b602060405180830381865afa158015610af9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078b9190611d42565b6000546001600160a01b03163314610b475760405162461bcd60e51b81526004016107bb90611ced565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610b935760405162461bcd60e51b81526004016107bb90611ced565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6013546040805163997664d760e01b815290516000926001600160a01b03169163997664d79160048083019260209291908290030181865afa158015610c08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a059190611d42565b6000546001600160a01b03163314610c565760405162461bcd60e51b81526004016107bb90611ced565b600e811115610c9e5760405162461bcd60e51b81526020600482015260146024820152734665652063616e2774206578636565642031342560601b60448201526064016107bb565b600c55565b6013546040805163d54ad2a160e01b815290516000926001600160a01b03169163d54ad2a19160048083019260209291908290030181865afa158015610c08573d6000803e3d6000fd5b601354604051638ecc37fb60e01b81526001600160a01b0383811660048301526000921690638ecc37fb90602401610adc565b6000610924338484610fc2565b601354604051630afbf02f60e11b81523360048201526001600160a01b03909116906315f7e05e90602401600060405180830381600087803b158015610d7257600080fd5b505af1158015610d86573d6000803e3d6000fd5b50505050565b6000546001600160a01b03163314610db65760405162461bcd60e51b81526004016107bb90611ced565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b03163314610e345760405162461bcd60e51b81526004016107bb90611ced565b600e5460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610a62573d6000803e3d6000fd5b6000546001600160a01b03163314610e985760405162461bcd60e51b81526004016107bb90611ced565b610a628282611454565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054610ef3918490610f88565b6001600160a01b038086166000908152600660205260408082209390935590851681522054610f229083611565565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f769086815260200190565b60405180910390a35060019392505050565b60008184841115610fac5760405162461bcd60e51b81526004016107bb9190611b68565b506000610fb98486611d5b565b95945050505050565b601354600090600160a01b900460ff161561104e576001600160a01b0384166000908152600b602052604090205460ff1615801561101957506001600160a01b0383166000908152600b602052604090205460ff16155b61104e5760405162461bcd60e51b81526004016107bb90602080825260049082015263426f742160e01b604082015260600190565b601054600160a01b900460ff16156110d2576000546001600160a01b0385811691161480159061108c57506000546001600160a01b03848116911614155b156110d2576011548211156110d25760405162461bcd60e51b815260206004820152600c60248201526b2a37b79036bab1b41039b4b960a11b60448201526064016107bb565b601354600160a81b900460ff16156110f6576110ef848484610ea2565b9050610924565b30600090815260066020526040812054601254909190821080159190829061112b57506010546001600160a01b038781169116145b8015611144575030600090815260066020526040812054115b90508015611154576111546115c4565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038a166000908152600690915291909120546111a6918790610f88565b6001600160a01b0388166000908152600660205260408120919091556111cc88886117eb565b6111d657856111e0565b6111e08887611860565b6001600160a01b0388166000908152600660205260409020549091506112069082611565565b6001600160a01b0380891660009081526006602052604090209190915560105489821691161480159061125257506001600160a01b0388166000908152600a602052604090205460ff16155b156112c8576013546001600160a01b0389811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b1580156112b557600080fd5b505af19250505080156112c6575060015b505b6010546001600160a01b038881169116148015906112ff57506001600160a01b0387166000908152600a602052604090205460ff16155b15611375576013546001600160a01b0388811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561136257600080fd5b505af1925050508015611373575060015b505b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516113ba91815260200190565b60405180910390a3506001979650505050505050565b600061092483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061190c565b600061092483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f88565b6001600160a01b038216301480159061147b57506010546001600160a01b03838116911614155b61148457600080fd5b6001600160a01b0382166000908152600a60205260409020805460ff1916821580159190911790915561151c57601354604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca96906044015b600060405180830381600087803b15801561150057600080fd5b505af1158015611514573d6000803e3d6000fd5b505050505050565b6013546001600160a01b0383811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca96906044016114e6565b6000806115728385611d72565b9050838110156109245760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107bb565b6013805460ff60a81b1916600160a81b1790553060009081526006602052604081205490506115fc6115f78260026113d0565b61193a565b61160f61160a8260026113d0565b6119e5565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015611676573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169a9190611d42565b60135460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529192506000917f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303816000875af1158015611714573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117389190611d8a565b9050801561179f5760135460405163b6b55f2560e01b8152600481018490526001600160a01b039091169063b6b55f2590602401600060405180830381600087803b15801561178657600080fd5b505af115801561179a573d6000803e3d6000fd5b505050505b600e546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156117d8573d6000803e3d6000fd5b50506013805460ff60a81b191690555050565b6001600160a01b03821660009081526009602052604081205460ff168061182a57506001600160a01b03821660009081526009602052604090205460ff165b15801561092457506010546001600160a01b03848116911614806109245750506010546001600160a01b03908116911614919050565b600080611884600d5461187e600c5486611ae690919063ffffffff16565b906113d0565b306000908152600660205260409020549091506118a19082611565565b30600081815260066020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118f29085815260200190565b60405180910390a36119048382611412565b949350505050565b6000818361192d5760405162461bcd60e51b81526004016107bb9190611b68565b506000610fb98486611da7565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061196f5761196f611dc9565b6001600160a01b039283166020918202929092010152600180548351921691839190811061199f5761199f611dc9565b6001600160a01b039283166020918202929092010152600f5460405163791ac94760e01b815291169063791ac947906114e6908590600090869030904290600401611ddf565b60408051600380825260808201909252600091602082016060803683370190505090503081600081518110611a1c57611a1c611dc9565b6001600160a01b0392831660209182029290920101526001805483519216918391908110611a4c57611a4c611dc9565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600281518110611aa057611aa0611dc9565b6001600160a01b039283166020918202929092010152600f54604051635c11d79560e01b8152911690635c11d795906114e6908590600090869030904290600401611ddf565b600082600003611af85750600061078b565b6000611b048385611d23565b905082611b118583611da7565b146109245760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107bb565b600060208083528351808285015260005b81811015611b9557858101830151858201604001528201611b79565b81811115611ba7576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611bd257600080fd5b50565b60008060408385031215611be857600080fd5b8235611bf381611bbd565b946020939093013593505050565b600060208284031215611c1357600080fd5b813561092481611bbd565b600060208284031215611c3057600080fd5b5035919050565b600080600060608486031215611c4c57600080fd5b8335611c5781611bbd565b92506020840135611c6781611bbd565b929592945050506040919091013590565b8015158114611bd257600080fd5b60008060408385031215611c9957600080fd5b8235611ca481611bbd565b91506020830135611cb481611c78565b809150509250929050565b60008060408385031215611cd257600080fd5b8235611cdd81611bbd565b91506020830135611cb481611bbd565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615611d3d57611d3d611d0d565b500290565b600060208284031215611d5457600080fd5b5051919050565b600082821015611d6d57611d6d611d0d565b500390565b60008219821115611d8557611d85611d0d565b500190565b600060208284031215611d9c57600080fd5b815161092481611c78565b600082611dc457634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e2f5784516001600160a01b031683529383019391830191600101611e0a565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220ca213a6ac935b5e75ac6e8f51ab173ea3bf13f803e6a0d5858dfd513430bee6164736f6c634300080d003360a060405273cd452ad761bd624cb016d40ce9d232f180e55d736080526ec097ce7bc90715b34b9f100000000060095534801561003b57600080fd5b50604051610da2380380610da283398101604081905261005a9161008d565b60008054336001600160a01b031991821617909155600180549091166001600160a01b03929092169190911790556100bd565b60006020828403121561009f57600080fd5b81516001600160a01b03811681146100b657600080fd5b9392505050565b608051610cc36100df6000396000818161023801526107430152610cc36000f3fe6080604052600436106100e15760003560e01c8063b2bdfa7b1161007f578063ce7c2ac211610059578063ce7c2ac21461025a578063d54ad2a1146102b1578063e2d2e219146102c7578063ecd0c0c3146102dd57600080fd5b8063b2bdfa7b146101ce578063b6b55f2514610206578063c09f3cc51461022657600080fd5b80633a98ef39116100bb5780633a98ef391461014f5780635cc33f74146101785780638ecc37fb14610198578063997664d7146101b857600080fd5b80631014edf5146100ed57806314b6ca961461010f57806315f7e05e1461012f57600080fd5b366100e857005b600080fd5b3480156100f957600080fd5b5061010d610108366004610ada565b6102fd565b005b34801561011b57600080fd5b5061010d61012a366004610b06565b61035d565b34801561013b57600080fd5b5061010d61014a366004610b30565b6104d5565b34801561015b57600080fd5b5061016560055481565b6040519081526020015b60405180910390f35b34801561018457600080fd5b50610165610193366004610b30565b6104f8565b3480156101a457600080fd5b506101656101b3366004610b30565b61058d565b3480156101c457600080fd5b5061016560065481565b3480156101da57600080fd5b506001546101ee906001600160a01b031681565b6040516001600160a01b03909116815260200161016f565b34801561021257600080fd5b5061010d610221366004610b4b565b610618565b34801561023257600080fd5b506101ee7f000000000000000000000000000000000000000000000000000000000000000081565b34801561026657600080fd5b50610296610275366004610b30565b60046020526000908152604090208054600182015460029092015490919083565b6040805193845260208401929092529082015260600161016f565b3480156102bd57600080fd5b5061016560075481565b3480156102d357600080fd5b5061016560085481565b3480156102e957600080fd5b506000546101ee906001600160a01b031681565b6001546001600160a01b0316331461031457600080fd5b476001600160a01b0382166108fc8461032d578261032f565b845b6040518115909202916000818181858888f19350505050158015610357573d6000803e3d6000fd5b50505050565b6000546001600160a01b0316331461037457600080fd5b6001600160a01b0382166000908152600460205260409020541561039b5761039b82610672565b6000811180156103c157506001600160a01b038216600090815260046020526040902054155b1561042757600280546001600160a01b0384166000818152600360205260408120839055600183018455929092527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b031916909117905561045a565b8015801561044c57506001600160a01b03821660009081526004602052604090205415155b1561045a5761045a826107b6565b6001600160a01b03821660009081526004602052604090205460055461048b918391610485916108cb565b90610916565b6005556001600160a01b03821660009081526004602052604090208190556104b281610975565b6001600160a01b0390921660009081526004602052604090206001019190915550565b6000546001600160a01b031633146104ec57600080fd5b6104f581610672565b50565b6001600160a01b03811660009081526004602052604081205461056e5760405162461bcd60e51b8152602060048201526024808201527f596f75277265206e6f742061204b616b75616e42414e4b207368617265686f6c6044820152636465722160e01b60648201526084015b60405180910390fd5b506001600160a01b031660009081526004602052604090206002015490565b6001600160a01b03811660009081526004602052604081205481036105b457506000919050565b6001600160a01b0382166000908152600460205260408120546105d690610975565b6001600160a01b038416600090815260046020526040902060010154909150808211610606575060009392505050565b61061082826108cb565b949350505050565b6000546001600160a01b0316331461062f57600080fd5b80156104f5576006546106429082610916565b60065560055460095461066c916106639161065d9085610992565b90610a14565b60085490610916565b60085550565b6001600160a01b03811660009081526004602052604081205490036106945750565b600061069f8261058d565b905080156107b2576007546106b49082610916565b6007556001600160a01b0382166000908152600460205260409020600201546106dd9082610916565b6001600160a01b038316600090815260046020526040902060028101919091555461070790610975565b6001600160a01b03838116600081815260046020819052604091829020600101949094555163a9059cbb60e01b815292830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af115801561078c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b09190610b64565b505b5050565b600280546107c690600190610b9c565b815481106107d6576107d6610bb3565b60009182526020808320909101546001600160a01b038481168452600390925260409092205460028054929093169291811061081457610814610bb3565b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905591831681526003918290526040812054600280549193929161086090600190610b9c565b8154811061087057610870610bb3565b60009182526020808320909101546001600160a01b0316835282019290925260400190205560028054806108a6576108a6610bc9565b600082815260209020810160001990810180546001600160a01b031916905501905550565b600061090d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610a56565b90505b92915050565b6000806109238385610bdf565b90508381101561090d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610565565b600061091060095461065d6008548561099290919063ffffffff16565b6000826000036109a457506000610910565b60006109b08385610bf7565b9050826109bd8583610c16565b1461090d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610565565b600061090d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610a90565b60008184841115610a7a5760405162461bcd60e51b81526004016105659190610c38565b506000610a878486610b9c565b95945050505050565b60008183610ab15760405162461bcd60e51b81526004016105659190610c38565b506000610a878486610c16565b80356001600160a01b0381168114610ad557600080fd5b919050565b60008060408385031215610aed57600080fd5b82359150610afd60208401610abe565b90509250929050565b60008060408385031215610b1957600080fd5b610b2283610abe565b946020939093013593505050565b600060208284031215610b4257600080fd5b61090d82610abe565b600060208284031215610b5d57600080fd5b5035919050565b600060208284031215610b7657600080fd5b8151801515811461090d57600080fd5b634e487b7160e01b600052601160045260246000fd5b600082821015610bae57610bae610b86565b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b60008219821115610bf257610bf2610b86565b500190565b6000816000190483118215151615610c1157610c11610b86565b500290565b600082610c3357634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b81811015610c6557858101830151858201604001528201610c49565b81811115610c77576000604083870101525b50601f01601f191692909201604001939250505056fea26469706673582212200a432cdb82ec0604a41ec32b3ece8d99b460aa55f228a01e5895f1cdc72a3a6d64736f6c634300080d0033000000000000000000000000d99312704ce9c748e7e088b1c810eab3c35f7432
Deployed Bytecode
0x6080604052600436106102135760003560e01c806370a0823111610118578063bffb691d116100a0578063f0fc6bca1161006f578063f0fc6bca1461069a578063f2fde38b146106af578063f4293890146106cf578063f708a64f146106e4578063f887ea401461070457600080fd5b8063bffb691d146105e9578063c09f3cc51461060a578063d12a76881461063e578063dd62ed3e1461065457600080fd5b80638ecc37fb116100e75780638ecc37fb1461052457806395d89b4114610544578063a8aa1b3114610570578063a9059cbb14610590578063b1a4e0dc146105b057600080fd5b806370a0823114610483578063736a83a1146104b957806375f0a874146104ce578063893d20e81461050657600080fd5b8063313ce5671161019b5780635cc33f741161016a5780635cc33f74146103ee5780635d098b381461040e578063658d4b7f1461042e57806367ee5f091461044e57806369fe0e2d1461046357600080fd5b8063313ce5671461037d578063342aa8b5146103995780633e07ce5b146103b9578063571ac8b0146103ce57600080fd5b806323b63585116101e257806323b63585146102d957806323b872dd146102f957806329e04b4a146103195780632b112e49146103395780632f54bf6e1461034e57600080fd5b806306fdde031461021f578063095ea7b31461026857806315f7e05e1461029857806318160ddd146102ba57600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5060408051808201909152600e81526d2130b7359027b31025b0b5bab0b760911b60208201525b60405161025f9190611b68565b60405180910390f35b34801561027457600080fd5b50610288610283366004611bd5565b610724565b604051901515815260200161025f565b3480156102a457600080fd5b506102b86102b3366004611c01565b610791565b005b3480156102c657600080fd5b506004545b60405190815260200161025f565b3480156102e557600080fd5b506102886102f4366004611c1e565b610826565b34801561030557600080fd5b50610288610314366004611c37565b610869565b34801561032557600080fd5b506102b8610334366004611c1e565b61092b565b34801561034557600080fd5b506102cb6109b8565b34801561035a57600080fd5b50610288610369366004611c01565b6000546001600160a01b0391821691161490565b34801561038957600080fd5b506040516009815260200161025f565b3480156103a557600080fd5b506102b86103b4366004611c86565b610a0a565b3480156103c557600080fd5b506102b8610a66565b3480156103da57600080fd5b506102886103e9366004611c01565b610a9f565b3480156103fa57600080fd5b506102cb610409366004611c01565b610aad565b34801561041a57600080fd5b506102b8610429366004611c01565b610b1d565b34801561043a57600080fd5b506102b8610449366004611c86565b610b69565b34801561045a57600080fd5b506102cb610bbe565b34801561046f57600080fd5b506102b861047e366004611c1e565b610c2c565b34801561048f57600080fd5b506102cb61049e366004611c01565b6001600160a01b031660009081526006602052604090205490565b3480156104c557600080fd5b506102cb610ca3565b3480156104da57600080fd5b50600e546104ee906001600160a01b031681565b6040516001600160a01b03909116815260200161025f565b34801561051257600080fd5b506000546001600160a01b03166104ee565b34801561053057600080fd5b506102cb61053f366004611c01565b610ced565b34801561055057600080fd5b50604080518082019091526003815262426f4b60e81b6020820152610252565b34801561057c57600080fd5b506010546104ee906001600160a01b031681565b34801561059c57600080fd5b506102886105ab366004611bd5565b610d20565b3480156105bc57600080fd5b506102886105cb366004611c01565b6001600160a01b03166000908152600b602052604090205460ff1690565b3480156105f557600080fd5b5060135461028890600160a01b900460ff1681565b34801561061657600080fd5b506104ee7f000000000000000000000000f0f9d895aca5c8678f706fb8216fa22957685a1381565b34801561064a57600080fd5b506102cb60125481565b34801561066057600080fd5b506102cb61066f366004611cbf565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b3480156106a657600080fd5b506102b8610d2d565b3480156106bb57600080fd5b506102b86106ca366004611c01565b610d8c565b3480156106db57600080fd5b506102b8610e0a565b3480156106f057600080fd5b506102b86106ff366004611c86565b610e6e565b34801561071057600080fd5b50600f546104ee906001600160a01b031681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061077f9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146107c45760405162461bcd60e51b81526004016107bb90611ced565b60405180910390fd5b601354604051630afbf02f60e11b81526001600160a01b038381166004830152909116906315f7e05e90602401600060405180830381600087803b15801561080b57600080fd5b505af115801561081f573d6000803e3d6000fd5b5050505050565b600080546001600160a01b031633146108515760405162461bcd60e51b81526004016107bb90611ced565b60025461078b9030906001600160a01b031684610ea2565b6001600160a01b038316600090815260076020908152604080832033845290915281205460001914610916576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526007825283812033825290915291909120546108f1918490610f88565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b610921848484610fc2565b90505b9392505050565b6000546001600160a01b031633146109555760405162461bcd60e51b81526004016107bb90611ced565b6004546109639060646113d0565b8111156109a45760405162461bcd60e51b815260206004820152600f60248201526e63616e27742065786365656420312560881b60448201526064016107bb565b6109b281633b9aca00611d23565b60125550565b6003546001600160a01b0316600090815260066020526040812054610a05906002546001600160a01b03166000908152600660205260409020546109ff9060045490611412565b90611412565b905090565b6000546001600160a01b03163314610a345760405162461bcd60e51b81526004016107bb90611ced565b6001600160a01b0382166000908152600b60205260409020805460ff1916821515179055610a628282611454565b5050565b6000546001600160a01b03163314610a905760405162461bcd60e51b81526004016107bb90611ced565b6010805460ff60a01b19169055565b600061078b82600019610724565b601354604051631730cfdd60e21b81526001600160a01b0383811660048301526000921690635cc33f74906024015b602060405180830381865afa158015610af9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078b9190611d42565b6000546001600160a01b03163314610b475760405162461bcd60e51b81526004016107bb90611ced565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610b935760405162461bcd60e51b81526004016107bb90611ced565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6013546040805163997664d760e01b815290516000926001600160a01b03169163997664d79160048083019260209291908290030181865afa158015610c08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a059190611d42565b6000546001600160a01b03163314610c565760405162461bcd60e51b81526004016107bb90611ced565b600e811115610c9e5760405162461bcd60e51b81526020600482015260146024820152734665652063616e2774206578636565642031342560601b60448201526064016107bb565b600c55565b6013546040805163d54ad2a160e01b815290516000926001600160a01b03169163d54ad2a19160048083019260209291908290030181865afa158015610c08573d6000803e3d6000fd5b601354604051638ecc37fb60e01b81526001600160a01b0383811660048301526000921690638ecc37fb90602401610adc565b6000610924338484610fc2565b601354604051630afbf02f60e11b81523360048201526001600160a01b03909116906315f7e05e90602401600060405180830381600087803b158015610d7257600080fd5b505af1158015610d86573d6000803e3d6000fd5b50505050565b6000546001600160a01b03163314610db65760405162461bcd60e51b81526004016107bb90611ced565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b03163314610e345760405162461bcd60e51b81526004016107bb90611ced565b600e5460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610a62573d6000803e3d6000fd5b6000546001600160a01b03163314610e985760405162461bcd60e51b81526004016107bb90611ced565b610a628282611454565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054610ef3918490610f88565b6001600160a01b038086166000908152600660205260408082209390935590851681522054610f229083611565565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f769086815260200190565b60405180910390a35060019392505050565b60008184841115610fac5760405162461bcd60e51b81526004016107bb9190611b68565b506000610fb98486611d5b565b95945050505050565b601354600090600160a01b900460ff161561104e576001600160a01b0384166000908152600b602052604090205460ff1615801561101957506001600160a01b0383166000908152600b602052604090205460ff16155b61104e5760405162461bcd60e51b81526004016107bb90602080825260049082015263426f742160e01b604082015260600190565b601054600160a01b900460ff16156110d2576000546001600160a01b0385811691161480159061108c57506000546001600160a01b03848116911614155b156110d2576011548211156110d25760405162461bcd60e51b815260206004820152600c60248201526b2a37b79036bab1b41039b4b960a11b60448201526064016107bb565b601354600160a81b900460ff16156110f6576110ef848484610ea2565b9050610924565b30600090815260066020526040812054601254909190821080159190829061112b57506010546001600160a01b038781169116145b8015611144575030600090815260066020526040812054115b90508015611154576111546115c4565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038a166000908152600690915291909120546111a6918790610f88565b6001600160a01b0388166000908152600660205260408120919091556111cc88886117eb565b6111d657856111e0565b6111e08887611860565b6001600160a01b0388166000908152600660205260409020549091506112069082611565565b6001600160a01b0380891660009081526006602052604090209190915560105489821691161480159061125257506001600160a01b0388166000908152600a602052604090205460ff16155b156112c8576013546001600160a01b0389811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b1580156112b557600080fd5b505af19250505080156112c6575060015b505b6010546001600160a01b038881169116148015906112ff57506001600160a01b0387166000908152600a602052604090205460ff16155b15611375576013546001600160a01b0388811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561136257600080fd5b505af1925050508015611373575060015b505b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516113ba91815260200190565b60405180910390a3506001979650505050505050565b600061092483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061190c565b600061092483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f88565b6001600160a01b038216301480159061147b57506010546001600160a01b03838116911614155b61148457600080fd5b6001600160a01b0382166000908152600a60205260409020805460ff1916821580159190911790915561151c57601354604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca96906044015b600060405180830381600087803b15801561150057600080fd5b505af1158015611514573d6000803e3d6000fd5b505050505050565b6013546001600160a01b0383811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca96906044016114e6565b6000806115728385611d72565b9050838110156109245760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107bb565b6013805460ff60a81b1916600160a81b1790553060009081526006602052604081205490506115fc6115f78260026113d0565b61193a565b61160f61160a8260026113d0565b6119e5565b6040516370a0823160e01b81523060048201526000907f000000000000000000000000f0f9d895aca5c8678f706fb8216fa22957685a136001600160a01b0316906370a0823190602401602060405180830381865afa158015611676573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169a9190611d42565b60135460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529192506000917f000000000000000000000000f0f9d895aca5c8678f706fb8216fa22957685a139091169063a9059cbb906044016020604051808303816000875af1158015611714573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117389190611d8a565b9050801561179f5760135460405163b6b55f2560e01b8152600481018490526001600160a01b039091169063b6b55f2590602401600060405180830381600087803b15801561178657600080fd5b505af115801561179a573d6000803e3d6000fd5b505050505b600e546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156117d8573d6000803e3d6000fd5b50506013805460ff60a81b191690555050565b6001600160a01b03821660009081526009602052604081205460ff168061182a57506001600160a01b03821660009081526009602052604090205460ff165b15801561092457506010546001600160a01b03848116911614806109245750506010546001600160a01b03908116911614919050565b600080611884600d5461187e600c5486611ae690919063ffffffff16565b906113d0565b306000908152600660205260409020549091506118a19082611565565b30600081815260066020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118f29085815260200190565b60405180910390a36119048382611412565b949350505050565b6000818361192d5760405162461bcd60e51b81526004016107bb9190611b68565b506000610fb98486611da7565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061196f5761196f611dc9565b6001600160a01b039283166020918202929092010152600180548351921691839190811061199f5761199f611dc9565b6001600160a01b039283166020918202929092010152600f5460405163791ac94760e01b815291169063791ac947906114e6908590600090869030904290600401611ddf565b60408051600380825260808201909252600091602082016060803683370190505090503081600081518110611a1c57611a1c611dc9565b6001600160a01b0392831660209182029290920101526001805483519216918391908110611a4c57611a4c611dc9565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000f0f9d895aca5c8678f706fb8216fa22957685a1381600281518110611aa057611aa0611dc9565b6001600160a01b039283166020918202929092010152600f54604051635c11d79560e01b8152911690635c11d795906114e6908590600090869030904290600401611ddf565b600082600003611af85750600061078b565b6000611b048385611d23565b905082611b118583611da7565b146109245760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107bb565b600060208083528351808285015260005b81811015611b9557858101830151858201604001528201611b79565b81811115611ba7576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611bd257600080fd5b50565b60008060408385031215611be857600080fd5b8235611bf381611bbd565b946020939093013593505050565b600060208284031215611c1357600080fd5b813561092481611bbd565b600060208284031215611c3057600080fd5b5035919050565b600080600060608486031215611c4c57600080fd5b8335611c5781611bbd565b92506020840135611c6781611bbd565b929592945050506040919091013590565b8015158114611bd257600080fd5b60008060408385031215611c9957600080fd5b8235611ca481611bbd565b91506020830135611cb481611c78565b809150509250929050565b60008060408385031215611cd257600080fd5b8235611cdd81611bbd565b91506020830135611cb481611bbd565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615611d3d57611d3d611d0d565b500290565b600060208284031215611d5457600080fd5b5051919050565b600082821015611d6d57611d6d611d0d565b500390565b60008219821115611d8557611d85611d0d565b500190565b600060208284031215611d9c57600080fd5b815161092481611c78565b600082611dc457634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e2f5784516001600160a01b031683529383019391830191600101611e0a565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220ca213a6ac935b5e75ac6e8f51ab173ea3bf13f803e6a0d5858dfd513430bee6164736f6c634300080d0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000d99312704ce9c748e7e088b1c810eab3c35f7432
-----Decoded View---------------
Arg [0] : _owner (address): 0xd99312704Ce9C748e7e088B1c810eAb3c35F7432
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000d99312704ce9c748e7e088b1c810eab3c35f7432
Deployed Bytecode Sourcemap
9304:10999:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11996:80;;;;;;;;;;-1:-1:-1;12068:5:0;;;;;;;;;;;;-1:-1:-1;;;12068:5:0;;;;11996:80;;;;;;;:::i;:::-;;;;;;;;12418:216;;;;;;;;;;-1:-1:-1;12418:216:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;12418:216:0;1072:187:1;18743:110:0;;;;;;;;;;-1:-1:-1;18743:110:0;;;;;:::i;:::-;;:::i;:::-;;11726:88;;;;;;;;;;-1:-1:-1;11799:12:0;;11726:88;;;1662:25:1;;;1650:2;1635:18;11726:88:0;1516:177:1;19033:139:0;;;;;;;;;;-1:-1:-1;19033:139:0;;;;;:::i;:::-;;:::i;12936:370::-;;;;;;;;;;-1:-1:-1;12936:370:0;;;;;:::i;:::-;;:::i;20088:206::-;;;;;;;;;;-1:-1:-1;20088:206:0;;;;;:::i;:::-;;:::i;19184:142::-;;;;;;;;;;;;;:::i;2831:103::-;;;;;;;;;;-1:-1:-1;2831:103:0;;;;;:::i;:::-;2886:4;2921:5;-1:-1:-1;;;;;2910:16:0;;;2921:5;;2910:16;;2831:103;11820:80;;;;;;;;;;-1:-1:-1;11820:80:0;;9794:1;2486:36:1;;2474:2;2459:18;11820:80:0;2344:184:1;17522:158:0;;;;;;;;;;-1:-1:-1;17522:158:0;;;;;:::i;:::-;;:::i;19890:80::-;;;;;;;;;;;;;:::i;12642:122::-;;;;;;;;;;-1:-1:-1;12642:122:0;;;;;:::i;:::-;;:::i;19725:157::-;;;;;;;;;;-1:-1:-1;19725:157:0;;;;;:::i;:::-;;:::i;19334:135::-;;;;;;;;;;-1:-1:-1;19334:135:0;;;;;:::i;:::-;;:::i;18183:119::-;;;;;;;;;;-1:-1:-1;18183:119:0;;;;;:::i;:::-;;:::i;19478:115::-;;;;;;;;;;;;;:::i;18310:139::-;;;;;;;;;;-1:-1:-1;18310:139:0;;;;;:::i;:::-;;:::i;12166:105::-;;;;;;;;;;-1:-1:-1;12166:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;12250:18:0;12232:7;12250:18;;;:9;:18;;;;;;;12166:105;19605:111;;;;;;;;;;;;;:::i;10369:92::-;;;;;;;;;;-1:-1:-1;10369:92:0;;;;-1:-1:-1;;;;;10369:92:0;;;;;;-1:-1:-1;;;;;3223:32:1;;;3205:51;;3193:2;3178:18;10369:92:0;3043:219:1;12082:78:0;;;;;;;;;;-1:-1:-1;12134:7:0;12152:5;-1:-1:-1;;;;;12152:5:0;12082:78;;18865:156;;;;;;;;;;-1:-1:-1;18865:156:0;;;;;:::i;:::-;;:::i;11906:84::-;;;;;;;;;;-1:-1:-1;11980:7:0;;;;;;;;;;;;-1:-1:-1;;;11980:7:0;;;;11906:84;;10507:19;;;;;;;;;;-1:-1:-1;10507:19:0;;;;-1:-1:-1;;;;;10507:19:0;;;12772:156;;;;;;;;;;-1:-1:-1;12772:156:0;;;;;:::i;:::-;;:::i;19978:102::-;;;;;;;;;;-1:-1:-1;19978:102:0;;;;;:::i;:::-;-1:-1:-1;;;;;20058:14:0;20034:4;20058:14;;;:5;:14;;;;;;;;;19978:102;10763:35;;;;;;;;;;-1:-1:-1;10763:35:0;;;;-1:-1:-1;;;10763:35:0;;;;;;9557:85;;;;;;;;;;;;;;;10633:65;;;;;;;;;;;;;;;;12277:133;;;;;;;;;;-1:-1:-1;12277:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;12379:19:0;;;12361:7;12379:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;12277:133;18641:90;;;;;;;;;;;;;:::i;3059:136::-;;;;;;;;;;-1:-1:-1;3059:136:0;;;;;:::i;:::-;;:::i;18459:174::-;;;;;;;;;;;;;:::i;18043:132::-;;;;;;;;;;-1:-1:-1;18043:132:0;;;;;:::i;:::-;;:::i;10476:24::-;;;;;;;;;;-1:-1:-1;10476:24:0;;;;-1:-1:-1;;;;;10476:24:0;;;12418:216;12522:10;12493:4;12510:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;12510:32:0;;;;;;;;;;:41;;;12567:37;12493:4;;12510:32;;12567:37;;;;12545:6;1662:25:1;;1650:2;1635:18;;1516:177;12567:37:0;;;;;;;;-1:-1:-1;12622:4:0;12418:216;;;;;:::o;18743:110::-;2886:4;2921:5;-1:-1:-1;;;;;2921:5:0;2738:10;2910:16;2722:38;;;;-1:-1:-1;;;2722:38:0;;;;;;;:::i;:::-;;;;;;;;;18812:11:::1;::::0;:33:::1;::::0;-1:-1:-1;;;18812:33:0;;-1:-1:-1;;;;;3223:32:1;;;18812:33:0::1;::::0;::::1;3205:51:1::0;18812:11:0;;::::1;::::0;:25:::1;::::0;3178:18:1;;18812:33:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18743:110:::0;:::o;19033:139::-;19097:4;2921:5;;-1:-1:-1;;;;;2921:5:0;2738:10;2910:16;2722:38;;;;-1:-1:-1;;;2722:38:0;;;;;;;:::i;:::-;19151:4:::1;::::0;19121:43:::1;::::0;19144:4:::1;::::0;-1:-1:-1;;;;;19151:4:0::1;19157:6:::0;19121:14:::1;:43::i;12936:370::-:0;-1:-1:-1;;;;;13056:19:0;;13036:4;13056:19;;;:11;:19;;;;;;;;13076:10;13056:31;;;;;;;;-1:-1:-1;;13056:52:0;13053:186;;13158:69;;;;;;;;;;;-1:-1:-1;;;13158:69:0;;;;;;;;-1:-1:-1;;;;;13158:19:0;;-1:-1:-1;13158:19:0;;;:11;:19;;;;;13178:10;13158:31;;;;;;;;;;:69;;13194:6;;13158:35;:69::i;:::-;-1:-1:-1;;;;;13124:19:0;;;;;;:11;:19;;;;;;;;13144:10;13124:31;;;;;;;:103;13053:186;13258:40;13272:6;13280:9;13291:6;13258:13;:40::i;:::-;13251:47;;12936:370;;;;;;:::o;20088:206::-;2886:4;2921:5;-1:-1:-1;;;;;2921:5:0;2738:10;2910:16;2722:38;;;;-1:-1:-1;;;2722:38:0;;;;;;;:::i;:::-;20186:12:::1;::::0;:21:::1;::::0;20203:3:::1;20186:16;:21::i;:::-;20176:6;:31;;20167:60;;;::::0;-1:-1:-1;;;20167:60:0;;4890:2:1;20167:60:0::1;::::0;::::1;4872:21:1::0;4929:2;4909:18;;;4902:30;-1:-1:-1;;;4948:18:1;;;4941:45;5003:18;;20167:60:0::1;4688:339:1::0;20167:60:0::1;20270:16;:6:::0;20279:7:::1;20270:16;:::i;:::-;20238:29;:48:::0;-1:-1:-1;20088:206:0:o;19184:142::-;19312:4;;-1:-1:-1;;;;;19312:4:0;19237:7;12250:18;;;:9;:18;;;;;;19264:54;;19291:4;;-1:-1:-1;;;;;19291:4:0;12232:7;12250:18;;;:9;:18;;;;;;19264:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;19257:61;;19184:142;:::o;17522:158::-;2886:4;2921:5;-1:-1:-1;;;;;2921:5:0;2738:10;2910:16;2722:38;;;;-1:-1:-1;;;2722:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17599:15:0;::::1;;::::0;;;:5:::1;:15;::::0;;;;:24;;-1:-1:-1;;17599:24:0::1;::::0;::::1;;;::::0;;17634:38:::1;17599:15:::0;:24;17634:20:::1;:38::i;:::-;17522:158:::0;;:::o;19890:80::-;2886:4;2921:5;-1:-1:-1;;;;;2921:5:0;2738:10;2910:16;2722:38;;;;-1:-1:-1;;;2722:38:0;;;;;;;:::i;:::-;19946:8:::1;:16:::0;;-1:-1:-1;;;;19946:16:0::1;::::0;;19890:80::o;12642:122::-;12697:4;12721:35;12729:7;-1:-1:-1;;12721:7:0;:35::i;19725:157::-;19828:11;;:46;;-1:-1:-1;;;19828:46:0;;-1:-1:-1;;;;;3223:32:1;;;19828:46:0;;;3205:51:1;19801:7:0;;19828:11;;:33;;3178:18:1;;19828:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;19334:135::-;2886:4;2921:5;-1:-1:-1;;;;;2921:5:0;2738:10;2910:16;2722:38;;;;-1:-1:-1;;;2722:38:0;;;;;;;:::i;:::-;19418:15:::1;:43:::0;;-1:-1:-1;;;;;;19418:43:0::1;-1:-1:-1::0;;;;;19418:43:0;;;::::1;::::0;;;::::1;::::0;;19334:135::o;18183:119::-;2886:4;2921:5;-1:-1:-1;;;;;2921:5:0;2738:10;2910:16;2722:38;;;;-1:-1:-1;;;2722:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18266:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;18266:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18183:119::o;19478:115::-;19557:11;;:28;;;-1:-1:-1;;;19557:28:0;;;;19530:7;;-1:-1:-1;;;;;19557:11:0;;:26;;:28;;;;;;;;;;;;;;:11;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;18310:139::-;2886:4;2921:5;-1:-1:-1;;;;;2921:5:0;2738:10;2910:16;2722:38;;;;-1:-1:-1;;;2722:38:0;;;;;;;:::i;:::-;18388:2:::1;18380:4;:10;;18371:44;;;::::0;-1:-1:-1;;;18371:44:0;;5728:2:1;18371:44:0::1;::::0;::::1;5710:21:1::0;5767:2;5747:18;;;5740:30;-1:-1:-1;;;5786:18:1;;;5779:50;5846:18;;18371:44:0::1;5526:344:1::0;18371:44:0::1;18426:8;:15:::0;18310:139::o;19605:111::-;19682:11;;:26;;;-1:-1:-1;;;19682:26:0;;;;19655:7;;-1:-1:-1;;;;;19682:11:0;;:24;;:26;;;;;;;;;;;;;;:11;:26;;;;;;;;;;;;;;18865:156;18966:11;;:47;;-1:-1:-1;;;18966:47:0;;-1:-1:-1;;;;;3223:32:1;;;18966:47:0;;;3205:51:1;18939:7:0;;18966:11;;:34;;3178:18:1;;18966:47:0;3043:219:1;12772:156:0;12852:4;12876:44;12890:10;12902:9;12913:6;12876:13;:44::i;18641:90::-;18686:11;;:37;;-1:-1:-1;;;18686:37:0;;18712:10;18686:37;;;3205:51:1;-1:-1:-1;;;;;18686:11:0;;;;:25;;3178:18:1;;18686:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18641:90::o;3059:136::-;2886:4;2921:5;-1:-1:-1;;;;;2921:5:0;2738:10;2910:16;2722:38;;;;-1:-1:-1;;;2722:38:0;;;;;;;:::i;:::-;3135:5:::1;:11:::0;;-1:-1:-1;;;;;;3135:11:0::1;-1:-1:-1::0;;;;;3135:11:0;::::1;::::0;;::::1;::::0;;;3162:25:::1;::::0;3205:51:1;;;3162:25:0::1;::::0;3193:2:1;3178:18;3162:25:0::1;;;;;;;3059:136:::0;:::o;18459:174::-;2886:4;2921:5;-1:-1:-1;;;;;2921:5:0;2738:10;2910:16;2722:38;;;;-1:-1:-1;;;2722:38:0;;;;;;;:::i;:::-;18580:15:::1;::::0;18572:53:::1;::::0;18540:21:::1;::::0;-1:-1:-1;;;;;18580:15:0::1;::::0;18572:53;::::1;;;::::0;18540:21;;18511:26:::1;18572:53:::0;18511:26;18572:53;18540:21;18580:15;18572:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;18043:132:::0;2886:4;2921:5;-1:-1:-1;;;;;2921:5:0;2738:10;2910:16;2722:38;;;;-1:-1:-1;;;2722:38:0;;;;;;;:::i;:::-;18131:36:::1;18152:6;18160;18131:20;:36::i;14709:330::-:0;14839:53;;;;;;;;;;;-1:-1:-1;;;14839:53:0;;;;;;;;-1:-1:-1;;;;;14839:17:0;;14802:4;14839:17;;;:9;:17;;;;;;;:53;;14861:6;;14839:21;:53::i;:::-;-1:-1:-1;;;;;14819:17:0;;;;;;;:9;:17;;;;;;:73;;;;14926:20;;;;;;;:32;;14951:6;14926:24;:32::i;:::-;-1:-1:-1;;;;;14903:20:0;;;;;;;:9;:20;;;;;;;:55;;;;14974:35;;;;;;;;;;15002:6;1662:25:1;;1650:2;1635:18;;1516:177;14974:35:0;;;;;;;;-1:-1:-1;15027:4:0;14709:330;;;;;:::o;493:192::-;579:7;615:12;607:6;;;;599:29;;;;-1:-1:-1;;;599:29:0;;;;;;;;:::i;:::-;-1:-1:-1;639:9:0;651:5;655:1;651;:5;:::i;:::-;639:17;493:192;-1:-1:-1;;;;;493:192:0:o;13314:1383::-;13427:16;;13406:4;;-1:-1:-1;;;13427:16:0;;;;13423:102;;;-1:-1:-1;;;;;13470:13:0;;;;;;:5;:13;;;;;;;;13469:14;:35;;;;-1:-1:-1;;;;;;13488:16:0;;;;;;:5;:16;;;;;;;;13487:17;13469:35;13460:53;;;;-1:-1:-1;;;13460:53:0;;;;;;6423:2:1;6405:21;;;6462:1;6442:18;;;6435:29;-1:-1:-1;;;6495:2:1;6480:18;;6473:34;6539:2;6524:18;;6221:327;13460:53:0;13539:8;;-1:-1:-1;;;13539:8:0;;;;13535:130;;;13577:5;;-1:-1:-1;;;;;13569:13:0;;;13577:5;;13569:13;;;;:34;;-1:-1:-1;13598:5:0;;-1:-1:-1;;;;;13586:17:0;;;13598:5;;13586:17;;13569:34;13565:80;;;13622:6;;13614;:14;;13605:40;;;;-1:-1:-1;;;13605:40:0;;6755:2:1;13605:40:0;;;6737:21:1;6794:2;6774:18;;;6767:30;-1:-1:-1;;;6813:18:1;;;6806:42;6865:18;;13605:40:0;6553:336:1;13605:40:0;13689:6;;-1:-1:-1;;;13689:6:0;;;;13686:63;;;13705:41;13720:6;13728:9;13739:6;13705:14;:41::i;:::-;13698:48;;;;13686:63;13816:4;13767:28;12250:18;;;:9;:18;;;;;;13886:29;;12250:18;;13862:53;;;;;;13767:28;13862:53;;13955:38;;-1:-1:-1;13989:4:0;;-1:-1:-1;;;;;13978:15:0;;;13989:4;;13978:15;13955:38;:70;;;;-1:-1:-1;14015:4:0;14024:1;12250:18;;;:9;:18;;;;;;13997:28;13955:70;13932:94;;14040:14;14037:33;;;14057:10;:8;:10::i;:::-;14102:53;;;;;;;;;;;-1:-1:-1;;;14102:53:0;;;;;;;;-1:-1:-1;;;;;14102:17:0;;-1:-1:-1;14102:17:0;;;:9;:17;;;;;;;;:53;;14124:6;;14102:21;:53::i;:::-;-1:-1:-1;;;;;14082:17:0;;;;;;:9;:17;;;;;:73;;;;14193:32;14092:6;14215:9;14193:13;:32::i;:::-;:67;;14254:6;14193:67;;;14228:23;14236:6;14244;14228:7;:23::i;:::-;-1:-1:-1;;;;;14304:20:0;;;;;;:9;:20;;;;;;14168:92;;-1:-1:-1;14304:40:0;;14168:92;14304:24;:40::i;:::-;-1:-1:-1;;;;;14281:20:0;;;;;;;:9;:20;;;;;:63;;;;14370:4;;14360:14;;;14370:4;;14360:14;;;;:43;;-1:-1:-1;;;;;;14379:24:0;;;;;;:16;:24;;;;;;;;14378:25;14360:43;14357:114;;;14410:11;;-1:-1:-1;;;;;14439:17:0;;;14410:11;14439:17;;;:9;:17;;;;;;;;14410:47;;-1:-1:-1;;;14410:47:0;;;;;7068:51:1;;;;7135:18;;;7128:34;14410:11:0;;;:20;;7041:18:1;;14410:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14406:63;;14497:4;;-1:-1:-1;;;;;14484:17:0;;;14497:4;;14484:17;;;;:49;;-1:-1:-1;;;;;;14506:27:0;;;;;;:16;:27;;;;;;;;14505:28;14484:49;14481:126;;;14540:11;;-1:-1:-1;;;;;14572:20:0;;;14540:11;14572:20;;;:9;:20;;;;;;;;14540:53;;-1:-1:-1;;;14540:53:0;;;;;7068:51:1;;;;7135:18;;;7128:34;14540:11:0;;;:20;;7041:18:1;;14540:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14536:69;;14641:9;-1:-1:-1;;;;;14624:43:0;14633:6;-1:-1:-1;;;;;14624:43:0;;14652:14;14624:43;;;;1662:25:1;;1650:2;1635:18;;1516:177;14624:43:0;;;;;;;;-1:-1:-1;14685:4:0;;13314:1383;-1:-1:-1;;;;;;;13314:1383:0:o;947:132::-;1005:7;1032:39;1036:1;1039;1032:39;;;;;;;;;;;;;;;;;:3;:39::i;351:136::-;409:7;436:43;440:1;443;436:43;;;;;;;;;;;;;;;;;:3;:43::i;17698:337::-;-1:-1:-1;;;;;17785:23:0;;17803:4;17785:23;;;;:41;;-1:-1:-1;17822:4:0;;-1:-1:-1;;;;;17812:14:0;;;17822:4;;17812:14;;17785:41;17777:50;;;;;;-1:-1:-1;;;;;17838:24:0;;;;;;:16;:24;;;;;:33;;-1:-1:-1;;17838:33:0;;;;;;;;;;;;17882:146;;17907:11;;:31;;-1:-1:-1;;;17907:31:0;;-1:-1:-1;;;;;7086:32:1;;;17907:31:0;;;7068:51:1;17907:11:0;7135:18:1;;;7128:34;17907:11:0;;;;:20;;7041:18:1;;17907:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17522:158;;:::o;17882:146::-;17969:11;;-1:-1:-1;;;;;17998:17:0;;;17969:11;17998:17;;;:9;:17;;;;;;;;17969:47;;-1:-1:-1;;;17969:47:0;;;;;7068:51:1;;;;7135:18;;;7128:34;17969:11:0;;;:20;;7041:18:1;;17969:47:0;6894:274:1;164:181:0;222:7;;254:5;258:1;254;:5;:::i;:::-;242:17;;283:1;278;:6;;270:46;;;;-1:-1:-1;;;270:46:0;;7795:2:1;270:46:0;;;7777:21:1;7834:2;7814:18;;;7807:30;7873:29;7853:18;;;7846:57;7920:18;;270:46:0;7593:351:1;15631:555:0;10853:6;:13;;-1:-1:-1;;;;10853:13:0;-1:-1:-1;;;10853:13:0;;;15723:4:::1;-1:-1:-1::0;12250:18:0;;;:9;:18;;;;;;15682:47;-1:-1:-1;15750:37:0::1;15767:19;15682:47:::0;15784:1:::1;15767:16;:19::i;:::-;15750:16;:37::i;:::-;15798:40;15818:19;:12:::0;15835:1:::1;15818:16;:19::i;:::-;15798;:40::i;:::-;15871:39;::::0;-1:-1:-1;;;15871:39:0;;15904:4:::1;15871:39;::::0;::::1;3205:51:1::0;15851:17:0::1;::::0;15878:6:::1;-1:-1:-1::0;;;;;15871:24:0::1;::::0;::::1;::::0;3178:18:1;;15871:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15970:11;::::0;15938:56:::1;::::0;-1:-1:-1;;;15938:56:0;;-1:-1:-1;;;;;15970:11:0;;::::1;15938:56;::::0;::::1;7068:51:1::0;7135:18;;;7128:34;;;15851:59:0;;-1:-1:-1;15923:12:0::1;::::0;15945:6:::1;15938:23:::0;;::::1;::::0;::::1;::::0;7041:18:1;;15938:56:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15923:71;;16011:7;16007:82;;;16035:11;::::0;:30:::1;::::0;-1:-1:-1;;;16035:30:0;;::::1;::::0;::::1;1662:25:1::0;;;-1:-1:-1;;;;;16035:11:0;;::::1;::::0;:19:::1;::::0;1635:18:1;;16035:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16007:82;16122:15;::::0;16114:56:::1;::::0;-1:-1:-1;;;;;16122:15:0;;::::1;::::0;16148:21:::1;16114:56:::0;::::1;;;::::0;16122:15:::1;16114:56:::0;16122:15;16114:56;16148:21;16122:15;16114:56;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;10871:6:0;:14;;-1:-1:-1;;;;10871:14:0;;;-1:-1:-1;;15631:555:0:o;15050:206::-;-1:-1:-1;;;;;15159:19:0;;15131:4;15159:19;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;15182:22:0;;;;;;:11;:22;;;;;;;;15159:45;15157:48;:90;;;;-1:-1:-1;15221:4:0;;-1:-1:-1;;;;;15211:14:0;;;15221:4;;15211:14;;:35;;-1:-1:-1;;15242:4:0;;-1:-1:-1;;;;;15242:4:0;;;15229:17;;;;15050:206;-1:-1:-1;15050:206:0:o;15264:354::-;15331:7;15351:17;15391:40;15416:14;;15391:20;15402:8;;15391:6;:10;;:20;;;;:::i;:::-;:24;;:40::i;:::-;15487:4;15469:24;;;;:9;:24;;;;;;15379:52;;-1:-1:-1;15469:39:0;;15379:52;15469:28;:39::i;:::-;15460:4;15442:24;;;;:9;:24;;;;;;;:66;;;;15524:42;;-1:-1:-1;;;;;15524:42:0;;;;;;;15556:9;1662:25:1;;1650:2;1635:18;;1516:177;15524:42:0;;;;;;;;15589:21;:6;15600:9;15589:10;:21::i;:::-;15582:28;15264:354;-1:-1:-1;;;;15264:354:0:o;1085:345::-;1171:7;1273:12;1266:5;1258:28;;;;-1:-1:-1;;;1258:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1297:9:0;1309:5;1313:1;1309;:5;:::i;16644:489::-;16796:16;;;16810:1;16796:16;;;;;;;;16772:21;;16796:16;;;;;;;;;;-1:-1:-1;16796:16:0;16772:40;;16841:4;16823;16828:1;16823:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16823:23:0;;;:7;;;;;;;;;:23;16867:4;;;16857:7;;16867:4;;;16857;;16867;16857:7;;;;;;:::i;:::-;-1:-1:-1;;;;;16857:14:0;;;:7;;;;;;;;;:14;16910:6;;:215;;-1:-1:-1;;;16910:215:0;;:6;;;:57;;:215;;16982:11;;16910:6;;17052:4;;17079;;17099:15;;16910:215;;;:::i;16202:434::-;16297:16;;;16311:1;16297:16;;;;;;;;;16273:21;;16297:16;;;;;;;;;;-1:-1:-1;16297:16:0;16273:40;;16342:4;16324;16329:1;16324:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16324:23:0;;;:7;;;;;;;;;:23;16368:4;;;16358:7;;16368:4;;;16358;;16368;16358:7;;;;;;:::i;:::-;;;;;;:14;-1:-1:-1;;;;;16358:14:0;;;-1:-1:-1;;;;;16358:14:0;;;;;16393:6;16383:4;16388:1;16383:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16383:16:0;;;:7;;;;;;;;;:16;16438:6;;:190;;-1:-1:-1;;;16438:190:0;;:6;;;:60;;:190;;16513:11;;16438:6;;16555:4;;16582;;16602:15;;16438:190;;;:::i;691:250::-;749:7;773:1;778;773:6;769:47;;-1:-1:-1;803:1:0;796:8;;769:47;828:9;840:5;844:1;840;:5;:::i;:::-;828:17;-1:-1:-1;873:1:0;864:5;868:1;828:17;864:5;:::i;:::-;:10;856:56;;;;-1:-1:-1;;;856:56:0;;9872:2:1;856:56:0;;;9854:21:1;9911:2;9891:18;;;9884:30;9950:34;9930:18;;;9923:62;-1:-1:-1;;;10001:18:1;;;9994:31;10042:19;;856:56:0;9670:397:1;14:597;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;671:70;616:131;:::o;752:315::-;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1264:247::-;1323:6;1376:2;1364:9;1355:7;1351:23;1347:32;1344:52;;;1392:1;1389;1382:12;1344:52;1431:9;1418:23;1450:31;1475:5;1450:31;:::i;1698:180::-;1757:6;1810:2;1798:9;1789:7;1785:23;1781:32;1778:52;;;1826:1;1823;1816:12;1778:52;-1:-1:-1;1849:23:1;;1698:180;-1:-1:-1;1698:180:1:o;1883:456::-;1960:6;1968;1976;2029:2;2017:9;2008:7;2004:23;2000:32;1997:52;;;2045:1;2042;2035:12;1997:52;2084:9;2071:23;2103:31;2128:5;2103:31;:::i;:::-;2153:5;-1:-1:-1;2210:2:1;2195:18;;2182:32;2223:33;2182:32;2223:33;:::i;:::-;1883:456;;2275:7;;-1:-1:-1;;;2329:2:1;2314:18;;;;2301:32;;1883:456::o;2533:118::-;2619:5;2612:13;2605:21;2598:5;2595:32;2585:60;;2641:1;2638;2631:12;2656:382;2721:6;2729;2782:2;2770:9;2761:7;2757:23;2753:32;2750:52;;;2798:1;2795;2788:12;2750:52;2837:9;2824:23;2856:31;2881:5;2856:31;:::i;:::-;2906:5;-1:-1:-1;2963:2:1;2948:18;;2935:32;2976:30;2935:32;2976:30;:::i;:::-;3025:7;3015:17;;;2656:382;;;;;:::o;3475:388::-;3543:6;3551;3604:2;3592:9;3583:7;3579:23;3575:32;3572:52;;;3620:1;3617;3610:12;3572:52;3659:9;3646:23;3678:31;3703:5;3678:31;:::i;:::-;3728:5;-1:-1:-1;3785:2:1;3770:18;;3757:32;3798:33;3757:32;3798:33;:::i;4354:329::-;4556:2;4538:21;;;4595:1;4575:18;;;4568:29;-1:-1:-1;;;4628:2:1;4613:18;;4606:36;4674:2;4659:18;;4354:329::o;5032:127::-;5093:10;5088:3;5084:20;5081:1;5074:31;5124:4;5121:1;5114:15;5148:4;5145:1;5138:15;5164:168;5204:7;5270:1;5266;5262:6;5258:14;5255:1;5252:21;5247:1;5240:9;5233:17;5229:45;5226:71;;;5277:18;;:::i;:::-;-1:-1:-1;5317:9:1;;5164:168::o;5337:184::-;5407:6;5460:2;5448:9;5439:7;5435:23;5431:32;5428:52;;;5476:1;5473;5466:12;5428:52;-1:-1:-1;5499:16:1;;5337:184;-1:-1:-1;5337:184:1:o;6091:125::-;6131:4;6159:1;6156;6153:8;6150:34;;;6164:18;;:::i;:::-;-1:-1:-1;6201:9:1;;6091:125::o;7460:128::-;7500:3;7531:1;7527:6;7524:1;7521:13;7518:39;;;7537:18;;:::i;:::-;-1:-1:-1;7573:9:1;;7460:128::o;7949:245::-;8016:6;8069:2;8057:9;8048:7;8044:23;8040:32;8037:52;;;8085:1;8082;8075:12;8037:52;8117:9;8111:16;8136:28;8158:5;8136:28;:::i;8199:217::-;8239:1;8265;8255:132;;8309:10;8304:3;8300:20;8297:1;8290:31;8344:4;8341:1;8334:15;8372:4;8369:1;8362:15;8255:132;-1:-1:-1;8401:9:1;;8199:217::o;8553:127::-;8614:10;8609:3;8605:20;8602:1;8595:31;8645:4;8642:1;8635:15;8669:4;8666:1;8659:15;8685:980;8947:4;8995:3;8984:9;8980:19;9026:6;9015:9;9008:25;9052:2;9090:6;9085:2;9074:9;9070:18;9063:34;9133:3;9128:2;9117:9;9113:18;9106:31;9157:6;9192;9186:13;9223:6;9215;9208:22;9261:3;9250:9;9246:19;9239:26;;9300:2;9292:6;9288:15;9274:29;;9321:1;9331:195;9345:6;9342:1;9339:13;9331:195;;;9410:13;;-1:-1:-1;;;;;9406:39:1;9394:52;;9501:15;;;;9466:12;;;;9442:1;9360:9;9331:195;;;-1:-1:-1;;;;;;;9582:32:1;;;;9577:2;9562:18;;9555:60;-1:-1:-1;;;9646:3:1;9631:19;9624:35;9543:3;8685:980;-1:-1:-1;;;8685:980:1:o
Swarm Source
ipfs://0a432cdb82ec0604a41ec32b3ece8d99b460aa55f228a01e5895f1cdc72a3a6d
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.