Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 BUY
Holders
12
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
BUY
Compiler Version
v0.8.21+commit.d9974bed
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-12-17 */ // SPDX-License-Identifier: Unlicensed pragma solidity = 0.8.21; interface IUniswapRouterV1 { 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 IUniswapRouterV2 is IUniswapRouterV1 { 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); } interface IUniswapFactoryV2 { event PairCreated(address indexed token0, address indexed token1, address lpPairAddress, uint); function getPair(address tokenA, address tokenB) external view returns (address lpPairAddress); function createPair(address tokenA, address tokenB) external returns (address lpPairAddress); } abstract contract Context { constructor() { } function _msgSender() internal view returns (address payable) { return payable(msg.sender); } function _msgData() internal view returns (bytes memory) { this; return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface 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); } contract BUY is Context, Ownable, IERC20 { string constant private _name = "BUY"; string constant private _symbol = "BUY"; uint8 constant private _decimals = 9; uint256 constant public _totalSupply = 10 ** 9 * 10**9; uint256 constant public swapFeeMinTokens = _totalSupply / 100_000; uint256 constant public transferTxFee = 0; uint256 constant public feeDenominator = 1_000; uint256 public buyTxFee = 200; uint256 public sellTxFee = 200; uint256 private _maxTxSize = 25 * _totalSupply / 1000; bool private _swapTaxActivated = true; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _notIncludedInFee; mapping (address => bool) private _hasPutLp; mapping (address => bool) private _checkLpAddress; mapping (address => uint256) private balance; address public lpPairAddress; IUniswapRouterV2 public uniswapRouter; address payable private _devFeeAddress; address constant public DEAD = 0x000000000000000000000000000000000000dEaD; bool public tradeActive = false; bool private swapping; bool private hasNoTxLimit = false; modifier inSwapFlag { swapping = true; _; swapping = false; } event SwapAndLiquify(); constructor () { uniswapRouter = IUniswapRouterV2(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _notIncludedInFee[msg.sender] = true; _devFeeAddress = payable(address(0x052a9091856e5621D645C5D03833A6Fc77272d41)); _notIncludedInFee[_devFeeAddress] = true; _hasPutLp[msg.sender] = true; balance[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); lpPairAddress = IUniswapFactoryV2(uniswapRouter.factory()).createPair(uniswapRouter.WETH(), address(this)); _checkLpAddress[lpPairAddress] = true; _approve(msg.sender, address(uniswapRouter), type(uint256).max); _approve(address(this), address(uniswapRouter), type(uint256).max); } function swapBack(uint256 tokenAmount) internal inSwapFlag { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapRouter.WETH(); if (_allowances[address(this)][address(uniswapRouter)] != type(uint256).max) { _allowances[address(this)][address(uniswapRouter)] = type(uint256).max; } try uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ) {} catch { return; } if(address(this).balance > 0) _devFeeAddress.transfer(address(this).balance); } 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 isSwapBack(address ins) internal view returns (bool) { bool canswap = _swapTaxActivated && !_notIncludedInFee[ins]; return canswap; } function _transfer(address from, address to, uint256 amount) internal returns (bool) { bool takeFee = true; require(to != address(0), "Cannot transfer to DEAD address"); require(from != address(0), "Cannot transfer from DEAD address"); require(amount > 0, "Transfer token amount must be greater than zero"); if (checkIfExcluded(from,to)) { require(tradeActive,"Trade is not started"); if(!_checkLpAddress[to] && from != address(this) && to != address(this) || checkTxTransfer(from,to) && !hasNoTxLimit) { require(balanceOf(to) + amount <= _maxTxSize,"_maxTxSize exceed"); }} if(checkTxSell(from, to) && !swapping && isSwapBack(from)) { uint256 tokenAmount = balanceOf(address(this)); if(tokenAmount >= swapFeeMinTokens) { if(amount > swapFeeMinTokens) swapBack(tokenAmount); } } if (_notIncludedInFee[from] || _notIncludedInFee[to]){ takeFee = false; } uint256 amountAfterFee = (takeFee) ? getTransferValues(from, checkTxBuy(from, to), checkTxSell(from, to), amount) : amount; uint256 amountBeforeFee = (takeFee) ? amount : (!tradeActive ? amount : 0); balance[from] -= amountBeforeFee; balance[to] += amountAfterFee; emit Transfer(from, to, amountAfterFee); return true; } function checkIfExcluded(address ins, address out) internal view returns (bool) { bool isLimited = ins != owner() && out != owner() && msg.sender != owner() && !_hasPutLp[ins] && !_hasPutLp[out] && out != address(0) && out != address(this); return isLimited; } function checkTxBuy(address ins, address out) internal view returns (bool) { bool _is_buy = !_checkLpAddress[out] && _checkLpAddress[ins]; return _is_buy; } function checkTxSell(address ins, address out) internal view returns (bool) { bool _is_sell = _checkLpAddress[out] && !_checkLpAddress[ins]; return _is_sell; } receive() external payable {} function _approve(address sender, address spender, uint256 amount) internal { require(sender != address(0), "Couldnt approve on Zero Address"); require(spender != address(0), "Couldnt approve on Zero Address"); _allowances[sender][spender] = amount; } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if (_allowances[sender][msg.sender] != type(uint256).max) { _allowances[sender][msg.sender] -= amount; } return _transfer(sender, recipient, amount); } function dexStart() external onlyOwner { require(!tradeActive, "Already done start trading"); tradeActive = true; } function cancelLimits() external onlyOwner { require(!hasNoTxLimit,"Already done remove limits"); _maxTxSize = _totalSupply; hasNoTxLimit = true; buyTxFee = 10; sellTxFee = 10; } function totalSupply() external pure override returns (uint256) { if (_totalSupply == 0) { revert(); } return _totalSupply; } function decimals() external pure override returns (uint8) { if (_totalSupply == 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 balance[account]; } function checkTxTransfer(address ins, address out) internal view returns (bool) { bool _is_transfer = !_checkLpAddress[out] && !_checkLpAddress[ins]; return _is_transfer; } function getTransferValues(address from, bool isbuy, bool issell, uint256 amount) internal returns (uint256) { uint256 fee; if (isbuy) fee = buyTxFee; else if (issell) fee = sellTxFee; else fee = transferTxFee; if (fee == 0) return amount; uint256 feeAmount = amount * fee / feeDenominator; if (feeAmount > 0) { balance[address(this)] += feeAmount; emit Transfer(from, address(this), feeAmount); } return amount - feeAmount; } }
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":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"SwapAndLiquify","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":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dexStart","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapFeeMinTokens","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":"tradeActive","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":"transferTxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapRouter","outputs":[{"internalType":"contract IUniswapRouterV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405260c860015560c86002556103e8670de0b6b3a7640000601962000028919062000898565b6200003491906200090f565b600355600160045f6101000a81548160ff0219169083151502179055505f600c60146101000a81548160ff0219169083151502179055505f600c60166101000a81548160ff02191690831515021790555034801562000091575f80fd5b50620000b2620000a66200063660201b60201c565b6200063d60201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555073052a9091856e5621d645c5d03833a6fc77272d41600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160065f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550670de0b6b3a764000060095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516200032b919062000957565b60405180910390a3600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200039e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003c49190620009d7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200044a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004709190620009d7565b306040518363ffffffff1660e01b81526004016200049092919062000a18565b6020604051808303815f875af1158015620004ad573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004d39190620009d7565b600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160085f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620005dc33600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620006fe60201b60201c565b6200063030600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620006fe60201b60201c565b62000ac1565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200076f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007669062000aa1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620007e0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007d79062000aa1565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620008a48262000862565b9150620008b18362000862565b9250828202620008c18162000862565b91508282048414831517620008db57620008da6200086b565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200091b8262000862565b9150620009288362000862565b9250826200093b576200093a620008e2565b5b828204905092915050565b620009518162000862565b82525050565b5f6020820190506200096c5f83018462000946565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620009a18262000976565b9050919050565b620009b38162000995565b8114620009be575f80fd5b50565b5f81519050620009d181620009a8565b92915050565b5f60208284031215620009ef57620009ee62000972565b5b5f620009fe84828501620009c1565b91505092915050565b62000a128162000995565b82525050565b5f60408201905062000a2d5f83018562000a07565b62000a3c602083018462000a07565b9392505050565b5f82825260208201905092915050565b7f436f756c646e7420617070726f7665206f6e205a65726f2041646472657373005f82015250565b5f62000a89601f8362000a43565b915062000a968262000a53565b602082019050919050565b5f6020820190508181035f83015262000aba8162000a7b565b9050919050565b61293a8062000acf5f395ff3fe608060405260043610610169575f3560e01c806370a08231116100d057806395d89b4111610089578063dd62ed3e11610063578063dd62ed3e146104f2578063e9b786cb1461052e578063eb069da414610558578063f2fde38b1461058257610170565b806395d89b4114610476578063a9059cbb146104a0578063d454cceb146104dc57610170565b806370a082311461037c578063715018a6146103b8578063735de9f7146103ce578063893d20e8146103f85780638da5cb5b14610422578063904236d11461044c57610170565b806318160ddd1161012257806318160ddd1461028257806323b872dd146102ac578063313ce567146102e85780633eaaf86b146103125780634f8944c51461033c5780635882128d1461035257610170565b806303fd2a451461017457806304d2be771461019e57806306fdde03146101c8578063095ea7b3146101f2578063174ea0ae1461022e578063180b0d7e1461025857610170565b3661017057005b5f80fd5b34801561017f575f80fd5b506101886105aa565b6040516101959190611e52565b60405180910390f35b3480156101a9575f80fd5b506101b26105b0565b6040516101bf9190611e52565b60405180910390f35b3480156101d3575f80fd5b506101dc6105d5565b6040516101e99190611ef5565b60405180910390f35b3480156101fd575f80fd5b5061021860048036038101906102139190611f76565b610612565b6040516102259190611fce565b60405180910390f35b348015610239575f80fd5b50610242610628565b60405161024f9190611ff6565b60405180910390f35b348015610263575f80fd5b5061026c61062c565b6040516102799190611ff6565b60405180910390f35b34801561028d575f80fd5b50610296610632565b6040516102a39190611ff6565b60405180910390f35b3480156102b7575f80fd5b506102d260048036038101906102cd919061200f565b610654565b6040516102df9190611fce565b60405180910390f35b3480156102f3575f80fd5b506102fc610797565b604051610309919061207a565b60405180910390f35b34801561031d575f80fd5b506103266107b2565b6040516103339190611ff6565b60405180910390f35b348015610347575f80fd5b506103506107be565b005b34801561035d575f80fd5b506103666108a7565b6040516103739190611fce565b60405180910390f35b348015610387575f80fd5b506103a2600480360381019061039d9190612093565b6108ba565b6040516103af9190611ff6565b60405180910390f35b3480156103c3575f80fd5b506103cc610900565b005b3480156103d9575f80fd5b506103e2610987565b6040516103ef9190612119565b60405180910390f35b348015610403575f80fd5b5061040c6109ac565b6040516104199190611e52565b60405180910390f35b34801561042d575f80fd5b506104366109ba565b6040516104439190611e52565b60405180910390f35b348015610457575f80fd5b506104606109e1565b60405161046d9190611ff6565b60405180910390f35b348015610481575f80fd5b5061048a6109e7565b6040516104979190611ef5565b60405180910390f35b3480156104ab575f80fd5b506104c660048036038101906104c19190611f76565b610a24565b6040516104d39190611fce565b60405180910390f35b3480156104e7575f80fd5b506104f0610a3b565b005b3480156104fd575f80fd5b5061051860048036038101906105139190612132565b610b43565b6040516105259190611ff6565b60405180910390f35b348015610539575f80fd5b50610542610bc5565b60405161054f9190611ff6565b60405180910390f35b348015610563575f80fd5b5061056c610bcb565b6040516105799190611ff6565b60405180910390f35b34801561058d575f80fd5b506105a860048036038101906105a39190612093565b610be5565b005b61dead81565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600381526020017f4255590000000000000000000000000000000000000000000000000000000000815250905090565b5f61061e338484610cdb565b6001905092915050565b5f81565b6103e881565b5f80670de0b6b3a764000003610646575f80fd5b670de0b6b3a7640000905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610783578160055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461077b919061219d565b925050819055505b61078e848484610e39565b90509392505050565b5f80670de0b6b3a7640000036107ab575f80fd5b6009905090565b670de0b6b3a764000081565b6107c66113a2565b73ffffffffffffffffffffffffffffffffffffffff166107e46109ba565b73ffffffffffffffffffffffffffffffffffffffff161461083a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108319061221a565b60405180910390fd5b600c60149054906101000a900460ff161561088a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088190612282565b60405180910390fd5b6001600c60146101000a81548160ff021916908315150217905550565b600c60149054906101000a900460ff1681565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6109086113a2565b73ffffffffffffffffffffffffffffffffffffffff166109266109ba565b73ffffffffffffffffffffffffffffffffffffffff161461097c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109739061221a565b60405180910390fd5b6109855f6113a9565b565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6109b56109ba565b905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60025481565b60606040518060400160405280600381526020017f4255590000000000000000000000000000000000000000000000000000000000815250905090565b5f610a30338484610e39565b506001905092915050565b610a436113a2565b73ffffffffffffffffffffffffffffffffffffffff16610a616109ba565b73ffffffffffffffffffffffffffffffffffffffff1614610ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aae9061221a565b60405180910390fd5b600c60169054906101000a900460ff1615610b07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afe906122ea565b60405180910390fd5b670de0b6b3a76400006003819055506001600c60166101000a81548160ff021916908315150217905550600a600181905550600a600281905550565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60015481565b620186a0670de0b6b3a7640000610be29190612335565b81565b610bed6113a2565b73ffffffffffffffffffffffffffffffffffffffff16610c0b6109ba565b73ffffffffffffffffffffffffffffffffffffffff1614610c61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c589061221a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ccf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc6906123d5565b60405180910390fd5b610cd8816113a9565b50565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d409061243d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610db7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dae9061243d565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b5f80600190505f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610ead576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea4906124a5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1290612533565b60405180910390fd5b5f8311610f5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f54906125c1565b60405180910390fd5b610f67858561146a565b156110ff57600c60149054906101000a900460ff16610fbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb290612629565b60405180910390fd5b60085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561103e57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561107657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b806110a057506110868585611643565b801561109f5750600c60169054906101000a900460ff16155b5b156110fe57600354836110b2866108ba565b6110bc9190612647565b11156110fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f4906126c4565b60405180910390fd5b5b5b61110985856116ef565b80156111225750600c60159054906101000a900460ff16155b801561113357506111328561179a565b5b1561118c575f611142306108ba565b9050620186a0670de0b6b3a764000061115b9190612335565b811061118a57620186a0670de0b6b3a76400006111789190612335565b8411156111895761118881611809565b5b5b505b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611227575060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611230575f90505b5f8161123c578361125b565b61125a8661124a8888611c3b565b61125489896116ef565b87611ce6565b5b90505f8261128557600c60149054906101000a900460ff161561127e575f611280565b845b611287565b845b90508060095f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546112d5919061219d565b925050819055508160095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546113289190612647565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161138c9190611ff6565b60405180910390a3600193505050509392505050565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f806114746109ba565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114e257506114b26109ba565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561152157506114f16109ba565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b8015611574575060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156115c7575060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156115ff57505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561163757503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b90508091505092915050565b5f8060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156116e3575060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b90508091505092915050565b5f8060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561178e575060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b90508091505092915050565b5f8060045f9054906101000a900460ff1680156117fe575060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b905080915050919050565b6001600c60156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156118405761183f6126e2565b5b60405190808252806020026020018201604052801561186e5781602001602082028036833780820191505090505b50905030815f815181106118855761188461270f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611929573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061194d9190612750565b816001815181106119615761196061270f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414611b1a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611b7c95949392919061286b565b5f604051808303815f87803b158015611b93575f80fd5b505af1925050508015611ba4575060015b611bae5750611c1e565b5f471115611c1c57600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611c1a573d5f803e3d5ffd5b505b505b5f600c60156101000a81548160ff02191690831515021790555050565b5f8060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611cda575060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90508091505092915050565b5f808415611cf8576001549050611d0d565b8315611d08576002549050611d0c565b5f90505b5b5f8103611d1d5782915050611e0b565b5f6103e88285611d2d91906128c3565b611d379190612335565b90505f811115611dfa578060095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611d8d9190612647565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611df19190611ff6565b60405180910390a35b8084611e06919061219d565b925050505b949350505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611e3c82611e13565b9050919050565b611e4c81611e32565b82525050565b5f602082019050611e655f830184611e43565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611ea2578082015181840152602081019050611e87565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611ec782611e6b565b611ed18185611e75565b9350611ee1818560208601611e85565b611eea81611ead565b840191505092915050565b5f6020820190508181035f830152611f0d8184611ebd565b905092915050565b5f80fd5b611f2281611e32565b8114611f2c575f80fd5b50565b5f81359050611f3d81611f19565b92915050565b5f819050919050565b611f5581611f43565b8114611f5f575f80fd5b50565b5f81359050611f7081611f4c565b92915050565b5f8060408385031215611f8c57611f8b611f15565b5b5f611f9985828601611f2f565b9250506020611faa85828601611f62565b9150509250929050565b5f8115159050919050565b611fc881611fb4565b82525050565b5f602082019050611fe15f830184611fbf565b92915050565b611ff081611f43565b82525050565b5f6020820190506120095f830184611fe7565b92915050565b5f805f6060848603121561202657612025611f15565b5b5f61203386828701611f2f565b935050602061204486828701611f2f565b925050604061205586828701611f62565b9150509250925092565b5f60ff82169050919050565b6120748161205f565b82525050565b5f60208201905061208d5f83018461206b565b92915050565b5f602082840312156120a8576120a7611f15565b5b5f6120b584828501611f2f565b91505092915050565b5f819050919050565b5f6120e16120dc6120d784611e13565b6120be565b611e13565b9050919050565b5f6120f2826120c7565b9050919050565b5f612103826120e8565b9050919050565b612113816120f9565b82525050565b5f60208201905061212c5f83018461210a565b92915050565b5f806040838503121561214857612147611f15565b5b5f61215585828601611f2f565b925050602061216685828601611f2f565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6121a782611f43565b91506121b283611f43565b92508282039050818111156121ca576121c9612170565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612204602083611e75565b915061220f826121d0565b602082019050919050565b5f6020820190508181035f830152612231816121f8565b9050919050565b7f416c726561647920646f6e652073746172742074726164696e670000000000005f82015250565b5f61226c601a83611e75565b915061227782612238565b602082019050919050565b5f6020820190508181035f83015261229981612260565b9050919050565b7f416c726561647920646f6e652072656d6f7665206c696d6974730000000000005f82015250565b5f6122d4601a83611e75565b91506122df826122a0565b602082019050919050565b5f6020820190508181035f830152612301816122c8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61233f82611f43565b915061234a83611f43565b92508261235a57612359612308565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6123bf602683611e75565b91506123ca82612365565b604082019050919050565b5f6020820190508181035f8301526123ec816123b3565b9050919050565b7f436f756c646e7420617070726f7665206f6e205a65726f2041646472657373005f82015250565b5f612427601f83611e75565b9150612432826123f3565b602082019050919050565b5f6020820190508181035f8301526124548161241b565b9050919050565b7f43616e6e6f74207472616e7366657220746f20444541442061646472657373005f82015250565b5f61248f601f83611e75565b915061249a8261245b565b602082019050919050565b5f6020820190508181035f8301526124bc81612483565b9050919050565b7f43616e6e6f74207472616e736665722066726f6d2044454144206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f61251d602183611e75565b9150612528826124c3565b604082019050919050565b5f6020820190508181035f83015261254a81612511565b9050919050565b7f5472616e7366657220746f6b656e20616d6f756e74206d7573742062652067725f8201527f6561746572207468616e207a65726f0000000000000000000000000000000000602082015250565b5f6125ab602f83611e75565b91506125b682612551565b604082019050919050565b5f6020820190508181035f8301526125d88161259f565b9050919050565b7f5472616465206973206e6f7420737461727465640000000000000000000000005f82015250565b5f612613601483611e75565b915061261e826125df565b602082019050919050565b5f6020820190508181035f83015261264081612607565b9050919050565b5f61265182611f43565b915061265c83611f43565b925082820190508082111561267457612673612170565b5b92915050565b7f5f6d6178547853697a65206578636565640000000000000000000000000000005f82015250565b5f6126ae601183611e75565b91506126b98261267a565b602082019050919050565b5f6020820190508181035f8301526126db816126a2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061274a81611f19565b92915050565b5f6020828403121561276557612764611f15565b5b5f6127728482850161273c565b91505092915050565b5f819050919050565b5f61279e6127996127948461277b565b6120be565b611f43565b9050919050565b6127ae81612784565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6127e681611e32565b82525050565b5f6127f783836127dd565b60208301905092915050565b5f602082019050919050565b5f612819826127b4565b61282381856127be565b935061282e836127ce565b805f5b8381101561285e57815161284588826127ec565b975061285083612803565b925050600181019050612831565b5085935050505092915050565b5f60a08201905061287e5f830188611fe7565b61288b60208301876127a5565b818103604083015261289d818661280f565b90506128ac6060830185611e43565b6128b96080830184611fe7565b9695505050505050565b5f6128cd82611f43565b91506128d883611f43565b92508282026128e681611f43565b915082820484148315176128fd576128fc612170565b5b509291505056fea26469706673582212205ed96820ac281135a329f286c470bb247c299051d36c380d7e3e77715ddf5fed64736f6c63430008150033
Deployed Bytecode
0x608060405260043610610169575f3560e01c806370a08231116100d057806395d89b4111610089578063dd62ed3e11610063578063dd62ed3e146104f2578063e9b786cb1461052e578063eb069da414610558578063f2fde38b1461058257610170565b806395d89b4114610476578063a9059cbb146104a0578063d454cceb146104dc57610170565b806370a082311461037c578063715018a6146103b8578063735de9f7146103ce578063893d20e8146103f85780638da5cb5b14610422578063904236d11461044c57610170565b806318160ddd1161012257806318160ddd1461028257806323b872dd146102ac578063313ce567146102e85780633eaaf86b146103125780634f8944c51461033c5780635882128d1461035257610170565b806303fd2a451461017457806304d2be771461019e57806306fdde03146101c8578063095ea7b3146101f2578063174ea0ae1461022e578063180b0d7e1461025857610170565b3661017057005b5f80fd5b34801561017f575f80fd5b506101886105aa565b6040516101959190611e52565b60405180910390f35b3480156101a9575f80fd5b506101b26105b0565b6040516101bf9190611e52565b60405180910390f35b3480156101d3575f80fd5b506101dc6105d5565b6040516101e99190611ef5565b60405180910390f35b3480156101fd575f80fd5b5061021860048036038101906102139190611f76565b610612565b6040516102259190611fce565b60405180910390f35b348015610239575f80fd5b50610242610628565b60405161024f9190611ff6565b60405180910390f35b348015610263575f80fd5b5061026c61062c565b6040516102799190611ff6565b60405180910390f35b34801561028d575f80fd5b50610296610632565b6040516102a39190611ff6565b60405180910390f35b3480156102b7575f80fd5b506102d260048036038101906102cd919061200f565b610654565b6040516102df9190611fce565b60405180910390f35b3480156102f3575f80fd5b506102fc610797565b604051610309919061207a565b60405180910390f35b34801561031d575f80fd5b506103266107b2565b6040516103339190611ff6565b60405180910390f35b348015610347575f80fd5b506103506107be565b005b34801561035d575f80fd5b506103666108a7565b6040516103739190611fce565b60405180910390f35b348015610387575f80fd5b506103a2600480360381019061039d9190612093565b6108ba565b6040516103af9190611ff6565b60405180910390f35b3480156103c3575f80fd5b506103cc610900565b005b3480156103d9575f80fd5b506103e2610987565b6040516103ef9190612119565b60405180910390f35b348015610403575f80fd5b5061040c6109ac565b6040516104199190611e52565b60405180910390f35b34801561042d575f80fd5b506104366109ba565b6040516104439190611e52565b60405180910390f35b348015610457575f80fd5b506104606109e1565b60405161046d9190611ff6565b60405180910390f35b348015610481575f80fd5b5061048a6109e7565b6040516104979190611ef5565b60405180910390f35b3480156104ab575f80fd5b506104c660048036038101906104c19190611f76565b610a24565b6040516104d39190611fce565b60405180910390f35b3480156104e7575f80fd5b506104f0610a3b565b005b3480156104fd575f80fd5b5061051860048036038101906105139190612132565b610b43565b6040516105259190611ff6565b60405180910390f35b348015610539575f80fd5b50610542610bc5565b60405161054f9190611ff6565b60405180910390f35b348015610563575f80fd5b5061056c610bcb565b6040516105799190611ff6565b60405180910390f35b34801561058d575f80fd5b506105a860048036038101906105a39190612093565b610be5565b005b61dead81565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600381526020017f4255590000000000000000000000000000000000000000000000000000000000815250905090565b5f61061e338484610cdb565b6001905092915050565b5f81565b6103e881565b5f80670de0b6b3a764000003610646575f80fd5b670de0b6b3a7640000905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610783578160055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461077b919061219d565b925050819055505b61078e848484610e39565b90509392505050565b5f80670de0b6b3a7640000036107ab575f80fd5b6009905090565b670de0b6b3a764000081565b6107c66113a2565b73ffffffffffffffffffffffffffffffffffffffff166107e46109ba565b73ffffffffffffffffffffffffffffffffffffffff161461083a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108319061221a565b60405180910390fd5b600c60149054906101000a900460ff161561088a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088190612282565b60405180910390fd5b6001600c60146101000a81548160ff021916908315150217905550565b600c60149054906101000a900460ff1681565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6109086113a2565b73ffffffffffffffffffffffffffffffffffffffff166109266109ba565b73ffffffffffffffffffffffffffffffffffffffff161461097c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109739061221a565b60405180910390fd5b6109855f6113a9565b565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6109b56109ba565b905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60025481565b60606040518060400160405280600381526020017f4255590000000000000000000000000000000000000000000000000000000000815250905090565b5f610a30338484610e39565b506001905092915050565b610a436113a2565b73ffffffffffffffffffffffffffffffffffffffff16610a616109ba565b73ffffffffffffffffffffffffffffffffffffffff1614610ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aae9061221a565b60405180910390fd5b600c60169054906101000a900460ff1615610b07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afe906122ea565b60405180910390fd5b670de0b6b3a76400006003819055506001600c60166101000a81548160ff021916908315150217905550600a600181905550600a600281905550565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60015481565b620186a0670de0b6b3a7640000610be29190612335565b81565b610bed6113a2565b73ffffffffffffffffffffffffffffffffffffffff16610c0b6109ba565b73ffffffffffffffffffffffffffffffffffffffff1614610c61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c589061221a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ccf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc6906123d5565b60405180910390fd5b610cd8816113a9565b50565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d409061243d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610db7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dae9061243d565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b5f80600190505f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610ead576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea4906124a5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1290612533565b60405180910390fd5b5f8311610f5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f54906125c1565b60405180910390fd5b610f67858561146a565b156110ff57600c60149054906101000a900460ff16610fbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb290612629565b60405180910390fd5b60085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561103e57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561107657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b806110a057506110868585611643565b801561109f5750600c60169054906101000a900460ff16155b5b156110fe57600354836110b2866108ba565b6110bc9190612647565b11156110fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f4906126c4565b60405180910390fd5b5b5b61110985856116ef565b80156111225750600c60159054906101000a900460ff16155b801561113357506111328561179a565b5b1561118c575f611142306108ba565b9050620186a0670de0b6b3a764000061115b9190612335565b811061118a57620186a0670de0b6b3a76400006111789190612335565b8411156111895761118881611809565b5b5b505b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611227575060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611230575f90505b5f8161123c578361125b565b61125a8661124a8888611c3b565b61125489896116ef565b87611ce6565b5b90505f8261128557600c60149054906101000a900460ff161561127e575f611280565b845b611287565b845b90508060095f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546112d5919061219d565b925050819055508160095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546113289190612647565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161138c9190611ff6565b60405180910390a3600193505050509392505050565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f806114746109ba565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114e257506114b26109ba565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561152157506114f16109ba565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b8015611574575060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156115c7575060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156115ff57505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561163757503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b90508091505092915050565b5f8060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156116e3575060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b90508091505092915050565b5f8060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561178e575060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b90508091505092915050565b5f8060045f9054906101000a900460ff1680156117fe575060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b905080915050919050565b6001600c60156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156118405761183f6126e2565b5b60405190808252806020026020018201604052801561186e5781602001602082028036833780820191505090505b50905030815f815181106118855761188461270f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611929573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061194d9190612750565b816001815181106119615761196061270f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414611b1a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611b7c95949392919061286b565b5f604051808303815f87803b158015611b93575f80fd5b505af1925050508015611ba4575060015b611bae5750611c1e565b5f471115611c1c57600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611c1a573d5f803e3d5ffd5b505b505b5f600c60156101000a81548160ff02191690831515021790555050565b5f8060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611cda575060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90508091505092915050565b5f808415611cf8576001549050611d0d565b8315611d08576002549050611d0c565b5f90505b5b5f8103611d1d5782915050611e0b565b5f6103e88285611d2d91906128c3565b611d379190612335565b90505f811115611dfa578060095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611d8d9190612647565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611df19190611ff6565b60405180910390a35b8084611e06919061219d565b925050505b949350505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611e3c82611e13565b9050919050565b611e4c81611e32565b82525050565b5f602082019050611e655f830184611e43565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611ea2578082015181840152602081019050611e87565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611ec782611e6b565b611ed18185611e75565b9350611ee1818560208601611e85565b611eea81611ead565b840191505092915050565b5f6020820190508181035f830152611f0d8184611ebd565b905092915050565b5f80fd5b611f2281611e32565b8114611f2c575f80fd5b50565b5f81359050611f3d81611f19565b92915050565b5f819050919050565b611f5581611f43565b8114611f5f575f80fd5b50565b5f81359050611f7081611f4c565b92915050565b5f8060408385031215611f8c57611f8b611f15565b5b5f611f9985828601611f2f565b9250506020611faa85828601611f62565b9150509250929050565b5f8115159050919050565b611fc881611fb4565b82525050565b5f602082019050611fe15f830184611fbf565b92915050565b611ff081611f43565b82525050565b5f6020820190506120095f830184611fe7565b92915050565b5f805f6060848603121561202657612025611f15565b5b5f61203386828701611f2f565b935050602061204486828701611f2f565b925050604061205586828701611f62565b9150509250925092565b5f60ff82169050919050565b6120748161205f565b82525050565b5f60208201905061208d5f83018461206b565b92915050565b5f602082840312156120a8576120a7611f15565b5b5f6120b584828501611f2f565b91505092915050565b5f819050919050565b5f6120e16120dc6120d784611e13565b6120be565b611e13565b9050919050565b5f6120f2826120c7565b9050919050565b5f612103826120e8565b9050919050565b612113816120f9565b82525050565b5f60208201905061212c5f83018461210a565b92915050565b5f806040838503121561214857612147611f15565b5b5f61215585828601611f2f565b925050602061216685828601611f2f565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6121a782611f43565b91506121b283611f43565b92508282039050818111156121ca576121c9612170565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612204602083611e75565b915061220f826121d0565b602082019050919050565b5f6020820190508181035f830152612231816121f8565b9050919050565b7f416c726561647920646f6e652073746172742074726164696e670000000000005f82015250565b5f61226c601a83611e75565b915061227782612238565b602082019050919050565b5f6020820190508181035f83015261229981612260565b9050919050565b7f416c726561647920646f6e652072656d6f7665206c696d6974730000000000005f82015250565b5f6122d4601a83611e75565b91506122df826122a0565b602082019050919050565b5f6020820190508181035f830152612301816122c8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61233f82611f43565b915061234a83611f43565b92508261235a57612359612308565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6123bf602683611e75565b91506123ca82612365565b604082019050919050565b5f6020820190508181035f8301526123ec816123b3565b9050919050565b7f436f756c646e7420617070726f7665206f6e205a65726f2041646472657373005f82015250565b5f612427601f83611e75565b9150612432826123f3565b602082019050919050565b5f6020820190508181035f8301526124548161241b565b9050919050565b7f43616e6e6f74207472616e7366657220746f20444541442061646472657373005f82015250565b5f61248f601f83611e75565b915061249a8261245b565b602082019050919050565b5f6020820190508181035f8301526124bc81612483565b9050919050565b7f43616e6e6f74207472616e736665722066726f6d2044454144206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f61251d602183611e75565b9150612528826124c3565b604082019050919050565b5f6020820190508181035f83015261254a81612511565b9050919050565b7f5472616e7366657220746f6b656e20616d6f756e74206d7573742062652067725f8201527f6561746572207468616e207a65726f0000000000000000000000000000000000602082015250565b5f6125ab602f83611e75565b91506125b682612551565b604082019050919050565b5f6020820190508181035f8301526125d88161259f565b9050919050565b7f5472616465206973206e6f7420737461727465640000000000000000000000005f82015250565b5f612613601483611e75565b915061261e826125df565b602082019050919050565b5f6020820190508181035f83015261264081612607565b9050919050565b5f61265182611f43565b915061265c83611f43565b925082820190508082111561267457612673612170565b5b92915050565b7f5f6d6178547853697a65206578636565640000000000000000000000000000005f82015250565b5f6126ae601183611e75565b91506126b98261267a565b602082019050919050565b5f6020820190508181035f8301526126db816126a2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061274a81611f19565b92915050565b5f6020828403121561276557612764611f15565b5b5f6127728482850161273c565b91505092915050565b5f819050919050565b5f61279e6127996127948461277b565b6120be565b611f43565b9050919050565b6127ae81612784565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6127e681611e32565b82525050565b5f6127f783836127dd565b60208301905092915050565b5f602082019050919050565b5f612819826127b4565b61282381856127be565b935061282e836127ce565b805f5b8381101561285e57815161284588826127ec565b975061285083612803565b925050600181019050612831565b5085935050505092915050565b5f60a08201905061287e5f830188611fe7565b61288b60208301876127a5565b818103604083015261289d818661280f565b90506128ac6060830185611e43565b6128b96080830184611fe7565b9695505050505050565b5f6128cd82611f43565b91506128d883611f43565b92508282026128e681611f43565b915082820484148315176128fd576128fc612170565b5b509291505056fea26469706673582212205ed96820ac281135a329f286c470bb247c299051d36c380d7e3e77715ddf5fed64736f6c63430008150033
Deployed Bytecode Sourcemap
4597:8109:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5612:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5488:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11521:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7613:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4915:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4963:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11177:125;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10469:306;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11308:117;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4782:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10787:138;;;;;;;;;;;;;:::i;:::-;;5692:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11838:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3199:94;;;;;;;;;;;;;:::i;:::-;;5523:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11613:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2976:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5052:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11431:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7436:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10937:228;;;;;;;;;;;;;:::i;:::-;;11699:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5016:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4843:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3301:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5612:73;5643:42;5612:73;:::o;5488:28::-;;;;;;;;;;;;;:::o;11521:80::-;11569:13;11593:5;;;;;;;;;;;;;;;;;11586:12;;11521:80;:::o;7613:161::-;7690:4;7707:37;7716:10;7728:7;7737:6;7707:8;:37::i;:::-;7762:4;7755:11;;7613:161;;;;:::o;4915:41::-;4955:1;4915:41;:::o;4963:46::-;5004:5;4963:46;:::o;11177:125::-;11232:7;11263:1;4821:15;11247:17;11243:36;;11268:8;;;11243:36;4821:15;11280:19;;11177:125;:::o;10469:306::-;10569:4;10625:17;10590:11;:19;10602:6;10590:19;;;;;;;;;;;;;;;:31;10610:10;10590:31;;;;;;;;;;;;;;;;:52;10586:126;;10694:6;10659:11;:19;10671:6;10659:19;;;;;;;;;;;;;;;:31;10679:10;10659:31;;;;;;;;;;;;;;;;:41;;;;;;;:::i;:::-;;;;;;;;10586:126;10731:36;10741:6;10749:9;10760:6;10731:9;:36::i;:::-;10724:43;;10469:306;;;;;:::o;11308:117::-;11360:5;11389:1;4821:15;11373:17;11369:36;;11394:8;;;11369:36;4772:1;11406:16;;11308:117;:::o;4782:54::-;4821:15;4782:54;:::o;10787:138::-;3122:12;:10;:12::i;:::-;3111:23;;:7;:5;:7::i;:::-;:23;;;3103:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10846:11:::1;;;;;;;;;;;10845:12;10837:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;10913:4;10899:11;;:18;;;;;;;;;;;;;;;;;;10787:138::o:0;5692:31::-;;;;;;;;;;;;;:::o;11838:117::-;11904:7;11931;:16;11939:7;11931:16;;;;;;;;;;;;;;;;11924:23;;11838:117;;;:::o;3199:94::-;3122:12;:10;:12::i;:::-;3111:23;;:7;:5;:7::i;:::-;:23;;;3103:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3264:21:::1;3282:1;3264:9;:21::i;:::-;3199:94::o:0;5523:37::-;;;;;;;;;;;;;:::o;11613:80::-;11665:7;11683;:5;:7::i;:::-;11676:14;;11613:80;:::o;2976:87::-;3022:7;3049:6;;;;;;;;;;;3042:13;;2976:87;:::o;5052:30::-;;;;:::o;11431:84::-;11481:13;11505:7;;;;;;;;;;;;;;;;;11498:14;;11431:84;:::o;7436:165::-;7514:4;7531:40;7541:10;7553:9;7564:6;7531:9;:40::i;:::-;;7589:4;7582:11;;7436:165;;;;:::o;10937:228::-;3122:12;:10;:12::i;:::-;3111:23;;:7;:5;:7::i;:::-;:23;;;3103:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11000:12:::1;;;;;;;;;;;10999:13;10991:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;4821:15;11053:10;:25;;;;11104:4;11089:12;;:19;;;;;;;;;;;;;;;;;;11130:2;11119:8;:13;;;;11155:2;11143:9;:14;;;;10937:228::o:0;11699:133::-;11783:7;11801:11;:19;11813:6;11801:19;;;;;;;;;;;;;;;:28;11821:7;11801:28;;;;;;;;;;;;;;;;11794:35;;11699:133;;;;:::o;5016:29::-;;;;:::o;4843:65::-;4901:7;4821:15;4886:22;;;;:::i;:::-;4843:65;:::o;3301:192::-;3122:12;:10;:12::i;:::-;3111:23;;:7;:5;:7::i;:::-;:23;;;3103:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3410:1:::1;3390:22;;:8;:22;;::::0;3382:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3466:19;3476:8;3466:9;:19::i;:::-;3301:192:::0;:::o;10172:285::-;10285:1;10267:20;;:6;:20;;;10259:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10361:1;10342:21;;:7;:21;;;10334:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;10443:6;10412:11;:19;10424:6;10412:19;;;;;;;;;;;;;;;:28;10432:7;10412:28;;;;;;;;;;;;;;;:37;;;;10172:285;;;:::o;7963:1413::-;8043:4;8060:12;8075:4;8060:19;;8112:1;8098:16;;:2;:16;;;8090:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8185:1;8169:18;;:4;:18;;;8161:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8253:1;8244:6;:10;8236:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;8323:24;8339:4;8344:2;8323:15;:24::i;:::-;8319:301;;;8372:11;;;;;;;;;;;8364:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;8434:15;:19;8450:2;8434:19;;;;;;;;;;;;;;;;;;;;;;;;;8433:20;:45;;;;;8473:4;8457:21;;:4;:21;;;;8433:45;:68;;;;;8496:4;8482:19;;:2;:19;;;;8433:68;:113;;;;8505:24;8521:4;8526:2;8505:15;:24::i;:::-;:41;;;;;8534:12;;;;;;;;;;;8533:13;8505:41;8433:113;8430:189;;;8585:10;;8575:6;8559:13;8569:2;8559:9;:13::i;:::-;:22;;;;:::i;:::-;:36;;8551:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;8430:189;8319:301;8635:21;8647:4;8653:2;8635:11;:21::i;:::-;:35;;;;;8662:8;;;;;;;;;;;8661:9;8635:35;:55;;;;;8674:16;8685:4;8674:10;:16::i;:::-;8635:55;8632:273;;;8709:19;8731:24;8749:4;8731:9;:24::i;:::-;8709:46;;4901:7;4821:15;4886:22;;;;:::i;:::-;8773:11;:31;8770:124;;4901:7;4821:15;4886:22;;;;:::i;:::-;8829:6;:25;8826:51;;;8856:21;8865:11;8856:8;:21::i;:::-;8826:51;8770:124;8692:213;8632:273;8921:17;:23;8939:4;8921:23;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;8948:17;:21;8966:2;8948:21;;;;;;;;;;;;;;;;;;;;;;;;;8921:48;8917:95;;;8995:5;8985:15;;8917:95;9022:22;9048:7;9047:97;;9138:6;9047:97;;;9059:76;9077:4;9083:20;9094:4;9100:2;9083:10;:20::i;:::-;9105:21;9117:4;9123:2;9105:11;:21::i;:::-;9128:6;9059:17;:76::i;:::-;9047:97;9022:122;;9155:23;9182:7;9181:48;;9204:11;;;;;;;;;;;9203:12;:25;;9227:1;9203:25;;;9218:6;9203:25;9181:48;;;9193:6;9181:48;9155:74;;9257:15;9240:7;:13;9248:4;9240:13;;;;;;;;;;;;;;;;:32;;;;;;;:::i;:::-;;;;;;;;9289:14;9274:7;:11;9282:2;9274:11;;;;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;9325:2;9310:34;;9319:4;9310:34;;;9329:14;9310:34;;;;;;:::i;:::-;;;;;;;;9364:4;9357:11;;;;;7963:1413;;;;;:::o;2517:107::-;2562:15;2605:10;2590:26;;2517:107;:::o;3501:173::-;3557:16;3576:6;;;;;;;;;;;3557:25;;3602:8;3593:6;;:17;;;;;;;;;;;;;;;;;;3657:8;3626:40;;3647:8;3626:40;;;;;;;;;;;;3546:128;3501:173;:::o;9384:327::-;9458:4;9475:14;9499:7;:5;:7::i;:::-;9492:14;;:3;:14;;;;:45;;;;;9530:7;:5;:7::i;:::-;9523:14;;:3;:14;;;;9492:45;:83;;;;;9568:7;:5;:7::i;:::-;9554:21;;:10;:21;;;;9492:83;:115;;;;;9593:9;:14;9603:3;9593:14;;;;;;;;;;;;;;;;;;;;;;;;;9592:15;9492:115;:135;;;;;9613:9;:14;9623:3;9613:14;;;;;;;;;;;;;;;;;;;;;;;;;9612:15;9492:135;:156;;;;;9646:1;9631:17;;:3;:17;;;;9492:156;:180;;;;;9667:4;9652:20;;:3;:20;;;;9492:180;9475:197;;9694:9;9687:16;;;9384:327;;;;:::o;11967:196::-;12041:4;12059:17;12080:15;:20;12096:3;12080:20;;;;;;;;;;;;;;;;;;;;;;;;;12079:21;:46;;;;;12105:15;:20;12121:3;12105:20;;;;;;;;;;;;;;;;;;;;;;;;;12104:21;12079:46;12059:66;;12143:12;12136:19;;;11967:196;;;;:::o;9910:183::-;9980:4;9998:13;10014:15;:20;10030:3;10014:20;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;10039:15;:20;10055:3;10039:20;;;;;;;;;;;;;;;;;;;;;;;;;10038:21;10014:45;9998:61;;10077:8;10070:15;;;9910:183;;;;:::o;7786:165::-;7842:4;7859:12;7874:17;;;;;;;;;;;:44;;;;;7896:17;:22;7914:3;7896:22;;;;;;;;;;;;;;;;;;;;;;;;;7895:23;7874:44;7859:59;;7936:7;7929:14;;;7786:165;;;:::o;6702:721::-;5842:4;5831:8;;:15;;;;;;;;;;;;;;;;;;6772:21:::1;6810:1;6796:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6772:40;;6841:4;6823;6828:1;6823:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;6867:13;;;;;;;;;;;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6857:4;6862:1;6857:7;;;;;;;;:::i;:::-;;;;;;;:30;;;;;;;;;::::0;::::1;6958:17;6904:11;:26;6924:4;6904:26;;;;;;;;;;;;;;;:50;6939:13;;;;;;;;;;;6904:50;;;;;;;;;;;;;;;;:71;6900:174;;7045:17;6992:11;:26;7012:4;6992:26;;;;;;;;;;;;;;;:50;7027:13;;;;;;;;;;;6992:50;;;;;;;;;;;;;;;:70;;;;6900:174;7090:13;;;;;;;;;;;:64;;;7169:11;7195:1;7211:4;7238;7258:15;7090:194;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;7086:241;;7309:7;;;7086:241;7366:1;7342:21;:25;7339:76;;;7369:14;;;;;;;;;;;:23;;:46;7393:21;7369:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;7339:76;6761:662;5857:1;5880:5:::0;5869:8;;:16;;;;;;;;;;;;;;;;;;6702:721;:::o;9723:179::-;9792:4;9809:12;9825:15;:20;9841:3;9825:20;;;;;;;;;;;;;;;;;;;;;;;;;9824:21;:45;;;;;9849:15;:20;9865:3;9849:20;;;;;;;;;;;;;;;;;;;;;;;;;9824:45;9809:60;;9887:7;9880:14;;;9723:179;;;;:::o;12175:528::-;12275:7;12295:11;12321:5;12317:90;;;12335:8;;12329:14;;12317:90;;;12355:6;12351:56;;;12370:9;;12364:15;;12351:56;;;4955:1;12388:19;;12351:56;12317:90;12430:1;12423:3;:8;12419:28;;12441:6;12434:13;;;;;12419:28;12459:17;5004:5;12488:3;12479:6;:12;;;;:::i;:::-;:29;;;;:::i;:::-;12459:49;;12535:1;12523:9;:13;12519:141;;;12579:9;12553:7;:22;12569:4;12553:22;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;12631:4;12608:40;;12617:4;12608:40;;;12638:9;12608:40;;;;;;:::i;:::-;;;;;;;;12519:141;12686:9;12677:6;:18;;;;:::i;:::-;12670:25;;;;12175:528;;;;;;;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:99::-;645:6;679:5;673:12;663:22;;593:99;;;:::o;698:169::-;782:11;816:6;811:3;804:19;856:4;851:3;847:14;832:29;;698:169;;;;:::o;873:246::-;954:1;964:113;978:6;975:1;972:13;964:113;;;1063:1;1058:3;1054:11;1048:18;1044:1;1039:3;1035:11;1028:39;1000:2;997:1;993:10;988:15;;964:113;;;1111:1;1102:6;1097:3;1093:16;1086:27;935:184;873:246;;;:::o;1125:102::-;1166:6;1217:2;1213:7;1208:2;1201:5;1197:14;1193:28;1183:38;;1125:102;;;:::o;1233:377::-;1321:3;1349:39;1382:5;1349:39;:::i;:::-;1404:71;1468:6;1463:3;1404:71;:::i;:::-;1397:78;;1484:65;1542:6;1537:3;1530:4;1523:5;1519:16;1484:65;:::i;:::-;1574:29;1596:6;1574:29;:::i;:::-;1569:3;1565:39;1558:46;;1325:285;1233:377;;;;:::o;1616:313::-;1729:4;1767:2;1756:9;1752:18;1744:26;;1816:9;1810:4;1806:20;1802:1;1791:9;1787:17;1780:47;1844:78;1917:4;1908:6;1844:78;:::i;:::-;1836:86;;1616:313;;;;:::o;2016:117::-;2125:1;2122;2115:12;2262:122;2335:24;2353:5;2335:24;:::i;:::-;2328:5;2325:35;2315:63;;2374:1;2371;2364:12;2315:63;2262:122;:::o;2390:139::-;2436:5;2474:6;2461:20;2452:29;;2490:33;2517:5;2490:33;:::i;:::-;2390:139;;;;:::o;2535:77::-;2572:7;2601:5;2590:16;;2535:77;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:118::-;3885:24;3903:5;3885:24;:::i;:::-;3880:3;3873:37;3798:118;;:::o;3922:222::-;4015:4;4053:2;4042:9;4038:18;4030:26;;4066:71;4134:1;4123:9;4119:17;4110:6;4066:71;:::i;:::-;3922:222;;;;:::o;4150:619::-;4227:6;4235;4243;4292:2;4280:9;4271:7;4267:23;4263:32;4260:119;;;4298:79;;:::i;:::-;4260:119;4418:1;4443:53;4488:7;4479:6;4468:9;4464:22;4443:53;:::i;:::-;4433:63;;4389:117;4545:2;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4516:118;4673:2;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4644:118;4150:619;;;;;:::o;4775:86::-;4810:7;4850:4;4843:5;4839:16;4828:27;;4775:86;;;:::o;4867:112::-;4950:22;4966:5;4950:22;:::i;:::-;4945:3;4938:35;4867:112;;:::o;4985:214::-;5074:4;5112:2;5101:9;5097:18;5089:26;;5125:67;5189:1;5178:9;5174:17;5165:6;5125:67;:::i;:::-;4985:214;;;;:::o;5205:329::-;5264:6;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5205:329;;;;:::o;5540:60::-;5568:3;5589:5;5582:12;;5540:60;;;:::o;5606:142::-;5656:9;5689:53;5707:34;5716:24;5734:5;5716:24;:::i;:::-;5707:34;:::i;:::-;5689:53;:::i;:::-;5676:66;;5606:142;;;:::o;5754:126::-;5804:9;5837:37;5868:5;5837:37;:::i;:::-;5824:50;;5754:126;;;:::o;5886:150::-;5960:9;5993:37;6024:5;5993:37;:::i;:::-;5980:50;;5886:150;;;:::o;6042:179::-;6153:61;6208:5;6153:61;:::i;:::-;6148:3;6141:74;6042:179;;:::o;6227:270::-;6344:4;6382:2;6371:9;6367:18;6359:26;;6395:95;6487:1;6476:9;6472:17;6463:6;6395:95;:::i;:::-;6227:270;;;;:::o;6503:474::-;6571:6;6579;6628:2;6616:9;6607:7;6603:23;6599:32;6596:119;;;6634:79;;:::i;:::-;6596:119;6754:1;6779:53;6824:7;6815:6;6804:9;6800:22;6779:53;:::i;:::-;6769:63;;6725:117;6881:2;6907:53;6952:7;6943:6;6932:9;6928:22;6907:53;:::i;:::-;6897:63;;6852:118;6503:474;;;;;:::o;6983:180::-;7031:77;7028:1;7021:88;7128:4;7125:1;7118:15;7152:4;7149:1;7142:15;7169:194;7209:4;7229:20;7247:1;7229:20;:::i;:::-;7224:25;;7263:20;7281:1;7263:20;:::i;:::-;7258:25;;7307:1;7304;7300:9;7292:17;;7331:1;7325:4;7322:11;7319:37;;;7336:18;;:::i;:::-;7319:37;7169:194;;;;:::o;7369:182::-;7509:34;7505:1;7497:6;7493:14;7486:58;7369:182;:::o;7557:366::-;7699:3;7720:67;7784:2;7779:3;7720:67;:::i;:::-;7713:74;;7796:93;7885:3;7796:93;:::i;:::-;7914:2;7909:3;7905:12;7898:19;;7557:366;;;:::o;7929:419::-;8095:4;8133:2;8122:9;8118:18;8110:26;;8182:9;8176:4;8172:20;8168:1;8157:9;8153:17;8146:47;8210:131;8336:4;8210:131;:::i;:::-;8202:139;;7929:419;;;:::o;8354:176::-;8494:28;8490:1;8482:6;8478:14;8471:52;8354:176;:::o;8536:366::-;8678:3;8699:67;8763:2;8758:3;8699:67;:::i;:::-;8692:74;;8775:93;8864:3;8775:93;:::i;:::-;8893:2;8888:3;8884:12;8877:19;;8536:366;;;:::o;8908:419::-;9074:4;9112:2;9101:9;9097:18;9089:26;;9161:9;9155:4;9151:20;9147:1;9136:9;9132:17;9125:47;9189:131;9315:4;9189:131;:::i;:::-;9181:139;;8908:419;;;:::o;9333:176::-;9473:28;9469:1;9461:6;9457:14;9450:52;9333:176;:::o;9515:366::-;9657:3;9678:67;9742:2;9737:3;9678:67;:::i;:::-;9671:74;;9754:93;9843:3;9754:93;:::i;:::-;9872:2;9867:3;9863:12;9856:19;;9515:366;;;:::o;9887:419::-;10053:4;10091:2;10080:9;10076:18;10068:26;;10140:9;10134:4;10130:20;10126:1;10115:9;10111:17;10104:47;10168:131;10294:4;10168:131;:::i;:::-;10160:139;;9887:419;;;:::o;10312:180::-;10360:77;10357:1;10350:88;10457:4;10454:1;10447:15;10481:4;10478:1;10471:15;10498:185;10538:1;10555:20;10573:1;10555:20;:::i;:::-;10550:25;;10589:20;10607:1;10589:20;:::i;:::-;10584:25;;10628:1;10618:35;;10633:18;;:::i;:::-;10618:35;10675:1;10672;10668:9;10663:14;;10498:185;;;;:::o;10689:225::-;10829:34;10825:1;10817:6;10813:14;10806:58;10898:8;10893:2;10885:6;10881:15;10874:33;10689:225;:::o;10920:366::-;11062:3;11083:67;11147:2;11142:3;11083:67;:::i;:::-;11076:74;;11159:93;11248:3;11159:93;:::i;:::-;11277:2;11272:3;11268:12;11261:19;;10920:366;;;:::o;11292:419::-;11458:4;11496:2;11485:9;11481:18;11473:26;;11545:9;11539:4;11535:20;11531:1;11520:9;11516:17;11509:47;11573:131;11699:4;11573:131;:::i;:::-;11565:139;;11292:419;;;:::o;11717:181::-;11857:33;11853:1;11845:6;11841:14;11834:57;11717:181;:::o;11904:366::-;12046:3;12067:67;12131:2;12126:3;12067:67;:::i;:::-;12060:74;;12143:93;12232:3;12143:93;:::i;:::-;12261:2;12256:3;12252:12;12245:19;;11904:366;;;:::o;12276:419::-;12442:4;12480:2;12469:9;12465:18;12457:26;;12529:9;12523:4;12519:20;12515:1;12504:9;12500:17;12493:47;12557:131;12683:4;12557:131;:::i;:::-;12549:139;;12276:419;;;:::o;12701:181::-;12841:33;12837:1;12829:6;12825:14;12818:57;12701:181;:::o;12888:366::-;13030:3;13051:67;13115:2;13110:3;13051:67;:::i;:::-;13044:74;;13127:93;13216:3;13127:93;:::i;:::-;13245:2;13240:3;13236:12;13229:19;;12888:366;;;:::o;13260:419::-;13426:4;13464:2;13453:9;13449:18;13441:26;;13513:9;13507:4;13503:20;13499:1;13488:9;13484:17;13477:47;13541:131;13667:4;13541:131;:::i;:::-;13533:139;;13260:419;;;:::o;13685:220::-;13825:34;13821:1;13813:6;13809:14;13802:58;13894:3;13889:2;13881:6;13877:15;13870:28;13685:220;:::o;13911:366::-;14053:3;14074:67;14138:2;14133:3;14074:67;:::i;:::-;14067:74;;14150:93;14239:3;14150:93;:::i;:::-;14268:2;14263:3;14259:12;14252:19;;13911:366;;;:::o;14283:419::-;14449:4;14487:2;14476:9;14472:18;14464:26;;14536:9;14530:4;14526:20;14522:1;14511:9;14507:17;14500:47;14564:131;14690:4;14564:131;:::i;:::-;14556:139;;14283:419;;;:::o;14708:234::-;14848:34;14844:1;14836:6;14832:14;14825:58;14917:17;14912:2;14904:6;14900:15;14893:42;14708:234;:::o;14948:366::-;15090:3;15111:67;15175:2;15170:3;15111:67;:::i;:::-;15104:74;;15187:93;15276:3;15187:93;:::i;:::-;15305:2;15300:3;15296:12;15289:19;;14948:366;;;:::o;15320:419::-;15486:4;15524:2;15513:9;15509:18;15501:26;;15573:9;15567:4;15563:20;15559:1;15548:9;15544:17;15537:47;15601:131;15727:4;15601:131;:::i;:::-;15593:139;;15320:419;;;:::o;15745:170::-;15885:22;15881:1;15873:6;15869:14;15862:46;15745:170;:::o;15921:366::-;16063:3;16084:67;16148:2;16143:3;16084:67;:::i;:::-;16077:74;;16160:93;16249:3;16160:93;:::i;:::-;16278:2;16273:3;16269:12;16262:19;;15921:366;;;:::o;16293:419::-;16459:4;16497:2;16486:9;16482:18;16474:26;;16546:9;16540:4;16536:20;16532:1;16521:9;16517:17;16510:47;16574:131;16700:4;16574:131;:::i;:::-;16566:139;;16293:419;;;:::o;16718:191::-;16758:3;16777:20;16795:1;16777:20;:::i;:::-;16772:25;;16811:20;16829:1;16811:20;:::i;:::-;16806:25;;16854:1;16851;16847:9;16840:16;;16875:3;16872:1;16869:10;16866:36;;;16882:18;;:::i;:::-;16866:36;16718:191;;;;:::o;16915:167::-;17055:19;17051:1;17043:6;17039:14;17032:43;16915:167;:::o;17088:366::-;17230:3;17251:67;17315:2;17310:3;17251:67;:::i;:::-;17244:74;;17327:93;17416:3;17327:93;:::i;:::-;17445:2;17440:3;17436:12;17429:19;;17088:366;;;:::o;17460:419::-;17626:4;17664:2;17653:9;17649:18;17641:26;;17713:9;17707:4;17703:20;17699:1;17688:9;17684:17;17677:47;17741:131;17867:4;17741:131;:::i;:::-;17733:139;;17460:419;;;:::o;17885:180::-;17933:77;17930:1;17923:88;18030:4;18027:1;18020:15;18054:4;18051:1;18044:15;18071:180;18119:77;18116:1;18109:88;18216:4;18213:1;18206:15;18240:4;18237:1;18230:15;18257:143;18314:5;18345:6;18339:13;18330:22;;18361:33;18388:5;18361:33;:::i;:::-;18257:143;;;;:::o;18406:351::-;18476:6;18525:2;18513:9;18504:7;18500:23;18496:32;18493:119;;;18531:79;;:::i;:::-;18493:119;18651:1;18676:64;18732:7;18723:6;18712:9;18708:22;18676:64;:::i;:::-;18666:74;;18622:128;18406:351;;;;:::o;18763:85::-;18808:7;18837:5;18826:16;;18763:85;;;:::o;18854:158::-;18912:9;18945:61;18963:42;18972:32;18998:5;18972:32;:::i;:::-;18963:42;:::i;:::-;18945:61;:::i;:::-;18932:74;;18854:158;;;:::o;19018:147::-;19113:45;19152:5;19113:45;:::i;:::-;19108:3;19101:58;19018:147;;:::o;19171:114::-;19238:6;19272:5;19266:12;19256:22;;19171:114;;;:::o;19291:184::-;19390:11;19424:6;19419:3;19412:19;19464:4;19459:3;19455:14;19440:29;;19291:184;;;;:::o;19481:132::-;19548:4;19571:3;19563:11;;19601:4;19596:3;19592:14;19584:22;;19481:132;;;:::o;19619:108::-;19696:24;19714:5;19696:24;:::i;:::-;19691:3;19684:37;19619:108;;:::o;19733:179::-;19802:10;19823:46;19865:3;19857:6;19823:46;:::i;:::-;19901:4;19896:3;19892:14;19878:28;;19733:179;;;;:::o;19918:113::-;19988:4;20020;20015:3;20011:14;20003:22;;19918:113;;;:::o;20067:732::-;20186:3;20215:54;20263:5;20215:54;:::i;:::-;20285:86;20364:6;20359:3;20285:86;:::i;:::-;20278:93;;20395:56;20445:5;20395:56;:::i;:::-;20474:7;20505:1;20490:284;20515:6;20512:1;20509:13;20490:284;;;20591:6;20585:13;20618:63;20677:3;20662:13;20618:63;:::i;:::-;20611:70;;20704:60;20757:6;20704:60;:::i;:::-;20694:70;;20550:224;20537:1;20534;20530:9;20525:14;;20490:284;;;20494:14;20790:3;20783:10;;20191:608;;;20067:732;;;;:::o;20805:831::-;21068:4;21106:3;21095:9;21091:19;21083:27;;21120:71;21188:1;21177:9;21173:17;21164:6;21120:71;:::i;:::-;21201:80;21277:2;21266:9;21262:18;21253:6;21201:80;:::i;:::-;21328:9;21322:4;21318:20;21313:2;21302:9;21298:18;21291:48;21356:108;21459:4;21450:6;21356:108;:::i;:::-;21348:116;;21474:72;21542:2;21531:9;21527:18;21518:6;21474:72;:::i;:::-;21556:73;21624:3;21613:9;21609:19;21600:6;21556:73;:::i;:::-;20805:831;;;;;;;;:::o;21642:410::-;21682:7;21705:20;21723:1;21705:20;:::i;:::-;21700:25;;21739:20;21757:1;21739:20;:::i;:::-;21734:25;;21794:1;21791;21787:9;21816:30;21834:11;21816:30;:::i;:::-;21805:41;;21995:1;21986:7;21982:15;21979:1;21976:22;21956:1;21949:9;21929:83;21906:139;;22025:18;;:::i;:::-;21906:139;21690:362;21642:410;;;;:::o
Swarm Source
ipfs://5ed96820ac281135a329f286c470bb247c299051d36c380d7e3e77715ddf5fed
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.