ERC-20
Overview
Max Total Supply
1,000,000,000 APED
Holders
171
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
786,635.316817836 APEDValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
APED
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-08-23 */ /** Website- https://apedeth.vip/ Twitter- https://twitter.com/Apederc_20 Telegram- https://t.me/AWITAT */ // SPDX-License-Identifier: MIT pragma solidity 0.8.17; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function transferOwnership(address newOwner) public virtual onlyOwner() { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; 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); } contract APED is Context, IERC20, Ownable { mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public _isExcludedFromFee; mapping(address => bool) private isBots; address payable private MarketingWallet; uint256 public swapTaxes = 10; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 1000000000 * 10**_decimals; string private constant _name = "A Wallet I Track Aped This So It Must Be Good"; string private constant _symbol = "APED"; address public constant deadWallet = 0x000000000000000000000000000000000000dEaD; uint256 private _taxSwap = 5000000 * 10**_decimals; uint256 public maxTxAmount = 5000000 * 10**_decimals; uint256 private genesis_block; uint256 private deadline = 0; uint256 private launchtax = 99; IUniswapV2Router02 public uniswapV2Router; address private uniswapV2Pair; bool public tradingOpen = false; bool private inSwap = false; bool public swapEnabled = false; // Events event FeesUpdated(uint256 indexed _feeAmount); event ExcludeFromFeeUpdated(address indexed account); event includeFromFeeUpdated(address indexed account); event FeesRecieverUpdated(address indexed _newWallet); event SwapThreshouldUpdated(uint256 indexed tokenAmount); event SwapBackSettingUpdated(bool indexed state); event ERC20TokensRecovered(uint256 indexed _amount); event TradingOpenUpdated(); event ETHBalanceRecovered(); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { if (block.chainid == 56){ uniswapV2Router = IUniswapV2Router02(0x10ED43C718714eb63d5aA57B78B54704E256024E); // PCS BSC Mainnet Router } else if(block.chainid == 1 || block.chainid == 5){ uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // Uniswap ETH Mainnet Router } else if(block.chainid == 42161){ uniswapV2Router = IUniswapV2Router02(0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506); // Sushi Arbitrum Mainnet Router } else if (block.chainid == 97){ uniswapV2Router = IUniswapV2Router02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1); // PCS BSC Testnet Router } else if (block.chainid == 8453){ uniswapV2Router = IUniswapV2Router02(0x4cf76043B3f97ba06917cBd90F9e3A2AAC1B306e); // BaseChian rocketSwap Router } else { revert("Wrong Chain Id"); } uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); MarketingWallet = payable(0x3401F189bBBB9F905BFCC9D5BfEBcb011D3F5E99); _balances[_msgSender()] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[MarketingWallet] = true; _isExcludedFromFee[deadWallet] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _transfer(sender, recipient, amount); _approve(sender, _msgSender(), currentAllowance - amount); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { 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"); require(!isBots[from] && !isBots[to], "You can't transfer tokens"); uint256 taxAmount; uint256 feeswap; if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { require(tradingOpen,"wait for trading to open"); } if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to] && block.number < genesis_block + deadline){ feeswap = launchtax; } if (from == uniswapV2Pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { require(amount <= maxTxAmount, "Max TxAmount is 2%"); } if (from != uniswapV2Pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { require(amount <= maxTxAmount, "Max TxAmount is 2%"); } if(to != uniswapV2Pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]){ require(balanceOf(to) + amount <= maxTxAmount, "Max TxAmount is 2%"); } taxAmount = amount * (swapTaxes) / (100); feeswap = taxAmount; if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) { feeswap = 0; } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance >= _taxSwap) { swapTokensForEth(_taxSwap); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } _balances[from] = _balances[from] - (amount); _balances[to] = _balances[to] + (amount - (feeswap)); emit Transfer(from, to, amount - (feeswap)); if(feeswap > 0){ _balances[address(this)] = _balances[address(this)] + (feeswap); emit Transfer(from, address(this),feeswap); } } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { require(tokenAmount > 0, "amount must be greeter than 0"); address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { require(amount > 0, "amount must be greeter than 0"); MarketingWallet.transfer(amount); } function excludeFromFee(address account) external onlyOwner { require(_isExcludedFromFee[account] != true,"Account is already excluded"); _isExcludedFromFee[account] = true; emit ExcludeFromFeeUpdated(account); } function includeFromFee(address account) external onlyOwner { require(_isExcludedFromFee[account] != false, "Account is already included"); _isExcludedFromFee[account] = false; emit includeFromFeeUpdated(account); } function SetFee(uint256 _feeAmount) external onlyOwner { require(_feeAmount <= 50, "Must keep fees at 50% or less"); swapTaxes = _feeAmount; emit FeesUpdated(_feeAmount); } function setMarketingWallet(address payable _newWallet) external onlyOwner { require(_newWallet != address(this), "CA will not be the Fee Reciever"); require(_newWallet != address(0), "0 addy will not be the fee Reciever"); MarketingWallet = _newWallet; _isExcludedFromFee[_newWallet] = true; emit FeesRecieverUpdated(_newWallet); } function setSwapThreshould(uint256 tokenAmount) external onlyOwner { require(tokenAmount <= 1e7, "amount must be less than or equal to 1% of the supply"); require(tokenAmount >= 1e6, "amount must be greater than or equal to 0.1% of the supply"); _taxSwap = tokenAmount * 10**_decimals; emit SwapThreshouldUpdated(tokenAmount); } function addBlacklist(address account) external onlyOwner { isBots[account] = true; } function removeBlacklist(address account) external onlyOwner { isBots[account] = false; } function removeTxLimits() external onlyOwner { maxTxAmount = _tTotal; } function setMaxTxLimits(uint256 amount) external onlyOwner { require(amount >= 1e6, "amount must be greater than or equal to 0.1% of the supply"); maxTxAmount = amount * 10**_decimals; } function setSwapBackSetting(bool state) external onlyOwner { swapEnabled = state; emit SwapBackSettingUpdated(state); } function addLPO() external onlyOwner() { require(!tradingOpen,"trading is already open"); uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); } function enableTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); swapEnabled = true; tradingOpen = true; genesis_block = block.number; deadline = 3; emit TradingOpenUpdated(); } receive() external payable {} function ClearERC20Tokens(address _tokenAddy, uint256 _amount) external onlyOwner { require(_amount > 0, "Amount should be greater than zero"); require(_amount <= IERC20(_tokenAddy).balanceOf(address(this)), "Insufficient Amount"); IERC20(_tokenAddy).transfer(MarketingWallet, _amount); emit ERC20TokensRecovered(_amount); } function ClearETHBalance() external { uint256 contractETHBalance = address(this).balance; require(contractETHBalance > 0, "Amount should be greater than zero"); require(contractETHBalance <= address(this).balance, "Insufficient Amount"); payable(address(MarketingWallet)).transfer(contractETHBalance); emit ETHBalanceRecovered(); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ERC20TokensRecovered","type":"event"},{"anonymous":false,"inputs":[],"name":"ETHBalanceRecovered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"ExcludeFromFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_newWallet","type":"address"}],"name":"FeesRecieverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_feeAmount","type":"uint256"}],"name":"FeesUpdated","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":"bool","name":"state","type":"bool"}],"name":"SwapBackSettingUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"SwapThreshouldUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"TradingOpenUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"includeFromFeeUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"_tokenAddy","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ClearERC20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ClearETHBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_feeAmount","type":"uint256"}],"name":"SetFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addLPO","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxTxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapBackSetting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"setSwapThreshould","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600a6006556009600a6200001991906200060b565b6200002890624c4b4062000623565b600755620000396009600a6200060b565b6200004890624c4b4062000623565b6008556000600a556063600b55600d805462ffffff60a01b191690553480156200007157600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35046603803620000e857600c80546001600160a01b0319167310ed43c718714eb63d5aa57b78b54704e256024e17905562000208565b4660011480620000f85750466005145b156200012a57600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17905562000208565b4661a4b1036200016057600c80546001600160a01b031916731b02da8cb0d097eb8d57a175b88c7d8b4799750617905562000208565b466061036200019557600c80546001600160a01b03191673d99d1c33f9fc3444f8101754abc46c52416550d117905562000208565b4661210503620001cb57600c80546001600160a01b031916734cf76043b3f97ba06917cbd90f9e3a2aac1b306e17905562000208565b60405162461bcd60e51b815260206004820152600e60248201526d15dc9bdb99c810da185a5b88125960921b604482015260640160405180910390fd5b600c60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028291906200063d565b6001600160a01b031663c9c6539630600c60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030b91906200063d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000359573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037f91906200063d565b600d80546001600160a01b03929092166001600160a01b031992831617905560058054909116733401f189bbbb9f905bfcc9d5bfebcb011d3f5e99179055620003cb6009600a6200060b565b620003db90633b9aca0062000623565b336000908152600160208190526040822092909255600390620004066000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260039093528183208054851660019081179091556005549091168352908220805484168217905561dead9091527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c8054909216179055620004953390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620004cf6009600a6200060b565b620004df90633b9aca0062000623565b60405190815260200160405180910390a362000668565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200054d578160001904821115620005315762000531620004f6565b808516156200053f57918102915b93841c939080029062000511565b509250929050565b600082620005665750600162000605565b81620005755750600062000605565b81600181146200058e57600281146200059957620005b9565b600191505062000605565b60ff841115620005ad57620005ad620004f6565b50506001821b62000605565b5060208310610133831016604e8410600b8410161715620005de575081810a62000605565b620005ea83836200050c565b8060001904821115620006015762000601620004f6565b0290505b92915050565b60006200061c60ff84168362000555565b9392505050565b8082028115828204841417620006055762000605620004f6565b6000602082840312156200065057600080fd5b81516001600160a01b03811681146200061c57600080fd5b6123eb80620006786000396000f3fe6080604052600436106101f15760003560e01c806370a082311161010d5780639cfe42da116100a0578063f083646d1161006f578063f083646d146105b4578063f0f56b6a146105d4578063f2fde38b146105f4578063ff51182814610614578063ffb54a991461063457600080fd5b80639cfe42da1461050e578063a9059cbb1461052e578063dd62ed3e1461054e578063eb91e6511461059457600080fd5b80638a8c523c116100dc5780638a8c523c146104985780638c0b5e22146104ad5780638da5cb5b146104c357806395d89b41146104e157600080fd5b806370a0823114610407578063715018a61461043d578063768dc7101461045257806385141a771461048257600080fd5b806323b872dd11610185578063481518a011610154578063481518a0146103905780635d098b38146103b0578063659a8d03146103d05780636ddd1713146103e657600080fd5b806323b872dd14610314578063313ce5671461033457806337e9820714610350578063437823ec1461037057600080fd5b806306fdde03116101c157806306fdde031461025e578063095ea7b3146102895780631694505e146102b957806318160ddd146102f157600080fd5b8062172ddf146101fd5780630106aaef1461021f578063053a21c214610234578063068b26f11461024957600080fd5b366101f857005b600080fd5b34801561020957600080fd5b5061021d610218366004611ea7565b610655565b005b34801561022b57600080fd5b5061021d61070c565b34801561024057600080fd5b5061021d610755565b34801561025557600080fd5b5061021d610975565b34801561026a57600080fd5b50610273610a40565b6040516102809190611ec0565b60405180910390f35b34801561029557600080fd5b506102a96102a4366004611f23565b610a60565b6040519015158152602001610280565b3480156102c557600080fd5b50600c546102d9906001600160a01b031681565b6040516001600160a01b039091168152602001610280565b3480156102fd57600080fd5b50610306610a77565b604051908152602001610280565b34801561032057600080fd5b506102a961032f366004611f4f565b610a98565b34801561034057600080fd5b5060405160098152602001610280565b34801561035c57600080fd5b5061021d61036b366004611ea7565b610b42565b34801561037c57600080fd5b5061021d61038b366004611f90565b610bab565b34801561039c57600080fd5b5061021d6103ab366004611f23565b610c8e565b3480156103bc57600080fd5b5061021d6103cb366004611f90565b610e2c565b3480156103dc57600080fd5b5061030660065481565b3480156103f257600080fd5b50600d546102a990600160b01b900460ff1681565b34801561041357600080fd5b50610306610422366004611f90565b6001600160a01b031660009081526001602052604090205490565b34801561044957600080fd5b5061021d610f70565b34801561045e57600080fd5b506102a961046d366004611f90565b60036020526000908152604090205460ff1681565b34801561048e57600080fd5b506102d961dead81565b3480156104a457600080fd5b5061021d610fe4565b3480156104b957600080fd5b5061030660085481565b3480156104cf57600080fd5b506000546001600160a01b03166102d9565b3480156104ed57600080fd5b506040805180820190915260048152631054115160e21b6020820152610273565b34801561051a57600080fd5b5061021d610529366004611f90565b6110ad565b34801561053a57600080fd5b506102a9610549366004611f23565b6110fb565b34801561055a57600080fd5b50610306610569366004611fb4565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156105a057600080fd5b5061021d6105af366004611f90565b611108565b3480156105c057600080fd5b5061021d6105cf366004611ea7565b611153565b3480156105e057600080fd5b5061021d6105ef366004611ffb565b611258565b34801561060057600080fd5b5061021d61060f366004611f90565b6112cb565b34801561062057600080fd5b5061021d61062f366004611f90565b611363565b34801561064057600080fd5b50600d546102a990600160a01b900460ff1681565b6000546001600160a01b031633146106885760405162461bcd60e51b815260040161067f90612018565b60405180910390fd5b60328111156106d95760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420353025206f72206c657373000000604482015260640161067f565b600681905560405181907f9fe6eeb0f0541c644a56c67efeb872dbadd803a60b909d7dde1b35a3fe230b0e90600090a250565b6000546001600160a01b031633146107365760405162461bcd60e51b815260040161067f90612018565b6107426009600a612147565b61075090633b9aca00612156565b600855565b6000546001600160a01b0316331461077f5760405162461bcd60e51b815260040161067f90612018565b600d54600160a01b900460ff16156107d35760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b604482015260640161067f565b600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561082190309061080e6009600a612147565b61081c90633b9aca00612156565b611442565b600c546001600160a01b031663f305d7194730610853816001600160a01b031660009081526001602052604090205490565b6000806108686000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108d0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108f5919061216d565b5050600d54600c5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af115801561094e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610972919061219b565b50565b47806109935760405162461bcd60e51b815260040161067f906121b8565b478111156109d95760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b604482015260640161067f565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610a13573d6000803e3d6000fd5b506040517fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db93767590600090a150565b60606040518060600160405280602d8152602001612389602d9139905090565b6000610a6d338484611442565b5060015b92915050565b6000610a856009600a612147565b610a9390633b9aca00612156565b905090565b6001600160a01b038316600090815260026020908152604080832033845290915281205482811015610b1d5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161067f565b610b28858585611566565b610b37853361081c86856121fa565b506001949350505050565b6000546001600160a01b03163314610b6c5760405162461bcd60e51b815260040161067f90612018565b620f4240811015610b8f5760405162461bcd60e51b815260040161067f9061220d565b610b9b6009600a612147565b610ba59082612156565b60085550565b6000546001600160a01b03163314610bd55760405162461bcd60e51b815260040161067f90612018565b6001600160a01b03811660009081526003602052604090205460ff161515600103610c425760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640161067f565b6001600160a01b038116600081815260036020526040808220805460ff19166001179055517f7168e8adb718597b3ac83e2dfe415bea8ebaabb57fe933ffac2e0ed93b80718e9190a250565b6000546001600160a01b03163314610cb85760405162461bcd60e51b815260040161067f90612018565b60008111610cd85760405162461bcd60e51b815260040161067f906121b8565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610d1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d40919061226a565b811115610d855760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b604482015260640161067f565b60055460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610dd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfc919061219b565b5060405181907fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c2290600090a25050565b6000546001600160a01b03163314610e565760405162461bcd60e51b815260040161067f90612018565b306001600160a01b03821603610eae5760405162461bcd60e51b815260206004820152601f60248201527f43412077696c6c206e6f74206265207468652046656520526563696576657200604482015260640161067f565b6001600160a01b038116610f105760405162461bcd60e51b815260206004820152602360248201527f3020616464792077696c6c206e6f7420626520746865206665652052656369656044820152623b32b960e91b606482015260840161067f565b600580546001600160a01b0319166001600160a01b038316908117909155600081815260036020526040808220805460ff19166001179055517f6867e944970fe7ede3b1a987e85026d725a5faa1e05cc2f89ec2a7a27701c3f59190a250565b6000546001600160a01b03163314610f9a5760405162461bcd60e51b815260040161067f90612018565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461100e5760405162461bcd60e51b815260040161067f90612018565b600d54600160a01b900460ff16156110625760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b604482015260640161067f565b600d805462ff00ff60a01b19166201000160a01b179055436009556003600a556040517f0d151bf744092c3011c9f50766da412cca73acdbcaa74b879a5858adc258f93590600090a1565b6000546001600160a01b031633146110d75760405162461bcd60e51b815260040161067f90612018565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000610a6d338484611566565b6000546001600160a01b031633146111325760405162461bcd60e51b815260040161067f90612018565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b0316331461117d5760405162461bcd60e51b815260040161067f90612018565b629896808111156111ee5760405162461bcd60e51b815260206004820152603560248201527f616d6f756e74206d757374206265206c657373207468616e206f7220657175616044820152746c20746f203125206f662074686520737570706c7960581b606482015260840161067f565b620f42408110156112115760405162461bcd60e51b815260040161067f9061220d565b61121d6009600a612147565b6112279082612156565b60075560405181907f2d70831e8ba235b516ecf7a8145985014eb4c8fd728d7358dcefeda7b46d081490600090a250565b6000546001600160a01b031633146112825760405162461bcd60e51b815260040161067f90612018565b600d805460ff60b01b1916600160b01b831515908102919091179091556040517f3a9ce3b0c56e8f872f7647ac57385353c6cc3474ddf4b76a77ffbb8ad1fb0ccb90600090a250565b6000546001600160a01b031633146112f55760405162461bcd60e51b815260040161067f90612018565b6001600160a01b03811661135a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161067f565b61097281611c02565b6000546001600160a01b0316331461138d5760405162461bcd60e51b815260040161067f90612018565b6001600160a01b03811660009081526003602052604081205460ff16151590036113f95760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c756465640000000000604482015260640161067f565b6001600160a01b038116600081815260036020526040808220805460ff19169055517fdff643e1b752e1138794c958b6f565e4f003ba18d45383a40b582de82ced091e9190a250565b6001600160a01b0383166114a45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161067f565b6001600160a01b0382166115055760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161067f565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166115ca5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161067f565b6001600160a01b03821661162c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161067f565b6000811161168e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161067f565b6001600160a01b03831660009081526004602052604090205460ff161580156116d057506001600160a01b03821660009081526004602052604090205460ff16155b61171c5760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e7300000000000000604482015260640161067f565b6001600160a01b038316600090815260036020526040812054819060ff1615801561176057506001600160a01b03841660009081526003602052604090205460ff16155b156117be57600d54600160a01b900460ff166117be5760405162461bcd60e51b815260206004820152601860248201527f7761697420666f722074726164696e6720746f206f70656e0000000000000000604482015260640161067f565b6001600160a01b03851660009081526003602052604090205460ff1615801561180057506001600160a01b03841660009081526003602052604090205460ff16155b801561181a5750600a546009546118179190612283565b43105b156118245750600b545b600d546001600160a01b03868116911614801561185a57506001600160a01b03851660009081526003602052604090205460ff16155b801561187f57506001600160a01b03841660009081526003602052604090205460ff16155b156118a6576008548311156118a65760405162461bcd60e51b815260040161067f90612296565b600d546001600160a01b038681169116148015906118dd57506001600160a01b03851660009081526003602052604090205460ff16155b801561190257506001600160a01b03841660009081526003602052604090205460ff16155b15611929576008548311156119295760405162461bcd60e51b815260040161067f90612296565b600d546001600160a01b0385811691161480159061196057506001600160a01b03851660009081526003602052604090205460ff16155b801561198557506001600160a01b03841660009081526003602052604090205460ff16155b156119d557600854836119ad866001600160a01b031660009081526001602052604090205490565b6119b79190612283565b11156119d55760405162461bcd60e51b815260040161067f90612296565b6064600654846119e59190612156565b6119ef91906122c2565b6001600160a01b03861660009081526003602052604090205490925082915060ff1680611a3457506001600160a01b03841660009081526003602052604090205460ff165b15611a3d575060005b30600090815260016020526040902054600d54600160a81b900460ff16158015611a755750600d546001600160a01b03878116911614155b8015611a8a5750600d54600160b01b900460ff165b8015611a9857506007548110155b15611aba57611aa8600754611c52565b478015611ab857611ab847611e19565b505b6001600160a01b038616600090815260016020526040902054611ade9085906121fa565b6001600160a01b038716600090815260016020526040902055611b0182856121fa565b6001600160a01b038616600090815260016020526040902054611b249190612283565b6001600160a01b0380871660008181526001602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611b6e85886121fa565b60405190815260200160405180910390a38115611bfa5730600090815260016020526040902054611ba0908390612283565b30600081815260016020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611bf19086815260200190565b60405180910390a35b505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600d805460ff60a81b1916600160a81b17905580611cb25760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e2030000000604482015260640161067f565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ce757611ce76122e4565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d6491906122fa565b81600181518110611d7757611d776122e4565b6001600160a01b039283166020918202929092010152600c54611d9d9130911684611442565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611dd6908590600090869030904290600401612317565b600060405180830381600087803b158015611df057600080fd5b505af1158015611e04573d6000803e3d6000fd5b5050600d805460ff60a81b1916905550505050565b60008111611e695760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e2030000000604482015260640161067f565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611ea3573d6000803e3d6000fd5b5050565b600060208284031215611eb957600080fd5b5035919050565b600060208083528351808285015260005b81811015611eed57858101830151858201604001528201611ed1565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461097257600080fd5b60008060408385031215611f3657600080fd5b8235611f4181611f0e565b946020939093013593505050565b600080600060608486031215611f6457600080fd5b8335611f6f81611f0e565b92506020840135611f7f81611f0e565b929592945050506040919091013590565b600060208284031215611fa257600080fd5b8135611fad81611f0e565b9392505050565b60008060408385031215611fc757600080fd5b8235611fd281611f0e565b91506020830135611fe281611f0e565b809150509250929050565b801515811461097257600080fd5b60006020828403121561200d57600080fd5b8135611fad81611fed565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561209e5781600019048211156120845761208461204d565b8085161561209157918102915b93841c9390800290612068565b509250929050565b6000826120b557506001610a71565b816120c257506000610a71565b81600181146120d857600281146120e2576120fe565b6001915050610a71565b60ff8411156120f3576120f361204d565b50506001821b610a71565b5060208310610133831016604e8410600b8410161715612121575081810a610a71565b61212b8383612063565b806000190482111561213f5761213f61204d565b029392505050565b6000611fad60ff8416836120a6565b8082028115828204841417610a7157610a7161204d565b60008060006060848603121561218257600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156121ad57600080fd5b8151611fad81611fed565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b81810381811115610a7157610a7161204d565b6020808252603a908201527f616d6f756e74206d7573742062652067726561746572207468616e206f72206560408201527f7175616c20746f20302e3125206f662074686520737570706c79000000000000606082015260800190565b60006020828403121561227c57600080fd5b5051919050565b80820180821115610a7157610a7161204d565b6020808252601290820152714d6178205478416d6f756e7420697320322560701b604082015260600190565b6000826122df57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561230c57600080fd5b8151611fad81611f0e565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123675784516001600160a01b031683529383019391830191600101612342565b50506001600160a01b0396909616606085015250505060800152939250505056fe412057616c6c6574204920547261636b2041706564205468697320536f204974204d75737420426520476f6f64a2646970667358221220b2a369644c2fa0700f95ad0cf6af291822b15d424d2c6aa6aa3f9a075a03afed64736f6c63430008110033
Deployed Bytecode
0x6080604052600436106101f15760003560e01c806370a082311161010d5780639cfe42da116100a0578063f083646d1161006f578063f083646d146105b4578063f0f56b6a146105d4578063f2fde38b146105f4578063ff51182814610614578063ffb54a991461063457600080fd5b80639cfe42da1461050e578063a9059cbb1461052e578063dd62ed3e1461054e578063eb91e6511461059457600080fd5b80638a8c523c116100dc5780638a8c523c146104985780638c0b5e22146104ad5780638da5cb5b146104c357806395d89b41146104e157600080fd5b806370a0823114610407578063715018a61461043d578063768dc7101461045257806385141a771461048257600080fd5b806323b872dd11610185578063481518a011610154578063481518a0146103905780635d098b38146103b0578063659a8d03146103d05780636ddd1713146103e657600080fd5b806323b872dd14610314578063313ce5671461033457806337e9820714610350578063437823ec1461037057600080fd5b806306fdde03116101c157806306fdde031461025e578063095ea7b3146102895780631694505e146102b957806318160ddd146102f157600080fd5b8062172ddf146101fd5780630106aaef1461021f578063053a21c214610234578063068b26f11461024957600080fd5b366101f857005b600080fd5b34801561020957600080fd5b5061021d610218366004611ea7565b610655565b005b34801561022b57600080fd5b5061021d61070c565b34801561024057600080fd5b5061021d610755565b34801561025557600080fd5b5061021d610975565b34801561026a57600080fd5b50610273610a40565b6040516102809190611ec0565b60405180910390f35b34801561029557600080fd5b506102a96102a4366004611f23565b610a60565b6040519015158152602001610280565b3480156102c557600080fd5b50600c546102d9906001600160a01b031681565b6040516001600160a01b039091168152602001610280565b3480156102fd57600080fd5b50610306610a77565b604051908152602001610280565b34801561032057600080fd5b506102a961032f366004611f4f565b610a98565b34801561034057600080fd5b5060405160098152602001610280565b34801561035c57600080fd5b5061021d61036b366004611ea7565b610b42565b34801561037c57600080fd5b5061021d61038b366004611f90565b610bab565b34801561039c57600080fd5b5061021d6103ab366004611f23565b610c8e565b3480156103bc57600080fd5b5061021d6103cb366004611f90565b610e2c565b3480156103dc57600080fd5b5061030660065481565b3480156103f257600080fd5b50600d546102a990600160b01b900460ff1681565b34801561041357600080fd5b50610306610422366004611f90565b6001600160a01b031660009081526001602052604090205490565b34801561044957600080fd5b5061021d610f70565b34801561045e57600080fd5b506102a961046d366004611f90565b60036020526000908152604090205460ff1681565b34801561048e57600080fd5b506102d961dead81565b3480156104a457600080fd5b5061021d610fe4565b3480156104b957600080fd5b5061030660085481565b3480156104cf57600080fd5b506000546001600160a01b03166102d9565b3480156104ed57600080fd5b506040805180820190915260048152631054115160e21b6020820152610273565b34801561051a57600080fd5b5061021d610529366004611f90565b6110ad565b34801561053a57600080fd5b506102a9610549366004611f23565b6110fb565b34801561055a57600080fd5b50610306610569366004611fb4565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156105a057600080fd5b5061021d6105af366004611f90565b611108565b3480156105c057600080fd5b5061021d6105cf366004611ea7565b611153565b3480156105e057600080fd5b5061021d6105ef366004611ffb565b611258565b34801561060057600080fd5b5061021d61060f366004611f90565b6112cb565b34801561062057600080fd5b5061021d61062f366004611f90565b611363565b34801561064057600080fd5b50600d546102a990600160a01b900460ff1681565b6000546001600160a01b031633146106885760405162461bcd60e51b815260040161067f90612018565b60405180910390fd5b60328111156106d95760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420353025206f72206c657373000000604482015260640161067f565b600681905560405181907f9fe6eeb0f0541c644a56c67efeb872dbadd803a60b909d7dde1b35a3fe230b0e90600090a250565b6000546001600160a01b031633146107365760405162461bcd60e51b815260040161067f90612018565b6107426009600a612147565b61075090633b9aca00612156565b600855565b6000546001600160a01b0316331461077f5760405162461bcd60e51b815260040161067f90612018565b600d54600160a01b900460ff16156107d35760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b604482015260640161067f565b600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561082190309061080e6009600a612147565b61081c90633b9aca00612156565b611442565b600c546001600160a01b031663f305d7194730610853816001600160a01b031660009081526001602052604090205490565b6000806108686000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108d0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108f5919061216d565b5050600d54600c5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af115801561094e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610972919061219b565b50565b47806109935760405162461bcd60e51b815260040161067f906121b8565b478111156109d95760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b604482015260640161067f565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610a13573d6000803e3d6000fd5b506040517fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db93767590600090a150565b60606040518060600160405280602d8152602001612389602d9139905090565b6000610a6d338484611442565b5060015b92915050565b6000610a856009600a612147565b610a9390633b9aca00612156565b905090565b6001600160a01b038316600090815260026020908152604080832033845290915281205482811015610b1d5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161067f565b610b28858585611566565b610b37853361081c86856121fa565b506001949350505050565b6000546001600160a01b03163314610b6c5760405162461bcd60e51b815260040161067f90612018565b620f4240811015610b8f5760405162461bcd60e51b815260040161067f9061220d565b610b9b6009600a612147565b610ba59082612156565b60085550565b6000546001600160a01b03163314610bd55760405162461bcd60e51b815260040161067f90612018565b6001600160a01b03811660009081526003602052604090205460ff161515600103610c425760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640161067f565b6001600160a01b038116600081815260036020526040808220805460ff19166001179055517f7168e8adb718597b3ac83e2dfe415bea8ebaabb57fe933ffac2e0ed93b80718e9190a250565b6000546001600160a01b03163314610cb85760405162461bcd60e51b815260040161067f90612018565b60008111610cd85760405162461bcd60e51b815260040161067f906121b8565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610d1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d40919061226a565b811115610d855760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b604482015260640161067f565b60055460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610dd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfc919061219b565b5060405181907fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c2290600090a25050565b6000546001600160a01b03163314610e565760405162461bcd60e51b815260040161067f90612018565b306001600160a01b03821603610eae5760405162461bcd60e51b815260206004820152601f60248201527f43412077696c6c206e6f74206265207468652046656520526563696576657200604482015260640161067f565b6001600160a01b038116610f105760405162461bcd60e51b815260206004820152602360248201527f3020616464792077696c6c206e6f7420626520746865206665652052656369656044820152623b32b960e91b606482015260840161067f565b600580546001600160a01b0319166001600160a01b038316908117909155600081815260036020526040808220805460ff19166001179055517f6867e944970fe7ede3b1a987e85026d725a5faa1e05cc2f89ec2a7a27701c3f59190a250565b6000546001600160a01b03163314610f9a5760405162461bcd60e51b815260040161067f90612018565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461100e5760405162461bcd60e51b815260040161067f90612018565b600d54600160a01b900460ff16156110625760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b604482015260640161067f565b600d805462ff00ff60a01b19166201000160a01b179055436009556003600a556040517f0d151bf744092c3011c9f50766da412cca73acdbcaa74b879a5858adc258f93590600090a1565b6000546001600160a01b031633146110d75760405162461bcd60e51b815260040161067f90612018565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000610a6d338484611566565b6000546001600160a01b031633146111325760405162461bcd60e51b815260040161067f90612018565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b0316331461117d5760405162461bcd60e51b815260040161067f90612018565b629896808111156111ee5760405162461bcd60e51b815260206004820152603560248201527f616d6f756e74206d757374206265206c657373207468616e206f7220657175616044820152746c20746f203125206f662074686520737570706c7960581b606482015260840161067f565b620f42408110156112115760405162461bcd60e51b815260040161067f9061220d565b61121d6009600a612147565b6112279082612156565b60075560405181907f2d70831e8ba235b516ecf7a8145985014eb4c8fd728d7358dcefeda7b46d081490600090a250565b6000546001600160a01b031633146112825760405162461bcd60e51b815260040161067f90612018565b600d805460ff60b01b1916600160b01b831515908102919091179091556040517f3a9ce3b0c56e8f872f7647ac57385353c6cc3474ddf4b76a77ffbb8ad1fb0ccb90600090a250565b6000546001600160a01b031633146112f55760405162461bcd60e51b815260040161067f90612018565b6001600160a01b03811661135a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161067f565b61097281611c02565b6000546001600160a01b0316331461138d5760405162461bcd60e51b815260040161067f90612018565b6001600160a01b03811660009081526003602052604081205460ff16151590036113f95760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c756465640000000000604482015260640161067f565b6001600160a01b038116600081815260036020526040808220805460ff19169055517fdff643e1b752e1138794c958b6f565e4f003ba18d45383a40b582de82ced091e9190a250565b6001600160a01b0383166114a45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161067f565b6001600160a01b0382166115055760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161067f565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166115ca5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161067f565b6001600160a01b03821661162c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161067f565b6000811161168e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161067f565b6001600160a01b03831660009081526004602052604090205460ff161580156116d057506001600160a01b03821660009081526004602052604090205460ff16155b61171c5760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e7300000000000000604482015260640161067f565b6001600160a01b038316600090815260036020526040812054819060ff1615801561176057506001600160a01b03841660009081526003602052604090205460ff16155b156117be57600d54600160a01b900460ff166117be5760405162461bcd60e51b815260206004820152601860248201527f7761697420666f722074726164696e6720746f206f70656e0000000000000000604482015260640161067f565b6001600160a01b03851660009081526003602052604090205460ff1615801561180057506001600160a01b03841660009081526003602052604090205460ff16155b801561181a5750600a546009546118179190612283565b43105b156118245750600b545b600d546001600160a01b03868116911614801561185a57506001600160a01b03851660009081526003602052604090205460ff16155b801561187f57506001600160a01b03841660009081526003602052604090205460ff16155b156118a6576008548311156118a65760405162461bcd60e51b815260040161067f90612296565b600d546001600160a01b038681169116148015906118dd57506001600160a01b03851660009081526003602052604090205460ff16155b801561190257506001600160a01b03841660009081526003602052604090205460ff16155b15611929576008548311156119295760405162461bcd60e51b815260040161067f90612296565b600d546001600160a01b0385811691161480159061196057506001600160a01b03851660009081526003602052604090205460ff16155b801561198557506001600160a01b03841660009081526003602052604090205460ff16155b156119d557600854836119ad866001600160a01b031660009081526001602052604090205490565b6119b79190612283565b11156119d55760405162461bcd60e51b815260040161067f90612296565b6064600654846119e59190612156565b6119ef91906122c2565b6001600160a01b03861660009081526003602052604090205490925082915060ff1680611a3457506001600160a01b03841660009081526003602052604090205460ff165b15611a3d575060005b30600090815260016020526040902054600d54600160a81b900460ff16158015611a755750600d546001600160a01b03878116911614155b8015611a8a5750600d54600160b01b900460ff165b8015611a9857506007548110155b15611aba57611aa8600754611c52565b478015611ab857611ab847611e19565b505b6001600160a01b038616600090815260016020526040902054611ade9085906121fa565b6001600160a01b038716600090815260016020526040902055611b0182856121fa565b6001600160a01b038616600090815260016020526040902054611b249190612283565b6001600160a01b0380871660008181526001602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611b6e85886121fa565b60405190815260200160405180910390a38115611bfa5730600090815260016020526040902054611ba0908390612283565b30600081815260016020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611bf19086815260200190565b60405180910390a35b505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600d805460ff60a81b1916600160a81b17905580611cb25760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e2030000000604482015260640161067f565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ce757611ce76122e4565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d6491906122fa565b81600181518110611d7757611d776122e4565b6001600160a01b039283166020918202929092010152600c54611d9d9130911684611442565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611dd6908590600090869030904290600401612317565b600060405180830381600087803b158015611df057600080fd5b505af1158015611e04573d6000803e3d6000fd5b5050600d805460ff60a81b1916905550505050565b60008111611e695760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e2030000000604482015260640161067f565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611ea3573d6000803e3d6000fd5b5050565b600060208284031215611eb957600080fd5b5035919050565b600060208083528351808285015260005b81811015611eed57858101830151858201604001528201611ed1565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461097257600080fd5b60008060408385031215611f3657600080fd5b8235611f4181611f0e565b946020939093013593505050565b600080600060608486031215611f6457600080fd5b8335611f6f81611f0e565b92506020840135611f7f81611f0e565b929592945050506040919091013590565b600060208284031215611fa257600080fd5b8135611fad81611f0e565b9392505050565b60008060408385031215611fc757600080fd5b8235611fd281611f0e565b91506020830135611fe281611f0e565b809150509250929050565b801515811461097257600080fd5b60006020828403121561200d57600080fd5b8135611fad81611fed565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561209e5781600019048211156120845761208461204d565b8085161561209157918102915b93841c9390800290612068565b509250929050565b6000826120b557506001610a71565b816120c257506000610a71565b81600181146120d857600281146120e2576120fe565b6001915050610a71565b60ff8411156120f3576120f361204d565b50506001821b610a71565b5060208310610133831016604e8410600b8410161715612121575081810a610a71565b61212b8383612063565b806000190482111561213f5761213f61204d565b029392505050565b6000611fad60ff8416836120a6565b8082028115828204841417610a7157610a7161204d565b60008060006060848603121561218257600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156121ad57600080fd5b8151611fad81611fed565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b81810381811115610a7157610a7161204d565b6020808252603a908201527f616d6f756e74206d7573742062652067726561746572207468616e206f72206560408201527f7175616c20746f20302e3125206f662074686520737570706c79000000000000606082015260800190565b60006020828403121561227c57600080fd5b5051919050565b80820180821115610a7157610a7161204d565b6020808252601290820152714d6178205478416d6f756e7420697320322560701b604082015260600190565b6000826122df57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561230c57600080fd5b8151611fad81611f0e565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123675784516001600160a01b031683529383019391830191600101612342565b50506001600160a01b0396909616606085015250505060800152939250505056fe412057616c6c6574204920547261636b2041706564205468697320536f204974204d75737420426520476f6f64a2646970667358221220b2a369644c2fa0700f95ad0cf6af291822b15d424d2c6aa6aa3f9a075a03afed64736f6c63430008110033
Deployed Bytecode Sourcemap
2880:11775:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11442:200;;;;;;;;;;-1:-1:-1;11442:200:0;;;;;:::i;:::-;;:::i;:::-;;12631:85;;;;;;;;;;;;;:::i;13086:487::-;;;;;;;;;;;;;:::i;14273:379::-;;;;;;;;;;;;;:::i;6063:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6896:161;;;;;;;;;;-1:-1:-1;6896:161:0;;;;;:::i;:::-;;:::i;:::-;;;1373:14:1;;1366:22;1348:41;;1336:2;1321:18;6896:161:0;1208:187:1;3814:41:0;;;;;;;;;;-1:-1:-1;3814:41:0;;;;-1:-1:-1;;;;;3814:41:0;;;;;;-1:-1:-1;;;;;1590:32:1;;;1572:51;;1560:2;1545:18;3814:41:0;1400:229:1;6340:95:0;;;;;;;;;;;;;:::i;:::-;;;1780:25:1;;;1768:2;1753:18;6340:95:0;1634:177:1;7065:410:0;;;;;;;;;;-1:-1:-1;7065:410:0;;;;;:::i;:::-;;:::i;6249:83::-;;;;;;;;;;-1:-1:-1;6249:83:0;;3281:1;2419:36:1;;2407:2;2392:18;6249:83:0;2277:184:1;12723:208:0;;;;;;;;;;-1:-1:-1;12723:208:0;;;;;:::i;:::-;;:::i;10939:236::-;;;;;;;;;;-1:-1:-1;10939:236:0;;;;;:::i;:::-;;:::i;13903:364::-;;;;;;;;;;-1:-1:-1;13903:364:0;;;;;:::i;:::-;;:::i;11654:373::-;;;;;;;;;;-1:-1:-1;11654:373:0;;;;;:::i;:::-;;:::i;3210:29::-;;;;;;;;;;;;;;;;3970:31;;;;;;;;;;-1:-1:-1;3970:31:0;;;;-1:-1:-1;;;3970:31:0;;;;;;6443:119;;;;;;;;;;-1:-1:-1;6443:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6536:18:0;6509:7;6536:18;;;:9;:18;;;;;;;6443:119;1961:148;;;;;;;;;;;;;:::i;3058:51::-;;;;;;;;;;-1:-1:-1;3058:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3491:79;;;;;;;;;;;;3528:42;3491:79;;13582:269;;;;;;;;;;;;;:::i;3634:52::-;;;;;;;;;;;;;;;;1321:79;;;;;;;;;;-1:-1:-1;1359:7:0;1386:6;-1:-1:-1;;;;;1386:6:0;1321:79;;6154:87;;;;;;;;;;-1:-1:-1;6226:7:0;;;;;;;;;;;;-1:-1:-1;;;6226:7:0;;;;6154:87;;12411:99;;;;;;;;;;-1:-1:-1;12411:99:0;;;;;:::i;:::-;;:::i;6570:167::-;;;;;;;;;;-1:-1:-1;6570:167:0;;;;;:::i;:::-;;:::i;6745:143::-;;;;;;;;;;-1:-1:-1;6745:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6853:18:0;;;6826:7;6853:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6745:143;12517:103;;;;;;;;;;-1:-1:-1;12517:103:0;;;;;:::i;:::-;;:::i;12039:365::-;;;;;;;;;;-1:-1:-1;12039:365:0;;;;;:::i;:::-;;:::i;12941:139::-;;;;;;;;;;-1:-1:-1;12941:139:0;;;;;:::i;:::-;;:::i;1538:203::-;;;;;;;;;;-1:-1:-1;1538:203:0;;;;;:::i;:::-;;:::i;11186:245::-;;;;;;;;;;-1:-1:-1;11186:245:0;;;;;:::i;:::-;;:::i;3898:31::-;;;;;;;;;;-1:-1:-1;3898:31:0;;;;-1:-1:-1;;;3898:31:0;;;;;;11442:200;1448:6;;-1:-1:-1;;;;;1448:6:0;299:10;1448:22;1440:67;;;;-1:-1:-1;;;1440:67:0;;;;;;;:::i;:::-;;;;;;;;;11529:2:::1;11515:10;:16;;11507:58;;;::::0;-1:-1:-1;;;11507:58:0;;4511:2:1;11507:58:0::1;::::0;::::1;4493:21:1::0;4550:2;4530:18;;;4523:30;4589:31;4569:18;;;4562:59;4638:18;;11507:58:0::1;4309:353:1::0;11507:58:0::1;11576:9;:22:::0;;;11612:23:::1;::::0;11588:10;;11612:23:::1;::::0;;;::::1;11442:200:::0;:::o;12631:85::-;1448:6;;-1:-1:-1;;;;;1448:6:0;299:10;1448:22;1440:67;;;;-1:-1:-1;;;1440:67:0;;;;;;;:::i;:::-;3337:13:::1;3281:1;3337:2;:13;:::i;:::-;3324:26;::::0;:10:::1;:26;:::i;:::-;12687:11;:21:::0;12631:85::o;13086:487::-;1448:6;;-1:-1:-1;;;;;1448:6:0;299:10;1448:22;1440:67;;;;-1:-1:-1;;;1440:67:0;;;;;;;:::i;:::-;13145:11:::1;::::0;-1:-1:-1;;;13145:11:0;::::1;;;13144:12;13136:47;;;::::0;-1:-1:-1;;;13136:47:0;;6557:2:1;13136:47:0::1;::::0;::::1;6539:21:1::0;6596:2;6576:18;;;6569:30;-1:-1:-1;;;6615:18:1;;;6608:53;6678:18;;13136:47:0::1;6355:347:1::0;13136:47:0::1;13194:15;:80:::0;;-1:-1:-1;;;;;;13194:80:0::1;13231:42;13194:80:::0;;::::1;::::0;;;13285:58:::1;::::0;13302:4:::1;::::0;3337:13:::1;3281:1;3337:2;:13;:::i;:::-;3324:26;::::0;:10:::1;:26;:::i;:::-;13285:8;:58::i;:::-;13354:15;::::0;-1:-1:-1;;;;;13354:15:0::1;:31;13393:21;13424:4;13430:24;13424:4:::0;-1:-1:-1;;;;;6536:18:0;6509:7;6536:18;;;:9;:18;;;;;;;6443:119;13430:24:::1;13455:1;13457::::0;13459:7:::1;1359::::0;1386:6;-1:-1:-1;;;;;1386:6:0;;1321:79;13459:7:::1;13354:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13354:129:0;;;-1:-1:-1;;;;;7066:15:1;;;13354:129:0::1;::::0;::::1;7048:34:1::0;7098:18;;;7091:34;;;;7141:18;;;7134:34;;;;7184:18;;;7177:34;7248:15;;;7227:19;;;7220:44;13467:15:0::1;7280:19:1::0;;;7273:35;6982:19;;13354:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13501:13:0::1;::::0;13532:15:::1;::::0;13494:71:::1;::::0;-1:-1:-1;;;13494:71:0;;-1:-1:-1;;;;;13532:15:0;;::::1;13494:71;::::0;::::1;7804:51:1::0;-1:-1:-1;;7871:18:1;;;7864:34;13501:13:0;::::1;::::0;-1:-1:-1;13494:29:0::1;::::0;7777:18:1;;13494:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13086:487::o:0;14273:379::-;14349:21;14389:22;14381:69;;;;-1:-1:-1;;;14381:69:0;;;;;;;:::i;:::-;14491:21;14469:18;:43;;14461:75;;;;-1:-1:-1;;;14461:75:0;;8764:2:1;14461:75:0;;;8746:21:1;8803:2;8783:18;;;8776:30;-1:-1:-1;;;8822:18:1;;;8815:49;8881:18;;14461:75:0;8562:343:1;14461:75:0;14563:15;;14547:62;;-1:-1:-1;;;;;14563:15:0;;;;14547:62;;;;;14590:18;;14563:15;14547:62;14563:15;14547:62;14590:18;14563:15;14547:62;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14623:21:0;;;;;;;14309:343;14273:379::o;6063:83::-;6100:13;6133:5;;;;;;;;;;;;;;;;;6126:12;;6063:83;:::o;6896:161::-;6971:4;6988:39;299:10;7011:7;7020:6;6988:8;:39::i;:::-;-1:-1:-1;7045:4:0;6896:161;;;;;:::o;6340:95::-;6393:7;3337:13;3281:1;3337:2;:13;:::i;:::-;3324:26;;:10;:26;:::i;:::-;6413:14;;6340:95;:::o;7065:410::-;-1:-1:-1;;;;;7207:19:0;;7163:4;7207:19;;;:11;:19;;;;;;;;299:10;7207:33;;;;;;;;7259:26;;;;7251:79;;;;-1:-1:-1;;;7251:79:0;;9112:2:1;7251:79:0;;;9094:21:1;9151:2;9131:18;;;9124:30;9190:34;9170:18;;;9163:62;-1:-1:-1;;;9241:18:1;;;9234:38;9289:19;;7251:79:0;8910:404:1;7251:79:0;7341:36;7351:6;7359:9;7370:6;7341:9;:36::i;:::-;7388:57;7397:6;299:10;7419:25;7438:6;7419:16;:25;:::i;7388:57::-;-1:-1:-1;7463:4:0;;7065:410;-1:-1:-1;;;;7065:410:0:o;12723:208::-;1448:6;;-1:-1:-1;;;;;1448:6:0;299:10;1448:22;1440:67;;;;-1:-1:-1;;;1440:67:0;;;;;;;:::i;:::-;12810:3:::1;12800:6;:13;;12792:84;;;;-1:-1:-1::0;;;12792:84:0::1;;;;;;;:::i;:::-;12910:13;3281:1;12910:2;:13;:::i;:::-;12901:22;::::0;:6;:22:::1;:::i;:::-;12887:11;:36:::0;-1:-1:-1;12723:208:0:o;10939:236::-;1448:6;;-1:-1:-1;;;;;1448:6:0;299:10;1448:22;1440:67;;;;-1:-1:-1;;;1440:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11016:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;::::1;;:35;;:27:::0;:35;11008:74:::1;;;::::0;-1:-1:-1;;;11008:74:0;;10081:2:1;11008:74:0::1;::::0;::::1;10063:21:1::0;10120:2;10100:18;;;10093:30;10159:29;10139:18;;;10132:57;10206:18;;11008:74:0::1;9879:351:1::0;11008:74:0::1;-1:-1:-1::0;;;;;11092:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;:34;;-1:-1:-1;;11092:34:0::1;11122:4;11092:34;::::0;;11138:30;::::1;::::0;11092:27;11138:30:::1;10939:236:::0;:::o;13903:364::-;1448:6;;-1:-1:-1;;;;;1448:6:0;299:10;1448:22;1440:67;;;;-1:-1:-1;;;1440:67:0;;;;;;;:::i;:::-;14014:1:::1;14004:7;:11;13996:58;;;;-1:-1:-1::0;;;13996:58:0::1;;;;;;;:::i;:::-;14084:43;::::0;-1:-1:-1;;;14084:43:0;;14121:4:::1;14084:43;::::0;::::1;1572:51:1::0;-1:-1:-1;;;;;14084:28:0;::::1;::::0;::::1;::::0;1545:18:1;;14084:43:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14073:7;:54;;14065:86;;;::::0;-1:-1:-1;;;14065:86:0;;8764:2:1;14065:86:0::1;::::0;::::1;8746:21:1::0;8803:2;8783:18;;;8776:30;-1:-1:-1;;;8822:18:1;;;8815:49;8881:18;;14065:86:0::1;8562:343:1::0;14065:86:0::1;14190:15;::::0;14162:53:::1;::::0;-1:-1:-1;;;14162:53:0;;-1:-1:-1;;;;;14190:15:0;;::::1;14162:53;::::0;::::1;7804:51:1::0;7871:18;;;7864:34;;;14162:27:0;;::::1;::::0;::::1;::::0;7777:18:1;;14162:53:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;14229:29:0::1;::::0;14250:7;;14229:29:::1;::::0;;;::::1;13903:364:::0;;:::o;11654:373::-;1448:6;;-1:-1:-1;;;;;1448:6:0;299:10;1448:22;1440:67;;;;-1:-1:-1;;;1440:67:0;;;;;;;:::i;:::-;11769:4:::1;-1:-1:-1::0;;;;;11747:27:0;::::1;::::0;11739:71:::1;;;::::0;-1:-1:-1;;;11739:71:0;;10913:2:1;11739:71:0::1;::::0;::::1;10895:21:1::0;10952:2;10932:18;;;10925:30;10991:33;10971:18;;;10964:61;11042:18;;11739:71:0::1;10711:355:1::0;11739:71:0::1;-1:-1:-1::0;;;;;11828:24:0;::::1;11820:72;;;::::0;-1:-1:-1;;;11820:72:0;;11273:2:1;11820:72:0::1;::::0;::::1;11255:21:1::0;11312:2;11292:18;;;11285:30;11351:34;11331:18;;;11324:62;-1:-1:-1;;;11402:18:1;;;11395:33;11445:19;;11820:72:0::1;11071:399:1::0;11820:72:0::1;11902:15;:28:::0;;-1:-1:-1;;;;;;11902:28:0::1;-1:-1:-1::0;;;;;11902:28:0;::::1;::::0;;::::1;::::0;;;-1:-1:-1;11939:30:0;;;:18:::1;:30;::::0;;;;;:37;;-1:-1:-1;;11939:37:0::1;-1:-1:-1::0;11939:37:0::1;::::0;;11988:31;::::1;::::0;-1:-1:-1;11988:31:0::1;11654:373:::0;:::o;1961:148::-;1448:6;;-1:-1:-1;;;;;1448:6:0;299:10;1448:22;1440:67;;;;-1:-1:-1;;;1440:67:0;;;;;;;:::i;:::-;2068:1:::1;2052:6:::0;;2031:40:::1;::::0;-1:-1:-1;;;;;2052:6:0;;::::1;::::0;2031:40:::1;::::0;2068:1;;2031:40:::1;2099:1;2082:19:::0;;-1:-1:-1;;;;;;2082:19:0::1;::::0;;1961:148::o;13582:269::-;1448:6;;-1:-1:-1;;;;;1448:6:0;299:10;1448:22;1440:67;;;;-1:-1:-1;;;1440:67:0;;;;;;;:::i;:::-;13648:11:::1;::::0;-1:-1:-1;;;13648:11:0;::::1;;;13647:12;13639:47;;;::::0;-1:-1:-1;;;13639:47:0;;6557:2:1;13639:47:0::1;::::0;::::1;6539:21:1::0;6596:2;6576:18;;;6569:30;-1:-1:-1;;;6615:18:1;;;6608:53;6678:18;;13639:47:0::1;6355:347:1::0;13639:47:0::1;13697:11;:18:::0;;-1:-1:-1;;;;13726:18:0;-1:-1:-1;;;13726:18:0;;;13770:12:::1;13754:13;:28:::0;13808:1:::1;13797:8;:12:::0;13823:20:::1;::::0;::::1;::::0;-1:-1:-1;;13823:20:0::1;13582:269::o:0;12411:99::-;1448:6;;-1:-1:-1;;;;;1448:6:0;299:10;1448:22;1440:67;;;;-1:-1:-1;;;1440:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12480:15:0::1;;::::0;;;:6:::1;:15;::::0;;;;:22;;-1:-1:-1;;12480:22:0::1;12498:4;12480:22;::::0;;12411:99::o;6570:167::-;6648:4;6665:42;299:10;6689:9;6700:6;6665:9;:42::i;12517:103::-;1448:6;;-1:-1:-1;;;;;1448:6:0;299:10;1448:22;1440:67;;;;-1:-1:-1;;;1440:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12589:15:0::1;12607:5;12589:15:::0;;;:6:::1;:15;::::0;;;;:23;;-1:-1:-1;;12589:23:0::1;::::0;;12517:103::o;12039:365::-;1448:6;;-1:-1:-1;;;;;1448:6:0;299:10;1448:22;1440:67;;;;-1:-1:-1;;;1440:67:0;;;;;;;:::i;:::-;12140:3:::1;12125:11;:18;;12117:84;;;::::0;-1:-1:-1;;;12117:84:0;;11677:2:1;12117:84:0::1;::::0;::::1;11659:21:1::0;11716:2;11696:18;;;11689:30;11755:34;11735:18;;;11728:62;-1:-1:-1;;;11806:18:1;;;11799:51;11867:19;;12117:84:0::1;11475:417:1::0;12117:84:0::1;12235:3;12220:11;:18;;12212:89;;;;-1:-1:-1::0;;;12212:89:0::1;;;;;;;:::i;:::-;12337:13;3281:1;12337:2;:13;:::i;:::-;12323:27;::::0;:11;:27:::1;:::i;:::-;12312:8;:38:::0;12362:34:::1;::::0;12384:11;;12362:34:::1;::::0;;;::::1;12039:365:::0;:::o;12941:139::-;1448:6;;-1:-1:-1;;;;;1448:6:0;299:10;1448:22;1440:67;;;;-1:-1:-1;;;1440:67:0;;;;;;;:::i;:::-;13011:11:::1;:19:::0;;-1:-1:-1;;;;13011:19:0::1;-1:-1:-1::0;;;13011:19:0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;13043:29:::1;::::0;::::1;::::0;-1:-1:-1;;13043:29:0::1;12941:139:::0;:::o;1538:203::-;1448:6;;-1:-1:-1;;;;;1448:6:0;299:10;1448:22;1440:67;;;;-1:-1:-1;;;1440:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1629:22:0;::::1;1621:73;;;::::0;-1:-1:-1;;;1621:73:0;;12099:2:1;1621:73:0::1;::::0;::::1;12081:21:1::0;12138:2;12118:18;;;12111:30;12177:34;12157:18;;;12150:62;-1:-1:-1;;;12228:18:1;;;12221:36;12274:19;;1621:73:0::1;11897:402:1::0;1621:73:0::1;1705:28;1724:8;1705:18;:28::i;11186:245::-:0;1448:6;;-1:-1:-1;;;;;1448:6:0;299:10;1448:22;1440:67;;;;-1:-1:-1;;;1440:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11266:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;::::1;;:36;;::::0;;11258:76:::1;;;::::0;-1:-1:-1;;;11258:76:0;;12506:2:1;11258:76:0::1;::::0;::::1;12488:21:1::0;12545:2;12525:18;;;12518:30;12584:29;12564:18;;;12557:57;12631:18;;11258:76:0::1;12304:351:1::0;11258:76:0::1;-1:-1:-1::0;;;;;11345:27:0;::::1;11375:5;11345:27:::0;;;:18:::1;:27;::::0;;;;;:35;;-1:-1:-1;;11345:35:0::1;::::0;;11393:30;::::1;::::0;11375:5;11393:30:::1;11186:245:::0;:::o;7483:335::-;-1:-1:-1;;;;;7576:19:0;;7568:68;;;;-1:-1:-1;;;7568:68:0;;12862:2:1;7568:68:0;;;12844:21:1;12901:2;12881:18;;;12874:30;12940:34;12920:18;;;12913:62;-1:-1:-1;;;12991:18:1;;;12984:34;13035:19;;7568:68:0;12660:400:1;7568:68:0;-1:-1:-1;;;;;7655:21:0;;7647:68;;;;-1:-1:-1;;;7647:68:0;;13267:2:1;7647:68:0;;;13249:21:1;13306:2;13286:18;;;13279:30;13345:34;13325:18;;;13318:62;-1:-1:-1;;;13396:18:1;;;13389:32;13438:19;;7647:68:0;13065:398:1;7647:68:0;-1:-1:-1;;;;;7726:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7778:32;;1780:25:1;;;7778:32:0;;1753:18:1;7778:32:0;;;;;;;7483:335;;;:::o;7826:2381::-;-1:-1:-1;;;;;7914:18:0;;7906:68;;;;-1:-1:-1;;;7906:68:0;;13670:2:1;7906:68:0;;;13652:21:1;13709:2;13689:18;;;13682:30;13748:34;13728:18;;;13721:62;-1:-1:-1;;;13799:18:1;;;13792:35;13844:19;;7906:68:0;13468:401:1;7906:68:0;-1:-1:-1;;;;;7993:16:0;;7985:64;;;;-1:-1:-1;;;7985:64:0;;14076:2:1;7985:64:0;;;14058:21:1;14115:2;14095:18;;;14088:30;14154:34;14134:18;;;14127:62;-1:-1:-1;;;14205:18:1;;;14198:33;14248:19;;7985:64:0;13874:399:1;7985:64:0;8077:1;8068:6;:10;8060:64;;;;-1:-1:-1;;;8060:64:0;;14480:2:1;8060:64:0;;;14462:21:1;14519:2;14499:18;;;14492:30;14558:34;14538:18;;;14531:62;-1:-1:-1;;;14609:18:1;;;14602:39;14658:19;;8060:64:0;14278:405:1;8060:64:0;-1:-1:-1;;;;;8144:12:0;;;;;;:6;:12;;;;;;;;8143:13;:28;;;;-1:-1:-1;;;;;;8161:10:0;;;;;;:6;:10;;;;;;;;8160:11;8143:28;8135:66;;;;-1:-1:-1;;;8135:66:0;;14890:2:1;8135:66:0;;;14872:21:1;14929:2;14909:18;;;14902:30;14968:27;14948:18;;;14941:55;15013:18;;8135:66:0;14688:349:1;8135:66:0;-1:-1:-1;;;;;8287:24:0;;8224:17;8287:24;;;:18;:24;;;;;;8224:17;;8287:24;;8286:25;:52;;;;-1:-1:-1;;;;;;8316:22:0;;;;;;:18;:22;;;;;;;;8315:23;8286:52;8282:138;;;8365:11;;-1:-1:-1;;;8365:11:0;;;;8357:47;;;;-1:-1:-1;;;8357:47:0;;15244:2:1;8357:47:0;;;15226:21:1;15283:2;15263:18;;;15256:30;15322:26;15302:18;;;15295:54;15366:18;;8357:47:0;15042:348:1;8357:47:0;-1:-1:-1;;;;;8447:24:0;;;;;;:18;:24;;;;;;;;8446:25;:52;;;;-1:-1:-1;;;;;;8476:22:0;;;;;;:18;:22;;;;;;;;8475:23;8446:52;:95;;;;;8533:8;;8517:13;;:24;;;;:::i;:::-;8502:12;:39;8446:95;8442:150;;;-1:-1:-1;8569:9:0;;8442:150;8628:13;;-1:-1:-1;;;;;8620:21:0;;;8628:13;;8620:21;:50;;;;-1:-1:-1;;;;;;8646:24:0;;;;;;:18;:24;;;;;;;;8645:25;8620:50;:77;;;;-1:-1:-1;;;;;;8675:22:0;;;;;;:18;:22;;;;;;;;8674:23;8620:77;8616:165;;;8733:11;;8723:6;:21;;8715:52;;;;-1:-1:-1;;;8715:52:0;;;;;;;:::i;:::-;8816:13;;-1:-1:-1;;;;;8808:21:0;;;8816:13;;8808:21;;;;:50;;-1:-1:-1;;;;;;8834:24:0;;;;;;:18;:24;;;;;;;;8833:25;8808:50;:77;;;;-1:-1:-1;;;;;;8863:22:0;;;;;;:18;:22;;;;;;;;8862:23;8808:77;8804:165;;;8921:11;;8911:6;:21;;8903:52;;;;-1:-1:-1;;;8903:52:0;;;;;;;:::i;:::-;9002:13;;-1:-1:-1;;;;;8996:19:0;;;9002:13;;8996:19;;;;:48;;-1:-1:-1;;;;;;9020:24:0;;;;;;:18;:24;;;;;;;;9019:25;8996:48;:75;;;;-1:-1:-1;;;;;;9049:22:0;;;;;;:18;:22;;;;;;;;9048:23;8996:75;8993:178;;;9123:11;;9113:6;9097:13;9107:2;-1:-1:-1;;;;;6536:18:0;6509:7;6536:18;;;:9;:18;;;;;;;6443:119;9097:13;:22;;;;:::i;:::-;:37;;9089:68;;;;-1:-1:-1;;;9089:68:0;;;;;;;:::i;:::-;9225:3;9211:9;;9201:6;:20;;;;:::i;:::-;:28;;;;:::i;:::-;-1:-1:-1;;;;;9295:24:0;;;;;;:18;:24;;;;;;9189:40;;-1:-1:-1;9189:40:0;;-1:-1:-1;9295:24:0;;;:50;;-1:-1:-1;;;;;;9323:22:0;;;;;;:18;:22;;;;;;;;9295:50;9291:101;;;-1:-1:-1;9378:1:0;9291:101;9469:4;9420:28;6536:18;;;:9;:18;;;;;;9495:6;;-1:-1:-1;;;9495:6:0;;;;9494:7;:32;;;;-1:-1:-1;9513:13:0;;-1:-1:-1;;;;;9505:21:0;;;9513:13;;9505:21;;9494:32;:47;;;;-1:-1:-1;9530:11:0;;-1:-1:-1;;;9530:11:0;;;;9494:47;:83;;;;;9569:8;;9545:20;:32;;9494:83;9490:360;;;9598:26;9615:8;;9598:16;:26::i;:::-;9690:21;9733:22;;9730:105;;9780:35;9793:21;9780:12;:35::i;:::-;9579:271;9490:360;-1:-1:-1;;;;;9878:15:0;;;;;;:9;:15;;;;;;:26;;9897:6;;9878:26;:::i;:::-;-1:-1:-1;;;;;9860:15:0;;;;;;:9;:15;;;;;:44;9948:18;9958:7;9948:6;:18;:::i;:::-;-1:-1:-1;;;;;9931:13:0;;;;;;:9;:13;;;;;;:36;;;;:::i;:::-;-1:-1:-1;;;;;9915:13:0;;;;;;;:9;:13;;;;;:52;;;;9983:38;;;10002:18;10012:7;10002:6;:18;:::i;:::-;9983:38;;1780:25:1;;;1768:2;1753:18;9983:38:0;;;;;;;10045:11;;10042:158;;10115:4;10097:24;;;;:9;:24;;;;;;:36;;10125:7;;10097:36;:::i;:::-;10088:4;10070:24;;;;:9;:24;;;;;;;:63;;;;10151:37;;-1:-1:-1;;;;;10151:37:0;;;;;;;10180:7;1780:25:1;;1768:2;1753:18;;1634:177;10151:37:0;;;;;;;;10042:158;7895:2312;;;7826:2381;;;:::o;1758:191::-;1832:16;1851:6;;-1:-1:-1;;;;;1868:17:0;;;-1:-1:-1;;;;;;1868:17:0;;;;;;1901:40;;1851:6;;;;;;;1901:40;;1832:16;1901:40;1821:128;1758:191;:::o;10214:551::-;4539:6;:13;;-1:-1:-1;;;;4539:13:0;-1:-1:-1;;;4539:13:0;;;10300:15;10292:57:::1;;;::::0;-1:-1:-1;;;10292:57:0;;16296:2:1;10292:57:0::1;::::0;::::1;16278:21:1::0;16335:2;16315:18;;;16308:30;16374:31;16354:18;;;16347:59;16423:18;;10292:57:0::1;16094:353:1::0;10292:57:0::1;10384:16;::::0;;10398:1:::1;10384:16:::0;;;;;::::1;::::0;;10360:21:::1;::::0;10384:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10384:16:0::1;10360:40;;10429:4;10411;10416:1;10411:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10411:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10455:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10455:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10411:7;;10455:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10445:4;10450:1;10445:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10445:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10520:15:::1;::::0;10488:62:::1;::::0;10505:4:::1;::::0;10520:15:::1;10538:11:::0;10488:8:::1;:62::i;:::-;10561:15;::::0;:196:::1;::::0;-1:-1:-1;;;10561:196:0;;-1:-1:-1;;;;;10561:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10642:11;;10561:15:::1;::::0;10684:4;;10711::::1;::::0;10731:15:::1;::::0;10561:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4575:6:0;:14;;-1:-1:-1;;;;4575:14:0;;;-1:-1:-1;;;;10214:551:0:o;10773:159::-;10846:1;10837:6;:10;10829:52;;;;-1:-1:-1;;;10829:52:0;;16296:2:1;10829:52:0;;;16278:21:1;16335:2;16315:18;;;16308:30;16374:31;16354:18;;;16347:59;16423:18;;10829:52:0;16094:353:1;10829:52:0;10892:15;;:32;;-1:-1:-1;;;;;10892:15:0;;;;:32;;;;;10917:6;;10892:15;:32;:15;:32;10917:6;10892:15;:32;;;;;;;;;;;;;;;;;;;;;10773:159;:::o;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;199:548::-;311:4;340:2;369;358:9;351:21;401:6;395:13;444:6;439:2;428:9;424:18;417:34;469:1;479:140;493:6;490:1;487:13;479:140;;;588:14;;;584:23;;578:30;554:17;;;573:2;550:26;543:66;508:10;;479:140;;;483:3;668:1;663:2;654:6;643:9;639:22;635:31;628:42;738:2;731;727:7;722:2;714:6;710:15;706:29;695:9;691:45;687:54;679:62;;;;199:548;;;;:::o;752:131::-;-1:-1:-1;;;;;827:31:1;;817:42;;807:70;;873:1;870;863:12;888:315;956:6;964;1017:2;1005:9;996:7;992:23;988:32;985:52;;;1033:1;1030;1023:12;985:52;1072:9;1059:23;1091:31;1116:5;1091:31;:::i;:::-;1141:5;1193:2;1178:18;;;;1165:32;;-1:-1:-1;;;888:315:1:o;1816:456::-;1893:6;1901;1909;1962:2;1950:9;1941:7;1937:23;1933:32;1930:52;;;1978:1;1975;1968:12;1930:52;2017:9;2004:23;2036:31;2061:5;2036:31;:::i;:::-;2086:5;-1:-1:-1;2143:2:1;2128:18;;2115:32;2156:33;2115:32;2156:33;:::i;:::-;1816:456;;2208:7;;-1:-1:-1;;;2262:2:1;2247:18;;;;2234:32;;1816:456::o;2466:247::-;2525:6;2578:2;2566:9;2557:7;2553:23;2549:32;2546:52;;;2594:1;2591;2584:12;2546:52;2633:9;2620:23;2652:31;2677:5;2652:31;:::i;:::-;2702:5;2466:247;-1:-1:-1;;;2466:247:1:o;3186:388::-;3254:6;3262;3315:2;3303:9;3294:7;3290:23;3286:32;3283:52;;;3331:1;3328;3321:12;3283:52;3370:9;3357:23;3389:31;3414:5;3389:31;:::i;:::-;3439:5;-1:-1:-1;3496:2:1;3481:18;;3468:32;3509:33;3468:32;3509:33;:::i;:::-;3561:7;3551:17;;;3186:388;;;;;:::o;3579:118::-;3665:5;3658:13;3651:21;3644:5;3641:32;3631:60;;3687:1;3684;3677:12;3702:241;3758:6;3811:2;3799:9;3790:7;3786:23;3782:32;3779:52;;;3827:1;3824;3817:12;3779:52;3866:9;3853:23;3885:28;3907:5;3885:28;:::i;3948:356::-;4150:2;4132:21;;;4169:18;;;4162:30;4228:34;4223:2;4208:18;;4201:62;4295:2;4280:18;;3948:356::o;4667:127::-;4728:10;4723:3;4719:20;4716:1;4709:31;4759:4;4756:1;4749:15;4783:4;4780:1;4773:15;4799:422;4888:1;4931:5;4888:1;4945:270;4966:7;4956:8;4953:21;4945:270;;;5025:4;5021:1;5017:6;5013:17;5007:4;5004:27;5001:53;;;5034:18;;:::i;:::-;5084:7;5074:8;5070:22;5067:55;;;5104:16;;;;5067:55;5183:22;;;;5143:15;;;;4945:270;;;4949:3;4799:422;;;;;:::o;5226:806::-;5275:5;5305:8;5295:80;;-1:-1:-1;5346:1:1;5360:5;;5295:80;5394:4;5384:76;;-1:-1:-1;5431:1:1;5445:5;;5384:76;5476:4;5494:1;5489:59;;;;5562:1;5557:130;;;;5469:218;;5489:59;5519:1;5510:10;;5533:5;;;5557:130;5594:3;5584:8;5581:17;5578:43;;;5601:18;;:::i;:::-;-1:-1:-1;;5657:1:1;5643:16;;5672:5;;5469:218;;5771:2;5761:8;5758:16;5752:3;5746:4;5743:13;5739:36;5733:2;5723:8;5720:16;5715:2;5709:4;5706:12;5702:35;5699:77;5696:159;;;-1:-1:-1;5808:19:1;;;5840:5;;5696:159;5887:34;5912:8;5906:4;5887:34;:::i;:::-;5957:6;5953:1;5949:6;5945:19;5936:7;5933:32;5930:58;;;5968:18;;:::i;:::-;6006:20;;5226:806;-1:-1:-1;;;5226:806:1:o;6037:140::-;6095:5;6124:47;6165:4;6155:8;6151:19;6145:4;6124:47;:::i;6182:168::-;6255:9;;;6286;;6303:15;;;6297:22;;6283:37;6273:71;;6324:18;;:::i;7319:306::-;7407:6;7415;7423;7476:2;7464:9;7455:7;7451:23;7447:32;7444:52;;;7492:1;7489;7482:12;7444:52;7521:9;7515:16;7505:26;;7571:2;7560:9;7556:18;7550:25;7540:35;;7615:2;7604:9;7600:18;7594:25;7584:35;;7319:306;;;;;:::o;7909:245::-;7976:6;8029:2;8017:9;8008:7;8004:23;8000:32;7997:52;;;8045:1;8042;8035:12;7997:52;8077:9;8071:16;8096:28;8118:5;8096:28;:::i;8159:398::-;8361:2;8343:21;;;8400:2;8380:18;;;8373:30;8439:34;8434:2;8419:18;;8412:62;-1:-1:-1;;;8505:2:1;8490:18;;8483:32;8547:3;8532:19;;8159:398::o;9319:128::-;9386:9;;;9407:11;;;9404:37;;;9421:18;;:::i;9452:422::-;9654:2;9636:21;;;9693:2;9673:18;;;9666:30;9732:34;9727:2;9712:18;;9705:62;9803:28;9798:2;9783:18;;9776:56;9864:3;9849:19;;9452:422::o;10235:184::-;10305:6;10358:2;10346:9;10337:7;10333:23;10329:32;10326:52;;;10374:1;10371;10364:12;10326:52;-1:-1:-1;10397:16:1;;10235:184;-1:-1:-1;10235:184:1:o;15395:125::-;15460:9;;;15481:10;;;15478:36;;;15494:18;;:::i;15525:342::-;15727:2;15709:21;;;15766:2;15746:18;;;15739:30;-1:-1:-1;;;15800:2:1;15785:18;;15778:48;15858:2;15843:18;;15525:342::o;15872:217::-;15912:1;15938;15928:132;;15982:10;15977:3;15973:20;15970:1;15963:31;16017:4;16014:1;16007:15;16045:4;16042:1;16035:15;15928:132;-1:-1:-1;16074:9:1;;15872:217::o;16584:127::-;16645:10;16640:3;16636:20;16633:1;16626:31;16676:4;16673:1;16666:15;16700:4;16697:1;16690:15;16716:251;16786:6;16839:2;16827:9;16818:7;16814:23;16810:32;16807:52;;;16855:1;16852;16845:12;16807:52;16887:9;16881:16;16906:31;16931:5;16906:31;:::i;16972:980::-;17234:4;17282:3;17271:9;17267:19;17313:6;17302:9;17295:25;17339:2;17377:6;17372:2;17361:9;17357:18;17350:34;17420:3;17415:2;17404:9;17400:18;17393:31;17444:6;17479;17473:13;17510:6;17502;17495:22;17548:3;17537:9;17533:19;17526:26;;17587:2;17579:6;17575:15;17561:29;;17608:1;17618:195;17632:6;17629:1;17626:13;17618:195;;;17697:13;;-1:-1:-1;;;;;17693:39:1;17681:52;;17788:15;;;;17753:12;;;;17729:1;17647:9;17618:195;;;-1:-1:-1;;;;;;;17869:32:1;;;;17864:2;17849:18;;17842:60;-1:-1:-1;;;17933:3:1;17918:19;17911:35;17830:3;16972:980;-1:-1:-1;;;16972:980:1:o
Swarm Source
ipfs://b2a369644c2fa0700f95ad0cf6af291822b15d424d2c6aa6aa3f9a075a03afed
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.