ERC-20
Overview
Max Total Supply
100,000,000 X
Holders
32
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
85.057864721950167415 XValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
X
Compiler Version
v0.8.16+commit.07a7930e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-10-21 */ // SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.9.0; 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); } abstract contract Context { function _msgSender() internal view virtual returns (address) {return msg.sender;} function _msgData() internal view virtual returns (bytes calldata) {this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } interface IFactoryV2 { event PairCreated(address indexed token0, address indexed token1, address lpPair, uint); function getPair(address tokenA, address tokenB) external view returns (address lpPair); function createPair(address tokenA, address tokenB) external returns (address lpPair); } interface IV2Pair { function factory() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function sync() external; } interface IRouter01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function 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 swapExactETHForTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable returns (uint[] memory amounts); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IRouter02 is IRouter01 { function swapExactTokensForETHSupportingFeeOnTransferTokens( 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 swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); } contract X is IERC20 { mapping (address => uint256) private _tOwned; mapping (address => bool) lpPairs; uint256 private timeSinceLastPair = 0; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _liquidityHolders; mapping (address => bool) private _isExcludedFromProtection; mapping (address => bool) private _isExcludedFromFees; mapping (address => bool) private presaleAddresses; bool private allowedPresaleExclusion = true; uint256 constant private startingSupply = 1 * 10 ** 8; string constant private _name = "X"; string constant private _symbol = "X"; uint8 constant private _decimals = 18; uint256 constant private _tTotal = startingSupply * 10**_decimals; struct Fees { uint16 buyFee; uint16 sellFee; uint16 transferFee; } Fees public _taxRates = Fees({ buyFee: 0, sellFee: 0, transferFee: 0 }); uint256 constant public maxSellTaxes = 2500; uint256 constant masterTaxDivisor = 10000; bool public buytaxesAreLocked; bool public selltaxesAreLocked; IRouter02 public dexRouter; address public lpPair; address public ETHPair; address public USDC = 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48; address constant public DEAD = 0x000000000000000000000000000000000000dEaD; struct TaxWallets { address marketing; } TaxWallets public _taxWallets = TaxWallets({ marketing: 0x4105dCd4623EDaC038afC9f2CfEA67dC55Ed74Db }); bool public tradingEnabled = false; bool public _hasLiqBeenAdded = false; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); modifier onlyOwner() { require(_owner == msg.sender, "Caller =/= owner."); _; } constructor () payable { _tOwned[msg.sender] = _tTotal; emit Transfer(address(0), msg.sender, _tTotal); // Set the owner. _owner = msg.sender; originalDeployer = msg.sender; if (block.chainid == 1) { dexRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); } else if (block.chainid == 5) { dexRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); USDC = 0xD87Ba7A50B2E7E660f678A895E4B72E7CB4CCd9C; } else { revert(); } ETHPair = IFactoryV2(dexRouter.factory()).createPair(dexRouter.WETH(), address(this)); lpPair = IFactoryV2(dexRouter.factory()).createPair(USDC, address(this)); lpPairs[lpPair] = true; lpPairs[ETHPair] = true; _approve(_owner, address(dexRouter), type(uint256).max); _approve(address(this), address(dexRouter), type(uint256).max); _isExcludedFromFees[_owner] = true; _isExcludedFromFees[address(this)] = true; _isExcludedFromFees[DEAD] = true; _liquidityHolders[_owner] = true; } receive() external payable {} address private _owner; address public originalDeployer; function transferOwner(address newOwner) external onlyOwner { require(newOwner != address(0), "Call renounceOwnership to transfer owner to the zero address."); require(newOwner != DEAD, "Call renounceOwnership to transfer owner to the zero address."); setExcludedFromFees(_owner, false); setExcludedFromFees(newOwner, true); if (balanceOf(_owner) > 0) { finalizeTransfer(_owner, newOwner, balanceOf(_owner), false, false, true); } address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } function renounceOwnership() external onlyOwner { setExcludedFromFees(_owner, false); address oldOwner = _owner; _owner = address(0); emit OwnershipTransferred(oldOwner, address(0)); } function renounceOriginalDeployer() external { require(msg.sender == originalDeployer, "Can only be called by original deployer."); originalDeployer = address(0); } function totalSupply() external pure override returns (uint256) { if (_tTotal == 0) { revert(); } return _tTotal; } function decimals() external pure override returns (uint8) { if (_tTotal == 0) { revert(); } 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 allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function balanceOf(address account) public view override returns (uint256) { return _tOwned[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function approve(address spender, uint256 amount) external override returns (bool) { _approve(msg.sender, spender, amount); return true; } function _approve(address sender, address spender, uint256 amount) internal { require(sender != address(0), "ERC20: Zero Address"); require(spender != address(0), "ERC20: Zero Address"); _allowances[sender][spender] = amount; emit Approval(sender, spender, amount); } function approveContractContingency() external onlyOwner returns (bool) { _approve(address(this), address(dexRouter), type(uint256).max); 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] -= amount; } return _transfer(sender, recipient, amount); } function setNewRouter(address newRouter) external onlyOwner { require(!_hasLiqBeenAdded, "Cannot change after liquidity."); IRouter02 _newRouter = IRouter02(newRouter); address get_pair = IFactoryV2(_newRouter.factory()).getPair(address(this), _newRouter.WETH()); if (get_pair == address(0)) { lpPair = IFactoryV2(_newRouter.factory()).createPair(address(this), _newRouter.WETH()); } else { lpPair = get_pair; } dexRouter = _newRouter; _approve(address(this), address(dexRouter), type(uint256).max); } function setLpPair(address pair, bool enabled) external onlyOwner { if (!enabled) { lpPairs[pair] = false; } else { if (timeSinceLastPair != 0) { require(block.timestamp - timeSinceLastPair > 1 days, "1 Day cooldown.!"); } lpPairs[pair] = true; timeSinceLastPair = block.timestamp; } } function isExcludedFromFees(address account) external view returns(bool) { return _isExcludedFromFees[account]; } function isExcludedFromProtection(address account) external view returns (bool) { return _isExcludedFromProtection[account]; } function setExcludedFromFees(address account, bool enabled) public onlyOwner { _isExcludedFromFees[account] = enabled; } function setExcludedFromProtection(address account, bool enabled) external onlyOwner { _isExcludedFromProtection[account] = enabled; } function setMarketingWallet(address wallet) external onlyOwner { _taxWallets.marketing = wallet; } function lockBuyTaxes() external onlyOwner { // This will lock buytaxes at their current value forever, do not call this unless you're sure. buytaxesAreLocked = true; } function lockSellTaxes() external onlyOwner { // This will lock selltaxes at their current value forever, do not call this unless you're sure. selltaxesAreLocked = true; } function setBuyTaxes(uint16 buyFee) external onlyOwner { require(!buytaxesAreLocked, "Taxes are locked."); _taxRates.buyFee = buyFee; } function setSellTaxes(uint16 sellFee, uint16 transferFee) external onlyOwner { require(!selltaxesAreLocked, "Taxes are locked."); require(sellFee <= maxSellTaxes, "Cannot exceed maximums."); _taxRates.sellFee = sellFee; _taxRates.transferFee = transferFee; } function claimStuckTokens(address token) external onlyOwner { require(token != address(this), "Owner cannot claim native tokens"); if (token == address(0x0)) { payable(msg.sender).transfer(address(this).balance); return; } IERC20 ERC20token = IERC20(token); uint256 balance = ERC20token.balanceOf(address(this)); ERC20token.transfer(msg.sender, balance); } function claimStuckETH(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount,"Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success,"Address: unable to send value, recipient may have reverted" ); } function excludePresaleAddresses(address router, address presale) external onlyOwner { require(allowedPresaleExclusion); require(router != address(this) && presale != address(this), "Just don't."); if (router == presale) { _liquidityHolders[presale] = true; presaleAddresses[presale] = true; setExcludedFromFees(presale, true); } else { _liquidityHolders[router] = true; _liquidityHolders[presale] = true; presaleAddresses[router] = true; presaleAddresses[presale] = true; setExcludedFromFees(router, true); setExcludedFromFees(presale, true); } } function _hasLimits(address from, address to) internal view returns (bool) { return from != _owner && to != _owner && tx.origin != _owner && !_liquidityHolders[to] && !_liquidityHolders[from] && to != DEAD && to != address(0) && from != address(this); } function _transfer(address from, address to, uint256 amount) internal returns (bool) { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); bool buy = false; bool sell = false; bool other = false; if (lpPairs[from]) { buy = true; } else if (lpPairs[to]) { sell = true; } else { other = true; } if (_hasLimits(from, to)) { if(!tradingEnabled) { revert("Trading not yet enabled!"); } } return finalizeTransfer(from, to, amount, buy, sell, other); } function _checkLiquidityAdd(address from, address to) internal { require(!_hasLiqBeenAdded, "Liquidity already added and marked."); if (!_hasLimits(from, to) && to == ETHPair) { _liquidityHolders[from] = true; _isExcludedFromFees[from] = true; _hasLiqBeenAdded = true; } } function enableTrading() public onlyOwner { require(!tradingEnabled, "Trading already enabled!"); require(_hasLiqBeenAdded, "Liquidity must be added."); tradingEnabled = true; allowedPresaleExclusion = false; } function sweepContingency() external onlyOwner { require(!_hasLiqBeenAdded, "Cannot call after liquidity."); payable(_owner).transfer(address(this).balance); } function multiSendTokens(address[] memory accounts, uint256[] memory amounts) external onlyOwner { require(accounts.length == amounts.length, "Lengths do not match."); for (uint8 i = 0; i < accounts.length; i++) { require(balanceOf(msg.sender) >= amounts[i]); finalizeTransfer(msg.sender, accounts[i], amounts[i]*10**_decimals, false, false, true); } } function finalizeTransfer(address from, address to, uint256 amount, bool buy, bool sell, bool other) internal returns (bool) { if (!_hasLiqBeenAdded) { _checkLiquidityAdd(from, to); if (!_hasLiqBeenAdded && _hasLimits(from, to) && !_isExcludedFromProtection[from] && !_isExcludedFromProtection[to] && !other) { revert("Pre-liquidity transfer protection."); } } bool takeFee = true; if (_isExcludedFromFees[from] || _isExcludedFromFees[to]){ takeFee = false; } _tOwned[from] -= amount; uint256 amountReceived = (takeFee) ? takeTaxes(from, buy, sell, amount) : amount; _tOwned[to] += amountReceived; emit Transfer(from, to, amountReceived); return true; } function takeTaxes(address from, bool buy, bool sell, uint256 amount) internal returns (uint256) { uint256 currentFee; if (buy) { currentFee = _taxRates.buyFee; } else if (sell) { currentFee = _taxRates.sellFee; } else { currentFee = _taxRates.transferFee; } uint256 feeAmount = amount * currentFee / masterTaxDivisor; if (feeAmount > 0) { _tOwned[_taxWallets.marketing] += feeAmount; emit Transfer(from, _taxWallets.marketing, feeAmount); } return amount - feeAmount; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","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":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":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ETHPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"USDC","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxRates","outputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxWallets","outputs":[{"internalType":"address","name":"marketing","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":[],"name":"approveContractContingency","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":"buytaxesAreLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"claimStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"},{"internalType":"address","name":"presale","type":"address"}],"name":"excludePresaleAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromProtection","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lockSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiSendTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"originalDeployer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOriginalDeployer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"selltaxesAreLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setLpPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setNewRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sweepContingency","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":"pure","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"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":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
600060028190556008805460ff19166001179055608081905260a081905260c0526009805465ffffffffffff19169055600d80546001600160a01b031990811673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4817909155610100604052734105dcd4623edac038afc9f2cfea67dc55ed74db60e0819052600e8054909216179055600f805461ffff191690556200009b6012600a6200078c565b620000ab906305f5e100620007a4565b33600081815260208190526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620000ee6012600a6200078c565b620000fe906305f5e100620007a4565b60405190815260200160405180910390a3600f805462010000600160b01b0319163362010000810291909117909155601080546001600160a01b0319169091179055466001036200017957600a805462010000600160b01b031916757a250d5630b4cf539739df2c5dacb4c659f2488d0000179055620001df565b46600503620001da57600a8054757a250d5630b4cf539739df2c5dacb4c659f2488d000062010000600160b01b0319909116179055600d80546001600160a01b03191673d87ba7a50b2e7e660f678a895e4b72e7cb4ccd9c179055620001df565b600080fd5b600a60029054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000233573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002599190620007c6565b6001600160a01b031663c9c65396600a60029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e19190620007c6565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af11580156200032e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003549190620007c6565b600c80546001600160a01b0319166001600160a01b03928316179055600a546040805163c45a015560e01b81529051620100009092049092169163c45a01559160048083019260209291908290030181865afa158015620003b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003df9190620007c6565b600d546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000431573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004579190620007c6565b600b80546001600160a01b0319166001600160a01b039283169081179091556000908152600160208190526040808320805460ff199081168417909155600c548516845292208054909216179055600f54600a54620004c89262010000928390048116929091041660001962000576565b600a54620004ea9030906201000090046001600160a01b031660001962000576565b600f80546001600160a01b03620100009182900481166000908152600660209081526040808320805460ff19908116600190811790925530855282852080548216831790557f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e228054821683179055965495909504909316825260049052208054909216179055620007f1565b6001600160a01b038316620005c85760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064015b60405180910390fd5b6001600160a01b038216620006165760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401620005bf565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006ce578160001904821115620006b257620006b262000677565b80851615620006c057918102915b93841c939080029062000692565b509250929050565b600082620006e75750600162000786565b81620006f65750600062000786565b81600181146200070f57600281146200071a576200073a565b600191505062000786565b60ff8411156200072e576200072e62000677565b50506001821b62000786565b5060208310610133831016604e8410600b84101617156200075f575081810a62000786565b6200076b83836200068d565b806000190482111562000782576200078262000677565b0290505b92915050565b60006200079d60ff841683620006d6565b9392505050565b6000816000190483118215151615620007c157620007c162000677565b500290565b600060208284031215620007d957600080fd5b81516001600160a01b03811681146200079d57600080fd5b6127ae80620008016000396000f3fe6080604052600436106102605760003560e01c80635734e4a11161014457806395d89b41116100b6578063e8bd855d1161007a578063e8bd855d1461077f578063eafb5a3c1461079f578063ee5d9c2d146107bf578063f94aa1b4146107d4578063f9d0831a146107f4578063feadde9c1461081457600080fd5b806395d89b41146102f5578063a9059cbb146106e3578063b3d514fb14610703578063bf62297914610719578063dd62ed3e1461073957600080fd5b806380c581d11161010857806380c581d11461063557806381cf58a914610655578063893d20e81461067557806389a30271146106995780638a63bd9b146106b95780638a8c523c146106ce57600080fd5b80635734e4a114610590578063590ffdce146105aa5780635d098b38146105ca57806370a08231146105ea578063715018a61461062057600080fd5b806323b872dd116101dd578063452ed4f1116101a1578063452ed4f1146104be5780634ada218b146104de5780634fb2e45d146104f85780634fbee1931461051857806350a8e0161461055157806354dbe08b1461057057600080fd5b806323b872dd146104235780632610eaca14610443578063313ce5671461046357806337023fce1461048a57806339a05902146104a957600080fd5b80630cc7506b116102245780630cc7506b1461037b5780630dcbcf1c1461039257806313b4a7f4146103cb578063147cee6c146103eb57806318160ddd1461040057600080fd5b806303fd2a451461026c578063069d955f1461029f57806306fdde03146102f55780630758d92414610325578063095ea7b31461034b57600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5061028261dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102ab57600080fd5b506009546102d09061ffff808216916201000081048216916401000000009091041683565b6040805161ffff94851681529284166020840152921691810191909152606001610296565b34801561030157600080fd5b5060408051808201825260018152600b60fb1b602082015290516102969190612199565b34801561033157600080fd5b50600a54610282906201000090046001600160a01b031681565b34801561035757600080fd5b5061036b6103663660046121fc565b610834565b6040519015158152602001610296565b34801561038757600080fd5b5061039061084b565b005b34801561039e57600080fd5b5061036b6103ad366004612228565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156103d757600080fd5b506103906103e6366004612245565b610895565b3480156103f757600080fd5b50610390610a07565b34801561040c57600080fd5b50610415610a46565b604051908152602001610296565b34801561042f57600080fd5b5061036b61043e36600461227e565b610a8d565b34801561044f57600080fd5b5061039061045e366004612395565b610b05565b34801561046f57600080fd5b50610478610c4c565b60405160ff9091168152602001610296565b34801561049657600080fd5b50600a5461036b90610100900460ff1681565b3480156104b557600080fd5b50610390610c7a565b3480156104ca57600080fd5b50600b54610282906001600160a01b031681565b3480156104ea57600080fd5b50600f5461036b9060ff1681565b34801561050457600080fd5b50610390610513366004612228565b610cf7565b34801561052457600080fd5b5061036b610533366004612228565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561055d57600080fd5b50600f5461036b90610100900460ff1681565b34801561057c57600080fd5b50600c54610282906001600160a01b031681565b34801561059c57600080fd5b50600a5461036b9060ff1681565b3480156105b657600080fd5b506103906105c5366004612465565b610e52565b3480156105d657600080fd5b506103906105e5366004612228565b610ead565b3480156105f657600080fd5b50610415610605366004612228565b6001600160a01b031660009081526020819052604090205490565b34801561062c57600080fd5b50610390610eff565b34801561064157600080fd5b50610390610650366004612465565b610fa1565b34801561066157600080fd5b50601054610282906001600160a01b031681565b34801561068157600080fd5b50600f546201000090046001600160a01b0316610282565b3480156106a557600080fd5b50600d54610282906001600160a01b031681565b3480156106c557600080fd5b5061036b61107e565b3480156106da57600080fd5b506103906110d7565b3480156106ef57600080fd5b5061036b6106fe3660046121fc565b6111cc565b34801561070f57600080fd5b506104156109c481565b34801561072557600080fd5b506103906107343660046124aa565b6111e3565b34801561074557600080fd5b50610415610754366004612245565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561078b57600080fd5b5061039061079a3660046124dd565b6112ed565b3480156107ab57600080fd5b506103906107ba366004612228565b61137c565b3480156107cb57600080fd5b5061039061171d565b3480156107e057600080fd5b50600e54610282906001600160a01b031681565b34801561080057600080fd5b5061039061080f366004612228565b6117e9565b34801561082057600080fd5b5061039061082f366004612465565b611992565b60006108413384846119ed565b5060015b92915050565b600f546201000090046001600160a01b031633146108845760405162461bcd60e51b815260040161087b906124f8565b60405180910390fd5b600a805461ff001916610100179055565b600f546201000090046001600160a01b031633146108c55760405162461bcd60e51b815260040161087b906124f8565b60085460ff166108d457600080fd5b6001600160a01b03821630148015906108f657506001600160a01b0381163014155b6109305760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba103237b713ba1760a91b604482015260640161087b565b806001600160a01b0316826001600160a01b031603610992576001600160a01b03811660009081526004602090815260408083208054600160ff1991821681179092556007909352922080549091168217905561098e908290610e52565b5050565b6001600160a01b0382811660008181526004602090815260408083208054600160ff199182168117909255958716808552828520805488168317905594845260079092528083208054861683179055928252919020805490921681179091556109fc908390610e52565b61098e816001610e52565b600f546201000090046001600160a01b03163314610a375760405162461bcd60e51b815260040161087b906124f8565b600a805460ff19166001179055565b6000610a546012600a61261d565b610a62906305f5e10061262c565b600003610a6e57600080fd5b610a7a6012600a61261d565b610a88906305f5e10061262c565b905090565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610af2576001600160a01b038416600090815260036020908152604080832033845290915281208054849290610aec90849061264b565b90915550505b610afd848484611ae6565b949350505050565b600f546201000090046001600160a01b03163314610b355760405162461bcd60e51b815260040161087b906124f8565b8051825114610b7e5760405162461bcd60e51b81526020600482015260156024820152742632b733ba3439903237903737ba1036b0ba31b41760591b604482015260640161087b565b60005b82518160ff161015610c4757818160ff1681518110610ba257610ba261265e565b6020026020010151610bc9336001600160a01b031660009081526020819052604090205490565b1015610bd457600080fd5b610c3433848360ff1681518110610bed57610bed61265e565b60200260200101516012600a610c03919061261d565b858560ff1681518110610c1857610c1861265e565b6020026020010151610c2a919061262c565b6000806001611ce6565b5080610c3f81612674565b915050610b81565b505050565b6000610c5a6012600a61261d565b610c68906305f5e10061262c565b600003610c7457600080fd5b50601290565b6010546001600160a01b03163314610ce55760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792062652063616c6c6564206279206f726967696e616c206460448201526732b83637bcb2b91760c11b606482015260840161087b565b601080546001600160a01b0319169055565b600f546201000090046001600160a01b03163314610d275760405162461bcd60e51b815260040161087b906124f8565b6001600160a01b038116610d4d5760405162461bcd60e51b815260040161087b90612693565b61deac196001600160a01b03821601610d785760405162461bcd60e51b815260040161087b90612693565b600f54610d95906201000090046001600160a01b03166000610e52565b610da0816001610e52565b600f546201000090046001600160a01b03166000908152602081905260408120541115610df657600f546201000090046001600160a01b0316600081815260208190526040902054610df491908390610c2a565b505b600f80546001600160a01b038381166201000081810262010000600160b01b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600f546201000090046001600160a01b03163314610e825760405162461bcd60e51b815260040161087b906124f8565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b600f546201000090046001600160a01b03163314610edd5760405162461bcd60e51b815260040161087b906124f8565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b600f546201000090046001600160a01b03163314610f2f5760405162461bcd60e51b815260040161087b906124f8565b600f54610f4c906201000090046001600160a01b03166000610e52565b600f805462010000600160b01b03198116909155604051620100009091046001600160a01b03169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b600f546201000090046001600160a01b03163314610fd15760405162461bcd60e51b815260040161087b906124f8565b80610ff857506001600160a01b03166000908152600160205260409020805460ff19169055565b60025415611052576201518060025442611012919061264b565b116110525760405162461bcd60e51b815260206004820152601060248201526f312044617920636f6f6c646f776e2e2160801b604482015260640161087b565b506001600160a01b03166000908152600160208190526040909120805460ff1916909117905542600255565b600f546000906201000090046001600160a01b031633146110b15760405162461bcd60e51b815260040161087b906124f8565b600a546110d19030906201000090046001600160a01b03166000196119ed565b50600190565b600f546201000090046001600160a01b031633146111075760405162461bcd60e51b815260040161087b906124f8565b600f5460ff161561115a5760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c6564210000000000000000604482015260640161087b565b600f54610100900460ff166111b15760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e0000000000000000604482015260640161087b565b600f805460ff19908116600117909155600880549091169055565b60006111d9338484611ae6565b5060019392505050565b600f546201000090046001600160a01b031633146112135760405162461bcd60e51b815260040161087b906124f8565b600a54610100900460ff161561125f5760405162461bcd60e51b81526020600482015260116024820152702a30bc32b99030b932903637b1b5b2b21760791b604482015260640161087b565b6109c48261ffff1611156112b55760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e000000000000000000604482015260640161087b565b6009805465ffffffff000019166201000061ffff9485160265ffff000000001916176401000000009290931691909102919091179055565b600f546201000090046001600160a01b0316331461131d5760405162461bcd60e51b815260040161087b906124f8565b600a5460ff16156113645760405162461bcd60e51b81526020600482015260116024820152702a30bc32b99030b932903637b1b5b2b21760791b604482015260640161087b565b6009805461ffff191661ffff92909216919091179055565b600f546201000090046001600160a01b031633146113ac5760405162461bcd60e51b815260040161087b906124f8565b600f54610100900460ff16156114045760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74206368616e6765206166746572206c69717569646974792e0000604482015260640161087b565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611449573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146d91906126f0565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114de91906126f0565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611529573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154d91906126f0565b90506001600160a01b0381166116c657816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561159b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115bf91906126f0565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561160c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163091906126f0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561167d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a191906126f0565b600b80546001600160a01b0319166001600160a01b03929092169190911790556116e2565b600b80546001600160a01b0319166001600160a01b0383161790555b600a805462010000600160b01b031916620100006001600160a01b0385811682029290921792839055610c47923092919004166000196119ed565b600f546201000090046001600160a01b0316331461174d5760405162461bcd60e51b815260040161087b906124f8565b600f54610100900460ff16156117a55760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e00000000604482015260640161087b565b600f546040516001600160a01b036201000090920491909116904780156108fc02916000818181858888f193505050501580156117e6573d6000803e3d6000fd5b50565b600f546201000090046001600160a01b031633146118195760405162461bcd60e51b815260040161087b906124f8565b306001600160a01b038216036118715760405162461bcd60e51b815260206004820181905260248201527f4f776e65722063616e6e6f7420636c61696d206e617469766520746f6b656e73604482015260640161087b565b6001600160a01b0381166118ab5760405133904780156108fc02916000818181858888f1935050505015801561098e573d6000803e3d6000fd5b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156118f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611918919061270d565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015611968573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198c9190612726565b50505050565b600f546201000090046001600160a01b031633146119c25760405162461bcd60e51b815260040161087b906124f8565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b038316611a395760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161087b565b6001600160a01b038216611a855760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161087b565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416611b4c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161087b565b6001600160a01b038316611bae5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161087b565b60008211611c105760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161087b565b6001600160a01b0384166000908152600160205260408120548190819060ff1615611c3e5760019250611c6c565b6001600160a01b03861660009081526001602052604090205460ff1615611c685760019150611c6c565b5060015b611c768787611ef6565b15611ccd57600f5460ff16611ccd5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c6564210000000000000000604482015260640161087b565b611cdb878787868686611ce6565b979650505050505050565b600f54600090610100900460ff16611dcb57611d028787611fdf565b600f54610100900460ff16158015611d1f5750611d1f8787611ef6565b8015611d4457506001600160a01b03871660009081526005602052604090205460ff16155b8015611d6957506001600160a01b03861660009081526005602052604090205460ff16155b8015611d73575081155b15611dcb5760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b606482015260840161087b565b6001600160a01b03871660009081526006602052604090205460019060ff1680611e0d57506001600160a01b03871660009081526006602052604090205460ff165b15611e16575060005b6001600160a01b03881660009081526020819052604081208054889290611e3e90849061264b565b909155506000905081611e515786611e5d565b611e5d8987878a6120b9565b9050806000808a6001600160a01b03166001600160a01b031681526020019081526020016000206000828254611e939190612743565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611edf91815260200190565b60405180910390a350600198975050505050505050565b600f546000906001600160a01b03848116620100009092041614801590611f315750600f546001600160a01b03838116620100009092041614155b8015611f4e5750600f546201000090046001600160a01b03163214155b8015611f7357506001600160a01b03821660009081526004602052604090205460ff16155b8015611f9857506001600160a01b03831660009081526004602052604090205460ff16155b8015611faf57506001600160a01b03821661dead14155b8015611fc357506001600160a01b03821615155b8015611fd857506001600160a01b0383163014155b9392505050565b600f54610100900460ff16156120435760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b606482015260840161087b565b61204d8282611ef6565b1580156120675750600c546001600160a01b038281169116145b1561098e57506001600160a01b03166000908152600460209081526040808320805460ff1990811660019081179092556006909352922080549091169091179055600f805461ff001916610100179055565b60008084156120cf575060095461ffff166120f9565b83156120e8575060095462010000900461ffff166120f9565b50600954640100000000900461ffff165b6000612710612108838661262c565b6121129190612756565b9050801561218f57600e546001600160a01b031660009081526020819052604081208054839290612144908490612743565b9091555050600e546040518281526001600160a01b03918216918916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b611cdb818561264b565b600060208083528351808285015260005b818110156121c6578581018301518582016040015282016121aa565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146117e657600080fd5b6000806040838503121561220f57600080fd5b823561221a816121e7565b946020939093013593505050565b60006020828403121561223a57600080fd5b8135611fd8816121e7565b6000806040838503121561225857600080fd5b8235612263816121e7565b91506020830135612273816121e7565b809150509250929050565b60008060006060848603121561229357600080fd5b833561229e816121e7565b925060208401356122ae816121e7565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156122fe576122fe6122bf565b604052919050565b600067ffffffffffffffff821115612320576123206122bf565b5060051b60200190565b600082601f83011261233b57600080fd5b8135602061235061234b83612306565b6122d5565b82815260059290921b8401810191818101908684111561236f57600080fd5b8286015b8481101561238a5780358352918301918301612373565b509695505050505050565b600080604083850312156123a857600080fd5b823567ffffffffffffffff808211156123c057600080fd5b818501915085601f8301126123d457600080fd5b813560206123e461234b83612306565b82815260059290921b8401810191818101908984111561240357600080fd5b948201945b8386101561242a57853561241b816121e7565b82529482019490820190612408565b9650508601359250508082111561244057600080fd5b5061244d8582860161232a565b9150509250929050565b80151581146117e657600080fd5b6000806040838503121561247857600080fd5b8235612483816121e7565b9150602083013561227381612457565b803561ffff811681146124a557600080fd5b919050565b600080604083850312156124bd57600080fd5b6124c683612493565b91506124d460208401612493565b90509250929050565b6000602082840312156124ef57600080fd5b611fd882612493565b60208082526011908201527021b0b63632b9101e979e9037bbb732b91760791b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561257457816000190482111561255a5761255a612523565b8085161561256757918102915b93841c939080029061253e565b509250929050565b60008261258b57506001610845565b8161259857506000610845565b81600181146125ae57600281146125b8576125d4565b6001915050610845565b60ff8411156125c9576125c9612523565b50506001821b610845565b5060208310610133831016604e8410600b84101617156125f7575081810a610845565b6126018383612539565b806000190482111561261557612615612523565b029392505050565b6000611fd860ff84168361257c565b600081600019048311821515161561264657612646612523565b500290565b8181038181111561084557610845612523565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff810361268a5761268a612523565b60010192915050565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b60006020828403121561270257600080fd5b8151611fd8816121e7565b60006020828403121561271f57600080fd5b5051919050565b60006020828403121561273857600080fd5b8151611fd881612457565b8082018082111561084557610845612523565b60008261277357634e487b7160e01b600052601260045260246000fd5b50049056fea264697066735822122063181b18e5311fd3da932b2b940ba8fe367472d6dff946d0049d4cc34ff5968064736f6c63430008100033
Deployed Bytecode
0x6080604052600436106102605760003560e01c80635734e4a11161014457806395d89b41116100b6578063e8bd855d1161007a578063e8bd855d1461077f578063eafb5a3c1461079f578063ee5d9c2d146107bf578063f94aa1b4146107d4578063f9d0831a146107f4578063feadde9c1461081457600080fd5b806395d89b41146102f5578063a9059cbb146106e3578063b3d514fb14610703578063bf62297914610719578063dd62ed3e1461073957600080fd5b806380c581d11161010857806380c581d11461063557806381cf58a914610655578063893d20e81461067557806389a30271146106995780638a63bd9b146106b95780638a8c523c146106ce57600080fd5b80635734e4a114610590578063590ffdce146105aa5780635d098b38146105ca57806370a08231146105ea578063715018a61461062057600080fd5b806323b872dd116101dd578063452ed4f1116101a1578063452ed4f1146104be5780634ada218b146104de5780634fb2e45d146104f85780634fbee1931461051857806350a8e0161461055157806354dbe08b1461057057600080fd5b806323b872dd146104235780632610eaca14610443578063313ce5671461046357806337023fce1461048a57806339a05902146104a957600080fd5b80630cc7506b116102245780630cc7506b1461037b5780630dcbcf1c1461039257806313b4a7f4146103cb578063147cee6c146103eb57806318160ddd1461040057600080fd5b806303fd2a451461026c578063069d955f1461029f57806306fdde03146102f55780630758d92414610325578063095ea7b31461034b57600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5061028261dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102ab57600080fd5b506009546102d09061ffff808216916201000081048216916401000000009091041683565b6040805161ffff94851681529284166020840152921691810191909152606001610296565b34801561030157600080fd5b5060408051808201825260018152600b60fb1b602082015290516102969190612199565b34801561033157600080fd5b50600a54610282906201000090046001600160a01b031681565b34801561035757600080fd5b5061036b6103663660046121fc565b610834565b6040519015158152602001610296565b34801561038757600080fd5b5061039061084b565b005b34801561039e57600080fd5b5061036b6103ad366004612228565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156103d757600080fd5b506103906103e6366004612245565b610895565b3480156103f757600080fd5b50610390610a07565b34801561040c57600080fd5b50610415610a46565b604051908152602001610296565b34801561042f57600080fd5b5061036b61043e36600461227e565b610a8d565b34801561044f57600080fd5b5061039061045e366004612395565b610b05565b34801561046f57600080fd5b50610478610c4c565b60405160ff9091168152602001610296565b34801561049657600080fd5b50600a5461036b90610100900460ff1681565b3480156104b557600080fd5b50610390610c7a565b3480156104ca57600080fd5b50600b54610282906001600160a01b031681565b3480156104ea57600080fd5b50600f5461036b9060ff1681565b34801561050457600080fd5b50610390610513366004612228565b610cf7565b34801561052457600080fd5b5061036b610533366004612228565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561055d57600080fd5b50600f5461036b90610100900460ff1681565b34801561057c57600080fd5b50600c54610282906001600160a01b031681565b34801561059c57600080fd5b50600a5461036b9060ff1681565b3480156105b657600080fd5b506103906105c5366004612465565b610e52565b3480156105d657600080fd5b506103906105e5366004612228565b610ead565b3480156105f657600080fd5b50610415610605366004612228565b6001600160a01b031660009081526020819052604090205490565b34801561062c57600080fd5b50610390610eff565b34801561064157600080fd5b50610390610650366004612465565b610fa1565b34801561066157600080fd5b50601054610282906001600160a01b031681565b34801561068157600080fd5b50600f546201000090046001600160a01b0316610282565b3480156106a557600080fd5b50600d54610282906001600160a01b031681565b3480156106c557600080fd5b5061036b61107e565b3480156106da57600080fd5b506103906110d7565b3480156106ef57600080fd5b5061036b6106fe3660046121fc565b6111cc565b34801561070f57600080fd5b506104156109c481565b34801561072557600080fd5b506103906107343660046124aa565b6111e3565b34801561074557600080fd5b50610415610754366004612245565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561078b57600080fd5b5061039061079a3660046124dd565b6112ed565b3480156107ab57600080fd5b506103906107ba366004612228565b61137c565b3480156107cb57600080fd5b5061039061171d565b3480156107e057600080fd5b50600e54610282906001600160a01b031681565b34801561080057600080fd5b5061039061080f366004612228565b6117e9565b34801561082057600080fd5b5061039061082f366004612465565b611992565b60006108413384846119ed565b5060015b92915050565b600f546201000090046001600160a01b031633146108845760405162461bcd60e51b815260040161087b906124f8565b60405180910390fd5b600a805461ff001916610100179055565b600f546201000090046001600160a01b031633146108c55760405162461bcd60e51b815260040161087b906124f8565b60085460ff166108d457600080fd5b6001600160a01b03821630148015906108f657506001600160a01b0381163014155b6109305760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba103237b713ba1760a91b604482015260640161087b565b806001600160a01b0316826001600160a01b031603610992576001600160a01b03811660009081526004602090815260408083208054600160ff1991821681179092556007909352922080549091168217905561098e908290610e52565b5050565b6001600160a01b0382811660008181526004602090815260408083208054600160ff199182168117909255958716808552828520805488168317905594845260079092528083208054861683179055928252919020805490921681179091556109fc908390610e52565b61098e816001610e52565b600f546201000090046001600160a01b03163314610a375760405162461bcd60e51b815260040161087b906124f8565b600a805460ff19166001179055565b6000610a546012600a61261d565b610a62906305f5e10061262c565b600003610a6e57600080fd5b610a7a6012600a61261d565b610a88906305f5e10061262c565b905090565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610af2576001600160a01b038416600090815260036020908152604080832033845290915281208054849290610aec90849061264b565b90915550505b610afd848484611ae6565b949350505050565b600f546201000090046001600160a01b03163314610b355760405162461bcd60e51b815260040161087b906124f8565b8051825114610b7e5760405162461bcd60e51b81526020600482015260156024820152742632b733ba3439903237903737ba1036b0ba31b41760591b604482015260640161087b565b60005b82518160ff161015610c4757818160ff1681518110610ba257610ba261265e565b6020026020010151610bc9336001600160a01b031660009081526020819052604090205490565b1015610bd457600080fd5b610c3433848360ff1681518110610bed57610bed61265e565b60200260200101516012600a610c03919061261d565b858560ff1681518110610c1857610c1861265e565b6020026020010151610c2a919061262c565b6000806001611ce6565b5080610c3f81612674565b915050610b81565b505050565b6000610c5a6012600a61261d565b610c68906305f5e10061262c565b600003610c7457600080fd5b50601290565b6010546001600160a01b03163314610ce55760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792062652063616c6c6564206279206f726967696e616c206460448201526732b83637bcb2b91760c11b606482015260840161087b565b601080546001600160a01b0319169055565b600f546201000090046001600160a01b03163314610d275760405162461bcd60e51b815260040161087b906124f8565b6001600160a01b038116610d4d5760405162461bcd60e51b815260040161087b90612693565b61deac196001600160a01b03821601610d785760405162461bcd60e51b815260040161087b90612693565b600f54610d95906201000090046001600160a01b03166000610e52565b610da0816001610e52565b600f546201000090046001600160a01b03166000908152602081905260408120541115610df657600f546201000090046001600160a01b0316600081815260208190526040902054610df491908390610c2a565b505b600f80546001600160a01b038381166201000081810262010000600160b01b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600f546201000090046001600160a01b03163314610e825760405162461bcd60e51b815260040161087b906124f8565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b600f546201000090046001600160a01b03163314610edd5760405162461bcd60e51b815260040161087b906124f8565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b600f546201000090046001600160a01b03163314610f2f5760405162461bcd60e51b815260040161087b906124f8565b600f54610f4c906201000090046001600160a01b03166000610e52565b600f805462010000600160b01b03198116909155604051620100009091046001600160a01b03169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b600f546201000090046001600160a01b03163314610fd15760405162461bcd60e51b815260040161087b906124f8565b80610ff857506001600160a01b03166000908152600160205260409020805460ff19169055565b60025415611052576201518060025442611012919061264b565b116110525760405162461bcd60e51b815260206004820152601060248201526f312044617920636f6f6c646f776e2e2160801b604482015260640161087b565b506001600160a01b03166000908152600160208190526040909120805460ff1916909117905542600255565b600f546000906201000090046001600160a01b031633146110b15760405162461bcd60e51b815260040161087b906124f8565b600a546110d19030906201000090046001600160a01b03166000196119ed565b50600190565b600f546201000090046001600160a01b031633146111075760405162461bcd60e51b815260040161087b906124f8565b600f5460ff161561115a5760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c6564210000000000000000604482015260640161087b565b600f54610100900460ff166111b15760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e0000000000000000604482015260640161087b565b600f805460ff19908116600117909155600880549091169055565b60006111d9338484611ae6565b5060019392505050565b600f546201000090046001600160a01b031633146112135760405162461bcd60e51b815260040161087b906124f8565b600a54610100900460ff161561125f5760405162461bcd60e51b81526020600482015260116024820152702a30bc32b99030b932903637b1b5b2b21760791b604482015260640161087b565b6109c48261ffff1611156112b55760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e000000000000000000604482015260640161087b565b6009805465ffffffff000019166201000061ffff9485160265ffff000000001916176401000000009290931691909102919091179055565b600f546201000090046001600160a01b0316331461131d5760405162461bcd60e51b815260040161087b906124f8565b600a5460ff16156113645760405162461bcd60e51b81526020600482015260116024820152702a30bc32b99030b932903637b1b5b2b21760791b604482015260640161087b565b6009805461ffff191661ffff92909216919091179055565b600f546201000090046001600160a01b031633146113ac5760405162461bcd60e51b815260040161087b906124f8565b600f54610100900460ff16156114045760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74206368616e6765206166746572206c69717569646974792e0000604482015260640161087b565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611449573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146d91906126f0565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114de91906126f0565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611529573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154d91906126f0565b90506001600160a01b0381166116c657816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561159b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115bf91906126f0565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561160c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163091906126f0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561167d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a191906126f0565b600b80546001600160a01b0319166001600160a01b03929092169190911790556116e2565b600b80546001600160a01b0319166001600160a01b0383161790555b600a805462010000600160b01b031916620100006001600160a01b0385811682029290921792839055610c47923092919004166000196119ed565b600f546201000090046001600160a01b0316331461174d5760405162461bcd60e51b815260040161087b906124f8565b600f54610100900460ff16156117a55760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e00000000604482015260640161087b565b600f546040516001600160a01b036201000090920491909116904780156108fc02916000818181858888f193505050501580156117e6573d6000803e3d6000fd5b50565b600f546201000090046001600160a01b031633146118195760405162461bcd60e51b815260040161087b906124f8565b306001600160a01b038216036118715760405162461bcd60e51b815260206004820181905260248201527f4f776e65722063616e6e6f7420636c61696d206e617469766520746f6b656e73604482015260640161087b565b6001600160a01b0381166118ab5760405133904780156108fc02916000818181858888f1935050505015801561098e573d6000803e3d6000fd5b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156118f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611918919061270d565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015611968573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198c9190612726565b50505050565b600f546201000090046001600160a01b031633146119c25760405162461bcd60e51b815260040161087b906124f8565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b038316611a395760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161087b565b6001600160a01b038216611a855760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161087b565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416611b4c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161087b565b6001600160a01b038316611bae5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161087b565b60008211611c105760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161087b565b6001600160a01b0384166000908152600160205260408120548190819060ff1615611c3e5760019250611c6c565b6001600160a01b03861660009081526001602052604090205460ff1615611c685760019150611c6c565b5060015b611c768787611ef6565b15611ccd57600f5460ff16611ccd5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c6564210000000000000000604482015260640161087b565b611cdb878787868686611ce6565b979650505050505050565b600f54600090610100900460ff16611dcb57611d028787611fdf565b600f54610100900460ff16158015611d1f5750611d1f8787611ef6565b8015611d4457506001600160a01b03871660009081526005602052604090205460ff16155b8015611d6957506001600160a01b03861660009081526005602052604090205460ff16155b8015611d73575081155b15611dcb5760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b606482015260840161087b565b6001600160a01b03871660009081526006602052604090205460019060ff1680611e0d57506001600160a01b03871660009081526006602052604090205460ff165b15611e16575060005b6001600160a01b03881660009081526020819052604081208054889290611e3e90849061264b565b909155506000905081611e515786611e5d565b611e5d8987878a6120b9565b9050806000808a6001600160a01b03166001600160a01b031681526020019081526020016000206000828254611e939190612743565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611edf91815260200190565b60405180910390a350600198975050505050505050565b600f546000906001600160a01b03848116620100009092041614801590611f315750600f546001600160a01b03838116620100009092041614155b8015611f4e5750600f546201000090046001600160a01b03163214155b8015611f7357506001600160a01b03821660009081526004602052604090205460ff16155b8015611f9857506001600160a01b03831660009081526004602052604090205460ff16155b8015611faf57506001600160a01b03821661dead14155b8015611fc357506001600160a01b03821615155b8015611fd857506001600160a01b0383163014155b9392505050565b600f54610100900460ff16156120435760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b606482015260840161087b565b61204d8282611ef6565b1580156120675750600c546001600160a01b038281169116145b1561098e57506001600160a01b03166000908152600460209081526040808320805460ff1990811660019081179092556006909352922080549091169091179055600f805461ff001916610100179055565b60008084156120cf575060095461ffff166120f9565b83156120e8575060095462010000900461ffff166120f9565b50600954640100000000900461ffff165b6000612710612108838661262c565b6121129190612756565b9050801561218f57600e546001600160a01b031660009081526020819052604081208054839290612144908490612743565b9091555050600e546040518281526001600160a01b03918216918916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b611cdb818561264b565b600060208083528351808285015260005b818110156121c6578581018301518582016040015282016121aa565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146117e657600080fd5b6000806040838503121561220f57600080fd5b823561221a816121e7565b946020939093013593505050565b60006020828403121561223a57600080fd5b8135611fd8816121e7565b6000806040838503121561225857600080fd5b8235612263816121e7565b91506020830135612273816121e7565b809150509250929050565b60008060006060848603121561229357600080fd5b833561229e816121e7565b925060208401356122ae816121e7565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156122fe576122fe6122bf565b604052919050565b600067ffffffffffffffff821115612320576123206122bf565b5060051b60200190565b600082601f83011261233b57600080fd5b8135602061235061234b83612306565b6122d5565b82815260059290921b8401810191818101908684111561236f57600080fd5b8286015b8481101561238a5780358352918301918301612373565b509695505050505050565b600080604083850312156123a857600080fd5b823567ffffffffffffffff808211156123c057600080fd5b818501915085601f8301126123d457600080fd5b813560206123e461234b83612306565b82815260059290921b8401810191818101908984111561240357600080fd5b948201945b8386101561242a57853561241b816121e7565b82529482019490820190612408565b9650508601359250508082111561244057600080fd5b5061244d8582860161232a565b9150509250929050565b80151581146117e657600080fd5b6000806040838503121561247857600080fd5b8235612483816121e7565b9150602083013561227381612457565b803561ffff811681146124a557600080fd5b919050565b600080604083850312156124bd57600080fd5b6124c683612493565b91506124d460208401612493565b90509250929050565b6000602082840312156124ef57600080fd5b611fd882612493565b60208082526011908201527021b0b63632b9101e979e9037bbb732b91760791b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561257457816000190482111561255a5761255a612523565b8085161561256757918102915b93841c939080029061253e565b509250929050565b60008261258b57506001610845565b8161259857506000610845565b81600181146125ae57600281146125b8576125d4565b6001915050610845565b60ff8411156125c9576125c9612523565b50506001821b610845565b5060208310610133831016604e8410600b84101617156125f7575081810a610845565b6126018383612539565b806000190482111561261557612615612523565b029392505050565b6000611fd860ff84168361257c565b600081600019048311821515161561264657612646612523565b500290565b8181038181111561084557610845612523565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff810361268a5761268a612523565b60010192915050565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b60006020828403121561270257600080fd5b8151611fd8816121e7565b60006020828403121561271f57600080fd5b5051919050565b60006020828403121561273857600080fd5b8151611fd881612457565b8082018082111561084557610845612523565b60008261277357634e487b7160e01b600052601260045260246000fd5b50049056fea264697066735822122063181b18e5311fd3da932b2b940ba8fe367472d6dff946d0049d4cc34ff5968064736f6c63430008100033
Deployed Bytecode Sourcemap
3900:14172:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5259:73;;;;;;;;;;;;5290:42;5259:73;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;5259:73:0;;;;;;;;4811:103;;;;;;;;;;-1:-1:-1;4811:103:0;;;;;;;;;;;;;;;;;;;;;;;;;;428:6:1;461:15;;;443:34;;513:15;;;508:2;493:18;;486:43;565:15;;545:18;;;538:43;;;;406:2;391:18;4811:103:0;222:365:1;8504:80:0;;;;;;;;;;-1:-1:-1;8576:5:0;;;;;;;;;;;-1:-1:-1;;;8576:5:0;;;;8504:80;;;;8576:5;8504:80;:::i;5098:26::-;;;;;;;;;;-1:-1:-1;5098:26:0;;;;;;;-1:-1:-1;;;;;5098:26:0;;;9112:161;;;;;;;;;;-1:-1:-1;9112:161:0;;;;;:::i;:::-;;:::i;:::-;;;1991:14:1;;1984:22;1966:41;;1954:2;1939:18;9112:161:0;1826:187:1;12024:194:0;;;;;;;;;;;;;:::i;:::-;;11259:140;;;;;;;;;;-1:-1:-1;11259:140:0;;;;;:::i;:::-;-1:-1:-1;;;;;11357:34:0;11333:4;11357:34;;;:25;:34;;;;;;;;;11259:140;13500:714;;;;;;;;;;-1:-1:-1;13500:714:0;;;;;:::i;:::-;;:::i;11825:191::-;;;;;;;;;;;;;:::i;8175:115::-;;;;;;;;;;;;;:::i;:::-;;;2809:25:1;;;2797:2;2782:18;8175:115:0;2663:177:1;9782:306:0;;;;;;;;;;-1:-1:-1;9782:306:0;;;;;:::i;:::-;;:::i;16197:410::-;;;;;;;;;;-1:-1:-1;16197:410:0;;;;;:::i;:::-;;:::i;8296:112::-;;;;;;;;;;;;;:::i;:::-;;;5965:4:1;5953:17;;;5935:36;;5923:2;5908:18;8296:112:0;5793:184:1;5059:30:0;;;;;;;;;;-1:-1:-1;5059:30:0;;;;;;;;;;;7980:187;;;;;;;;;;;;;:::i;5131:21::-;;;;;;;;;;-1:-1:-1;5131:21:0;;;;-1:-1:-1;;;;;5131:21:0;;;5527:34;;;;;;;;;;-1:-1:-1;5527:34:0;;;;;;;;7085:654;;;;;;;;;;-1:-1:-1;7085:654:0;;;;;:::i;:::-;;:::i;11124:127::-;;;;;;;;;;-1:-1:-1;11124:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;11215:28:0;11191:4;11215:28;;;:19;:28;;;;;;;;;11124:127;5568:36;;;;;;;;;;-1:-1:-1;5568:36:0;;;;;;;;;;;5159:22;;;;;;;;;;-1:-1:-1;5159:22:0;;;;-1:-1:-1;;;;;5159:22:0;;;5023:29;;;;;;;;;;-1:-1:-1;5023:29:0;;;;;;;;11407:134;;;;;;;;;;-1:-1:-1;11407:134:0;;;;;:::i;:::-;;:::i;11705:112::-;;;;;;;;;;-1:-1:-1;11705:112:0;;;;;:::i;:::-;;:::i;8814:117::-;;;;;;;;;;-1:-1:-1;8814:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;8907:16:0;8880:7;8907:16;;;;;;;;;;;;8814:117;7747:225;;;;;;;;;;;;;:::i;10717:399::-;;;;;;;;;;-1:-1:-1;10717:399:0;;;;;:::i;:::-;;:::i;7045:31::-;;;;;;;;;;-1:-1:-1;7045:31:0;;;;-1:-1:-1;;;;;7045:31:0;;;8590:79;;;;;;;;;;-1:-1:-1;8660:6:0;;;;;-1:-1:-1;;;;;8660:6:0;8590:79;;5188:64;;;;;;;;;;-1:-1:-1;5188:64:0;;;;-1:-1:-1;;;;;5188:64:0;;;9599:175;;;;;;;;;;;;;:::i;15748:251::-;;;;;;;;;;;;;:::i;8939:165::-;;;;;;;;;;-1:-1:-1;8939:165:0;;;;;:::i;:::-;;:::i;4923:43::-;;;;;;;;;;;;4962:4;4923:43;;12392:316;;;;;;;;;;-1:-1:-1;12392:316:0;;;;;:::i;:::-;;:::i;8675:133::-;;;;;;;;;;-1:-1:-1;8675:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8777:19:0;;;8759:7;8777:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8675:133;12226:158;;;;;;;;;;-1:-1:-1;12226:158:0;;;;;:::i;:::-;;:::i;10096:613::-;;;;;;;;;;-1:-1:-1;10096:613:0;;;;;:::i;:::-;;:::i;16007:182::-;;;;;;;;;;;;;:::i;5403:115::-;;;;;;;;;;-1:-1:-1;5403:115:0;;;;-1:-1:-1;;;;;5403:115:0;;;12716:441;;;;;;;;;;-1:-1:-1;12716:441:0;;;;;:::i;:::-;;:::i;11549:148::-;;;;;;;;;;-1:-1:-1;11549:148:0;;;;;:::i;:::-;;:::i;9112:161::-;9189:4;9206:37;9215:10;9227:7;9236:6;9206:8;:37::i;:::-;-1:-1:-1;9261:4:0;9112:161;;;;;:::o;12024:194::-;5745:6;;;;;-1:-1:-1;;;;;5745:6:0;5755:10;5745:20;5737:50;;;;-1:-1:-1;;;5737:50:0;;;;;;;:::i;:::-;;;;;;;;;12185:18:::1;:25:::0;;-1:-1:-1;;12185:25:0::1;;;::::0;;12024:194::o;13500:714::-;5745:6;;;;;-1:-1:-1;;;;;5745:6:0;5755:10;5745:20;5737:50;;;;-1:-1:-1;;;5737:50:0;;;;;;;:::i;:::-;13604:23:::1;::::0;::::1;;13596:32;;;::::0;::::1;;-1:-1:-1::0;;;;;13647:23:0;::::1;13665:4;13647:23;::::0;::::1;::::0;:51:::1;;-1:-1:-1::0;;;;;;13674:24:0;::::1;13693:4;13674:24;;13647:51;13639:75;;;::::0;-1:-1:-1;;;13639:75:0;;7654:2:1;13639:75:0::1;::::0;::::1;7636:21:1::0;7693:2;7673:18;;;7666:30;-1:-1:-1;;;7712:18:1;;;7705:41;7763:18;;13639:75:0::1;7452:335:1::0;13639:75:0::1;13739:7;-1:-1:-1::0;;;;;13729:17:0::1;:6;-1:-1:-1::0;;;;;13729:17:0::1;::::0;13725:482:::1;;-1:-1:-1::0;;;;;13763:26:0;::::1;;::::0;;;:17:::1;:26;::::0;;;;;;;:33;;13792:4:::1;-1:-1:-1::0;;13763:33:0;;::::1;::::0;::::1;::::0;;;13811:16:::1;:25:::0;;;;;:32;;;;::::1;::::0;::::1;::::0;;13858:34:::1;::::0;13763:26;;13858:19:::1;:34::i;:::-;13500:714:::0;;:::o;13725:482::-:1;-1:-1:-1::0;;;;;13925:25:0;;::::1;;::::0;;;:17:::1;:25;::::0;;;;;;;:32;;13953:4:::1;-1:-1:-1::0;;13925:32:0;;::::1;::::0;::::1;::::0;;;13972:26;;::::1;::::0;;;;;;:33;;;::::1;::::0;::::1;::::0;;14020:24;;;:16:::1;:24:::0;;;;;;:31;;;::::1;::::0;::::1;::::0;;14066:25;;;;;;:32;;;;::::1;::::0;::::1;::::0;;;14113:33:::1;::::0;13925:25;;14113:19:::1;:33::i;:::-;14161:34;14181:7;14190:4;14161:19;:34::i;11825:191::-:0;5745:6;;;;;-1:-1:-1;;;;;5745:6:0;5755:10;5745:20;5737:50;;;;-1:-1:-1;;;5737:50:0;;;;;;;:::i;:::-;11984:17:::1;:24:::0;;-1:-1:-1;;11984:24:0::1;12004:4;11984:24;::::0;;11825:191::o;8175:115::-;8230:7;4683:13;4620:2;4683;:13;:::i;:::-;4666:30;;4479:11;4666:30;:::i;:::-;8256:1;8245:12;8241:31;;8261:8;;;8241:31;4683:13;4620:2;4683;:13;:::i;:::-;4666:30;;4479:11;4666:30;:::i;:::-;8273:14;;8175:115;:::o;9782:306::-;-1:-1:-1;;;;;9903:19:0;;9882:4;9903:19;;;:11;:19;;;;;;;;9923:10;9903:31;;;;;;;;-1:-1:-1;;9903:52:0;9899:126;;-1:-1:-1;;;;;9972:19:0;;;;;;:11;:19;;;;;;;;9992:10;9972:31;;;;;;;:41;;10007:6;;9972:19;:41;;10007:6;;9972:41;:::i;:::-;;;;-1:-1:-1;;9899:126:0;10044:36;10054:6;10062:9;10073:6;10044:9;:36::i;:::-;10037:43;9782:306;-1:-1:-1;;;;9782:306:0:o;16197:410::-;5745:6;;;;;-1:-1:-1;;;;;5745:6:0;5755:10;5745:20;5737:50;;;;-1:-1:-1;;;5737:50:0;;;;;;;:::i;:::-;16332:7:::1;:14;16313:8;:15;:33;16305:67;;;::::0;-1:-1:-1;;;16305:67:0;;9815:2:1;16305:67:0::1;::::0;::::1;9797:21:1::0;9854:2;9834:18;;;9827:30;-1:-1:-1;;;9873:18:1;;;9866:51;9934:18;;16305:67:0::1;9613:345:1::0;16305:67:0::1;16388:7;16383:217;16405:8;:15;16401:1;:19;;;16383:217;;;16475:7;16483:1;16475:10;;;;;;;;;;:::i;:::-;;;;;;;16450:21;16460:10;-1:-1:-1::0;;;;;8907:16:0;8880:7;8907:16;;;;;;;;;;;;8814:117;16450:21:::1;:35;;16442:44;;;::::0;::::1;;16501:87;16518:10;16530:8;16539:1;16530:11;;;;;;;;;;:::i;:::-;;;;;;;4620:2;16554;:13;;;;:::i;:::-;16543:7;16551:1;16543:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;16569:5;16576::::0;16583:4:::1;16501:16;:87::i;:::-;-1:-1:-1::0;16422:3:0;::::1;::::0;::::1;:::i;:::-;;;;16383:217;;;;16197:410:::0;;:::o;8296:112::-;8348:5;4683:13;4620:2;4683;:13;:::i;:::-;4666:30;;4479:11;4666:30;:::i;:::-;8372:1;8361:12;8357:31;;8377:8;;;8357:31;-1:-1:-1;4620:2:0;;8296:112::o;7980:187::-;8058:16;;-1:-1:-1;;;;;8058:16:0;8044:10;:30;8036:83;;;;-1:-1:-1;;;8036:83:0;;10477:2:1;8036:83:0;;;10459:21:1;10516:2;10496:18;;;10489:30;10555:34;10535:18;;;10528:62;-1:-1:-1;;;10606:18:1;;;10599:38;10654:19;;8036:83:0;10275:404:1;8036:83:0;8130:16;:29;;-1:-1:-1;;;;;;8130:29:0;;;7980:187::o;7085:654::-;5745:6;;;;;-1:-1:-1;;;;;5745:6:0;5755:10;5745:20;5737:50;;;;-1:-1:-1;;;5737:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7164:22:0;::::1;7156:96;;;;-1:-1:-1::0;;;7156:96:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;;;7271:16:0;::::1;::::0;7263:90:::1;;;;-1:-1:-1::0;;;7263:90:0::1;;;;;;;:::i;:::-;7384:6;::::0;7364:34:::1;::::0;7384:6;;::::1;-1:-1:-1::0;;;;;7384:6:0::1;7392:5;7364:19;:34::i;:::-;7409:35;7429:8;7439:4;7409:19;:35::i;:::-;7479:6;::::0;;;::::1;-1:-1:-1::0;;;;;7479:6:0::1;7489:1;8907:16:::0;;;;;;;;;;;7469:21:::1;7465:127;;;7524:6;::::0;;;::::1;-1:-1:-1::0;;;;;7524:6:0::1;8880:7:::0;8907:16;;;;;;;;;;;7507:73:::1;::::0;7524:6;7532:8;;7542:17:::1;8814:117:::0;7507:73:::1;;7465:127;7631:6;::::0;;-1:-1:-1;;;;;7648:17:0;;::::1;7631:6:::0;7648:17;;::::1;-1:-1:-1::0;;;;;;7648:17:0;::::1;;::::0;;;7681:40:::1;::::0;7631:6;;;::::1;;::::0;;;7681:40:::1;::::0;7612:16:::1;::::0;7681:40:::1;7145:594;7085:654:::0;:::o;11407:134::-;5745:6;;;;;-1:-1:-1;;;;;5745:6:0;5755:10;5745:20;5737:50;;;;-1:-1:-1;;;5737:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11495:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:38;;-1:-1:-1;;11495:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11407:134::o;11705:112::-;5745:6;;;;;-1:-1:-1;;;;;5745:6:0;5755:10;5745:20;5737:50;;;;-1:-1:-1;;;5737:50:0;;;;;;;:::i;:::-;11779:11:::1;:30:::0;;-1:-1:-1;;;;;;11779:30:0::1;-1:-1:-1::0;;;;;11779:30:0;;;::::1;::::0;;;::::1;::::0;;11705:112::o;7747:225::-;5745:6;;;;;-1:-1:-1;;;;;5745:6:0;5755:10;5745:20;5737:50;;;;-1:-1:-1;;;5737:50:0;;;;;;;:::i;:::-;7826:6:::1;::::0;7806:34:::1;::::0;7826:6;;::::1;-1:-1:-1::0;;;;;7826:6:0::1;7834:5;7806:19;:34::i;:::-;7870:6;::::0;;-1:-1:-1;;;;;;7887:19:0;::::1;::::0;;;7922:42:::1;::::0;7870:6;;;::::1;-1:-1:-1::0;;;;;7870:6:0::1;::::0;-1:-1:-1;;7870:6:0;;7922:42:::1;::::0;-1:-1:-1;;7922:42:0::1;7795:177;7747:225::o:0;10717:399::-;5745:6;;;;;-1:-1:-1;;;;;5745:6:0;5755:10;5745:20;5737:50;;;;-1:-1:-1;;;5737:50:0;;;;;;;:::i;:::-;10799:7:::1;10794:315;;-1:-1:-1::0;;;;;;10823:13:0::1;10839:5;10823:13:::0;;;:7:::1;:13;::::0;;;;:21;;-1:-1:-1;;10823:21:0::1;::::0;;13500:714::o;10794:315::-:1;10881:17;::::0;:22;10877:136:::1;;10970:6;10950:17;;10932:15;:35;;;;:::i;:::-;:44;10924:73;;;::::0;-1:-1:-1;;;10924:73:0;;11316:2:1;10924:73:0::1;::::0;::::1;11298:21:1::0;11355:2;11335:18;;;11328:30;-1:-1:-1;;;11374:18:1;;;11367:46;11430:18;;10924:73:0::1;11114:340:1::0;10924:73:0::1;-1:-1:-1::0;;;;;;11027:13:0::1;;::::0;;;11043:4:::1;11027:13;::::0;;;;;;;:20;;-1:-1:-1;;11027:20:0::1;::::0;;::::1;::::0;;11082:15:::1;11062:17;:35:::0;10717:399::o;9599:175::-;5745:6;;9665:4;;5745:6;;;-1:-1:-1;;;;;5745:6:0;5755:10;5745:20;5737:50;;;;-1:-1:-1;;;5737:50:0;;;;;;;:::i;:::-;9714:9:::1;::::0;9682:62:::1;::::0;9699:4:::1;::::0;9714:9;;::::1;-1:-1:-1::0;;;;;9714:9:0::1;-1:-1:-1::0;;9682:8:0::1;:62::i;:::-;-1:-1:-1::0;9762:4:0::1;9599:175:::0;:::o;15748:251::-;5745:6;;;;;-1:-1:-1;;;;;5745:6:0;5755:10;5745:20;5737:50;;;;-1:-1:-1;;;5737:50:0;;;;;;;:::i;:::-;15810:14:::1;::::0;::::1;;15809:15;15801:52;;;::::0;-1:-1:-1;;;15801:52:0;;11661:2:1;15801:52:0::1;::::0;::::1;11643:21:1::0;11700:2;11680:18;;;11673:30;11739:26;11719:18;;;11712:54;11783:18;;15801:52:0::1;11459:348:1::0;15801:52:0::1;15872:16;::::0;::::1;::::0;::::1;;;15864:53;;;::::0;-1:-1:-1;;;15864:53:0;;12014:2:1;15864:53:0::1;::::0;::::1;11996:21:1::0;12053:2;12033:18;;;12026:30;12092:26;12072:18;;;12065:54;12136:18;;15864:53:0::1;11812:348:1::0;15864:53:0::1;15928:14;:21:::0;;-1:-1:-1;;15928:21:0;;::::1;15945:4;15928:21;::::0;;;15960:23:::1;:31:::0;;;;::::1;::::0;;15748:251::o;8939:165::-;9017:4;9034:40;9044:10;9056:9;9067:6;9034:9;:40::i;:::-;-1:-1:-1;9092:4:0;;8939:165;-1:-1:-1;;;8939:165:0:o;12392:316::-;5745:6;;;;;-1:-1:-1;;;;;5745:6:0;5755:10;5745:20;5737:50;;;;-1:-1:-1;;;5737:50:0;;;;;;;:::i;:::-;12489:18:::1;::::0;::::1;::::0;::::1;;;12488:19;12480:49;;;::::0;-1:-1:-1;;;12480:49:0;;12367:2:1;12480:49:0::1;::::0;::::1;12349:21:1::0;12406:2;12386:18;;;12379:30;-1:-1:-1;;;12425:18:1;;;12418:47;12482:18;;12480:49:0::1;12165:341:1::0;12480:49:0::1;4962:4;12548:7;:23;;;;12540:76;;;::::0;-1:-1:-1;;;12540:76:0;;12713:2:1;12540:76:0::1;::::0;::::1;12695:21:1::0;12752:2;12732:18;;;12725:30;12791:25;12771:18;;;12764:53;12834:18;;12540:76:0::1;12511:347:1::0;12540:76:0::1;12627:9;:27:::0;;-1:-1:-1;;12665:35:0;12627:27;::::1;::::0;;::::1;;-1:-1:-1::0;;12665:35:0;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;12392:316::o;12226:158::-;5745:6;;;;;-1:-1:-1;;;;;5745:6:0;5755:10;5745:20;5737:50;;;;-1:-1:-1;;;5737:50:0;;;;;;;:::i;:::-;12301:17:::1;::::0;::::1;;12300:18;12292:48;;;::::0;-1:-1:-1;;;12292:48:0;;12367:2:1;12292:48:0::1;::::0;::::1;12349:21:1::0;12406:2;12386:18;;;12379:30;-1:-1:-1;;;12425:18:1;;;12418:47;12482:18;;12292:48:0::1;12165:341:1::0;12292:48:0::1;12351:9;:25:::0;;-1:-1:-1;;12351:25:0::1;;::::0;;;::::1;::::0;;;::::1;::::0;;12226:158::o;10096:613::-;5745:6;;;;;-1:-1:-1;;;;;5745:6:0;5755:10;5745:20;5737:50;;;;-1:-1:-1;;;5737:50:0;;;;;;;:::i;:::-;10176:16:::1;::::0;::::1;::::0;::::1;;;10175:17;10167:60;;;::::0;-1:-1:-1;;;10167:60:0;;13065:2:1;10167:60:0::1;::::0;::::1;13047:21:1::0;13104:2;13084:18;;;13077:30;13143:32;13123:18;;;13116:60;13193:18;;10167:60:0::1;12863:354:1::0;10167:60:0::1;10238:20;10271:9;10238:43;;10292:16;10322:10;-1:-1:-1::0;;;;;10322:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10311:40:0::1;;10360:4;10367:10;-1:-1:-1::0;;;;;10367:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10311:74;::::0;-1:-1:-1;;;;;;10311:74:0::1;::::0;;;;;;-1:-1:-1;;;;;13708:15:1;;;10311:74:0::1;::::0;::::1;13690:34:1::0;13760:15;;13740:18;;;13733:43;13625:18;;10311:74:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10292:93:::0;-1:-1:-1;;;;;;10400:22:0;::::1;10396:200;;10459:10;-1:-1:-1::0;;;;;10459:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10448:43:0::1;;10500:4;10507:10;-1:-1:-1::0;;;;;10507:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10448:77;::::0;-1:-1:-1;;;;;;10448:77:0::1;::::0;;;;;;-1:-1:-1;;;;;13708:15:1;;;10448:77:0::1;::::0;::::1;13690:34:1::0;13760:15;;13740:18;;;13733:43;13625:18;;10448:77:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10439:6;:86:::0;;-1:-1:-1;;;;;;10439:86:0::1;-1:-1:-1::0;;;;;10439:86:0;;;::::1;::::0;;;::::1;::::0;;10396:200:::1;;;10567:6;:17:::0;;-1:-1:-1;;;;;;10567:17:0::1;-1:-1:-1::0;;;;;10567:17:0;::::1;;::::0;;10396:200:::1;10606:9;:22:::0;;-1:-1:-1;;;;;;10606:22:0::1;::::0;-1:-1:-1;;;;;10606:22:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;10639:62:::1;::::0;10656:4:::1;::::0;10671:9;;::::1;;-1:-1:-1::0;;10639:8:0::1;:62::i;16007:182::-:0;5745:6;;;;;-1:-1:-1;;;;;5745:6:0;5755:10;5745:20;5737:50;;;;-1:-1:-1;;;5737:50:0;;;;;;;:::i;:::-;16074:16:::1;::::0;::::1;::::0;::::1;;;16073:17;16065:58;;;::::0;-1:-1:-1;;;16065:58:0;;13989:2:1;16065:58:0::1;::::0;::::1;13971:21:1::0;14028:2;14008:18;;;14001:30;14067;14047:18;;;14040:58;14115:18;;16065:58:0::1;13787:352:1::0;16065:58:0::1;16142:6;::::0;16134:47:::1;::::0;-1:-1:-1;;;;;16142:6:0;;;::::1;::::0;;;::::1;::::0;16159:21:::1;16134:47:::0;::::1;;;::::0;::::1;::::0;;;16159:21;16142:6;16134:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;16007:182::o:0;12716:441::-;5745:6;;;;;-1:-1:-1;;;;;5745:6:0;5755:10;5745:20;5737:50;;;;-1:-1:-1;;;5737:50:0;;;;;;;:::i;:::-;12812:4:::1;-1:-1:-1::0;;;;;12795:22:0;::::1;::::0;12787:67:::1;;;::::0;-1:-1:-1;;;12787:67:0;;14346:2:1;12787:67:0::1;::::0;::::1;14328:21:1::0;;;14365:18;;;14358:30;14424:34;14404:18;;;14397:62;14476:18;;12787:67:0::1;14144:356:1::0;12787:67:0::1;-1:-1:-1::0;;;;;12869:21:0;::::1;12865:126;;12907:51;::::0;12915:10:::1;::::0;12936:21:::1;12907:51:::0;::::1;;;::::0;::::1;::::0;;;12936:21;12915:10;12907:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;12865:126;13063:35;::::0;-1:-1:-1;;;13063:35:0;;13092:4:::1;13063:35;::::0;::::1;160:51:1::0;13028:5:0;;13001:17:::1;::::0;-1:-1:-1;;;;;13063:20:0;::::1;::::0;::::1;::::0;133:18:1;;13063:35:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13109:40;::::0;-1:-1:-1;;;13109:40:0;;13129:10:::1;13109:40;::::0;::::1;14868:51:1::0;14935:18;;;14928:34;;;13045:53:0;;-1:-1:-1;;;;;;13109:19:0;::::1;::::0;::::1;::::0;14841:18:1;;13109:40:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12776:381;;12716:441:::0;:::o;11549:148::-;5745:6;;;;;-1:-1:-1;;;;;5745:6:0;5755:10;5745:20;5737:50;;;;-1:-1:-1;;;5737:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11645:34:0;;;::::1;;::::0;;;:25:::1;:34;::::0;;;;:44;;-1:-1:-1;;11645:44:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11549:148::o;9281:310::-;-1:-1:-1;;;;;9376:20:0;;9368:52;;;;-1:-1:-1;;;9368:52:0;;15425:2:1;9368:52:0;;;15407:21:1;15464:2;15444:18;;;15437:30;-1:-1:-1;;;15483:18:1;;;15476:49;15542:18;;9368:52:0;15223:343:1;9368:52:0;-1:-1:-1;;;;;9439:21:0;;9431:53;;;;-1:-1:-1;;;9431:53:0;;15425:2:1;9431:53:0;;;15407:21:1;15464:2;15444:18;;;15437:30;-1:-1:-1;;;15483:18:1;;;15476:49;15542:18;;9431:53:0;15223:343:1;9431:53:0;-1:-1:-1;;;;;9497:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;9550:33;;2809:25:1;;;9550:33:0;;2782:18:1;9550:33:0;;;;;;;9281:310;;;:::o;14588:801::-;14667:4;-1:-1:-1;;;;;14692:18:0;;14684:68;;;;-1:-1:-1;;;14684:68:0;;15773:2:1;14684:68:0;;;15755:21:1;15812:2;15792:18;;;15785:30;15851:34;15831:18;;;15824:62;-1:-1:-1;;;15902:18:1;;;15895:35;15947:19;;14684:68:0;15571:401:1;14684:68:0;-1:-1:-1;;;;;14771:16:0;;14763:64;;;;-1:-1:-1;;;14763:64:0;;16179:2:1;14763:64:0;;;16161:21:1;16218:2;16198:18;;;16191:30;16257:34;16237:18;;;16230:62;-1:-1:-1;;;16308:18:1;;;16301:33;16351:19;;14763:64:0;15977:399:1;14763:64:0;14855:1;14846:6;:10;14838:64;;;;-1:-1:-1;;;14838:64:0;;16583:2:1;14838:64:0;;;16565:21:1;16622:2;16602:18;;;16595:30;16661:34;16641:18;;;16634:62;-1:-1:-1;;;16712:18:1;;;16705:39;16761:19;;14838:64:0;16381:405:1;14838:64:0;-1:-1:-1;;;;;15001:13:0;;14913:8;15001:13;;;:7;:13;;;;;;14913:8;;;;15001:13;;14997:162;;;15037:4;15031:10;;14997:162;;;-1:-1:-1;;;;;15063:11:0;;;;;;:7;:11;;;;;;;;15059:100;;;15098:4;15091:11;;15059:100;;;-1:-1:-1;15143:4:0;15059:100;15173:20;15184:4;15190:2;15173:10;:20::i;:::-;15169:141;;;15214:14;;;;15210:89;;15249:34;;-1:-1:-1;;;15249:34:0;;16993:2:1;15249:34:0;;;16975:21:1;17032:2;17012:18;;;17005:30;17071:26;17051:18;;;17044:54;17115:18;;15249:34:0;16791:348:1;15210:89:0;15329:52;15346:4;15352:2;15356:6;15364:3;15369:4;15375:5;15329:16;:52::i;:::-;15322:59;14588:801;-1:-1:-1;;;;;;;14588:801:0:o;16615:823::-;16756:16;;16734:4;;16756:16;;;;;16751:298;;16789:28;16808:4;16814:2;16789:18;:28::i;:::-;16837:16;;;;;;;16836:17;:41;;;;;16857:20;16868:4;16874:2;16857:10;:20::i;:::-;16836:77;;;;-1:-1:-1;;;;;;16882:31:0;;;;;;:25;:31;;;;;;;;16881:32;16836:77;:111;;;;-1:-1:-1;;;;;;16918:29:0;;;;;;:25;:29;;;;;;;;16917:30;16836:111;:121;;;;;16952:5;16951:6;16836:121;16832:206;;;16978:44;;-1:-1:-1;;;16978:44:0;;17346:2:1;16978:44:0;;;17328:21:1;17385:2;17365:18;;;17358:30;17424:34;17404:18;;;17397:62;-1:-1:-1;;;17475:18:1;;;17468:32;17517:19;;16978:44:0;17144:398:1;16832:206:0;-1:-1:-1;;;;;17095:25:0;;17061:12;17095:25;;;:19;:25;;;;;;17076:4;;17095:25;;;:52;;-1:-1:-1;;;;;;17124:23:0;;;;;;:19;:23;;;;;;;;17095:52;17091:99;;;-1:-1:-1;17173:5:0;17091:99;-1:-1:-1;;;;;17202:13:0;;:7;:13;;;;;;;;;;:23;;17219:6;;17202:7;:23;;17219:6;;17202:23;:::i;:::-;;;;-1:-1:-1;17236:22:0;;-1:-1:-1;17262:7:0;17261:55;;17310:6;17261:55;;;17273:34;17283:4;17289:3;17294:4;17300:6;17273:9;:34::i;:::-;17236:80;;17342:14;17327:7;:11;17335:2;-1:-1:-1;;;;;17327:11:0;-1:-1:-1;;;;;17327:11:0;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;17389:2;-1:-1:-1;;;;;17374:34:0;17383:4;-1:-1:-1;;;;;17374:34:0;;17393:14;17374:34;;;;2809:25:1;;2797:2;2782:18;;2663:177;17374:34:0;;;;;;;;-1:-1:-1;17426:4:0;;16615:823;-1:-1:-1;;;;;;;;16615:823:0:o;14222:358::-;14323:6;;14291:4;;-1:-1:-1;;;;;14315:14:0;;;14323:6;;;;;14315:14;;;;:43;;-1:-1:-1;14352:6:0;;-1:-1:-1;;;;;14346:12:0;;;14352:6;;;;;14346:12;;14315:43;:79;;;;-1:-1:-1;14388:6:0;;;;;-1:-1:-1;;;;;14388:6:0;14375:9;:19;;14315:79;:118;;;;-1:-1:-1;;;;;;14412:21:0;;;;;;:17;:21;;;;;;;;14411:22;14315:118;:159;;;;-1:-1:-1;;;;;;14451:23:0;;;;;;:17;:23;;;;;;;;14450:24;14315:159;:186;;;;-1:-1:-1;;;;;;14491:10:0;;5290:42;14491:10;;14315:186;:219;;;;-1:-1:-1;;;;;;14518:16:0;;;;14315:219;:257;;;;-1:-1:-1;;;;;;14551:21:0;;14567:4;14551:21;;14315:257;14308:264;14222:358;-1:-1:-1;;;14222:358:0:o;15397:343::-;15480:16;;;;;;;15479:17;15471:65;;;;-1:-1:-1;;;15471:65:0;;17879:2:1;15471:65:0;;;17861:21:1;17918:2;17898:18;;;17891:30;17957:34;17937:18;;;17930:62;-1:-1:-1;;;18008:18:1;;;18001:33;18051:19;;15471:65:0;17677:399:1;15471:65:0;15552:20;15563:4;15569:2;15552:10;:20::i;:::-;15551:21;:38;;;;-1:-1:-1;15582:7:0;;-1:-1:-1;;;;;15576:13:0;;;15582:7;;15576:13;15551:38;15547:186;;;-1:-1:-1;;;;;;15606:23:0;;;;;:17;:23;;;;;;;;:30;;-1:-1:-1;;15606:30:0;;;15632:4;15606:30;;;;;;15651:19;:25;;;;;:32;;;;;;;;;;15698:16;:23;;-1:-1:-1;;15698:23:0;15606:30;15698:23;;;15397:343::o;17446:623::-;17534:7;17554:18;17587:3;17583:205;;;-1:-1:-1;17620:9:0;:16;;;17583:205;;;17658:4;17654:134;;;-1:-1:-1;17692:9:0;:17;;;;;;17654:134;;;-1:-1:-1;17755:9:0;:21;;;;;;17654:134;17798:17;5009:5;17818:19;17827:10;17818:6;:19;:::i;:::-;:38;;;;:::i;:::-;17798:58;-1:-1:-1;17871:13:0;;17867:157;;17909:11;:21;-1:-1:-1;;;;;17909:21:0;17901:7;:30;;;;;;;;;;:43;;17935:9;;17901:7;:43;;17935:9;;17901:43;:::i;:::-;;;;-1:-1:-1;;17979:11:0;:21;17964:48;;2809:25:1;;;-1:-1:-1;;;;;17979:21:0;;;;17964:48;;;;;2797:2:1;2782:18;17964:48:0;;;;;;;17867:157;18043:18;18052:9;18043:6;:18;:::i;592:548:1:-;704:4;733:2;762;751:9;744:21;794:6;788:13;837:6;832:2;821:9;817:18;810:34;862:1;872:140;886:6;883:1;880:13;872:140;;;981:14;;;977:23;;971:30;947:17;;;966:2;943:26;936:66;901:10;;872:140;;;876:3;1061:1;1056:2;1047:6;1036:9;1032:22;1028:31;1021:42;1131:2;1124;1120:7;1115:2;1107:6;1103:15;1099:29;1088:9;1084:45;1080:54;1072:62;;;;592:548;;;;:::o;1370:131::-;-1:-1:-1;;;;;1445:31:1;;1435:42;;1425:70;;1491:1;1488;1481:12;1506:315;1574:6;1582;1635:2;1623:9;1614:7;1610:23;1606:32;1603:52;;;1651:1;1648;1641:12;1603:52;1690:9;1677:23;1709:31;1734:5;1709:31;:::i;:::-;1759:5;1811:2;1796:18;;;;1783:32;;-1:-1:-1;;;1506:315:1:o;2018:247::-;2077:6;2130:2;2118:9;2109:7;2105:23;2101:32;2098:52;;;2146:1;2143;2136:12;2098:52;2185:9;2172:23;2204:31;2229:5;2204:31;:::i;2270:388::-;2338:6;2346;2399:2;2387:9;2378:7;2374:23;2370:32;2367:52;;;2415:1;2412;2405:12;2367:52;2454:9;2441:23;2473:31;2498:5;2473:31;:::i;:::-;2523:5;-1:-1:-1;2580:2:1;2565:18;;2552:32;2593:33;2552:32;2593:33;:::i;:::-;2645:7;2635:17;;;2270:388;;;;;:::o;2845:456::-;2922:6;2930;2938;2991:2;2979:9;2970:7;2966:23;2962:32;2959:52;;;3007:1;3004;2997:12;2959:52;3046:9;3033:23;3065:31;3090:5;3065:31;:::i;:::-;3115:5;-1:-1:-1;3172:2:1;3157:18;;3144:32;3185:33;3144:32;3185:33;:::i;:::-;2845:456;;3237:7;;-1:-1:-1;;;3291:2:1;3276:18;;;;3263:32;;2845:456::o;3306:127::-;3367:10;3362:3;3358:20;3355:1;3348:31;3398:4;3395:1;3388:15;3422:4;3419:1;3412:15;3438:275;3509:2;3503:9;3574:2;3555:13;;-1:-1:-1;;3551:27:1;3539:40;;3609:18;3594:34;;3630:22;;;3591:62;3588:88;;;3656:18;;:::i;:::-;3692:2;3685:22;3438:275;;-1:-1:-1;3438:275:1:o;3718:183::-;3778:4;3811:18;3803:6;3800:30;3797:56;;;3833:18;;:::i;:::-;-1:-1:-1;3878:1:1;3874:14;3890:4;3870:25;;3718:183::o;3906:662::-;3960:5;4013:3;4006:4;3998:6;3994:17;3990:27;3980:55;;4031:1;4028;4021:12;3980:55;4067:6;4054:20;4093:4;4117:60;4133:43;4173:2;4133:43;:::i;:::-;4117:60;:::i;:::-;4211:15;;;4297:1;4293:10;;;;4281:23;;4277:32;;;4242:12;;;;4321:15;;;4318:35;;;4349:1;4346;4339:12;4318:35;4385:2;4377:6;4373:15;4397:142;4413:6;4408:3;4405:15;4397:142;;;4479:17;;4467:30;;4517:12;;;;4430;;4397:142;;;-1:-1:-1;4557:5:1;3906:662;-1:-1:-1;;;;;;3906:662:1:o;4573:1215::-;4691:6;4699;4752:2;4740:9;4731:7;4727:23;4723:32;4720:52;;;4768:1;4765;4758:12;4720:52;4808:9;4795:23;4837:18;4878:2;4870:6;4867:14;4864:34;;;4894:1;4891;4884:12;4864:34;4932:6;4921:9;4917:22;4907:32;;4977:7;4970:4;4966:2;4962:13;4958:27;4948:55;;4999:1;4996;4989:12;4948:55;5035:2;5022:16;5057:4;5081:60;5097:43;5137:2;5097:43;:::i;5081:60::-;5175:15;;;5257:1;5253:10;;;;5245:19;;5241:28;;;5206:12;;;;5281:19;;;5278:39;;;5313:1;5310;5303:12;5278:39;5337:11;;;;5357:217;5373:6;5368:3;5365:15;5357:217;;;5453:3;5440:17;5470:31;5495:5;5470:31;:::i;:::-;5514:18;;5390:12;;;;5552;;;;5357:217;;;5593:5;-1:-1:-1;;5636:18:1;;5623:32;;-1:-1:-1;;5667:16:1;;;5664:36;;;5696:1;5693;5686:12;5664:36;;5719:63;5774:7;5763:8;5752:9;5748:24;5719:63;:::i;:::-;5709:73;;;4573:1215;;;;;:::o;5982:118::-;6068:5;6061:13;6054:21;6047:5;6044:32;6034:60;;6090:1;6087;6080:12;6105:382;6170:6;6178;6231:2;6219:9;6210:7;6206:23;6202:32;6199:52;;;6247:1;6244;6237:12;6199:52;6286:9;6273:23;6305:31;6330:5;6305:31;:::i;:::-;6355:5;-1:-1:-1;6412:2:1;6397:18;;6384:32;6425:30;6384:32;6425:30;:::i;6492:159::-;6559:20;;6619:6;6608:18;;6598:29;;6588:57;;6641:1;6638;6631:12;6588:57;6492:159;;;:::o;6656:256::-;6722:6;6730;6783:2;6771:9;6762:7;6758:23;6754:32;6751:52;;;6799:1;6796;6789:12;6751:52;6822:28;6840:9;6822:28;:::i;:::-;6812:38;;6869:37;6902:2;6891:9;6887:18;6869:37;:::i;:::-;6859:47;;6656:256;;;;;:::o;6917:184::-;6975:6;7028:2;7016:9;7007:7;7003:23;6999:32;6996:52;;;7044:1;7041;7034:12;6996:52;7067:28;7085:9;7067:28;:::i;7106:341::-;7308:2;7290:21;;;7347:2;7327:18;;;7320:30;-1:-1:-1;;;7381:2:1;7366:18;;7359:47;7438:2;7423:18;;7106:341::o;7792:127::-;7853:10;7848:3;7844:20;7841:1;7834:31;7884:4;7881:1;7874:15;7908:4;7905:1;7898:15;7924:422;8013:1;8056:5;8013:1;8070:270;8091:7;8081:8;8078:21;8070:270;;;8150:4;8146:1;8142:6;8138:17;8132:4;8129:27;8126:53;;;8159:18;;:::i;:::-;8209:7;8199:8;8195:22;8192:55;;;8229:16;;;;8192:55;8308:22;;;;8268:15;;;;8070:270;;;8074:3;7924:422;;;;;:::o;8351:806::-;8400:5;8430:8;8420:80;;-1:-1:-1;8471:1:1;8485:5;;8420:80;8519:4;8509:76;;-1:-1:-1;8556:1:1;8570:5;;8509:76;8601:4;8619:1;8614:59;;;;8687:1;8682:130;;;;8594:218;;8614:59;8644:1;8635:10;;8658:5;;;8682:130;8719:3;8709:8;8706:17;8703:43;;;8726:18;;:::i;:::-;-1:-1:-1;;8782:1:1;8768:16;;8797:5;;8594:218;;8896:2;8886:8;8883:16;8877:3;8871:4;8868:13;8864:36;8858:2;8848:8;8845:16;8840:2;8834:4;8831:12;8827:35;8824:77;8821:159;;;-1:-1:-1;8933:19:1;;;8965:5;;8821:159;9012:34;9037:8;9031:4;9012:34;:::i;:::-;9082:6;9078:1;9074:6;9070:19;9061:7;9058:32;9055:58;;;9093:18;;:::i;:::-;9131:20;;8351:806;-1:-1:-1;;;8351:806:1:o;9162:140::-;9220:5;9249:47;9290:4;9280:8;9276:19;9270:4;9249:47;:::i;9307:168::-;9347:7;9413:1;9409;9405:6;9401:14;9398:1;9395:21;9390:1;9383:9;9376:17;9372:45;9369:71;;;9420:18;;:::i;:::-;-1:-1:-1;9460:9:1;;9307:168::o;9480:128::-;9547:9;;;9568:11;;;9565:37;;;9582:18;;:::i;9963:127::-;10024:10;10019:3;10015:20;10012:1;10005:31;10055:4;10052:1;10045:15;10079:4;10076:1;10069:15;10095:175;10132:3;10176:4;10169:5;10165:16;10205:4;10196:7;10193:17;10190:43;;10213:18;;:::i;:::-;10262:1;10249:15;;10095:175;-1:-1:-1;;10095:175:1:o;10684:425::-;10886:2;10868:21;;;10925:2;10905:18;;;10898:30;10964:34;10959:2;10944:18;;10937:62;11035:31;11030:2;11015:18;;11008:59;11099:3;11084:19;;10684:425::o;13222:251::-;13292:6;13345:2;13333:9;13324:7;13320:23;13316:32;13313:52;;;13361:1;13358;13351:12;13313:52;13393:9;13387:16;13412:31;13437:5;13412:31;:::i;14505:184::-;14575:6;14628:2;14616:9;14607:7;14603:23;14599:32;14596:52;;;14644:1;14641;14634:12;14596:52;-1:-1:-1;14667:16:1;;14505:184;-1:-1:-1;14505:184:1:o;14973:245::-;15040:6;15093:2;15081:9;15072:7;15068:23;15064:32;15061:52;;;15109:1;15106;15099:12;15061:52;15141:9;15135:16;15160:28;15182:5;15160:28;:::i;17547:125::-;17612:9;;;17633:10;;;17630:36;;;17646:18;;:::i;18081:217::-;18121:1;18147;18137:132;;18191:10;18186:3;18182:20;18179:1;18172:31;18226:4;18223:1;18216:15;18254:4;18251:1;18244:15;18137:132;-1:-1:-1;18283:9:1;;18081:217::o
Swarm Source
ipfs://63181b18e5311fd3da932b2b940ba8fe367472d6dff946d0049d4cc34ff59680
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.