Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
10,000,000,000 Dior
Holders
64
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.000000001 DiorValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ERC20
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-09-05 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.4; interface IERC20 { function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); 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); } interface IUniswapRouter { function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } interface IUniswapFactory { function getPair(address tokenA, address tokenB) external view returns (address pair); function createPair(address tokenA, address tokenB) external returns (address pair); } abstract contract Ownable { address internal _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = msg.sender; _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == msg.sender, "you are not owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "new is 0"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract ERC20 is IERC20, Ownable { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; address private fundAddress; string private _name; string private _symbol; uint8 private _decimals; mapping(address => bool) public _isExcludeFromFee; uint256 private _totalSupply; IUniswapRouter public _uniswapRouter; mapping(address => bool) public isMarketPair; bool private inSwap; uint256 private constant MAX = ~uint256(0); address public _uniswapPair; modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor (){ _name = "Dior"; _symbol = "Dior"; _decimals = 9; uint256 Supply = 10000000000; _totalSupply = Supply * 10 ** _decimals; address receiveAddr = msg.sender; _balances[receiveAddr] = _totalSupply; emit Transfer(address(0), receiveAddr, _totalSupply); fundAddress = 0x13cCC6E6622196553f125a295D99d837f0A45812; _isExcludeFromFee[address(this)] = true; _isExcludeFromFee[receiveAddr] = true; _isExcludeFromFee[fundAddress] = true; IUniswapRouter swapRouter = IUniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _uniswapRouter = swapRouter; _allowances[address(this)][address(swapRouter)] = MAX; IUniswapFactory swapFactory = IUniswapFactory(swapRouter.factory()); _uniswapPair = swapFactory.createPair(address(this), swapRouter.WETH()); isMarketPair[_uniswapPair] = true; IERC20(_uniswapRouter.WETH()).approve( address(address(_uniswapRouter)), ~uint256(0) ); _isExcludeFromFee[address(swapRouter)] = true; } function setFundAddr( address newAddr ) public onlyOwner{ fundAddress = newAddr; } function getFundAddr() external view returns (address) { return fundAddress; } function symbol() external view override returns (string memory) { return _symbol; } function name() external view override returns (string memory) { return _name; } function decimals() external view override returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(msg.sender, 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(msg.sender, spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); if (_allowances[sender][msg.sender] != MAX) { _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount; } return true; } function _approve(address owner, address spender, uint256 amount) private { _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] -= amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); return true; } uint256 public _buyCount=0; uint256 private _initialBuyTax=30; uint256 private _initialSellTax=30; uint256 private _finalBuyTax=1; uint256 private _finalSellTax=1; uint256 private _reduceBuyTaxAt=15; uint256 private _reduceSellTaxAt=15; uint256 private _preventSwapBefore=10; function recuseTax( uint256 newBuy, uint256 newSell, uint256 newReduceBuy, uint256 newReduceSell, uint256 newPreventSwapBefore ) public onlyOwner { _finalBuyTax = newBuy; _finalSellTax = newSell; _reduceBuyTaxAt = newReduceBuy; _reduceSellTaxAt = newReduceSell; _preventSwapBefore = newPreventSwapBefore; } bool public remainHolder = true; function changeRemain() public onlyOwner{ remainHolder = !remainHolder; } function _transfer( address from, address to, uint256 amount ) private { uint256 balance = balanceOf(from); require(balance >= amount, "balanceNotEnough"); if (inSwap){ _basicTransfer(from, to, amount); return; } bool takeFee; if (isMarketPair[to] && !inSwap && !_isExcludeFromFee[from] && !_isExcludeFromFee[to] && _buyCount > _preventSwapBefore) { uint256 _numSellToken = amount; if (_numSellToken > balanceOf(address(this))){ _numSellToken = _balances[address(this)]; } if (_numSellToken > 0){ swapTokenForETH(_numSellToken); } } if (!_isExcludeFromFee[from] && !_isExcludeFromFee[to] && !inSwap) { require(startTradeBlock > 0); takeFee = true; // buyCount if (isMarketPair[from] && to != address(_uniswapRouter) && !_isExcludeFromFee[to]) { _buyCount++; } // remainHolder if (remainHolder && amount == balance) { amount = amount - (amount / 10000); } } _transferToken(from, to, amount, takeFee); } function _transferToken( address sender, address recipient, uint256 tAmount, bool takeFee ) private { _balances[sender] = _balances[sender] - tAmount; uint256 feeAmount; if (takeFee) { uint256 taxFee; if (isMarketPair[recipient]) { taxFee = _buyCount > _reduceSellTaxAt ? _finalSellTax : _initialSellTax; } else if (isMarketPair[sender]) { taxFee = _buyCount > _reduceBuyTaxAt ? _finalBuyTax : _initialBuyTax; } uint256 swapAmount = tAmount * taxFee / 100; if (swapAmount > 0) { feeAmount += swapAmount; _balances[address(this)] = _balances[address(this)] + swapAmount; emit Transfer(sender, address(this), swapAmount); } } _balances[recipient] = _balances[recipient] + (tAmount - feeAmount); emit Transfer(sender, recipient, tAmount - feeAmount); } uint256 public startTradeBlock; function startTrade(address[] calldata adrs) public onlyOwner { for(uint i=0;i<adrs.length;i++){ swapToken(((random(5,adrs[i])+1)*10**16+7*10**16),adrs[i]); } startTradeBlock = block.number; } function swapToken(uint256 tokenAmount,address to) private lockTheSwap { address weth = _uniswapRouter.WETH(); address[] memory path = new address[](2); path[0] = address(weth); path[1] = address(this); uint256 _bal = IERC20(weth).balanceOf(address(this)); tokenAmount = tokenAmount > _bal ? _bal : tokenAmount; if (tokenAmount == 0) return; // make the swap _uniswapRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of CA path, address(to), block.timestamp ); } function random(uint number,address _addr) private view returns(uint) { return uint(keccak256(abi.encodePacked(block.timestamp,block.difficulty, _addr))) % number; } function removeERC20(address _token) external { if(_token != address(this)){ IERC20(_token).transfer(fundAddress, IERC20(_token).balanceOf(address(this))); payable(fundAddress).transfer(address(this).balance); } } function swapTokenForETH(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = _uniswapRouter.WETH(); try _uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ) {} catch {} uint256 _bal = address(this).balance; if (_bal > 0){ payable(fundAddress).transfer(_bal); } } function setFeeExclude(address account, bool value) public onlyOwner{ _isExcludeFromFee[account] = value; } receive() external payable {} }
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":[{"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":"_buyCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludeFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapRouter","outputs":[{"internalType":"contract IUniswapRouter","name":"","type":"address"}],"stateMutability":"view","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":"changeRemain","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFundAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuy","type":"uint256"},{"internalType":"uint256","name":"newSell","type":"uint256"},{"internalType":"uint256","name":"newReduceBuy","type":"uint256"},{"internalType":"uint256","name":"newReduceSell","type":"uint256"},{"internalType":"uint256","name":"newPreventSwapBefore","type":"uint256"}],"name":"recuseTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"remainHolder","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"removeERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setFeeExclude","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddr","type":"address"}],"name":"setFundAddr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"adrs","type":"address[]"}],"name":"startTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTradeBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526000600c55601e600d55601e600e556001600f556001601055600f601155600f601255600a6013556001601460006101000a81548160ff0219169083151502179055503480156200005457600080fd5b506000339050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506040518060400160405280600481526020017f44696f720000000000000000000000000000000000000000000000000000000081525060049080519060200190620001439291906200090b565b506040518060400160405280600481526020017f44696f720000000000000000000000000000000000000000000000000000000081525060059080519060200190620001919291906200090b565b506009600660006101000a81548160ff021916908360ff16021790555060006402540be4009050600660009054906101000a900460ff16600a620001d6919062000b35565b81620001e3919062000c72565b6008819055506000339050600854600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60085460405162000296919062000abd565b60405180910390a37313ccc6e6622196553f125a295d99d837f0a45812600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200054357600080fd5b505afa15801562000558573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200057e9190620009e9565b90508073ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620005e457600080fd5b505afa158015620005f9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200061f9190620009e9565b6040518363ffffffff1660e01b81526004016200063e92919062000a63565b602060405180830381600087803b1580156200065957600080fd5b505af11580156200066e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006949190620009e9565b600b60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a6000600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620007b757600080fd5b505afa158015620007cc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007f29190620009e9565b73ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000196040518363ffffffff1660e01b81526004016200085292919062000a90565b602060405180830381600087803b1580156200086d57600080fd5b505af115801562000882573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008a8919062000a15565b506001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050505062000dff565b828054620009199062000d2a565b90600052602060002090601f0160209004810192826200093d576000855562000989565b82601f106200095857805160ff191683800117855562000989565b8280016001018555821562000989579182015b82811115620009885782518255916020019190600101906200096b565b5b5090506200099891906200099c565b5090565b5b80821115620009b75760008160009055506001016200099d565b5090565b600081519050620009cc8162000dcb565b92915050565b600081519050620009e38162000de5565b92915050565b600060208284031215620009fc57600080fd5b600062000a0c84828501620009bb565b91505092915050565b60006020828403121562000a2857600080fd5b600062000a3884828501620009d2565b91505092915050565b62000a4c8162000cd3565b82525050565b62000a5d8162000d13565b82525050565b600060408201905062000a7a600083018562000a41565b62000a89602083018462000a41565b9392505050565b600060408201905062000aa7600083018562000a41565b62000ab6602083018462000a52565b9392505050565b600060208201905062000ad4600083018462000a52565b92915050565b6000808291508390505b600185111562000b2c5780860481111562000b045762000b0362000d60565b5b600185161562000b145780820291505b808102905062000b248562000dbe565b945062000ae4565b94509492505050565b600062000b428262000d13565b915062000b4f8362000d1d565b925062000b7e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000b86565b905092915050565b60008262000b98576001905062000c6b565b8162000ba8576000905062000c6b565b816001811462000bc1576002811462000bcc5762000c02565b600191505062000c6b565b60ff84111562000be15762000be062000d60565b5b8360020a91508482111562000bfb5762000bfa62000d60565b5b5062000c6b565b5060208310610133831016604e8410600b841016171562000c3c5782820a90508381111562000c365762000c3562000d60565b5b62000c6b565b62000c4b848484600162000ada565b9250905081840481111562000c655762000c6462000d60565b5b81810290505b9392505050565b600062000c7f8262000d13565b915062000c8c8362000d13565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000cc85762000cc762000d60565b5b828202905092915050565b600062000ce08262000cf3565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000600282049050600182168062000d4357607f821691505b6020821081141562000d5a5762000d5962000d8f565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b62000dd68162000cd3565b811462000de257600080fd5b50565b62000df08162000ce7565b811462000dfc57600080fd5b50565b6131218062000e0f6000396000f3fe6080604052600436106101855760003560e01c8063707fb7c3116100d157806395d89b411161008a578063bc76c05211610064578063bc76c05214610591578063cefab2af146105a8578063dd62ed3e146105d3578063f2fde38b146106105761018c565b806395d89b4114610500578063a67755c21461052b578063a9059cbb146105545761018c565b8063707fb7c31461040457806370a082311461042f578063715018a61461046c57806380720140146104835780638da5cb5b146104ac578063936c044b146104d75761018c565b806336b2e0271161013e5780634bf28fd0116101185780634bf28fd01461035a578063553193ca1461038557806365b61b77146103b05780636f39cfcd146103db5761018c565b806336b2e027146102b75780633ecad271146102f45780633f80b6d7146103315761018c565b806306fdde0314610191578063095ea7b3146101bc57806318160ddd146101f957806323b872dd1461022457806327b1a8e914610261578063313ce5671461028c5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a6610639565b6040516101b39190612b6c565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de91906127bc565b6106cb565b6040516101f09190612b36565b60405180910390f35b34801561020557600080fd5b5061020e6106e2565b60405161021b9190612bee565b60405180910390f35b34801561023057600080fd5b5061024b60048036038101906102469190612731565b6106ec565b6040516102589190612b36565b60405180910390f35b34801561026d57600080fd5b50610276610892565b6040516102839190612bee565b60405180910390f35b34801561029857600080fd5b506102a1610898565b6040516102ae9190612c63565b60405180910390f35b3480156102c357600080fd5b506102de60048036038101906102d991906126a3565b6108af565b6040516102eb9190612b36565b60405180910390f35b34801561030057600080fd5b5061031b600480360381019061031691906126a3565b6108cf565b6040516103289190612b36565b60405180910390f35b34801561033d57600080fd5b506103586004803603810190610353919061288f565b6108ef565b005b34801561036657600080fd5b5061036f6109a7565b60405161037c9190612af2565b60405180910390f35b34801561039157600080fd5b5061039a6109cd565b6040516103a79190612bee565b60405180910390f35b3480156103bc57600080fd5b506103c56109d3565b6040516103d29190612b51565b60405180910390f35b3480156103e757600080fd5b5061040260048036038101906103fd91906126a3565b6109f9565b005b34801561041057600080fd5b50610419610acb565b6040516104269190612af2565b60405180910390f35b34801561043b57600080fd5b50610456600480360381019061045191906126a3565b610af5565b6040516104639190612bee565b60405180910390f35b34801561047857600080fd5b50610481610b3e565b005b34801561048f57600080fd5b506104aa60048036038101906104a591906127f8565b610c8a565b005b3480156104b857600080fd5b506104c1610e23565b6040516104ce9190612af2565b60405180910390f35b3480156104e357600080fd5b506104fe60048036038101906104f99190612780565b610e4c565b005b34801561050c57600080fd5b50610515610f35565b6040516105229190612b6c565b60405180910390f35b34801561053757600080fd5b50610552600480360381019061054d91906126a3565b610fc7565b005b34801561056057600080fd5b5061057b600480360381019061057691906127bc565b61119f565b6040516105889190612b36565b60405180910390f35b34801561059d57600080fd5b506105a66111b6565b005b3480156105b457600080fd5b506105bd611270565b6040516105ca9190612b36565b60405180910390f35b3480156105df57600080fd5b506105fa60048036038101906105f591906126f5565b611283565b6040516106079190612bee565b60405180910390f35b34801561061c57600080fd5b50610637600480360381019061063291906126a3565b61130a565b005b60606004805461064890612ea6565b80601f016020809104026020016040519081016040528092919081815260200182805461067490612ea6565b80156106c15780601f10610696576101008083540402835291602001916106c1565b820191906000526020600020905b8154815290600101906020018083116106a457829003601f168201915b5050505050905090565b60006106d83384846114c5565b6001905092915050565b6000600854905090565b60006106f98484846115b0565b600019600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146108875781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108069190612db4565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600190509392505050565b600c5481565b6000600660009054906101000a900460ff16905090565b60076020528060005260406000206000915054906101000a900460ff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461097d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097490612bce565b60405180910390fd5b84600f81905550836010819055508260118190555081601281905550806013819055505050505050565b600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60155481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7e90612bce565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc390612bce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0f90612bce565b60405180910390fd5b60005b82829050811015610e1757610e0466f8b0a10e470000662386f26fc100006001610d936005888888818110610d79577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002016020810190610d8e91906126a3565b6119fd565b610d9d9190612cd3565b610da79190612d5a565b610db19190612cd3565b848484818110610dea577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002016020810190610dff91906126a3565b611a40565b8080610e0f90612ed8565b915050610d1b565b50436015819055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed190612bce565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b606060058054610f4490612ea6565b80601f0160208091040260200160405190810160405280929190818152602001828054610f7090612ea6565b8015610fbd5780601f10610f9257610100808354040283529160200191610fbd565b820191906000526020600020905b815481529060010190602001808311610fa057829003601f168201915b5050505050905090565b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461119c578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110729190612af2565b60206040518083038186803b15801561108a57600080fd5b505afa15801561109e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c29190612866565b6040518363ffffffff1660e01b81526004016110df929190612b0d565b602060405180830381600087803b1580156110f957600080fd5b505af115801561110d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611131919061283d565b50600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561119a573d6000803e3d6000fd5b505b50565b60006111ac3384846115b0565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123b90612bce565b60405180910390fd5b601460009054906101000a900460ff1615601460006101000a81548160ff021916908315150217905550565b601460009054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138f90612bce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611408576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ff90612bae565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115a39190612bee565b60405180910390a3505050565b60006115bb84610af5565b905081811015611600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f790612b8e565b60405180910390fd5b600b60009054906101000a900460ff161561162757611620848484611dc5565b50506119f8565b6000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561168f5750600b60009054906101000a900460ff16155b80156116e55750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561173b5750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561174a5750601354600c54115b156117bc57600083905061175d30610af5565b8111156117a757600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b60008111156117ba576117b981611ee3565b5b505b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118605750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118795750600b60009054906101000a900460ff16155b156119e95760006015541161188d57600080fd5b60019050600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156119385750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561198e5750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119ac57600c60008154809291906119a690612ed8565b91905055505b601460009054906101000a900460ff1680156119c757508183145b156119e857612710836119da9190612d29565b836119e59190612db4565b92505b5b6119f58585858461222c565b50505b505050565b600082424484604051602001611a1593929190612ab5565b6040516020818303038152906040528051906020012060001c611a389190612f4f565b905092915050565b6001600b60006101000a81548160ff0219169083151502179055506000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611ac557600080fd5b505afa158015611ad9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afd91906126cc565b90506000600267ffffffffffffffff811115611b42577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611b705781602001602082028036833780820191505090505b5090508181600081518110611bae577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250503081600181518110611c23577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611c989190612af2565b60206040518083038186803b158015611cb057600080fd5b505afa158015611cc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce89190612866565b9050808511611cf75784611cf9565b805b94506000851415611d0c57505050611da6565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d7958660008588426040518663ffffffff1660e01b8152600401611d70959493929190612c09565b600060405180830381600087803b158015611d8a57600080fd5b505af1158015611d9e573d6000803e3d6000fd5b505050505050505b6000600b60006101000a81548160ff0219169083151502179055505050565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e169190612db4565b9250508190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e6c9190612cd3565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ed09190612bee565b60405180910390a3600190509392505050565b6001600b60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f41577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611f6f5781602001602082028036833780820191505090505b5090503081600081518110611fad577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561204f57600080fd5b505afa158015612063573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208791906126cc565b816001815181106120c1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161215f959493929190612c09565b600060405180830381600087803b15801561217957600080fd5b505af192505050801561218a575060015b61219357612194565b5b6000479050600081111561220c57600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561220a573d6000803e3d6000fd5b505b50506000600b60006101000a81548160ff02191690831515021790555050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122779190612db4565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600081156124cb576000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561233457601254600c541161232957600e5461232d565b6010545b90506123a1565b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123a057601154600c541161239957600d5461239d565b600f545b90505b5b6000606482866123b19190612d5a565b6123bb9190612d29565b905060008111156124c85780836123d29190612cd3565b925080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461241f9190612cd3565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124bf9190612bee565b60405180910390a35b50505b80836124d79190612db4565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125219190612cd3565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83866125bf9190612db4565b6040516125cc9190612bee565b60405180910390a35050505050565b6000813590506125ea816130a6565b92915050565b6000815190506125ff816130a6565b92915050565b60008083601f84011261261757600080fd5b8235905067ffffffffffffffff81111561263057600080fd5b60208301915083602082028301111561264857600080fd5b9250929050565b60008135905061265e816130bd565b92915050565b600081519050612673816130bd565b92915050565b600081359050612688816130d4565b92915050565b60008151905061269d816130d4565b92915050565b6000602082840312156126b557600080fd5b60006126c3848285016125db565b91505092915050565b6000602082840312156126de57600080fd5b60006126ec848285016125f0565b91505092915050565b6000806040838503121561270857600080fd5b6000612716858286016125db565b9250506020612727858286016125db565b9150509250929050565b60008060006060848603121561274657600080fd5b6000612754868287016125db565b9350506020612765868287016125db565b925050604061277686828701612679565b9150509250925092565b6000806040838503121561279357600080fd5b60006127a1858286016125db565b92505060206127b28582860161264f565b9150509250929050565b600080604083850312156127cf57600080fd5b60006127dd858286016125db565b92505060206127ee85828601612679565b9150509250929050565b6000806020838503121561280b57600080fd5b600083013567ffffffffffffffff81111561282557600080fd5b61283185828601612605565b92509250509250929050565b60006020828403121561284f57600080fd5b600061285d84828501612664565b91505092915050565b60006020828403121561287857600080fd5b60006128868482850161268e565b91505092915050565b600080600080600060a086880312156128a757600080fd5b60006128b588828901612679565b95505060206128c688828901612679565b94505060406128d788828901612679565b93505060606128e888828901612679565b92505060806128f988828901612679565b9150509295509295909350565b6000612912838361291e565b60208301905092915050565b61292781612de8565b82525050565b61293681612de8565b82525050565b61294d61294882612de8565b612f21565b82525050565b600061295e82612c8e565b6129688185612cb1565b935061297383612c7e565b8060005b838110156129a457815161298b8882612906565b975061299683612ca4565b925050600181019050612977565b5085935050505092915050565b6129ba81612dfa565b82525050565b6129c981612e3d565b82525050565b6129d881612e61565b82525050565b60006129e982612c99565b6129f38185612cc2565b9350612a03818560208601612e73565b612a0c8161300d565b840191505092915050565b6000612a24601083612cc2565b9150612a2f8261302b565b602082019050919050565b6000612a47600883612cc2565b9150612a5282613054565b602082019050919050565b6000612a6a601183612cc2565b9150612a758261307d565b602082019050919050565b612a8981612e26565b82525050565b612aa0612a9b82612e26565b612f45565b82525050565b612aaf81612e30565b82525050565b6000612ac18286612a8f565b602082019150612ad18285612a8f565b602082019150612ae1828461293c565b601482019150819050949350505050565b6000602082019050612b07600083018461292d565b92915050565b6000604082019050612b22600083018561292d565b612b2f6020830184612a80565b9392505050565b6000602082019050612b4b60008301846129b1565b92915050565b6000602082019050612b6660008301846129c0565b92915050565b60006020820190508181036000830152612b8681846129de565b905092915050565b60006020820190508181036000830152612ba781612a17565b9050919050565b60006020820190508181036000830152612bc781612a3a565b9050919050565b60006020820190508181036000830152612be781612a5d565b9050919050565b6000602082019050612c036000830184612a80565b92915050565b600060a082019050612c1e6000830188612a80565b612c2b60208301876129cf565b8181036040830152612c3d8186612953565b9050612c4c606083018561292d565b612c596080830184612a80565b9695505050505050565b6000602082019050612c786000830184612aa6565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612cde82612e26565b9150612ce983612e26565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612d1e57612d1d612f80565b5b828201905092915050565b6000612d3482612e26565b9150612d3f83612e26565b925082612d4f57612d4e612faf565b5b828204905092915050565b6000612d6582612e26565b9150612d7083612e26565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612da957612da8612f80565b5b828202905092915050565b6000612dbf82612e26565b9150612dca83612e26565b925082821015612ddd57612ddc612f80565b5b828203905092915050565b6000612df382612e06565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612e4882612e4f565b9050919050565b6000612e5a82612e06565b9050919050565b6000612e6c82612e26565b9050919050565b60005b83811015612e91578082015181840152602081019050612e76565b83811115612ea0576000848401525b50505050565b60006002820490506001821680612ebe57607f821691505b60208210811415612ed257612ed1612fde565b5b50919050565b6000612ee382612e26565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612f1657612f15612f80565b5b600182019050919050565b6000612f2c82612f33565b9050919050565b6000612f3e8261301e565b9050919050565b6000819050919050565b6000612f5a82612e26565b9150612f6583612e26565b925082612f7557612f74612faf565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f62616c616e63654e6f74456e6f75676800000000000000000000000000000000600082015250565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b7f796f7520617265206e6f74206f776e6572000000000000000000000000000000600082015250565b6130af81612de8565b81146130ba57600080fd5b50565b6130c681612dfa565b81146130d157600080fd5b50565b6130dd81612e26565b81146130e857600080fd5b5056fea264697066735822122037ca1bd9b3303424a02ddfc28dd597f11af1c9d83626807e7799de40ce90a9bd64736f6c63430008040033
Deployed Bytecode
0x6080604052600436106101855760003560e01c8063707fb7c3116100d157806395d89b411161008a578063bc76c05211610064578063bc76c05214610591578063cefab2af146105a8578063dd62ed3e146105d3578063f2fde38b146106105761018c565b806395d89b4114610500578063a67755c21461052b578063a9059cbb146105545761018c565b8063707fb7c31461040457806370a082311461042f578063715018a61461046c57806380720140146104835780638da5cb5b146104ac578063936c044b146104d75761018c565b806336b2e0271161013e5780634bf28fd0116101185780634bf28fd01461035a578063553193ca1461038557806365b61b77146103b05780636f39cfcd146103db5761018c565b806336b2e027146102b75780633ecad271146102f45780633f80b6d7146103315761018c565b806306fdde0314610191578063095ea7b3146101bc57806318160ddd146101f957806323b872dd1461022457806327b1a8e914610261578063313ce5671461028c5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a6610639565b6040516101b39190612b6c565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de91906127bc565b6106cb565b6040516101f09190612b36565b60405180910390f35b34801561020557600080fd5b5061020e6106e2565b60405161021b9190612bee565b60405180910390f35b34801561023057600080fd5b5061024b60048036038101906102469190612731565b6106ec565b6040516102589190612b36565b60405180910390f35b34801561026d57600080fd5b50610276610892565b6040516102839190612bee565b60405180910390f35b34801561029857600080fd5b506102a1610898565b6040516102ae9190612c63565b60405180910390f35b3480156102c357600080fd5b506102de60048036038101906102d991906126a3565b6108af565b6040516102eb9190612b36565b60405180910390f35b34801561030057600080fd5b5061031b600480360381019061031691906126a3565b6108cf565b6040516103289190612b36565b60405180910390f35b34801561033d57600080fd5b506103586004803603810190610353919061288f565b6108ef565b005b34801561036657600080fd5b5061036f6109a7565b60405161037c9190612af2565b60405180910390f35b34801561039157600080fd5b5061039a6109cd565b6040516103a79190612bee565b60405180910390f35b3480156103bc57600080fd5b506103c56109d3565b6040516103d29190612b51565b60405180910390f35b3480156103e757600080fd5b5061040260048036038101906103fd91906126a3565b6109f9565b005b34801561041057600080fd5b50610419610acb565b6040516104269190612af2565b60405180910390f35b34801561043b57600080fd5b50610456600480360381019061045191906126a3565b610af5565b6040516104639190612bee565b60405180910390f35b34801561047857600080fd5b50610481610b3e565b005b34801561048f57600080fd5b506104aa60048036038101906104a591906127f8565b610c8a565b005b3480156104b857600080fd5b506104c1610e23565b6040516104ce9190612af2565b60405180910390f35b3480156104e357600080fd5b506104fe60048036038101906104f99190612780565b610e4c565b005b34801561050c57600080fd5b50610515610f35565b6040516105229190612b6c565b60405180910390f35b34801561053757600080fd5b50610552600480360381019061054d91906126a3565b610fc7565b005b34801561056057600080fd5b5061057b600480360381019061057691906127bc565b61119f565b6040516105889190612b36565b60405180910390f35b34801561059d57600080fd5b506105a66111b6565b005b3480156105b457600080fd5b506105bd611270565b6040516105ca9190612b36565b60405180910390f35b3480156105df57600080fd5b506105fa60048036038101906105f591906126f5565b611283565b6040516106079190612bee565b60405180910390f35b34801561061c57600080fd5b50610637600480360381019061063291906126a3565b61130a565b005b60606004805461064890612ea6565b80601f016020809104026020016040519081016040528092919081815260200182805461067490612ea6565b80156106c15780601f10610696576101008083540402835291602001916106c1565b820191906000526020600020905b8154815290600101906020018083116106a457829003601f168201915b5050505050905090565b60006106d83384846114c5565b6001905092915050565b6000600854905090565b60006106f98484846115b0565b600019600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146108875781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108069190612db4565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600190509392505050565b600c5481565b6000600660009054906101000a900460ff16905090565b60076020528060005260406000206000915054906101000a900460ff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461097d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097490612bce565b60405180910390fd5b84600f81905550836010819055508260118190555081601281905550806013819055505050505050565b600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60155481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7e90612bce565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc390612bce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0f90612bce565b60405180910390fd5b60005b82829050811015610e1757610e0466f8b0a10e470000662386f26fc100006001610d936005888888818110610d79577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002016020810190610d8e91906126a3565b6119fd565b610d9d9190612cd3565b610da79190612d5a565b610db19190612cd3565b848484818110610dea577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002016020810190610dff91906126a3565b611a40565b8080610e0f90612ed8565b915050610d1b565b50436015819055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed190612bce565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b606060058054610f4490612ea6565b80601f0160208091040260200160405190810160405280929190818152602001828054610f7090612ea6565b8015610fbd5780601f10610f9257610100808354040283529160200191610fbd565b820191906000526020600020905b815481529060010190602001808311610fa057829003601f168201915b5050505050905090565b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461119c578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110729190612af2565b60206040518083038186803b15801561108a57600080fd5b505afa15801561109e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c29190612866565b6040518363ffffffff1660e01b81526004016110df929190612b0d565b602060405180830381600087803b1580156110f957600080fd5b505af115801561110d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611131919061283d565b50600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561119a573d6000803e3d6000fd5b505b50565b60006111ac3384846115b0565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123b90612bce565b60405180910390fd5b601460009054906101000a900460ff1615601460006101000a81548160ff021916908315150217905550565b601460009054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138f90612bce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611408576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ff90612bae565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115a39190612bee565b60405180910390a3505050565b60006115bb84610af5565b905081811015611600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f790612b8e565b60405180910390fd5b600b60009054906101000a900460ff161561162757611620848484611dc5565b50506119f8565b6000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561168f5750600b60009054906101000a900460ff16155b80156116e55750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561173b5750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561174a5750601354600c54115b156117bc57600083905061175d30610af5565b8111156117a757600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b60008111156117ba576117b981611ee3565b5b505b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118605750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118795750600b60009054906101000a900460ff16155b156119e95760006015541161188d57600080fd5b60019050600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156119385750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561198e5750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119ac57600c60008154809291906119a690612ed8565b91905055505b601460009054906101000a900460ff1680156119c757508183145b156119e857612710836119da9190612d29565b836119e59190612db4565b92505b5b6119f58585858461222c565b50505b505050565b600082424484604051602001611a1593929190612ab5565b6040516020818303038152906040528051906020012060001c611a389190612f4f565b905092915050565b6001600b60006101000a81548160ff0219169083151502179055506000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611ac557600080fd5b505afa158015611ad9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afd91906126cc565b90506000600267ffffffffffffffff811115611b42577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611b705781602001602082028036833780820191505090505b5090508181600081518110611bae577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250503081600181518110611c23577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611c989190612af2565b60206040518083038186803b158015611cb057600080fd5b505afa158015611cc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce89190612866565b9050808511611cf75784611cf9565b805b94506000851415611d0c57505050611da6565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d7958660008588426040518663ffffffff1660e01b8152600401611d70959493929190612c09565b600060405180830381600087803b158015611d8a57600080fd5b505af1158015611d9e573d6000803e3d6000fd5b505050505050505b6000600b60006101000a81548160ff0219169083151502179055505050565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e169190612db4565b9250508190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e6c9190612cd3565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ed09190612bee565b60405180910390a3600190509392505050565b6001600b60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f41577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611f6f5781602001602082028036833780820191505090505b5090503081600081518110611fad577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561204f57600080fd5b505afa158015612063573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208791906126cc565b816001815181106120c1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161215f959493929190612c09565b600060405180830381600087803b15801561217957600080fd5b505af192505050801561218a575060015b61219357612194565b5b6000479050600081111561220c57600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561220a573d6000803e3d6000fd5b505b50506000600b60006101000a81548160ff02191690831515021790555050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122779190612db4565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600081156124cb576000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561233457601254600c541161232957600e5461232d565b6010545b90506123a1565b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123a057601154600c541161239957600d5461239d565b600f545b90505b5b6000606482866123b19190612d5a565b6123bb9190612d29565b905060008111156124c85780836123d29190612cd3565b925080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461241f9190612cd3565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124bf9190612bee565b60405180910390a35b50505b80836124d79190612db4565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125219190612cd3565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83866125bf9190612db4565b6040516125cc9190612bee565b60405180910390a35050505050565b6000813590506125ea816130a6565b92915050565b6000815190506125ff816130a6565b92915050565b60008083601f84011261261757600080fd5b8235905067ffffffffffffffff81111561263057600080fd5b60208301915083602082028301111561264857600080fd5b9250929050565b60008135905061265e816130bd565b92915050565b600081519050612673816130bd565b92915050565b600081359050612688816130d4565b92915050565b60008151905061269d816130d4565b92915050565b6000602082840312156126b557600080fd5b60006126c3848285016125db565b91505092915050565b6000602082840312156126de57600080fd5b60006126ec848285016125f0565b91505092915050565b6000806040838503121561270857600080fd5b6000612716858286016125db565b9250506020612727858286016125db565b9150509250929050565b60008060006060848603121561274657600080fd5b6000612754868287016125db565b9350506020612765868287016125db565b925050604061277686828701612679565b9150509250925092565b6000806040838503121561279357600080fd5b60006127a1858286016125db565b92505060206127b28582860161264f565b9150509250929050565b600080604083850312156127cf57600080fd5b60006127dd858286016125db565b92505060206127ee85828601612679565b9150509250929050565b6000806020838503121561280b57600080fd5b600083013567ffffffffffffffff81111561282557600080fd5b61283185828601612605565b92509250509250929050565b60006020828403121561284f57600080fd5b600061285d84828501612664565b91505092915050565b60006020828403121561287857600080fd5b60006128868482850161268e565b91505092915050565b600080600080600060a086880312156128a757600080fd5b60006128b588828901612679565b95505060206128c688828901612679565b94505060406128d788828901612679565b93505060606128e888828901612679565b92505060806128f988828901612679565b9150509295509295909350565b6000612912838361291e565b60208301905092915050565b61292781612de8565b82525050565b61293681612de8565b82525050565b61294d61294882612de8565b612f21565b82525050565b600061295e82612c8e565b6129688185612cb1565b935061297383612c7e565b8060005b838110156129a457815161298b8882612906565b975061299683612ca4565b925050600181019050612977565b5085935050505092915050565b6129ba81612dfa565b82525050565b6129c981612e3d565b82525050565b6129d881612e61565b82525050565b60006129e982612c99565b6129f38185612cc2565b9350612a03818560208601612e73565b612a0c8161300d565b840191505092915050565b6000612a24601083612cc2565b9150612a2f8261302b565b602082019050919050565b6000612a47600883612cc2565b9150612a5282613054565b602082019050919050565b6000612a6a601183612cc2565b9150612a758261307d565b602082019050919050565b612a8981612e26565b82525050565b612aa0612a9b82612e26565b612f45565b82525050565b612aaf81612e30565b82525050565b6000612ac18286612a8f565b602082019150612ad18285612a8f565b602082019150612ae1828461293c565b601482019150819050949350505050565b6000602082019050612b07600083018461292d565b92915050565b6000604082019050612b22600083018561292d565b612b2f6020830184612a80565b9392505050565b6000602082019050612b4b60008301846129b1565b92915050565b6000602082019050612b6660008301846129c0565b92915050565b60006020820190508181036000830152612b8681846129de565b905092915050565b60006020820190508181036000830152612ba781612a17565b9050919050565b60006020820190508181036000830152612bc781612a3a565b9050919050565b60006020820190508181036000830152612be781612a5d565b9050919050565b6000602082019050612c036000830184612a80565b92915050565b600060a082019050612c1e6000830188612a80565b612c2b60208301876129cf565b8181036040830152612c3d8186612953565b9050612c4c606083018561292d565b612c596080830184612a80565b9695505050505050565b6000602082019050612c786000830184612aa6565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612cde82612e26565b9150612ce983612e26565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612d1e57612d1d612f80565b5b828201905092915050565b6000612d3482612e26565b9150612d3f83612e26565b925082612d4f57612d4e612faf565b5b828204905092915050565b6000612d6582612e26565b9150612d7083612e26565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612da957612da8612f80565b5b828202905092915050565b6000612dbf82612e26565b9150612dca83612e26565b925082821015612ddd57612ddc612f80565b5b828203905092915050565b6000612df382612e06565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612e4882612e4f565b9050919050565b6000612e5a82612e06565b9050919050565b6000612e6c82612e26565b9050919050565b60005b83811015612e91578082015181840152602081019050612e76565b83811115612ea0576000848401525b50505050565b60006002820490506001821680612ebe57607f821691505b60208210811415612ed257612ed1612fde565b5b50919050565b6000612ee382612e26565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612f1657612f15612f80565b5b600182019050919050565b6000612f2c82612f33565b9050919050565b6000612f3e8261301e565b9050919050565b6000819050919050565b6000612f5a82612e26565b9150612f6583612e26565b925082612f7557612f74612faf565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f62616c616e63654e6f74456e6f75676800000000000000000000000000000000600082015250565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b7f796f7520617265206e6f74206f776e6572000000000000000000000000000000600082015250565b6130af81612de8565b81146130ba57600080fd5b50565b6130c681612dfa565b81146130d157600080fd5b50565b6130dd81612e26565b81146130e857600080fd5b5056fea264697066735822122037ca1bd9b3303424a02ddfc28dd597f11af1c9d83626807e7799de40ce90a9bd64736f6c63430008040033
Deployed Bytecode Sourcemap
2999:9296:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5194:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5957:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5398:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6124:336;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6920:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5296:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3292:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3436:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7238:406;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3566:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10151:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3391:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4871:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4987:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5506:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2622:148;;;;;;;;;;;;;:::i;:::-;;10188:237;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2425:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12134:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5088:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11300:262;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5633:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7690:87;;;;;;;;;;;;;:::i;:::-;;7652:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5806:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2778:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5194:94;5242:13;5275:5;5268:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5194:94;:::o;5957:159::-;6032:4;6049:37;6058:10;6070:7;6079:6;6049:8;:37::i;:::-;6104:4;6097:11;;5957:159;;;;:::o;5398:100::-;5451:7;5478:12;;5471:19;;5398:100;:::o;6124:336::-;6222:4;6239:36;6249:6;6257:9;6268:6;6239:9;:36::i;:::-;3555:1;3546:11;6290;:19;6302:6;6290:19;;;;;;;;;;;;;;;:31;6310:10;6290:31;;;;;;;;;;;;;;;;:38;6286:145;;6413:6;6379:11;:19;6391:6;6379:19;;;;;;;;;;;;;;;:31;6399:10;6379:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;6345:11;:19;6357:6;6345:19;;;;;;;;;;;;;;;:31;6365:10;6345:31;;;;;;;;;;;;;;;:74;;;;6286:145;6448:4;6441:11;;6124:336;;;;;:::o;6920:26::-;;;;:::o;5296:94::-;5348:5;5373:9;;;;;;;;;;;5366:16;;5296:94;:::o;3292:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;3436:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;7238:406::-;2562:10;2552:20;;:6;;;;;;;;;;:20;;;2544:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;7460:6:::1;7445:12;:21;;;;7493:7;7477:13;:23;;;;7529:12;7511:15;:30;;;;7571:13;7552:16;:32;;;;7616:20;7595:18;:41;;;;7238:406:::0;;;;;:::o;3566:27::-;;;;;;;;;;;;;:::o;10151:30::-;;;;:::o;3391:36::-;;;;;;;;;;;;;:::o;4871:110::-;2562:10;2552:20;;:6;;;;;;;;;;:20;;;2544:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;4966:7:::1;4952:11;;:21;;;;;;;;;;;;;;;;;;4871:110:::0;:::o;4987:93::-;5034:7;5061:11;;;;;;;;;;;5054:18;;4987:93;:::o;5506:119::-;5572:7;5599:9;:18;5609:7;5599:18;;;;;;;;;;;;;;;;5592:25;;5506:119;;;:::o;2622:148::-;2562:10;2552:20;;:6;;;;;;;;;;:20;;;2544:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;2729:1:::1;2692:40;;2713:6;::::0;::::1;;;;;;;;2692:40;;;;;;;;;;;;2760:1;2743:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2622:148::o:0;10188:237::-;2562:10;2552:20;;:6;;;;;;;;;;:20;;;2544:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;10265:6:::1;10261:116;10276:4;;:11;;10274:1;:13;10261:116;;;10307:58;10347:8;10340:6;10337:1;10319:17;10326:1;10328:4;;10333:1;10328:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10319:6;:17::i;:::-;:19;;;;:::i;:::-;10318:28;;;;:::i;:::-;:37;;;;:::i;:::-;10357:4;;10362:1;10357:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10307:9;:58::i;:::-;10288:3;;;;;:::i;:::-;;;;10261:116;;;;10405:12;10387:15;:30;;;;10188:237:::0;;:::o;2425:79::-;2463:7;2490:6;;;;;;;;;;;2483:13;;2425:79;:::o;12134:121::-;2562:10;2552:20;;:6;;;;;;;;;;:20;;;2544:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;12242:5:::1;12213:17;:26;12231:7;12213:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;12134:121:::0;;:::o;5088:98::-;5138:13;5171:7;5164:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5088:98;:::o;11300:262::-;11378:4;11360:23;;:6;:23;;;11357:198;;11406:6;11399:23;;;11423:11;;;;;;;;;;;11443:6;11436:24;;;11469:4;11436:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11399:77;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11499:11;;;;;;;;;;;11491:29;;:52;11521:21;11491:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11357:198;11300:262;:::o;5633:165::-;5711:4;5728:40;5738:10;5750:9;5761:6;5728:9;:40::i;:::-;5786:4;5779:11;;5633:165;;;;:::o;7690:87::-;2562:10;2552:20;;:6;;;;;;;;;;:20;;;2544:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;7757:12:::1;;;;;;;;;;;7756:13;7741:12;;:28;;;;;;;;;;;;;;;;;;7690:87::o:0;7652:31::-;;;;;;;;;;;;;:::o;5806:143::-;5887:7;5914:11;:18;5926:5;5914:18;;;;;;;;;;;;;;;:27;5933:7;5914:27;;;;;;;;;;;;;;;;5907:34;;5806:143;;;;:::o;2778:214::-;2562:10;2552:20;;:6;;;;;;;;;;:20;;;2544:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;2887:1:::1;2867:22;;:8;:22;;;;2859:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;2947:8;2918:38;;2939:6;::::0;::::1;;;;;;;;2918:38;;;;;;;;;;;;2976:8;2967:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2778:214:::0;:::o;6468:177::-;6583:6;6553:11;:18;6565:5;6553:18;;;;;;;;;;;;;;;:27;6572:7;6553:27;;;;;;;;;;;;;;;:36;;;;6621:7;6605:32;;6614:5;6605:32;;;6630:6;6605:32;;;;;;:::i;:::-;;;;;;;;6468:177;;;:::o;7785:1319::-;7899:15;7917;7927:4;7917:9;:15::i;:::-;7899:33;;7962:6;7951:7;:17;;7943:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;8006:6;;;;;;;;;;;8002:91;;;8028:32;8043:4;8049:2;8053:6;8028:14;:32::i;:::-;;8075:7;;;8002:91;8105:12;8134;:16;8147:2;8134:16;;;;;;;;;;;;;;;;;;;;;;;;;:27;;;;;8155:6;;;;;;;;;;;8154:7;8134:27;:55;;;;;8166:17;:23;8184:4;8166:23;;;;;;;;;;;;;;;;;;;;;;;;;8165:24;8134:55;:81;;;;;8194:17;:21;8212:2;8194:21;;;;;;;;;;;;;;;;;;;;;;;;;8193:22;8134:81;:115;;;;;8231:18;;8219:9;;:30;8134:115;8130:413;;;8266:21;8290:6;8266:30;;8331:24;8349:4;8331:9;:24::i;:::-;8315:13;:40;8311:120;;;8391:9;:24;8409:4;8391:24;;;;;;;;;;;;;;;;8375:40;;8311:120;8465:1;8449:13;:17;8445:87;;;8486:30;8502:13;8486:15;:30::i;:::-;8445:87;8130:413;;8560:17;:23;8578:4;8560:23;;;;;;;;;;;;;;;;;;;;;;;;;8559:24;:50;;;;;8588:17;:21;8606:2;8588:21;;;;;;;;;;;;;;;;;;;;;;;;;8587:22;8559:50;:61;;;;;8614:6;;;;;;;;;;;8613:7;8559:61;8555:488;;;8663:1;8645:15;;:19;8637:28;;;;;;8690:4;8680:14;;8752:12;:18;8765:4;8752:18;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;8788:14;;;;;;;;;;;8774:29;;:2;:29;;;;8752:51;:77;;;;;8808:17;:21;8826:2;8808:21;;;;;;;;;;;;;;;;;;;;;;;;;8807:22;8752:77;8748:129;;;8850:9;;:11;;;;;;;;;:::i;:::-;;;;;;8748:129;8926:12;;;;;;;;;;;:33;;;;;8952:7;8942:6;:17;8926:33;8922:108;;;9008:5;8999:6;:14;;;;:::i;:::-;8989:6;:25;;;;:::i;:::-;8980:34;;8922:108;8555:488;9055:41;9070:4;9076:2;9080:6;9088:7;9055:14;:41::i;:::-;7785:1319;;;;;;:::o;11112:180::-;11176:4;11278:6;11232:15;11248:16;11267:5;11215:58;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;11205:69;;;;;;11200:75;;:84;;;;:::i;:::-;11193:91;;11112:180;;;;:::o;10433:671::-;3643:4;3634:6;;:13;;;;;;;;;;;;;;;;;;10515:12:::1;10530:14;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10515:36;;10562:21;10600:1;10586:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10562:40;;10631:4;10613;10618:1;10613:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;10665:4;10647;10652:1;10647:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;10681:12;10703:4;10696:22;;;10727:4;10696:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10681:52;;10772:4;10758:11;:18;:39;;10786:11;10758:39;;;10779:4;10758:39;10744:53;;10827:1;10812:11;:16;10808:29;;;10830:7;;;;;10808:29;10873:14;;;;;;;;;;;:68;;;10956:11;10982:1;11025:4;11052:2;11070:15;10873:223;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3658:1;;;;3679:5:::0;3670:6;;:14;;;;;;;;;;;;;;;;;;10433:671;;:::o;6653:259::-;6746:4;6784:6;6763:9;:17;6773:6;6763:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;6825:6;6801:9;:20;6811:9;6801:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;6864:9;6847:35;;6856:6;6847:35;;;6875:6;6847:35;;;;;;:::i;:::-;;;;;;;;6900:4;6893:11;;6653:259;;;;;:::o;11570:556::-;3643:4;3634:6;;:13;;;;;;;;;;;;;;;;;;11647:21:::1;11685:1;11671:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11647:40;;11716:4;11698;11703:1;11698:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;11742:14;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11732:4;11737:1;11732:7;;;;;;;;;;;;;;;;;;;;;:31;;;;;;;;;::::0;::::1;11778:14;;;;;;;;;;;:65;;;11858:11;11884:1;11900:4;11927;11947:15;11778:195;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;11774:211;;;;;;11997:12;12012:21;11997:36;;12055:1;12048:4;:8;12044:75;;;12080:11;;;;;;;;;;;12072:29;;:35;12102:4;12072:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12044:75;3658:1;;3679:5:::0;3670:6;;:14;;;;;;;;;;;;;;;;;;11570:556;:::o;9112:1031::-;9304:7;9284:9;:17;9294:6;9284:17;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;9264:9;:17;9274:6;9264:17;;;;;;;;;;;;;;;:47;;;;9322:17;9356:7;9352:638;;;9380:14;9413:12;:23;9426:9;9413:23;;;;;;;;;;;;;;;;;;;;;;;;;9409:270;;;9478:16;;9466:9;;:28;:62;;9513:15;;9466:62;;;9497:13;;9466:62;9457:71;;9409:270;;;9554:12;:20;9567:6;9554:20;;;;;;;;;;;;;;;;;;;;;;;;;9550:129;;;9616:15;;9604:9;;:27;:59;;9649:14;;9604:59;;;9634:12;;9604:59;9595:68;;9550:129;9409:270;9693:18;9733:3;9724:6;9714:7;:16;;;;:::i;:::-;:22;;;;:::i;:::-;9693:43;;9768:1;9755:10;:14;9751:228;;;9803:10;9790:23;;;;;:::i;:::-;;;9886:10;9859:9;:24;9877:4;9859:24;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;9832:9;:24;9850:4;9832:24;;;;;;;;;;;;;;;:64;;;;9945:4;9920:43;;9929:6;9920:43;;;9952:10;9920:43;;;;;;:::i;:::-;;;;;;;;9751:228;9352:638;;;10059:9;10049:7;:19;;;;:::i;:::-;10025:9;:20;10035:9;10025:20;;;;;;;;;;;;;;;;:44;;;;:::i;:::-;10002:9;:20;10012:9;10002:20;;;;;;;;;;;;;;;:67;;;;10102:9;10085:48;;10094:6;10085:48;;;10123:9;10113:7;:19;;;;:::i;:::-;10085:48;;;;;;:::i;:::-;;;;;;;;9112:1031;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;318:367::-;391:8;401:6;451:3;444:4;436:6;432:17;428:27;418:2;;469:1;466;459:12;418:2;505:6;492:20;482:30;;535:18;527:6;524:30;521:2;;;567:1;564;557:12;521:2;604:4;596:6;592:17;580:29;;658:3;650:4;642:6;638:17;628:8;624:32;621:41;618:2;;;675:1;672;665:12;618:2;408:277;;;;;:::o;691:133::-;734:5;772:6;759:20;750:29;;788:30;812:5;788:30;:::i;:::-;740:84;;;;:::o;830:137::-;884:5;915:6;909:13;900:22;;931:30;955:5;931:30;:::i;:::-;890:77;;;;:::o;973:139::-;1019:5;1057:6;1044:20;1035:29;;1073:33;1100:5;1073:33;:::i;:::-;1025:87;;;;:::o;1118:143::-;1175:5;1206:6;1200:13;1191:22;;1222:33;1249:5;1222:33;:::i;:::-;1181:80;;;;:::o;1267:262::-;1326:6;1375:2;1363:9;1354:7;1350:23;1346:32;1343:2;;;1391:1;1388;1381:12;1343:2;1434:1;1459:53;1504:7;1495:6;1484:9;1480:22;1459:53;:::i;:::-;1449:63;;1405:117;1333:196;;;;:::o;1535:284::-;1605:6;1654:2;1642:9;1633:7;1629:23;1625:32;1622:2;;;1670:1;1667;1660:12;1622:2;1713:1;1738:64;1794:7;1785:6;1774:9;1770:22;1738:64;:::i;:::-;1728:74;;1684:128;1612:207;;;;:::o;1825:407::-;1893:6;1901;1950:2;1938:9;1929:7;1925:23;1921:32;1918:2;;;1966:1;1963;1956:12;1918:2;2009:1;2034:53;2079:7;2070:6;2059:9;2055:22;2034:53;:::i;:::-;2024:63;;1980:117;2136:2;2162:53;2207:7;2198:6;2187:9;2183:22;2162:53;:::i;:::-;2152:63;;2107:118;1908:324;;;;;:::o;2238:552::-;2315:6;2323;2331;2380:2;2368:9;2359:7;2355:23;2351:32;2348:2;;;2396:1;2393;2386:12;2348:2;2439:1;2464:53;2509:7;2500:6;2489:9;2485:22;2464:53;:::i;:::-;2454:63;;2410:117;2566:2;2592:53;2637:7;2628:6;2617:9;2613:22;2592:53;:::i;:::-;2582:63;;2537:118;2694:2;2720:53;2765:7;2756:6;2745:9;2741:22;2720:53;:::i;:::-;2710:63;;2665:118;2338:452;;;;;:::o;2796:401::-;2861:6;2869;2918:2;2906:9;2897:7;2893:23;2889:32;2886:2;;;2934:1;2931;2924:12;2886:2;2977:1;3002:53;3047:7;3038:6;3027:9;3023:22;3002:53;:::i;:::-;2992:63;;2948:117;3104:2;3130:50;3172:7;3163:6;3152:9;3148:22;3130:50;:::i;:::-;3120:60;;3075:115;2876:321;;;;;:::o;3203:407::-;3271:6;3279;3328:2;3316:9;3307:7;3303:23;3299:32;3296:2;;;3344:1;3341;3334:12;3296:2;3387:1;3412:53;3457:7;3448:6;3437:9;3433:22;3412:53;:::i;:::-;3402:63;;3358:117;3514:2;3540:53;3585:7;3576:6;3565:9;3561:22;3540:53;:::i;:::-;3530:63;;3485:118;3286:324;;;;;:::o;3616:425::-;3702:6;3710;3759:2;3747:9;3738:7;3734:23;3730:32;3727:2;;;3775:1;3772;3765:12;3727:2;3846:1;3835:9;3831:17;3818:31;3876:18;3868:6;3865:30;3862:2;;;3908:1;3905;3898:12;3862:2;3944:80;4016:7;4007:6;3996:9;3992:22;3944:80;:::i;:::-;3926:98;;;;3789:245;3717:324;;;;;:::o;4047:278::-;4114:6;4163:2;4151:9;4142:7;4138:23;4134:32;4131:2;;;4179:1;4176;4169:12;4131:2;4222:1;4247:61;4300:7;4291:6;4280:9;4276:22;4247:61;:::i;:::-;4237:71;;4193:125;4121:204;;;;:::o;4331:284::-;4401:6;4450:2;4438:9;4429:7;4425:23;4421:32;4418:2;;;4466:1;4463;4456:12;4418:2;4509:1;4534:64;4590:7;4581:6;4570:9;4566:22;4534:64;:::i;:::-;4524:74;;4480:128;4408:207;;;;:::o;4621:844::-;4716:6;4724;4732;4740;4748;4797:3;4785:9;4776:7;4772:23;4768:33;4765:2;;;4814:1;4811;4804:12;4765:2;4857:1;4882:53;4927:7;4918:6;4907:9;4903:22;4882:53;:::i;:::-;4872:63;;4828:117;4984:2;5010:53;5055:7;5046:6;5035:9;5031:22;5010:53;:::i;:::-;5000:63;;4955:118;5112:2;5138:53;5183:7;5174:6;5163:9;5159:22;5138:53;:::i;:::-;5128:63;;5083:118;5240:2;5266:53;5311:7;5302:6;5291:9;5287:22;5266:53;:::i;:::-;5256:63;;5211:118;5368:3;5395:53;5440:7;5431:6;5420:9;5416:22;5395:53;:::i;:::-;5385:63;;5339:119;4755:710;;;;;;;;:::o;5471:179::-;5540:10;5561:46;5603:3;5595:6;5561:46;:::i;:::-;5639:4;5634:3;5630:14;5616:28;;5551:99;;;;:::o;5656:108::-;5733:24;5751:5;5733:24;:::i;:::-;5728:3;5721:37;5711:53;;:::o;5770:118::-;5857:24;5875:5;5857:24;:::i;:::-;5852:3;5845:37;5835:53;;:::o;5894:157::-;5999:45;6019:24;6037:5;6019:24;:::i;:::-;5999:45;:::i;:::-;5994:3;5987:58;5977:74;;:::o;6087:732::-;6206:3;6235:54;6283:5;6235:54;:::i;:::-;6305:86;6384:6;6379:3;6305:86;:::i;:::-;6298:93;;6415:56;6465:5;6415:56;:::i;:::-;6494:7;6525:1;6510:284;6535:6;6532:1;6529:13;6510:284;;;6611:6;6605:13;6638:63;6697:3;6682:13;6638:63;:::i;:::-;6631:70;;6724:60;6777:6;6724:60;:::i;:::-;6714:70;;6570:224;6557:1;6554;6550:9;6545:14;;6510:284;;;6514:14;6810:3;6803:10;;6211:608;;;;;;;:::o;6825:109::-;6906:21;6921:5;6906:21;:::i;:::-;6901:3;6894:34;6884:50;;:::o;6940:175::-;7049:59;7102:5;7049:59;:::i;:::-;7044:3;7037:72;7027:88;;:::o;7121:147::-;7216:45;7255:5;7216:45;:::i;:::-;7211:3;7204:58;7194:74;;:::o;7274:364::-;7362:3;7390:39;7423:5;7390:39;:::i;:::-;7445:71;7509:6;7504:3;7445:71;:::i;:::-;7438:78;;7525:52;7570:6;7565:3;7558:4;7551:5;7547:16;7525:52;:::i;:::-;7602:29;7624:6;7602:29;:::i;:::-;7597:3;7593:39;7586:46;;7366:272;;;;;:::o;7644:366::-;7786:3;7807:67;7871:2;7866:3;7807:67;:::i;:::-;7800:74;;7883:93;7972:3;7883:93;:::i;:::-;8001:2;7996:3;7992:12;7985:19;;7790:220;;;:::o;8016:365::-;8158:3;8179:66;8243:1;8238:3;8179:66;:::i;:::-;8172:73;;8254:93;8343:3;8254:93;:::i;:::-;8372:2;8367:3;8363:12;8356:19;;8162:219;;;:::o;8387:366::-;8529:3;8550:67;8614:2;8609:3;8550:67;:::i;:::-;8543:74;;8626:93;8715:3;8626:93;:::i;:::-;8744:2;8739:3;8735:12;8728:19;;8533:220;;;:::o;8759:118::-;8846:24;8864:5;8846:24;:::i;:::-;8841:3;8834:37;8824:53;;:::o;8883:157::-;8988:45;9008:24;9026:5;9008:24;:::i;:::-;8988:45;:::i;:::-;8983:3;8976:58;8966:74;;:::o;9046:112::-;9129:22;9145:5;9129:22;:::i;:::-;9124:3;9117:35;9107:51;;:::o;9164:538::-;9332:3;9347:75;9418:3;9409:6;9347:75;:::i;:::-;9447:2;9442:3;9438:12;9431:19;;9460:75;9531:3;9522:6;9460:75;:::i;:::-;9560:2;9555:3;9551:12;9544:19;;9573:75;9644:3;9635:6;9573:75;:::i;:::-;9673:2;9668:3;9664:12;9657:19;;9693:3;9686:10;;9336:366;;;;;;:::o;9708:222::-;9801:4;9839:2;9828:9;9824:18;9816:26;;9852:71;9920:1;9909:9;9905:17;9896:6;9852:71;:::i;:::-;9806:124;;;;:::o;9936:332::-;10057:4;10095:2;10084:9;10080:18;10072:26;;10108:71;10176:1;10165:9;10161:17;10152:6;10108:71;:::i;:::-;10189:72;10257:2;10246:9;10242:18;10233:6;10189:72;:::i;:::-;10062:206;;;;;:::o;10274:210::-;10361:4;10399:2;10388:9;10384:18;10376:26;;10412:65;10474:1;10463:9;10459:17;10450:6;10412:65;:::i;:::-;10366:118;;;;:::o;10490:266::-;10605:4;10643:2;10632:9;10628:18;10620:26;;10656:93;10746:1;10735:9;10731:17;10722:6;10656:93;:::i;:::-;10610:146;;;;:::o;10762:313::-;10875:4;10913:2;10902:9;10898:18;10890:26;;10962:9;10956:4;10952:20;10948:1;10937:9;10933:17;10926:47;10990:78;11063:4;11054:6;10990:78;:::i;:::-;10982:86;;10880:195;;;;:::o;11081:419::-;11247:4;11285:2;11274:9;11270:18;11262:26;;11334:9;11328:4;11324:20;11320:1;11309:9;11305:17;11298:47;11362:131;11488:4;11362:131;:::i;:::-;11354:139;;11252:248;;;:::o;11506:419::-;11672:4;11710:2;11699:9;11695:18;11687:26;;11759:9;11753:4;11749:20;11745:1;11734:9;11730:17;11723:47;11787:131;11913:4;11787:131;:::i;:::-;11779:139;;11677:248;;;:::o;11931:419::-;12097:4;12135:2;12124:9;12120:18;12112:26;;12184:9;12178:4;12174:20;12170:1;12159:9;12155:17;12148:47;12212:131;12338:4;12212:131;:::i;:::-;12204:139;;12102:248;;;:::o;12356:222::-;12449:4;12487:2;12476:9;12472:18;12464:26;;12500:71;12568:1;12557:9;12553:17;12544:6;12500:71;:::i;:::-;12454:124;;;;:::o;12584:831::-;12847:4;12885:3;12874:9;12870:19;12862:27;;12899:71;12967:1;12956:9;12952:17;12943:6;12899:71;:::i;:::-;12980:80;13056:2;13045:9;13041:18;13032:6;12980:80;:::i;:::-;13107:9;13101:4;13097:20;13092:2;13081:9;13077:18;13070:48;13135:108;13238:4;13229:6;13135:108;:::i;:::-;13127:116;;13253:72;13321:2;13310:9;13306:18;13297:6;13253:72;:::i;:::-;13335:73;13403:3;13392:9;13388:19;13379:6;13335:73;:::i;:::-;12852:563;;;;;;;;:::o;13421:214::-;13510:4;13548:2;13537:9;13533:18;13525:26;;13561:67;13625:1;13614:9;13610:17;13601:6;13561:67;:::i;:::-;13515:120;;;;:::o;13641:132::-;13708:4;13731:3;13723:11;;13761:4;13756:3;13752:14;13744:22;;13713:60;;;:::o;13779:114::-;13846:6;13880:5;13874:12;13864:22;;13853:40;;;:::o;13899:99::-;13951:6;13985:5;13979:12;13969:22;;13958:40;;;:::o;14004:113::-;14074:4;14106;14101:3;14097:14;14089:22;;14079:38;;;:::o;14123:184::-;14222:11;14256:6;14251:3;14244:19;14296:4;14291:3;14287:14;14272:29;;14234:73;;;;:::o;14313:169::-;14397:11;14431:6;14426:3;14419:19;14471:4;14466:3;14462:14;14447:29;;14409:73;;;;:::o;14488:305::-;14528:3;14547:20;14565:1;14547:20;:::i;:::-;14542:25;;14581:20;14599:1;14581:20;:::i;:::-;14576:25;;14735:1;14667:66;14663:74;14660:1;14657:81;14654:2;;;14741:18;;:::i;:::-;14654:2;14785:1;14782;14778:9;14771:16;;14532:261;;;;:::o;14799:185::-;14839:1;14856:20;14874:1;14856:20;:::i;:::-;14851:25;;14890:20;14908:1;14890:20;:::i;:::-;14885:25;;14929:1;14919:2;;14934:18;;:::i;:::-;14919:2;14976:1;14973;14969:9;14964:14;;14841:143;;;;:::o;14990:348::-;15030:7;15053:20;15071:1;15053:20;:::i;:::-;15048:25;;15087:20;15105:1;15087:20;:::i;:::-;15082:25;;15275:1;15207:66;15203:74;15200:1;15197:81;15192:1;15185:9;15178:17;15174:105;15171:2;;;15282:18;;:::i;:::-;15171:2;15330:1;15327;15323:9;15312:20;;15038:300;;;;:::o;15344:191::-;15384:4;15404:20;15422:1;15404:20;:::i;:::-;15399:25;;15438:20;15456:1;15438:20;:::i;:::-;15433:25;;15477:1;15474;15471:8;15468:2;;;15482:18;;:::i;:::-;15468:2;15527:1;15524;15520:9;15512:17;;15389:146;;;;:::o;15541:96::-;15578:7;15607:24;15625:5;15607:24;:::i;:::-;15596:35;;15586:51;;;:::o;15643:90::-;15677:7;15720:5;15713:13;15706:21;15695:32;;15685:48;;;:::o;15739:126::-;15776:7;15816:42;15809:5;15805:54;15794:65;;15784:81;;;:::o;15871:77::-;15908:7;15937:5;15926:16;;15916:32;;;:::o;15954:86::-;15989:7;16029:4;16022:5;16018:16;16007:27;;15997:43;;;:::o;16046:170::-;16118:9;16151:59;16204:5;16151:59;:::i;:::-;16138:72;;16128:88;;;:::o;16222:135::-;16294:9;16327:24;16345:5;16327:24;:::i;:::-;16314:37;;16304:53;;;:::o;16363:121::-;16421:9;16454:24;16472:5;16454:24;:::i;:::-;16441:37;;16431:53;;;:::o;16490:307::-;16558:1;16568:113;16582:6;16579:1;16576:13;16568:113;;;16667:1;16662:3;16658:11;16652:18;16648:1;16643:3;16639:11;16632:39;16604:2;16601:1;16597:10;16592:15;;16568:113;;;16699:6;16696:1;16693:13;16690:2;;;16779:1;16770:6;16765:3;16761:16;16754:27;16690:2;16539:258;;;;:::o;16803:320::-;16847:6;16884:1;16878:4;16874:12;16864:22;;16931:1;16925:4;16921:12;16952:18;16942:2;;17008:4;17000:6;16996:17;16986:27;;16942:2;17070;17062:6;17059:14;17039:18;17036:38;17033:2;;;17089:18;;:::i;:::-;17033:2;16854:269;;;;:::o;17129:233::-;17168:3;17191:24;17209:5;17191:24;:::i;:::-;17182:33;;17237:66;17230:5;17227:77;17224:2;;;17307:18;;:::i;:::-;17224:2;17354:1;17347:5;17343:13;17336:20;;17172:190;;;:::o;17368:100::-;17407:7;17436:26;17456:5;17436:26;:::i;:::-;17425:37;;17415:53;;;:::o;17474:94::-;17513:7;17542:20;17556:5;17542:20;:::i;:::-;17531:31;;17521:47;;;:::o;17574:79::-;17613:7;17642:5;17631:16;;17621:32;;;:::o;17659:176::-;17691:1;17708:20;17726:1;17708:20;:::i;:::-;17703:25;;17742:20;17760:1;17742:20;:::i;:::-;17737:25;;17781:1;17771:2;;17786:18;;:::i;:::-;17771:2;17827:1;17824;17820:9;17815:14;;17693:142;;;;:::o;17841:180::-;17889:77;17886:1;17879:88;17986:4;17983:1;17976:15;18010:4;18007:1;18000:15;18027:180;18075:77;18072:1;18065:88;18172:4;18169:1;18162:15;18196:4;18193:1;18186:15;18213:180;18261:77;18258:1;18251:88;18358:4;18355:1;18348:15;18382:4;18379:1;18372:15;18399:102;18440:6;18491:2;18487:7;18482:2;18475:5;18471:14;18467:28;18457:38;;18447:54;;;:::o;18507:94::-;18540:8;18588:5;18584:2;18580:14;18559:35;;18549:52;;;:::o;18607:166::-;18747:18;18743:1;18735:6;18731:14;18724:42;18713:60;:::o;18779:158::-;18919:10;18915:1;18907:6;18903:14;18896:34;18885:52;:::o;18943:167::-;19083:19;19079:1;19071:6;19067:14;19060:43;19049:61;:::o;19116:122::-;19189:24;19207:5;19189:24;:::i;:::-;19182:5;19179:35;19169:2;;19228:1;19225;19218:12;19169:2;19159:79;:::o;19244:116::-;19314:21;19329:5;19314:21;:::i;:::-;19307:5;19304:32;19294:2;;19350:1;19347;19340:12;19294:2;19284:76;:::o;19366:122::-;19439:24;19457:5;19439:24;:::i;:::-;19432:5;19429:35;19419:2;;19478:1;19475;19468:12;19419:2;19409:79;:::o
Swarm Source
ipfs://37ca1bd9b3303424a02ddfc28dd597f11af1c9d83626807e7799de40ce90a9bd
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.