Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000,000 Kai
Holders
199
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
455,459,536.230928554599892072 KaiValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Kaizen
Compiler Version
v0.8.16+commit.07a7930e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-12-19 */ // https://t.me/KaizenEthereum // Welcome to Kaizen 改善 // SPDX-License-Identifier: MIT pragma solidity ^0.8.16; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } 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 ); } interface DexFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface DexRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; return msg.data; } } contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; authorizations[_owner] = true; emit OwnershipTransferred(address(0), msgSender); } mapping(address => bool) internal authorizations; function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract Kaizen is Ownable, IERC20 { using SafeMath for uint256; string private constant _name = "Kaizen"; string private constant _symbol = "Kai"; address private constant DEAD = 0x000000000000000000000000000000000000dEaD; address private constant ZERO = 0x0000000000000000000000000000000000000000; address private routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; uint8 private constant _decimals = 18; uint256 private _totalSupply = 1000000000000 * (10**_decimals); uint256 public _maxTxAmount = (_totalSupply * 10) / 1000; uint256 public _walletMax = (_totalSupply * 20) / 1000; bool public restrictWhales = true; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) public isFeeExempt; mapping(address => bool) public isTxLimitExempt; uint256 public liquidityFee = 1; uint256 public marketingFee = 2; uint256 public devFee = 1; uint256 public totalFee = 4; uint256 public totalFeeIfSelling = 4; bool public takeBuyFee = true; bool public takeSellFee = true; bool public takeTransferFee = true; address private lpWallet; address private projectAddress; address private teamAddress; DexRouter public router; address public pair; mapping(address => bool) public isPair; uint256 public launchedAt; bool public tradingOpen = false; bool private inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public swapAndLiquifyByLimitOnly = false; uint256 public swapThreshold = (_totalSupply * 2) / 2000; event AutoLiquify(uint256 amountETH, uint256 amountBOG); modifier lockTheSwap() { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor() { router = DexRouter(routerAddress); pair = DexFactory(router.factory()).createPair( router.WETH(), address(this) ); isPair[pair] = true; lpWallet = msg.sender; projectAddress = 0x3FcB61f71cc80D04E6166F415A9243a8b1af4fcE; teamAddress = 0x3eb6335455a0FaaD765B831bb8b6F33b15cB273B; _allowances[address(this)][address(router)] = type(uint256).max; _allowances[address(this)][address(pair)] = type(uint256).max; isFeeExempt[msg.sender] = true; isFeeExempt[address(this)] = true; isFeeExempt[DEAD] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[pair] = true; isTxLimitExempt[DEAD] = true; isFeeExempt[projectAddress] = true; totalFee = liquidityFee.add(marketingFee).add(devFee); totalFeeIfSelling = totalFee; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable {} function name() external pure override returns (string memory) { return _name; } function symbol() external pure override returns (string memory) { return _symbol; } function decimals() external pure override returns (uint8) { return _decimals; } function totalSupply() external view override returns (uint256) { return _totalSupply; } 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 getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function newWalletLimit(uint256 newLimit) external onlyOwner { require(newLimit >= 5, "Wallet Limit needs to be at least 0.5%"); _walletMax = (_totalSupply * newLimit) / 1000; } function newTxLimit(uint256 newLimit) external onlyOwner { require(newLimit >= 5, "Wallet Limit needs to be at least 0.5%"); _maxTxAmount = (_totalSupply * newLimit) / 1000; } function openTrading() public onlyOwner { tradingOpen = true; } function feeWhitelist(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; } function txLimitWhitelist(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } function grantCompletePermissions(address target) public onlyOwner { authorizations[target] = true; isFeeExempt[target] = true; isTxLimitExempt[target] = true; } function changeFees( uint256 newLiqFee, uint256 newMarketingFee, uint256 newDevFee, uint256 extraSellFee ) external onlyOwner { liquidityFee = newLiqFee; marketingFee = newMarketingFee; devFee = newDevFee; totalFee = liquidityFee.add(marketingFee).add(devFee); totalFeeIfSelling = totalFee + extraSellFee; require(totalFeeIfSelling + totalFee < 25); } function isAuth(address _address, bool status) public onlyOwner { authorizations[_address] = status; } function changePair(address _address, bool status) public onlyOwner { isPair[_address] = status; } function changeTakeBuyfee(bool status) public onlyOwner { takeBuyFee = status; } function changeTakeSellfee(bool status) public onlyOwner { takeSellFee = status; } function changeTakeTransferfee(bool status) public onlyOwner { takeTransferFee = status; } function changeSwapbackSettings(bool status, uint256 newAmount) public onlyOwner { swapAndLiquifyEnabled = status; swapThreshold = newAmount; } function changeWallets( address newMktWallet, address newDevWallet, address newLpWallet ) public onlyOwner { lpWallet = newLpWallet; projectAddress = newMktWallet; teamAddress = newDevWallet; } function removeERC20(address tokenAddress, uint256 tokens) public onlyOwner returns (bool success) { require(tokenAddress != address(this), "Cant remove the native token"); return IERC20(tokenAddress).transfer(msg.sender, tokens); } function removeEther(uint256 amountPercentage) external onlyOwner { uint256 amountETH = address(this).balance; payable(msg.sender).transfer((amountETH * amountPercentage) / 100); } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function launched() internal view returns (bool) { return launchedAt != 0; } function launch() internal { launchedAt = block.number; } function checkTxLimit(address sender, uint256 amount) internal view { require( amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded" ); } function failsCaptcha(address addr) internal view returns (bool) { uint256 size; assembly { size := extcodesize(addr) } return size > 0; } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } 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 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 (inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } if (!authorizations[sender] && !authorizations[recipient]) { require(tradingOpen, ""); } require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit"); if ( isPair[recipient] && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold ) { swapBackAndPair(); } if (!launched() && isPair[recipient]) { require(_balances[sender] > 0, ""); launch(); } //Exchange tokens _balances[sender] = _balances[sender].sub(amount, ""); if (!isTxLimitExempt[recipient] && restrictWhales) { require(_balances[recipient].add(amount) <= _walletMax, ""); } uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } function takeFee( address sender, address recipient, uint256 amount ) internal returns (uint256) { uint256 feeApplicable = 0; if (isPair[recipient] && takeSellFee) { feeApplicable = totalFeeIfSelling; } if (isPair[sender] && takeBuyFee) { feeApplicable = totalFee; } if (!isPair[sender] && !isPair[recipient]) { if (takeTransferFee) { feeApplicable = totalFeeIfSelling; } else { feeApplicable = 0; } } uint256 feeAmount = amount.mul(feeApplicable).div(100); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function swapBackAndPair() internal lockTheSwap { uint256 tokensToLiquify = _balances[address(this)]; uint256 amountToLiquify = tokensToLiquify .mul(liquidityFee) .div(totalFee) .div(2); uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance; uint256 totalETHFee = totalFee.sub(liquidityFee.div(2)); uint256 amountETHLiquidity = amountETH .mul(liquidityFee) .div(totalETHFee) .div(2); uint256 amountETHMarketing = amountETH.mul(marketingFee).div( totalETHFee ); uint256 amountETHDev = amountETH.mul(devFee).div(totalETHFee); (bool tmpSuccess1, ) = payable(projectAddress).call{ value: amountETHMarketing, gas: 30000 }(""); tmpSuccess1 = false; (tmpSuccess1, ) = payable(teamAddress).call{ value: amountETHDev, gas: 30000 }(""); tmpSuccess1 = false; if (amountToLiquify > 0) { router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, lpWallet, block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"},{"internalType":"uint256","name":"newDevFee","type":"uint256"},{"internalType":"uint256","name":"extraSellFee","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"changePair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"},{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"changeSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"changeTakeBuyfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"changeTakeSellfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"changeTakeTransferfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMktWallet","type":"address"},{"internalType":"address","name":"newDevWallet","type":"address"},{"internalType":"address","name":"newLpWallet","type":"address"}],"name":"changeWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"feeWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"grantCompletePermissions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"isAuth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"newTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"newWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"removeERC20","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"removeEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract DexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"takeBuyFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeSellFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeTransferFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"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":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"txLimitWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055620000386012600a62000674565b620000499064e8d4a510006200068c565b6003556103e8600354600a6200006091906200068c565b6200006c9190620006ae565b6004556103e860035460146200008391906200068c565b6200008f9190620006ae565b6005556006805460ff19166001908117909155600b8190556002600c819055600d919091556004600e819055600f55601080546201010162ffffff199091161790556017805463ffff00ff1916620100001790556003546107d091620000f691906200068c565b620001029190620006ae565b6018553480156200011257600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600254601380546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620001ca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f09190620006d1565b6001600160a01b031663c9c65396601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000252573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002789190620006d1565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015620002c5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002eb9190620006d1565b601480546001600160a01b039283166001600160a01b0319918216811783556000908152601560209081526040808320805460ff199081166001908117909255601080546301000000339081026301000000600160b81b031990921691909117909155601180548816733fcb61f71cc80d04e6166f415a9243a8b1af4fce17815560128054909816733eb6335455a0faad765b831bb8b6f33b15cb273b1790975530808752600886528487206013548b16885286528487206000199081905589548b168852858820558187526009808752858820805485168617905590875284872080548416851790557f960b1051749987b45b5679007fff577a1c2f763ec21c15a6c5eb1930750037858054841685179055908652600a8552838620805483168417905596548816855282852080548216831790557f20677881080440a9b3c87e826370bb5d9c2f74efd4dede686d52d77a6a09f8bb8054821683179055945490961683529381529290208054909116909217909155600d54600c54600b54620004999362000485929062001320620004f2821b17901c565b620004f260201b620013201790919060201c565b600e819055600f5560035433600081815260076020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000712565b600080620005018385620006fc565b905083811015620005585760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005b85781600019048211156200059c576200059c62000561565b80851615620005aa57918102915b93841c93908002906200057c565b509250929050565b600082620005d1575060016200055b565b81620005e0575060006200055b565b8160018114620005f95760028114620006045762000624565b60019150506200055b565b60ff84111562000618576200061862000561565b50506001821b6200055b565b5060208310610133831016604e8410600b841016171562000649575081810a6200055b565b62000655838362000577565b80600019048211156200066c576200066c62000561565b029392505050565b60006200068560ff841683620005c0565b9392505050565b6000816000190483118215151615620006a957620006a962000561565b500290565b600082620006cc57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620006e457600080fd5b81516001600160a01b03811681146200055857600080fd5b808201808211156200055b576200055b62000561565b6122d780620007226000396000f3fe6080604052600436106103035760003560e01c80637cc5d7eb11610190578063a9059cbb116100dc578063da00097d11610095578063f0ef821f1161006f578063f0ef821f14610944578063f2fde38b1461095e578063f887ea401461097e578063ffb54a991461099e57600080fd5b8063da00097d146108ad578063dd62ed3e146108ce578063e5e31b131461091457600080fd5b8063a9059cbb1461080c578063a993f3251461082c578063bb54c40e1461084c578063bf56b3711461086c578063c9567bf914610882578063ca987b0e1461089757600080fd5b80638b42507f1161014957806395d89b411161012357806395d89b411461078a57806398118cb4146107b6578063a5355989146107cc578063a8aa1b31146107ec57600080fd5b80638b42507f1461071c5780638da5cb5b1461074c578063900d96111461076a57600080fd5b80637cc5d7eb1461065e5780637d1db4a51461067e578063807c2d9c146106945780638637b069146106aa578063893a9691146106ca578063893d20e8146106ea57600080fd5b80633f4218e01161024f5780636827e764116102085780637070c898116101e25780637070c898146105d357806370a08231146105f3578063715018a614610629578063787a051b1461063e57600080fd5b80636827e764146105885780636b67c4df1461059e57806370540933146105b457600080fd5b80633f4218e0146104be57806344de2e4c146104ee5780634a74bb0214610508578063571ac8b014610528578063650c42261461054857806366c61edd1461056857600080fd5b80631df4ccfc116102bc578063257cbb6f11610296578063257cbb6f1461044d5780632b112e491461046d578063313ce56714610482578063399c79761461049e57600080fd5b80631df4ccfc146103f75780631e0d55371461040d57806323b872dd1461042d57600080fd5b80630445b6671461030f57806306fdde0314610338578063095ea7b3146103705780630975d294146103a057806309cdd3ee146103c257806318160ddd146103e257600080fd5b3661030a57005b600080fd5b34801561031b57600080fd5b5061032560185481565b6040519081526020015b60405180910390f35b34801561034457600080fd5b5060408051808201909152600681526525b0b4bd32b760d11b60208201525b60405161032f9190611e84565b34801561037c57600080fd5b5061039061038b366004611eea565b6109b8565b604051901515815260200161032f565b3480156103ac57600080fd5b506103c06103bb366004611f24565b610a25565b005b3480156103ce57600080fd5b506103c06103dd366004611f42565b610a78565b3480156103ee57600080fd5b50600354610325565b34801561040357600080fd5b50610325600e5481565b34801561041957600080fd5b506103c0610428366004611f5f565b610aea565b34801561043957600080fd5b50610390610448366004611f98565b610b3f565b34801561045957600080fd5b506103c0610468366004611f5f565b610c01565b34801561047957600080fd5b50610325610c56565b34801561048e57600080fd5b506040516012815260200161032f565b3480156104aa57600080fd5b506103c06104b9366004611f5f565b610cc7565b3480156104ca57600080fd5b506103906104d9366004611f42565b60096020526000908152604090205460ff1681565b3480156104fa57600080fd5b506006546103909060ff1681565b34801561051457600080fd5b506017546103909062010000900460ff1681565b34801561053457600080fd5b50610390610543366004611f42565b610d1c565b34801561055457600080fd5b506103c0610563366004611fd9565b610d2a565b34801561057457600080fd5b506103c061058336600461200b565b610dac565b34801561059457600080fd5b50610325600d5481565b3480156105aa57600080fd5b50610325600c5481565b3480156105c057600080fd5b5060105461039090610100900460ff1681565b3480156105df57600080fd5b506103c06105ee366004612024565b610e18565b3480156105ff57600080fd5b5061032561060e366004611f42565b6001600160a01b031660009081526007602052604090205490565b34801561063557600080fd5b506103c0610e5e565b34801561064a57600080fd5b506103c061065936600461200b565b610ed2565b34801561066a57600080fd5b506103c0610679366004611f5f565b610f44565b34801561068a57600080fd5b5061032560045481565b3480156106a057600080fd5b5061032560055481565b3480156106b657600080fd5b506103906106c5366004611eea565b610f99565b3480156106d657600080fd5b506103c06106e5366004612041565b61108d565b3480156106f657600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161032f565b34801561072857600080fd5b50610390610737366004611f42565b600a6020526000908152604090205460ff1681565b34801561075857600080fd5b506000546001600160a01b0316610704565b34801561077657600080fd5b506103c0610785366004612024565b611103565b34801561079657600080fd5b506040805180820190915260038152624b616960e81b6020820152610363565b3480156107c257600080fd5b50610325600b5481565b3480156107d857600080fd5b506010546103909062010000900460ff1681565b3480156107f857600080fd5b50601454610704906001600160a01b031681565b34801561081857600080fd5b50610390610827366004611eea565b611147565b34801561083857600080fd5b506103c061084736600461200b565b611154565b34801561085857600080fd5b506103c0610867366004612024565b6111c0565b34801561087857600080fd5b5061032560165481565b34801561088e57600080fd5b506103c06111fd565b3480156108a357600080fd5b50610325600f5481565b3480156108b957600080fd5b50601754610390906301000000900460ff1681565b3480156108da57600080fd5b506103256108e936600461208c565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561092057600080fd5b5061039061092f366004611f42565b60156020526000908152604090205460ff1681565b34801561095057600080fd5b506010546103909060ff1681565b34801561096a57600080fd5b506103c0610979366004611f42565b611236565b34801561098a57600080fd5b50601354610704906001600160a01b031681565b3480156109aa57600080fd5b506017546103909060ff1681565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610a139086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610a585760405162461bcd60e51b8152600401610a4f906120ba565b60405180910390fd5b60178054921515620100000262ff00001990931692909217909155601855565b6000546001600160a01b03163314610aa25760405162461bcd60e51b8152600401610a4f906120ba565b6001600160a01b03166000908152600160208181526040808420805460ff199081168517909155600983528185208054821685179055600a9092529092208054909216179055565b6000546001600160a01b03163314610b145760405162461bcd60e51b8152600401610a4f906120ba565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610bec576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600882528381203382529091529190912054610bc791849061137f565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610bf78484846113b9565b90505b9392505050565b6000546001600160a01b03163314610c2b5760405162461bcd60e51b8152600401610a4f906120ba565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b60076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5461dead60009081527fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d546003549192610cc2929091610cbc919061173a565b9061173a565b905090565b6000546001600160a01b03163314610cf15760405162461bcd60e51b8152600401610a4f906120ba565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b6000610a1f826000196109b8565b6000546001600160a01b03163314610d545760405162461bcd60e51b8152600401610a4f906120ba565b600b849055600c839055600d829055610d7782610d718686611320565b90611320565b600e819055610d87908290612105565b600f819055600e54601991610d9c9190612105565b10610da657600080fd5b50505050565b6000546001600160a01b03163314610dd65760405162461bcd60e51b8152600401610a4f906120ba565b6005811015610df75760405162461bcd60e51b8152600401610a4f90612118565b6103e881600354610e08919061215e565b610e12919061217d565b60055550565b6000546001600160a01b03163314610e425760405162461bcd60e51b8152600401610a4f906120ba565b60108054911515620100000262ff000019909216919091179055565b6000546001600160a01b03163314610e885760405162461bcd60e51b8152600401610a4f906120ba565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610efc5760405162461bcd60e51b8152600401610a4f906120ba565b47336108fc6064610f0d858561215e565b610f17919061217d565b6040518115909202916000818181858888f19350505050158015610f3f573d6000803e3d6000fd5b505050565b6000546001600160a01b03163314610f6e5760405162461bcd60e51b8152600401610a4f906120ba565b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b600080546001600160a01b03163314610fc45760405162461bcd60e51b8152600401610a4f906120ba565b306001600160a01b0384160361101c5760405162461bcd60e51b815260206004820152601c60248201527f43616e742072656d6f766520746865206e617469766520746f6b656e000000006044820152606401610a4f565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015611069573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bfa919061219f565b6000546001600160a01b031633146110b75760405162461bcd60e51b8152600401610a4f906120ba565b601080546301000000600160b81b03191663010000006001600160a01b0393841602179055601180546001600160a01b0319908116948316949094179055601280549093169116179055565b6000546001600160a01b0316331461112d5760405162461bcd60e51b8152600401610a4f906120ba565b601080549115156101000261ff0019909216919091179055565b6000610bfa3384846113b9565b6000546001600160a01b0316331461117e5760405162461bcd60e51b8152600401610a4f906120ba565b600581101561119f5760405162461bcd60e51b8152600401610a4f90612118565b6103e8816003546111b0919061215e565b6111ba919061217d565b60045550565b6000546001600160a01b031633146111ea5760405162461bcd60e51b8152600401610a4f906120ba565b6010805460ff1916911515919091179055565b6000546001600160a01b031633146112275760405162461bcd60e51b8152600401610a4f906120ba565b6017805460ff19166001179055565b6000546001600160a01b031633146112605760405162461bcd60e51b8152600401610a4f906120ba565b6001600160a01b0381166112c55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a4f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008061132d8385612105565b905083811015610bfa5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a4f565b600081848411156113a35760405162461bcd60e51b8152600401610a4f9190611e84565b5060006113b084866121bc565b95945050505050565b601754600090610100900460ff16156113de576113d784848461177c565b9050610bfa565b6001600160a01b03841660009081526001602052604090205460ff1615801561142057506001600160a01b03831660009081526001602052604090205460ff16155b156114515760175460ff166114515760405162461bcd60e51b81526020600482015260006024820152604401610a4f565b6004548211158061147a57506001600160a01b0384166000908152600a602052604090205460ff165b6114b15760405162461bcd60e51b8152602060048201526008602482015267151608131a5b5a5d60c21b6044820152606401610a4f565b6001600160a01b03831660009081526015602052604090205460ff1680156114e15750601754610100900460ff16155b80156114f5575060175462010000900460ff165b801561151257506018543060009081526007602052604090205410155b1561151f5761151f611862565b60165415801561154757506001600160a01b03831660009081526015602052604090205460ff165b15611594576001600160a01b03841660009081526007602052604090205461158b5760405162461bcd60e51b81526020600482015260006024820152604401610a4f565b61159443601655565b604080516020808201835260008083526001600160a01b0388168152600790915291909120546115c591849061137f565b6001600160a01b038086166000908152600760209081526040808320949094559186168152600a909152205460ff16158015611603575060065460ff165b15611656576005546001600160a01b03841660009081526007602052604090205461162e9084611320565b11156116565760405162461bcd60e51b81526020600482015260006024820152604401610a4f565b6001600160a01b03841660009081526009602052604081205460ff1615801561169857506001600160a01b03841660009081526009602052604090205460ff16155b6116a257826116ad565b6116ad858585611c28565b6001600160a01b0385166000908152600760205260409020549091506116d39082611320565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117279085815260200190565b60405180910390a3506001949350505050565b6000610bfa83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061137f565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526007909152918220546117cd91849061137f565b6001600160a01b0380861660009081526007602052604080822093909355908516815220546117fc9083611320565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118509086815260200190565b60405180910390a35060019392505050565b6017805461ff00191661010017905530600090815260076020526040812054600e54600b549192916118a59160029161189f919082908790611d97565b90611e19565b905060006118b3838361173a565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106118ed576118ed6121cf565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611946573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196a91906121e5565b8160018151811061197d5761197d6121cf565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac947906119c3908590600090869030904290600401612202565b600060405180830381600087803b1580156119dd57600080fd5b505af11580156119f1573d6000803e3d6000fd5b5050600b5447925060009150611a1590611a0c906002611e19565b600e549061173a565b90506000611a37600261189f8461189f600b5488611d9790919063ffffffff16565b90506000611a548361189f600c5487611d9790919063ffffffff16565b90506000611a718461189f600d5488611d9790919063ffffffff16565b6011546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d8060008114611ac8576040519150601f19603f3d011682016040523d82523d6000602084013e611acd565b606091505b5050601254604051600093506001600160a01b03909116915061753090849084818181858888f193505050503d8060008114611b25576040519150601f19603f3d011682016040523d82523d6000602084013e611b2a565b606091505b50600092505089159050611c115760135460105460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b036301000000909204821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af1158015611baf573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611bd49190612273565b505060408051868152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506017805461ff00191690555050505050505050565b6001600160a01b038216600090815260156020526040812054819060ff168015611c595750601054610100900460ff165b15611c635750600f545b6001600160a01b03851660009081526015602052604090205460ff168015611c8d575060105460ff165b15611c975750600e545b6001600160a01b03851660009081526015602052604090205460ff16158015611cd957506001600160a01b03841660009081526015602052604090205460ff16155b15611cfc5760105462010000900460ff1615611cf85750600f54611cfc565b5060005b6000611d0d606461189f8685611d97565b30600090815260076020526040902054909150611d2a9082611320565b30600081815260076020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d7b9085815260200190565b60405180910390a3611d8d848261173a565b9695505050505050565b600082600003611da957506000610a1f565b6000611db5838561215e565b905082611dc2858361217d565b14610bfa5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a4f565b6000610bfa83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183611e775760405162461bcd60e51b8152600401610a4f9190611e84565b5060006113b0848661217d565b600060208083528351808285015260005b81811015611eb157858101830151858201604001528201611e95565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611ee757600080fd5b50565b60008060408385031215611efd57600080fd5b8235611f0881611ed2565b946020939093013593505050565b8015158114611ee757600080fd5b60008060408385031215611f3757600080fd5b8235611f0881611f16565b600060208284031215611f5457600080fd5b8135610bfa81611ed2565b60008060408385031215611f7257600080fd5b8235611f7d81611ed2565b91506020830135611f8d81611f16565b809150509250929050565b600080600060608486031215611fad57600080fd5b8335611fb881611ed2565b92506020840135611fc881611ed2565b929592945050506040919091013590565b60008060008060808587031215611fef57600080fd5b5050823594602084013594506040840135936060013592509050565b60006020828403121561201d57600080fd5b5035919050565b60006020828403121561203657600080fd5b8135610bfa81611f16565b60008060006060848603121561205657600080fd5b833561206181611ed2565b9250602084013561207181611ed2565b9150604084013561208181611ed2565b809150509250925092565b6000806040838503121561209f57600080fd5b82356120aa81611ed2565b91506020830135611f8d81611ed2565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a1f57610a1f6120ef565b60208082526026908201527f57616c6c6574204c696d6974206e6565647320746f206265206174206c6561736040820152657420302e352560d01b606082015260800190565b6000816000190483118215151615612178576121786120ef565b500290565b60008261219a57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156121b157600080fd5b8151610bfa81611f16565b81810381811115610a1f57610a1f6120ef565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156121f757600080fd5b8151610bfa81611ed2565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122525784516001600160a01b03168352938301939183019160010161222d565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561228857600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220aacfd8bcabd9298cb90299e3a752c03e7a14b9230539729ba2897f236be5f7ad64736f6c63430008100033
Deployed Bytecode
0x6080604052600436106103035760003560e01c80637cc5d7eb11610190578063a9059cbb116100dc578063da00097d11610095578063f0ef821f1161006f578063f0ef821f14610944578063f2fde38b1461095e578063f887ea401461097e578063ffb54a991461099e57600080fd5b8063da00097d146108ad578063dd62ed3e146108ce578063e5e31b131461091457600080fd5b8063a9059cbb1461080c578063a993f3251461082c578063bb54c40e1461084c578063bf56b3711461086c578063c9567bf914610882578063ca987b0e1461089757600080fd5b80638b42507f1161014957806395d89b411161012357806395d89b411461078a57806398118cb4146107b6578063a5355989146107cc578063a8aa1b31146107ec57600080fd5b80638b42507f1461071c5780638da5cb5b1461074c578063900d96111461076a57600080fd5b80637cc5d7eb1461065e5780637d1db4a51461067e578063807c2d9c146106945780638637b069146106aa578063893a9691146106ca578063893d20e8146106ea57600080fd5b80633f4218e01161024f5780636827e764116102085780637070c898116101e25780637070c898146105d357806370a08231146105f3578063715018a614610629578063787a051b1461063e57600080fd5b80636827e764146105885780636b67c4df1461059e57806370540933146105b457600080fd5b80633f4218e0146104be57806344de2e4c146104ee5780634a74bb0214610508578063571ac8b014610528578063650c42261461054857806366c61edd1461056857600080fd5b80631df4ccfc116102bc578063257cbb6f11610296578063257cbb6f1461044d5780632b112e491461046d578063313ce56714610482578063399c79761461049e57600080fd5b80631df4ccfc146103f75780631e0d55371461040d57806323b872dd1461042d57600080fd5b80630445b6671461030f57806306fdde0314610338578063095ea7b3146103705780630975d294146103a057806309cdd3ee146103c257806318160ddd146103e257600080fd5b3661030a57005b600080fd5b34801561031b57600080fd5b5061032560185481565b6040519081526020015b60405180910390f35b34801561034457600080fd5b5060408051808201909152600681526525b0b4bd32b760d11b60208201525b60405161032f9190611e84565b34801561037c57600080fd5b5061039061038b366004611eea565b6109b8565b604051901515815260200161032f565b3480156103ac57600080fd5b506103c06103bb366004611f24565b610a25565b005b3480156103ce57600080fd5b506103c06103dd366004611f42565b610a78565b3480156103ee57600080fd5b50600354610325565b34801561040357600080fd5b50610325600e5481565b34801561041957600080fd5b506103c0610428366004611f5f565b610aea565b34801561043957600080fd5b50610390610448366004611f98565b610b3f565b34801561045957600080fd5b506103c0610468366004611f5f565b610c01565b34801561047957600080fd5b50610325610c56565b34801561048e57600080fd5b506040516012815260200161032f565b3480156104aa57600080fd5b506103c06104b9366004611f5f565b610cc7565b3480156104ca57600080fd5b506103906104d9366004611f42565b60096020526000908152604090205460ff1681565b3480156104fa57600080fd5b506006546103909060ff1681565b34801561051457600080fd5b506017546103909062010000900460ff1681565b34801561053457600080fd5b50610390610543366004611f42565b610d1c565b34801561055457600080fd5b506103c0610563366004611fd9565b610d2a565b34801561057457600080fd5b506103c061058336600461200b565b610dac565b34801561059457600080fd5b50610325600d5481565b3480156105aa57600080fd5b50610325600c5481565b3480156105c057600080fd5b5060105461039090610100900460ff1681565b3480156105df57600080fd5b506103c06105ee366004612024565b610e18565b3480156105ff57600080fd5b5061032561060e366004611f42565b6001600160a01b031660009081526007602052604090205490565b34801561063557600080fd5b506103c0610e5e565b34801561064a57600080fd5b506103c061065936600461200b565b610ed2565b34801561066a57600080fd5b506103c0610679366004611f5f565b610f44565b34801561068a57600080fd5b5061032560045481565b3480156106a057600080fd5b5061032560055481565b3480156106b657600080fd5b506103906106c5366004611eea565b610f99565b3480156106d657600080fd5b506103c06106e5366004612041565b61108d565b3480156106f657600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161032f565b34801561072857600080fd5b50610390610737366004611f42565b600a6020526000908152604090205460ff1681565b34801561075857600080fd5b506000546001600160a01b0316610704565b34801561077657600080fd5b506103c0610785366004612024565b611103565b34801561079657600080fd5b506040805180820190915260038152624b616960e81b6020820152610363565b3480156107c257600080fd5b50610325600b5481565b3480156107d857600080fd5b506010546103909062010000900460ff1681565b3480156107f857600080fd5b50601454610704906001600160a01b031681565b34801561081857600080fd5b50610390610827366004611eea565b611147565b34801561083857600080fd5b506103c061084736600461200b565b611154565b34801561085857600080fd5b506103c0610867366004612024565b6111c0565b34801561087857600080fd5b5061032560165481565b34801561088e57600080fd5b506103c06111fd565b3480156108a357600080fd5b50610325600f5481565b3480156108b957600080fd5b50601754610390906301000000900460ff1681565b3480156108da57600080fd5b506103256108e936600461208c565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561092057600080fd5b5061039061092f366004611f42565b60156020526000908152604090205460ff1681565b34801561095057600080fd5b506010546103909060ff1681565b34801561096a57600080fd5b506103c0610979366004611f42565b611236565b34801561098a57600080fd5b50601354610704906001600160a01b031681565b3480156109aa57600080fd5b506017546103909060ff1681565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610a139086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610a585760405162461bcd60e51b8152600401610a4f906120ba565b60405180910390fd5b60178054921515620100000262ff00001990931692909217909155601855565b6000546001600160a01b03163314610aa25760405162461bcd60e51b8152600401610a4f906120ba565b6001600160a01b03166000908152600160208181526040808420805460ff199081168517909155600983528185208054821685179055600a9092529092208054909216179055565b6000546001600160a01b03163314610b145760405162461bcd60e51b8152600401610a4f906120ba565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610bec576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600882528381203382529091529190912054610bc791849061137f565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610bf78484846113b9565b90505b9392505050565b6000546001600160a01b03163314610c2b5760405162461bcd60e51b8152600401610a4f906120ba565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b60076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5461dead60009081527fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d546003549192610cc2929091610cbc919061173a565b9061173a565b905090565b6000546001600160a01b03163314610cf15760405162461bcd60e51b8152600401610a4f906120ba565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b6000610a1f826000196109b8565b6000546001600160a01b03163314610d545760405162461bcd60e51b8152600401610a4f906120ba565b600b849055600c839055600d829055610d7782610d718686611320565b90611320565b600e819055610d87908290612105565b600f819055600e54601991610d9c9190612105565b10610da657600080fd5b50505050565b6000546001600160a01b03163314610dd65760405162461bcd60e51b8152600401610a4f906120ba565b6005811015610df75760405162461bcd60e51b8152600401610a4f90612118565b6103e881600354610e08919061215e565b610e12919061217d565b60055550565b6000546001600160a01b03163314610e425760405162461bcd60e51b8152600401610a4f906120ba565b60108054911515620100000262ff000019909216919091179055565b6000546001600160a01b03163314610e885760405162461bcd60e51b8152600401610a4f906120ba565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610efc5760405162461bcd60e51b8152600401610a4f906120ba565b47336108fc6064610f0d858561215e565b610f17919061217d565b6040518115909202916000818181858888f19350505050158015610f3f573d6000803e3d6000fd5b505050565b6000546001600160a01b03163314610f6e5760405162461bcd60e51b8152600401610a4f906120ba565b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b600080546001600160a01b03163314610fc45760405162461bcd60e51b8152600401610a4f906120ba565b306001600160a01b0384160361101c5760405162461bcd60e51b815260206004820152601c60248201527f43616e742072656d6f766520746865206e617469766520746f6b656e000000006044820152606401610a4f565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015611069573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bfa919061219f565b6000546001600160a01b031633146110b75760405162461bcd60e51b8152600401610a4f906120ba565b601080546301000000600160b81b03191663010000006001600160a01b0393841602179055601180546001600160a01b0319908116948316949094179055601280549093169116179055565b6000546001600160a01b0316331461112d5760405162461bcd60e51b8152600401610a4f906120ba565b601080549115156101000261ff0019909216919091179055565b6000610bfa3384846113b9565b6000546001600160a01b0316331461117e5760405162461bcd60e51b8152600401610a4f906120ba565b600581101561119f5760405162461bcd60e51b8152600401610a4f90612118565b6103e8816003546111b0919061215e565b6111ba919061217d565b60045550565b6000546001600160a01b031633146111ea5760405162461bcd60e51b8152600401610a4f906120ba565b6010805460ff1916911515919091179055565b6000546001600160a01b031633146112275760405162461bcd60e51b8152600401610a4f906120ba565b6017805460ff19166001179055565b6000546001600160a01b031633146112605760405162461bcd60e51b8152600401610a4f906120ba565b6001600160a01b0381166112c55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a4f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008061132d8385612105565b905083811015610bfa5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a4f565b600081848411156113a35760405162461bcd60e51b8152600401610a4f9190611e84565b5060006113b084866121bc565b95945050505050565b601754600090610100900460ff16156113de576113d784848461177c565b9050610bfa565b6001600160a01b03841660009081526001602052604090205460ff1615801561142057506001600160a01b03831660009081526001602052604090205460ff16155b156114515760175460ff166114515760405162461bcd60e51b81526020600482015260006024820152604401610a4f565b6004548211158061147a57506001600160a01b0384166000908152600a602052604090205460ff165b6114b15760405162461bcd60e51b8152602060048201526008602482015267151608131a5b5a5d60c21b6044820152606401610a4f565b6001600160a01b03831660009081526015602052604090205460ff1680156114e15750601754610100900460ff16155b80156114f5575060175462010000900460ff165b801561151257506018543060009081526007602052604090205410155b1561151f5761151f611862565b60165415801561154757506001600160a01b03831660009081526015602052604090205460ff165b15611594576001600160a01b03841660009081526007602052604090205461158b5760405162461bcd60e51b81526020600482015260006024820152604401610a4f565b61159443601655565b604080516020808201835260008083526001600160a01b0388168152600790915291909120546115c591849061137f565b6001600160a01b038086166000908152600760209081526040808320949094559186168152600a909152205460ff16158015611603575060065460ff165b15611656576005546001600160a01b03841660009081526007602052604090205461162e9084611320565b11156116565760405162461bcd60e51b81526020600482015260006024820152604401610a4f565b6001600160a01b03841660009081526009602052604081205460ff1615801561169857506001600160a01b03841660009081526009602052604090205460ff16155b6116a257826116ad565b6116ad858585611c28565b6001600160a01b0385166000908152600760205260409020549091506116d39082611320565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117279085815260200190565b60405180910390a3506001949350505050565b6000610bfa83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061137f565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526007909152918220546117cd91849061137f565b6001600160a01b0380861660009081526007602052604080822093909355908516815220546117fc9083611320565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118509086815260200190565b60405180910390a35060019392505050565b6017805461ff00191661010017905530600090815260076020526040812054600e54600b549192916118a59160029161189f919082908790611d97565b90611e19565b905060006118b3838361173a565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106118ed576118ed6121cf565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611946573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196a91906121e5565b8160018151811061197d5761197d6121cf565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac947906119c3908590600090869030904290600401612202565b600060405180830381600087803b1580156119dd57600080fd5b505af11580156119f1573d6000803e3d6000fd5b5050600b5447925060009150611a1590611a0c906002611e19565b600e549061173a565b90506000611a37600261189f8461189f600b5488611d9790919063ffffffff16565b90506000611a548361189f600c5487611d9790919063ffffffff16565b90506000611a718461189f600d5488611d9790919063ffffffff16565b6011546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d8060008114611ac8576040519150601f19603f3d011682016040523d82523d6000602084013e611acd565b606091505b5050601254604051600093506001600160a01b03909116915061753090849084818181858888f193505050503d8060008114611b25576040519150601f19603f3d011682016040523d82523d6000602084013e611b2a565b606091505b50600092505089159050611c115760135460105460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b036301000000909204821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af1158015611baf573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611bd49190612273565b505060408051868152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506017805461ff00191690555050505050505050565b6001600160a01b038216600090815260156020526040812054819060ff168015611c595750601054610100900460ff165b15611c635750600f545b6001600160a01b03851660009081526015602052604090205460ff168015611c8d575060105460ff165b15611c975750600e545b6001600160a01b03851660009081526015602052604090205460ff16158015611cd957506001600160a01b03841660009081526015602052604090205460ff16155b15611cfc5760105462010000900460ff1615611cf85750600f54611cfc565b5060005b6000611d0d606461189f8685611d97565b30600090815260076020526040902054909150611d2a9082611320565b30600081815260076020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d7b9085815260200190565b60405180910390a3611d8d848261173a565b9695505050505050565b600082600003611da957506000610a1f565b6000611db5838561215e565b905082611dc2858361217d565b14610bfa5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a4f565b6000610bfa83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183611e775760405162461bcd60e51b8152600401610a4f9190611e84565b5060006113b0848661217d565b600060208083528351808285015260005b81811015611eb157858101830151858201604001528201611e95565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611ee757600080fd5b50565b60008060408385031215611efd57600080fd5b8235611f0881611ed2565b946020939093013593505050565b8015158114611ee757600080fd5b60008060408385031215611f3757600080fd5b8235611f0881611f16565b600060208284031215611f5457600080fd5b8135610bfa81611ed2565b60008060408385031215611f7257600080fd5b8235611f7d81611ed2565b91506020830135611f8d81611f16565b809150509250929050565b600080600060608486031215611fad57600080fd5b8335611fb881611ed2565b92506020840135611fc881611ed2565b929592945050506040919091013590565b60008060008060808587031215611fef57600080fd5b5050823594602084013594506040840135936060013592509050565b60006020828403121561201d57600080fd5b5035919050565b60006020828403121561203657600080fd5b8135610bfa81611f16565b60008060006060848603121561205657600080fd5b833561206181611ed2565b9250602084013561207181611ed2565b9150604084013561208181611ed2565b809150509250925092565b6000806040838503121561209f57600080fd5b82356120aa81611ed2565b91506020830135611f8d81611ed2565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a1f57610a1f6120ef565b60208082526026908201527f57616c6c6574204c696d6974206e6565647320746f206265206174206c6561736040820152657420302e352560d01b606082015260800190565b6000816000190483118215151615612178576121786120ef565b500290565b60008261219a57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156121b157600080fd5b8151610bfa81611f16565b81810381811115610a1f57610a1f6120ef565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156121f757600080fd5b8151610bfa81611ed2565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122525784516001600160a01b03168352938301939183019160010161222d565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561228857600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220aacfd8bcabd9298cb90299e3a752c03e7a14b9230539729ba2897f236be5f7ad64736f6c63430008100033
Deployed Bytecode Sourcemap
4635:12957:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6292:56;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6292:56:0;;;;;;;;7635:94;;;;;;;;;;-1:-1:-1;7716:5:0;;;;;;;;;;;;-1:-1:-1;;;7716:5:0;;;;7635:94;;;;;;;:::i;8630:248::-;;;;;;;;;;-1:-1:-1;8630:248:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;8630:248:0;1205:187:1;10867:189:0;;;;;;;;;;-1:-1:-1;10867:189:0;;;;;:::i;:::-;;:::i;:::-;;9643:193;;;;;;;;;;-1:-1:-1;9643:193:0;;;;;:::i;:::-;;:::i;7945:102::-;;;;;;;;;;-1:-1:-1;8027:12:0;;7945:102;;5681:27;;;;;;;;;;;;;;;;9385:117;;;;;;;;;;-1:-1:-1;9385:117:0;;;;;:::i;:::-;;:::i;13158:422::-;;;;;;;;;;-1:-1:-1;13158:422:0;;;;;:::i;:::-;;:::i;9510:125::-;;;;;;;;;;-1:-1:-1;9510:125:0;;;;;:::i;:::-;;:::i;8480:142::-;;;;;;;;;;;;;:::i;7843:94::-;;;;;;;;;;-1:-1:-1;7843:94:0;;5089:2;3076:36:1;;3064:2;3049:18;7843:94:0;2934:184:1;10429:112:0;;;;;;;;;;-1:-1:-1;10429:112:0;;;;;:::i;:::-;;:::i;5465:43::-;;;;;;;;;;-1:-1:-1;5465:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5295:33;;;;;;;;;;-1:-1:-1;5295:33:0;;;;;;;;6191:40;;;;;;;;;;-1:-1:-1;6191:40:0;;;;;;;;;;;11835:122;;;;;;;;;;-1:-1:-1;11835:122:0;;;;;:::i;:::-;;:::i;9844:453::-;;;;;;;;;;-1:-1:-1;9844:453:0;;;;;:::i;:::-;;:::i;8886:200::-;;;;;;;;;;-1:-1:-1;8886:200:0;;;;;:::i;:::-;;:::i;5647:25::-;;;;;;;;;;;;;;;;5609:31;;;;;;;;;;;;;;;;5796:30;;;;;;;;;;-1:-1:-1;5796:30:0;;;;;;;;;;;10755:104;;;;;;;;;;-1:-1:-1;10755:104:0;;;;;:::i;:::-;;:::i;8157:119::-;;;;;;;;;;-1:-1:-1;8157:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;8250:18:0;8223:7;8250:18;;;:9;:18;;;;;;;8157:119;4191:148;;;;;;;;;;;;;:::i;11624:203::-;;;;;;;;;;-1:-1:-1;11624:203:0;;;;;:::i;:::-;;:::i;10305:116::-;;;;;;;;;;-1:-1:-1;10305:116:0;;;;;:::i;:::-;;:::i;5169:56::-;;;;;;;;;;;;;;;;5232:54;;;;;;;;;;;;;;;;11329:287;;;;;;;;;;-1:-1:-1;11329:287:0;;;;;:::i;:::-;;:::i;11064:257::-;;;;;;;;;;-1:-1:-1;11064:257:0;;;;;:::i;:::-;;:::i;8055:94::-;;;;;;;;;;-1:-1:-1;8107:7:0;4042:6;-1:-1:-1;;;;;4042:6:0;8055:94;;;-1:-1:-1;;;;;4642:32:1;;;4624:51;;4612:2;4597:18;8055:94:0;4478:203:1;5515:47:0;;;;;;;;;;-1:-1:-1;5515:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3977:79;;;;;;;;;;-1:-1:-1;4015:7:0;4042:6;-1:-1:-1;;;;;4042:6:0;3977:79;;10651:96;;;;;;;;;;-1:-1:-1;10651:96:0;;;;;:::i;:::-;;:::i;7737:98::-;;;;;;;;;;-1:-1:-1;7820:7:0;;;;;;;;;;;;-1:-1:-1;;;7820:7:0;;;;7737:98;;5571:31;;;;;;;;;;;;;;;;5833:34;;;;;;;;;;-1:-1:-1;5833:34:0;;;;;;;;;;;6010:19;;;;;;;;;;-1:-1:-1;6010:19:0;;;;-1:-1:-1;;;;;6010:19:0;;;12553:188;;;;;;;;;;-1:-1:-1;12553:188:0;;;;;:::i;:::-;;:::i;9094:198::-;;;;;;;;;;-1:-1:-1;9094:198:0;;;;;:::i;:::-;;:::i;10549:94::-;;;;;;;;;;-1:-1:-1;10549:94:0;;;;;:::i;:::-;;:::i;6083:25::-;;;;;;;;;;;;;;;;9300:77;;;;;;;;;;;;;:::i;5715:36::-;;;;;;;;;;;;;;;;6238:45;;;;;;;;;;-1:-1:-1;6238:45:0;;;;;;;;;;;8284:188;;;;;;;;;;-1:-1:-1;8284:188:0;;;;;:::i;:::-;-1:-1:-1;;;;;8436:19:0;;;8404:7;8436:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8284:188;6036:38;;;;;;;;;;-1:-1:-1;6036:38:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5760:29;;;;;;;;;;-1:-1:-1;5760:29:0;;;;;;;;4347:281;;;;;;;;;;-1:-1:-1;4347:281:0;;;;;:::i;:::-;;:::i;5980:23::-;;;;;;;;;;-1:-1:-1;5980:23:0;;;;-1:-1:-1;;;;;5980:23:0;;;6117:31;;;;;;;;;;-1:-1:-1;6117:31:0;;;;;;;;8630:248;8766:10;8732:4;8754:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8754:32:0;;;;;;;;;;:41;;;8811:37;8732:4;;8754:32;;8811:37;;;;8789:6;160:25:1;;148:2;133:18;;14:177;8811:37:0;;;;;;;;-1:-1:-1;8866:4:0;8630:248;;;;;:::o;10867:189::-;4104:6;;-1:-1:-1;;;;;4104:6:0;3388:10;4104:22;4096:67;;;;-1:-1:-1;;;4096:67:0;;;;;;;:::i;:::-;;;;;;;;;10982:21:::1;:30:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;10982:30:0;;::::1;::::0;;;::::1;::::0;;;11023:13:::1;:25:::0;10867:189::o;9643:193::-;4104:6;;-1:-1:-1;;;;;4104:6:0;3388:10;4104:22;4096:67;;;;-1:-1:-1;;;4096:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9721:22:0::1;;::::0;;;9746:4:::1;9721:22;::::0;;;;;;;:29;;-1:-1:-1;;9721:29:0;;::::1;::::0;::::1;::::0;;;9761:11:::1;:19:::0;;;;;:26;;;::::1;::::0;::::1;::::0;;9798:15:::1;:23:::0;;;;;;:30;;;;::::1;;::::0;;9643:193::o;9385:117::-;4104:6;;-1:-1:-1;;;;;4104:6:0;3388:10;4104:22;4096:67;;;;-1:-1:-1;;;4096:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9466:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;9466:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9385:117::o;13158:422::-;-1:-1:-1;;;;;13313:19:0;;13292:4;13313:19;;;:11;:19;;;;;;;;13333:10;13313:31;;;;;;;;-1:-1:-1;;13313:52:0;13309:206;;13416:87;;;;;;;;;;;-1:-1:-1;;;13416:87:0;;;;;;;;-1:-1:-1;;;;;13416:19:0;;-1:-1:-1;13416:19:0;;;:11;:19;;;;;13436:10;13416:31;;;;;;;;;;:87;;13470:6;;13416:53;:87::i;:::-;-1:-1:-1;;;;;13382:19:0;;;;;;:11;:19;;;;;;;;13402:10;13382:31;;;;;;;:121;13309:206;13532:40;13546:6;13554:9;13565:6;13532:13;:40::i;:::-;13525:47;;13158:422;;;;;;:::o;9510:125::-;4104:6;;-1:-1:-1;;;;;4104:6:0;3388:10;4104:22;4096:67;;;;-1:-1:-1;;;4096:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9595:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;9595:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9510:125::o;8480:142::-;8250:9;:18;;;;4841:42;8533:7;8250:18;;;;;8560:12;;8533:7;;8560:54;;8250:18;;8560:33;;:12;:16;:33::i;:::-;:37;;:54::i;:::-;8553:61;;8480:142;:::o;10429:112::-;4104:6;;-1:-1:-1;;;;;4104:6:0;3388:10;4104:22;4096:67;;;;-1:-1:-1;;;4096:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10508:16:0;;;::::1;;::::0;;;:6:::1;:16;::::0;;;;:25;;-1:-1:-1;;10508:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10429:112::o;11835:122::-;11890:4;11914:35;11922:7;-1:-1:-1;;11914:7:0;:35::i;9844:453::-;4104:6;;-1:-1:-1;;;;;4104:6:0;3388:10;4104:22;4096:67;;;;-1:-1:-1;;;4096:67:0;;;;;;;:::i;:::-;10022:12:::1;:24:::0;;;10057:12:::1;:30:::0;;;10098:6:::1;:18:::0;;;10140:42:::1;10107:9:::0;10140:30:::1;10037:9:::0;10072:15;10140:16:::1;:30::i;:::-;:34:::0;::::1;:42::i;:::-;10129:8;:53:::0;;;10213:23:::1;::::0;10224:12;;10213:23:::1;:::i;:::-;10193:17;:43:::0;;;10275:8:::1;::::0;10286:2:::1;::::0;10255:28:::1;::::0;10275:8;10255:28:::1;:::i;:::-;:33;10247:42;;;::::0;::::1;;9844:453:::0;;;;:::o;8886:200::-;4104:6;;-1:-1:-1;;;;;4104:6:0;3388:10;4104:22;4096:67;;;;-1:-1:-1;;;4096:67:0;;;;;;;:::i;:::-;8978:1:::1;8966:8;:13;;8958:64;;;;-1:-1:-1::0;;;8958:64:0::1;;;;;;;:::i;:::-;9074:4;9062:8;9047:12;;:23;;;;:::i;:::-;9046:32;;;;:::i;:::-;9033:10;:45:::0;-1:-1:-1;8886:200:0:o;10755:104::-;4104:6;;-1:-1:-1;;;;;4104:6:0;3388:10;4104:22;4096:67;;;;-1:-1:-1;;;4096:67:0;;;;;;;:::i;:::-;10827:15:::1;:24:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;10827:24:0;;::::1;::::0;;;::::1;::::0;;10755:104::o;4191:148::-;4104:6;;-1:-1:-1;;;;;4104:6:0;3388:10;4104:22;4096:67;;;;-1:-1:-1;;;4096:67:0;;;;;;;:::i;:::-;4298:1:::1;4282:6:::0;;4261:40:::1;::::0;-1:-1:-1;;;;;4282:6:0;;::::1;::::0;4261:40:::1;::::0;4298:1;;4261:40:::1;4329:1;4312:19:::0;;-1:-1:-1;;;;;;4312:19:0::1;::::0;;4191:148::o;11624:203::-;4104:6;;-1:-1:-1;;;;;4104:6:0;3388:10;4104:22;4096:67;;;;-1:-1:-1;;;4096:67:0;;;;;;;:::i;:::-;11721:21:::1;11761:10;11753:66;11815:3;11783:28;11795:16:::0;11721:21;11783:28:::1;:::i;:::-;11782:36;;;;:::i;:::-;11753:66;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11690:137;11624:203:::0;:::o;10305:116::-;4104:6;;-1:-1:-1;;;;;4104:6:0;3388:10;4104:22;4096:67;;;;-1:-1:-1;;;4096:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10380:24:0;;;::::1;;::::0;;;:14:::1;:24;::::0;;;;:33;;-1:-1:-1;;10380:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10305:116::o;11329:287::-;11441:12;4104:6;;-1:-1:-1;;;;;4104:6:0;3388:10;4104:22;4096:67;;;;-1:-1:-1;;;4096:67:0;;;;;;;:::i;:::-;11503:4:::1;-1:-1:-1::0;;;;;11479:29:0;::::1;::::0;11471:70:::1;;;::::0;-1:-1:-1;;;11471:70:0;;6931:2:1;11471:70:0::1;::::0;::::1;6913:21:1::0;6970:2;6950:18;;;6943:30;7009;6989:18;;;6982:58;7057:18;;11471:70:0::1;6729:352:1::0;11471:70:0::1;11559:49;::::0;-1:-1:-1;;;11559:49:0;;11589:10:::1;11559:49;::::0;::::1;7260:51:1::0;7327:18;;;7320:34;;;-1:-1:-1;;;;;11559:29:0;::::1;::::0;::::1;::::0;7233:18:1;;11559:49:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;11064:257::-:0;4104:6;;-1:-1:-1;;;;;4104:6:0;3388:10;4104:22;4096:67;;;;-1:-1:-1;;;4096:67:0;;;;;;;:::i;:::-;11214:8:::1;:22:::0;;-1:-1:-1;;;;;;11214:22:0::1;::::0;-1:-1:-1;;;;;11214:22:0;;::::1;;;::::0;;11247:14:::1;:29:::0;;-1:-1:-1;;;;;;11247:29:0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;11287:11:::1;:26:::0;;;;::::1;::::0;::::1;;::::0;;11064:257::o;10651:96::-;4104:6;;-1:-1:-1;;;;;4104:6:0;3388:10;4104:22;4096:67;;;;-1:-1:-1;;;4096:67:0;;;;;;;:::i;:::-;10719:11:::1;:20:::0;;;::::1;;;;-1:-1:-1::0;;10719:20:0;;::::1;::::0;;;::::1;::::0;;10651:96::o;12553:188::-;12660:4;12689:44;12703:10;12715:9;12726:6;12689:13;:44::i;9094:198::-;4104:6;;-1:-1:-1;;;;;4104:6:0;3388:10;4104:22;4096:67;;;;-1:-1:-1;;;4096:67:0;;;;;;;:::i;:::-;9182:1:::1;9170:8;:13;;9162:64;;;;-1:-1:-1::0;;;9162:64:0::1;;;;;;;:::i;:::-;9280:4;9268:8;9253:12;;:23;;;;:::i;:::-;9252:32;;;;:::i;:::-;9237:12;:47:::0;-1:-1:-1;9094:198:0:o;10549:94::-;4104:6;;-1:-1:-1;;;;;4104:6:0;3388:10;4104:22;4096:67;;;;-1:-1:-1;;;4096:67:0;;;;;;;:::i;:::-;10616:10:::1;:19:::0;;-1:-1:-1;;10616:19:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10549:94::o;9300:77::-;4104:6;;-1:-1:-1;;;;;4104:6:0;3388:10;4104:22;4096:67;;;;-1:-1:-1;;;4096:67:0;;;;;;;:::i;:::-;9351:11:::1;:18:::0;;-1:-1:-1;;9351:18:0::1;9365:4;9351:18;::::0;;9300:77::o;4347:281::-;4104:6;;-1:-1:-1;;;;;4104:6:0;3388:10;4104:22;4096:67;;;;-1:-1:-1;;;4096:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4450:22:0;::::1;4428:110;;;::::0;-1:-1:-1;;;4428:110:0;;7817:2:1;4428:110:0::1;::::0;::::1;7799:21:1::0;7856:2;7836:18;;;7829:30;7895:34;7875:18;;;7868:62;-1:-1:-1;;;7946:18:1;;;7939:36;7992:19;;4428:110:0::1;7615:402:1::0;4428:110:0::1;4575:6;::::0;;4554:38:::1;::::0;-1:-1:-1;;;;;4554:38:0;;::::1;::::0;4575:6;::::1;::::0;4554:38:::1;::::0;::::1;4603:6;:17:::0;;-1:-1:-1;;;;;;4603:17:0::1;-1:-1:-1::0;;;;;4603:17:0;;;::::1;::::0;;;::::1;::::0;;4347:281::o;148:179::-;206:7;;238:5;242:1;238;:5;:::i;:::-;226:17;;267:1;262;:6;;254:46;;;;-1:-1:-1;;;254:46:0;;8224:2:1;254:46:0;;;8206:21:1;8263:2;8243:18;;;8236:30;8302:29;8282:18;;;8275:57;8349:18;;254:46:0;8022:351:1;479:224:0;599:7;635:12;627:6;;;;619:29;;;;-1:-1:-1;;;619:29:0;;;;;;;;:::i;:::-;-1:-1:-1;659:9:0;671:5;675:1;671;:5;:::i;:::-;659:17;479:224;-1:-1:-1;;;;;479:224:0:o;13588:1360::-;13735:16;;13714:4;;13735:16;;;;;13731:97;;;13775:41;13790:6;13798:9;13809:6;13775:14;:41::i;:::-;13768:48;;;;13731:97;-1:-1:-1;;;;;13843:22:0;;;;;;:14;:22;;;;;;;;13842:23;:53;;;;-1:-1:-1;;;;;;13870:25:0;;;;;;:14;:25;;;;;;;;13869:26;13842:53;13838:110;;;13920:11;;;;13912:24;;;;-1:-1:-1;;;13912:24:0;;8713:2:1;13912:24:0;;;8695:21:1;-1:-1:-1;8732:18:1;;;8725:29;8771:18;;13912:24:0;8511:284:1;13912:24:0;13978:12;;13968:6;:22;;:49;;;-1:-1:-1;;;;;;13994:23:0;;;;;;:15;:23;;;;;;;;13968:49;13960:70;;;;-1:-1:-1;;;13960:70:0;;9002:2:1;13960:70:0;;;8984:21:1;9041:1;9021:18;;;9014:29;-1:-1:-1;;;9059:18:1;;;9052:38;9107:18;;13960:70:0;8800:331:1;13960:70:0;-1:-1:-1;;;;;14059:17:0;;;;;;:6;:17;;;;;;;;:51;;;;-1:-1:-1;14094:16:0;;;;;;;14093:17;14059:51;:89;;;;-1:-1:-1;14127:21:0;;;;;;;14059:89;:147;;;;-1:-1:-1;14193:13:0;;14183:4;14165:24;;;;:9;:24;;;;;;:41;;14059:147;14041:221;;;14233:17;:15;:17::i;:::-;12032:10;;:15;;;14276:32;;-1:-1:-1;;;;;;14291:17:0;;;;;;:6;:17;;;;;;;;14276:32;14272:122;;;-1:-1:-1;;;;;14333:17:0;;14353:1;14333:17;;;:9;:17;;;;;;14325:34;;;;-1:-1:-1;;;14325:34:0;;8713:2:1;14325:34:0;;;8695:21:1;-1:-1:-1;8732:18:1;;;8725:29;8771:18;;14325:34:0;8511:284:1;14325:34:0;14374:8;12114:12;12101:10;:25;12063:71;14374:8;14453:33;;;;;;;;;-1:-1:-1;14453:33:0;;;-1:-1:-1;;;;;14453:17:0;;;;:9;:17;;;;;;;;:33;;14475:6;;14453:21;:33::i;:::-;-1:-1:-1;;;;;14433:17:0;;;;;;;:9;:17;;;;;;;;:53;;;;14504:26;;;;;:15;:26;;;;;;;14503:27;:45;;;;-1:-1:-1;14534:14:0;;;;14503:45;14499:137;;;14609:10;;-1:-1:-1;;;;;14573:20:0;;;;;;:9;:20;;;;;;:32;;14598:6;14573:24;:32::i;:::-;:46;;14565:59;;;;-1:-1:-1;;;14565:59:0;;8713:2:1;14565:59:0;;;8695:21:1;-1:-1:-1;8732:18:1;;;8725:29;8771:18;;14565:59:0;8511:284:1;14565:59:0;-1:-1:-1;;;;;14671:19:0;;14648;14671;;;:11;:19;;;;;;;;14670:20;:47;;;;-1:-1:-1;;;;;;14695:22:0;;;;;;:11;:22;;;;;;;;14694:23;14670:47;:119;;14783:6;14670:119;;;14733:34;14741:6;14749:9;14760:6;14733:7;:34::i;:::-;-1:-1:-1;;;;;14823:20:0;;;;;;:9;:20;;;;;;14648:141;;-1:-1:-1;14823:37:0;;14648:141;14823:24;:37::i;:::-;-1:-1:-1;;;;;14800:20:0;;;;;;;:9;:20;;;;;;;:60;;;;14878:40;;;;;;;;;;14906:11;160:25:1;;148:2;133:18;;14:177;14878:40:0;;;;;;;;-1:-1:-1;14936:4:0;;13588:1360;-1:-1:-1;;;;13588:1360:0:o;335:136::-;393:7;420:43;424:1;427;420:43;;;;;;;;;;;;;;;;;:3;:43::i;12749:401::-;12913:90;;;;;;;;;;;-1:-1:-1;;;12913:90:0;;;;;;;;-1:-1:-1;;;;;12913:17:0;;12876:4;12913:17;;;:9;:17;;;;;;;:90;;12949:6;;12913:21;:90::i;:::-;-1:-1:-1;;;;;12893:17:0;;;;;;;:9;:17;;;;;;:110;;;;13037:20;;;;;;;:32;;13062:6;13037:24;:32::i;:::-;-1:-1:-1;;;;;13014:20:0;;;;;;;:9;:20;;;;;;;:55;;;;13085:35;;;;;;;;;;13113:6;160:25:1;;148:2;133:18;;14:177;13085:35:0;;;;;;;;-1:-1:-1;13138:4:0;12749:401;;;;;:::o;15811:1776::-;6455:16;:23;;-1:-1:-1;;6455:23:0;;;;;15914:4:::1;6455:23:::0;15896:24;;;:9:::1;:24;::::0;;;;;16023:8:::1;::::0;15991:12:::1;::::0;15896:24;;6455:23;15957:96:::1;::::0;16051:1:::1;::::0;15957:75:::1;::::0;16023:8;15957:75;;15896:24;;15957:33:::1;:47::i;:::-;:65:::0;::::1;:75::i;:96::-;15931:122:::0;-1:-1:-1;16064:20:0::1;16087:36;:15:::0;15931:122;16087:19:::1;:36::i;:::-;16160:16;::::0;;16174:1:::1;16160:16:::0;;;;;::::1;::::0;;16064:59;;-1:-1:-1;16136:21:0::1;::::0;16160:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;16160:16:0::1;16136:40;;16205:4;16187;16192:1;16187:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16187:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;16231:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;16231:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;16187:7;;16231:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16221:4;16226:1;16221:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16221:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;16257:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;16257:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;16329:12;;16257:6:::1;::::0;16372:4;;16399::::1;::::0;16419:15:::1;::::0;16257:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;16547:12:0::1;::::0;16478:21:::1;::::0;-1:-1:-1;16458:17:0::1;::::0;-1:-1:-1;16534:33:0::1;::::0;16547:19:::1;::::0;16564:1:::1;16547:16;:19::i;:::-;16534:8;::::0;;:12:::1;:33::i;:::-;16512:55;;16580:26;16609:93;16700:1;16609:72;16669:11;16609:41;16637:12;;16609:9;:27;;:41;;;;:::i;:93::-;16580:122;;16713:26;16742:68;16788:11;16742:27;16756:12;;16742:9;:13;;:27;;;;:::i;:68::-;16713:97;;16821:20;16844:38;16870:11;16844:21;16858:6;;16844:9;:13;;:21;;;;:::i;:38::-;16926:14;::::0;16918:108:::1;::::0;16821:61;;-1:-1:-1;16896:16:0::1;::::0;-1:-1:-1;;;;;16926:14:0;;::::1;::::0;17006:5:::1;::::0;16968:18;;16896:16;16918:108;16896:16;16918:108;16968:18;16926:14;17006:5;16918:108:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;17095:11:0::1;::::0;17087:99:::1;::::0;17051:5:::1;::::0;-1:-1:-1;;;;;;17095:11:0;;::::1;::::0;-1:-1:-1;17166:5:0::1;::::0;17134:12;;17051:5;17087:99;17051:5;17087:99;17134:12;17095:11;17166:5;17087:99:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;17211:5:0::1;::::0;-1:-1:-1;;17233:19:0;;;-1:-1:-1;17229:351:0::1;;17269:6;::::0;17443:8:::1;::::0;17269:231:::1;::::0;-1:-1:-1;;;17269:231:0;;17345:4:::1;17269:231;::::0;::::1;11192:34:1::0;11242:18;;;11235:34;;;-1:-1:-1;11285:18:1;;;11278:34;;;11328:18;;;11321:34;-1:-1:-1;;;;;17443:8:0;;;::::1;::::0;::::1;11371:19:1::0;;;11364:44;17470:15:0::1;11424:19:1::0;;;11417:35;17269:6:0;::::1;::::0;:22:::1;::::0;17299:18;;11126:19:1;;17269:231:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17520:48:0::1;::::0;;11948:25:1;;;12004:2;11989:18;;11982:34;;;17520:48:0::1;::::0;-1:-1:-1;11921:18:1;17520:48:0::1;;;;;;;17229:351;-1:-1:-1::0;;6501:16:0;:24;;-1:-1:-1;;6501:24:0;;;-1:-1:-1;;;;;;;;15811:1776:0:o;14956:847::-;-1:-1:-1;;;;;15136:17:0;;15076:7;15136:17;;;:6;:17;;;;;;15076:7;;15136:17;;:32;;;;-1:-1:-1;15157:11:0;;;;;;;15136:32;15132:98;;;-1:-1:-1;15201:17:0;;15132:98;-1:-1:-1;;;;;15244:14:0;;;;;;:6;:14;;;;;;;;:28;;;;-1:-1:-1;15262:10:0;;;;15244:28;15240:85;;;-1:-1:-1;15305:8:0;;15240:85;-1:-1:-1;;;;;15340:14:0;;;;;;:6;:14;;;;;;;;15339:15;:37;;;;-1:-1:-1;;;;;;15359:17:0;;;;;;:6;:17;;;;;;;;15358:18;15339:37;15335:216;;;15397:15;;;;;;;15393:147;;;-1:-1:-1;15449:17:0;;15393:147;;;-1:-1:-1;15523:1:0;15393:147;15563:17;15583:34;15613:3;15583:25;:6;15594:13;15583:10;:25::i;:34::-;15675:4;15657:24;;;;:9;:24;;;;;;15563:54;;-1:-1:-1;15657:39:0;;15563:54;15657:28;:39::i;:::-;15648:4;15630:24;;;;:9;:24;;;;;;;:66;;;;15712:42;;-1:-1:-1;;;;;15712:42:0;;;;;;;15744:9;160:25:1;;148:2;133:18;;14:177;15712:42:0;;;;;;;;15774:21;:6;15785:9;15774:10;:21::i;:::-;15767:28;14956:847;-1:-1:-1;;;;;;14956:847:0:o;711:246::-;769:7;793:1;798;793:6;789:47;;-1:-1:-1;823:1:0;816:8;;789:47;846:9;858:5;862:1;858;:5;:::i;:::-;846:17;-1:-1:-1;891:1:0;882:5;886:1;846:17;882:5;:::i;:::-;:10;874:56;;;;-1:-1:-1;;;874:56:0;;12229:2:1;874:56:0;;;12211:21:1;12268:2;12248:18;;;12241:30;12307:34;12287:18;;;12280:62;-1:-1:-1;;;12358:18:1;;;12351:31;12399:19;;874:56:0;12027:397:1;965:132:0;1023:7;1050:39;1054:1;1057;1050:39;;;;;;;;;;;;;;;;;1225:7;1260:12;1253:5;1245:28;;;;-1:-1:-1;;;1245:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1284:9:0;1296:5;1300:1;1296;:5;:::i;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:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:118::-;1483:5;1476:13;1469:21;1462:5;1459:32;1449:60;;1505:1;1502;1495:12;1520:309;1585:6;1593;1646:2;1634:9;1625:7;1621:23;1617:32;1614:52;;;1662:1;1659;1652:12;1614:52;1701:9;1688:23;1720:28;1742:5;1720:28;:::i;1834:247::-;1893:6;1946:2;1934:9;1925:7;1921:23;1917:32;1914:52;;;1962:1;1959;1952:12;1914:52;2001:9;1988:23;2020:31;2045:5;2020:31;:::i;2086:382::-;2151:6;2159;2212:2;2200:9;2191:7;2187:23;2183:32;2180:52;;;2228:1;2225;2218:12;2180:52;2267:9;2254:23;2286:31;2311:5;2286:31;:::i;:::-;2336:5;-1:-1:-1;2393:2:1;2378:18;;2365:32;2406:30;2365:32;2406:30;:::i;:::-;2455:7;2445:17;;;2086:382;;;;;:::o;2473:456::-;2550:6;2558;2566;2619:2;2607:9;2598:7;2594:23;2590:32;2587:52;;;2635:1;2632;2625:12;2587:52;2674:9;2661:23;2693:31;2718:5;2693:31;:::i;:::-;2743:5;-1:-1:-1;2800:2:1;2785:18;;2772:32;2813:33;2772:32;2813:33;:::i;:::-;2473:456;;2865:7;;-1:-1:-1;;;2919:2:1;2904:18;;;;2891:32;;2473:456::o;3123:385::-;3209:6;3217;3225;3233;3286:3;3274:9;3265:7;3261:23;3257:33;3254:53;;;3303:1;3300;3293:12;3254:53;-1:-1:-1;;3326:23:1;;;3396:2;3381:18;;3368:32;;-1:-1:-1;3447:2:1;3432:18;;3419:32;;3498:2;3483:18;3470:32;;-1:-1:-1;3123:385:1;-1:-1:-1;3123:385:1:o;3513:180::-;3572:6;3625:2;3613:9;3604:7;3600:23;3596:32;3593:52;;;3641:1;3638;3631:12;3593:52;-1:-1:-1;3664:23:1;;3513:180;-1:-1:-1;3513:180:1:o;3698:241::-;3754:6;3807:2;3795:9;3786:7;3782:23;3778:32;3775:52;;;3823:1;3820;3813:12;3775:52;3862:9;3849:23;3881:28;3903:5;3881:28;:::i;3944:529::-;4021:6;4029;4037;4090:2;4078:9;4069:7;4065:23;4061:32;4058:52;;;4106:1;4103;4096:12;4058:52;4145:9;4132:23;4164:31;4189:5;4164:31;:::i;:::-;4214:5;-1:-1:-1;4271:2:1;4256:18;;4243:32;4284:33;4243:32;4284:33;:::i;:::-;4336:7;-1:-1:-1;4395:2:1;4380:18;;4367:32;4408:33;4367:32;4408:33;:::i;:::-;4460:7;4450:17;;;3944:529;;;;;:::o;4686:388::-;4754:6;4762;4815:2;4803:9;4794:7;4790:23;4786:32;4783:52;;;4831:1;4828;4821:12;4783:52;4870:9;4857:23;4889:31;4914:5;4889:31;:::i;:::-;4939:5;-1:-1:-1;4996:2:1;4981:18;;4968:32;5009:33;4968:32;5009:33;:::i;5304:356::-;5506:2;5488:21;;;5525:18;;;5518:30;5584:34;5579:2;5564:18;;5557:62;5651:2;5636:18;;5304:356::o;5665:127::-;5726:10;5721:3;5717:20;5714:1;5707:31;5757:4;5754:1;5747:15;5781:4;5778:1;5771:15;5797:125;5862:9;;;5883:10;;;5880:36;;;5896:18;;:::i;5927:402::-;6129:2;6111:21;;;6168:2;6148:18;;;6141:30;6207:34;6202:2;6187:18;;6180:62;-1:-1:-1;;;6273:2:1;6258:18;;6251:36;6319:3;6304:19;;5927:402::o;6334:168::-;6374:7;6440:1;6436;6432:6;6428:14;6425:1;6422:21;6417:1;6410:9;6403:17;6399:45;6396:71;;;6447:18;;:::i;:::-;-1:-1:-1;6487:9:1;;6334:168::o;6507:217::-;6547:1;6573;6563:132;;6617:10;6612:3;6608:20;6605:1;6598:31;6652:4;6649:1;6642:15;6680:4;6677:1;6670:15;6563:132;-1:-1:-1;6709:9:1;;6507:217::o;7365:245::-;7432:6;7485:2;7473:9;7464:7;7460:23;7456:32;7453:52;;;7501:1;7498;7491:12;7453:52;7533:9;7527:16;7552:28;7574:5;7552:28;:::i;8378:128::-;8445:9;;;8466:11;;;8463:37;;;8480:18;;:::i;9268:127::-;9329:10;9324:3;9320:20;9317:1;9310:31;9360:4;9357:1;9350:15;9384:4;9381:1;9374:15;9400:251;9470:6;9523:2;9511:9;9502:7;9498:23;9494:32;9491:52;;;9539:1;9536;9529:12;9491:52;9571:9;9565:16;9590:31;9615:5;9590:31;:::i;9656:980::-;9918:4;9966:3;9955:9;9951:19;9997:6;9986:9;9979:25;10023:2;10061:6;10056:2;10045:9;10041:18;10034:34;10104:3;10099:2;10088:9;10084:18;10077:31;10128:6;10163;10157:13;10194:6;10186;10179:22;10232:3;10221:9;10217:19;10210:26;;10271:2;10263:6;10259:15;10245:29;;10292:1;10302:195;10316:6;10313:1;10310:13;10302:195;;;10381:13;;-1:-1:-1;;;;;10377:39:1;10365:52;;10472:15;;;;10437:12;;;;10413:1;10331:9;10302:195;;;-1:-1:-1;;;;;;;10553:32:1;;;;10548:2;10533:18;;10526:60;-1:-1:-1;;;10617:3:1;10602:19;10595:35;10514:3;9656:980;-1:-1:-1;;;9656:980:1:o;11463:306::-;11551:6;11559;11567;11620:2;11608:9;11599:7;11595:23;11591:32;11588:52;;;11636:1;11633;11626:12;11588:52;11665:9;11659:16;11649:26;;11715:2;11704:9;11700:18;11694:25;11684:35;;11759:2;11748:9;11744:18;11738:25;11728:35;;11463:306;;;;;:::o
Swarm Source
ipfs://aacfd8bcabd9298cb90299e3a752c03e7a14b9230539729ba2897f236be5f7ad
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.