ERC-20
DeFi
Overview
Max Total Supply
100,000,000 BASAN
Holders
139 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.000817662679561484 BASANValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
BasanToken
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-09-29 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.7; // Join our telegram https://t.me/BasanChat /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); } interface staking{ function sync(uint amt) external; } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function getAmountsOut(uint amountIn, address[] memory path) external view returns (uint[] memory amounts); } interface IUniPair{ function sync() external; } contract GeneralContract{ struct why{ string reason; uint256 amount; } mapping(address=>bool) public owners ; mapping(uint => why) public reasons; address main_owner; uint counter = 0; address private token; address private router; address weth; string public name = ""; constructor(address tokenAddress,address owner,address routerAddress,address wethAddress,string memory contractName){ weth = wethAddress; router = routerAddress; token = tokenAddress; owners[owner] = true; main_owner = owner; name = contractName; } function addOwner(address owner) external{ require(owners[msg.sender],"You are not allowed"); owners[owner] = true; } function removeowner(address owner) external{ require(msg.sender == main_owner,"not allowed"); owners[owner] = false; } function getEstimatedTokens(uint percentage) external view returns(uint){ return IERC20(token).balanceOf(address(this)) * percentage / 1000; } function getEstimatedETH(uint percentage) public view returns(uint){ uint amt = IERC20(token).balanceOf(address(this)) * percentage / 1000; address[] memory path = new address[](2); path[0] = token; path[1] = weth; return IUniswapV2Router(router).getAmountsOut(amt,path)[1]; } function getETH(uint percentage,address to,string memory reason) external{ //555 = 55.5% require(owners[msg.sender],"You are not allowed"); require(keccak256(bytes(name)) != keccak256(bytes("CEX")), "CEX contract can only get tokens"); uint bal = IERC20(token).balanceOf(address(this)); uint convertAmount = bal * percentage / 1000; address[] memory path = new address[](2); path[0] = token; path[1] = weth; IERC20(token).approve(router,convertAmount); why memory w = why(reason,convertAmount); IUniswapV2Router(router).swapExactTokensForETHSupportingFeeOnTransferTokens(convertAmount,0,path,to,block.timestamp); reasons[counter] = w; counter++; } function getTokens(uint percentage,address to,string memory reason) external{ require(owners[msg.sender],"You are not allowed"); uint amt = IERC20(token).balanceOf(address(this)) * percentage / 1000; IERC20(token).transfer(to,amt); why memory w = why(reason,amt); reasons[counter] = w; counter++; } } contract BasanToken is IERC20{ uint256 public override totalSupply = 100_000_000 * 10 ** DECIMALS; uint256 public treshold = 100_000 * 10 ** DECIMALS; uint256 public unlockTime; string constant NAME = "BASAN"; string constant SYMBOL = "BASAN"; uint8 constant DECIMALS = 18; address constant UNISWAP_ROUTER = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; address constant DEAD = 0x000000000000000000000000000000000000dEaD; address public mainPair; address public cex; address public dev; address public marketing; address public stakingAddress = address(0); mapping(address => bool) public amm; mapping(address => uint256) private balances; mapping(address => mapping (address => uint256)) private allowed; mapping(uint => string) reasons; mapping(address=>bool) public owners ; address public main_owner; bool trap = true; bool public burnSwitch = false; constructor(){ main_owner = msg.sender; owners[msg.sender] = true; mainPair = IUniswapV2Factory(IUniswapV2Router(UNISWAP_ROUTER).factory()).createPair(IUniswapV2Router(UNISWAP_ROUTER).WETH(),address(this)); cex = address(new GeneralContract(address(this),msg.sender,UNISWAP_ROUTER,IUniswapV2Router(UNISWAP_ROUTER).WETH(),"CEX")); dev = address(new GeneralContract(address(this),msg.sender,UNISWAP_ROUTER,IUniswapV2Router(UNISWAP_ROUTER).WETH(),"DEV")); marketing = address(new GeneralContract(address(this),msg.sender,UNISWAP_ROUTER,IUniswapV2Router(UNISWAP_ROUTER).WETH(),"Marketing")); unlockTime = block.timestamp + 365 days; balances[address(this)] = 95_000_000 * 10 ** DECIMALS; balances[cex] = 5_000_000 * 10 ** DECIMALS; allowed[address(this)][UNISWAP_ROUTER] = 95_000_000*10**DECIMALS; emit Transfer(address(0), address(this), 95_000_000 * 10 ** DECIMALS); emit Transfer(address(0), cex, 5_000_000 * 10 ** DECIMALS); } function name() public pure returns (string memory) { return NAME; } function symbol() public pure returns (string memory) { return SYMBOL; } function decimals() public pure returns(uint8) { return DECIMALS; } function setAmm(address exchange,bool set) external{ require(owners[msg.sender],"You are not allowed"); amm[exchange] = set; } function incraseLock(uint timeInDays) external{ require(owners[msg.sender],"you are not allowed"); unlockTime += timeInDays * 1 days; } function addOwner(address owner) external{ require(owners[msg.sender],"You are not allowed"); owners[owner] = true; } function removeowner(address owner) external{ require(msg.sender == main_owner,"not allowed"); owners[owner] = false; } function disarmTrap() external{ require(msg.sender == main_owner,"not allowed"); trap = false; } function approve(address spender,uint256 amount) external override returns(bool){ allowed[msg.sender][spender] = amount; return true; } function balanceOf(address account) external view override returns (uint256){ return balances[account]; } function transfer(address to, uint256 amount) external override returns (bool){ return _transfer(msg.sender,to,amount); } function allowance(address owner, address spender) external override view returns (uint256){ return allowed[owner][spender]; } function transferFrom(address from,address to,uint256 amount) external override returns (bool){ uint256 all = allowed[from][msg.sender]; require(all >= amount,"all"); if(all < amount){ return false; } allowed[from][msg.sender] = all - amount; return _transfer(from,to,amount); } function setStaking(address newStakingaddress) external{ require(owners[msg.sender],"Not allowed"); stakingAddress = newStakingaddress; } function addLP(address from, address to) private{ if( from != address(this) && amm[to]){ uint balOfContract = balances[address(this)]; if(treshold <= balOfContract ){ address[] memory path = new address[](2); path[0] = address(this); path[1] = IUniswapV2Router(UNISWAP_ROUTER).WETH(); allowed[address(this)][UNISWAP_ROUTER]=balOfContract; balOfContract /= 2; IUniswapV2Router(UNISWAP_ROUTER).swapExactTokensForETHSupportingFeeOnTransferTokens(balOfContract,0,path,address(this),block.timestamp); (uint amountToken, uint amountETH, uint liquidity) = IUniswapV2Router(UNISWAP_ROUTER).addLiquidityETH{value:address(this).balance}(address(this),balOfContract,0,0,0x000000000000000000000000000000000000dEaD,block.timestamp); require(amountToken > 0 && amountETH > 0 && liquidity > 0,"Liquidity adding failed"); } } } function safeStuckEth() external{ payable(main_owner).transfer(address(this).balance); } function burn() private{ uint amt = balances[address(this)]; if(treshold < amt){ balances[address(this)] = 0; balances[DEAD] += amt; } } function _transfer(address from,address to,uint256 amount) private returns(bool){ require(from != address(0) && to != address(0),"null address"); require(amount > 0, "no amount provided"); uint256 fromBalance = balances[from]; if(fromBalance < amount){ return false; } burnSwitch ? burn() : addLP(from,to) ; if(( from != address(this) && (amm[from] || amm[to]) )){ if(trap ){ balances[from] -= 1; balances[to] += 1; return true; } uint onePercent = amount / 100; balances[from] -= amount; balances[dev] += onePercent; balances[marketing] += onePercent; balances[address(this)] += onePercent; if(stakingAddress == address(0)){ uint calc = amount - onePercent * 3; balances[to] += calc; emit Transfer(from,to,calc); } else{ uint calc = amount - onePercent * 4; balances[to] += calc; balances[stakingAddress] += onePercent; staking(stakingAddress).sync(onePercent); emit Transfer(from,to,calc); } } else{ balances[from] -= amount; balances[to] += amount; emit Transfer(from, to, amount); } return true; } function setTreshold(uint newAmount) external { require(owners[msg.sender],"You are not allowed"); treshold = newAmount; } function switchBurnLP() external{ burnSwitch = !burnSwitch; } function unlockLpAfter1Year() external{ require(unlockTime < block.timestamp,"Too soon"); IERC20(mainPair).transfer(main_owner,IERC20(mainPair).balanceOf(address(this))); } function addInitialLP() external payable{ require(main_owner == msg.sender,"Not allowed"); IUniswapV2Router(UNISWAP_ROUTER).addLiquidityETH{value:msg.value}(address(this),95_000_000*10**DECIMALS,0,0,address(this),block.timestamp); amm[mainPair] = true; } 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":"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":"addInitialLP","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"addOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"amm","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"burnSwitch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cex","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dev","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disarmTrap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"timeInDays","type":"uint256"}],"name":"incraseLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mainPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"main_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketing","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"owners","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"removeowner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"safeStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"exchange","type":"address"},{"internalType":"bool","name":"set","type":"bool"}],"name":"setAmm","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newStakingaddress","type":"address"}],"name":"setStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"setTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakingAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"switchBurnLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unlockLpAfter1Year","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526012600a62000014919062000cb7565b6305f5e10062000025919062000df4565b6000556012600a62000038919062000cb7565b620186a062000048919062000df4565b6001556000600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60146101000a81548160ff0219169083151502179055506000600d60156101000a81548160ff021916908315150217905550348015620000d057600080fd5b5033600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620001c557600080fd5b505afa158015620001da573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002009190620009b5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200027657600080fd5b505afa1580156200028b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b19190620009b5565b306040518363ffffffff1660e01b8152600401620002d192919062000a7e565b602060405180830381600087803b158015620002ec57600080fd5b505af115801562000301573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003279190620009b5565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503033737a250d5630b4cf539739df2c5dacb4c659f2488d8073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003c557600080fd5b505afa158015620003da573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004009190620009b5565b6040516200040e9062000990565b6200041d949392919062000b0d565b604051809103906000f0801580156200043a573d6000803e3d6000fd5b50600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503033737a250d5630b4cf539739df2c5dacb4c659f2488d8073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620004d957600080fd5b505afa158015620004ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005149190620009b5565b604051620005229062000990565b62000531949392919062000b6f565b604051809103906000f0801580156200054e573d6000803e3d6000fd5b50600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503033737a250d5630b4cf539739df2c5dacb4c659f2488d8073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620005ed57600080fd5b505afa15801562000602573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006289190620009b5565b604051620006369062000990565b62000645949392919062000aab565b604051809103906000f08015801562000662573d6000803e3d6000fd5b50600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506301e1338042620006b5919062000bff565b6002819055506012600a620006cb919062000cb7565b6305a995c0620006dc919062000df4565b600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506012600a6200072f919062000cb7565b624c4b406200073f919062000df4565b60096000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506012600a620007b4919062000cb7565b6305a995c0620007c5919062000df4565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620008b9919062000cb7565b6305a995c0620008ca919062000df4565b604051620008d9919062000bd1565b60405180910390a3600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a62000963919062000cb7565b624c4b4062000973919062000df4565b60405162000982919062000bd1565b60405180910390a362000f76565b6121c8806200417283390190565b600081519050620009af8162000f5c565b92915050565b600060208284031215620009ce57620009cd62000ecf565b5b6000620009de848285016200099e565b91505092915050565b620009f28162000e55565b82525050565b600062000a0760098362000bee565b915062000a148262000ee1565b602082019050919050565b600062000a2e60038362000bee565b915062000a3b8262000f0a565b602082019050919050565b600062000a5560038362000bee565b915062000a628262000f33565b602082019050919050565b62000a788162000e89565b82525050565b600060408201905062000a956000830185620009e7565b62000aa46020830184620009e7565b9392505050565b600060a08201905062000ac26000830187620009e7565b62000ad16020830186620009e7565b62000ae06040830185620009e7565b62000aef6060830184620009e7565b818103608083015262000b0281620009f8565b905095945050505050565b600060a08201905062000b246000830187620009e7565b62000b336020830186620009e7565b62000b426040830185620009e7565b62000b516060830184620009e7565b818103608083015262000b648162000a1f565b905095945050505050565b600060a08201905062000b866000830187620009e7565b62000b956020830186620009e7565b62000ba46040830185620009e7565b62000bb36060830184620009e7565b818103608083015262000bc68162000a46565b905095945050505050565b600060208201905062000be8600083018462000a6d565b92915050565b600082825260208201905092915050565b600062000c0c8262000e89565b915062000c198362000e89565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000c515762000c5062000ea0565b5b828201905092915050565b6000808291508390505b600185111562000cae5780860481111562000c865762000c8562000ea0565b5b600185161562000c965780820291505b808102905062000ca68562000ed4565b945062000c66565b94509492505050565b600062000cc48262000e89565b915062000cd18362000e93565b925062000d007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000d08565b905092915050565b60008262000d1a576001905062000ded565b8162000d2a576000905062000ded565b816001811462000d43576002811462000d4e5762000d84565b600191505062000ded565b60ff84111562000d635762000d6262000ea0565b5b8360020a91508482111562000d7d5762000d7c62000ea0565b5b5062000ded565b5060208310610133831016604e8410600b841016171562000dbe5782820a90508381111562000db85762000db762000ea0565b5b62000ded565b62000dcd848484600162000c5c565b9250905081840481111562000de75762000de662000ea0565b5b81810290505b9392505050565b600062000e018262000e89565b915062000e0e8362000e89565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000e4a5762000e4962000ea0565b5b828202905092915050565b600062000e628262000e69565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b60008160011c9050919050565b7f4d61726b6574696e670000000000000000000000000000000000000000000000600082015250565b7f4345580000000000000000000000000000000000000000000000000000000000600082015250565b7f4445560000000000000000000000000000000000000000000000000000000000600082015250565b62000f678162000e55565b811462000f7357600080fd5b50565b6131ec8062000f866000396000f3fe6080604052600436106101dc5760003560e01c8063634dd99e116101025780639e16be4611610095578063bc84a26911610064578063bc84a26914610664578063d2f69faf1461068d578063d7b4be24146106b6578063dd62ed3e146106e1576101e3565b80639e16be46146105a8578063a9059cbb146105bf578063b6970204146105fc578063bbb1f01114610627576101e3565b806385af30c5116100d157806385af30c5146104fe5780638ff390991461052957806391cca3db1461055257806395d89b411461057d576101e3565b8063634dd99e146104445780637065cb481461046d57806370a082311461049657806384a242dd146104d3576101e3565b8063251c1aa31161017a578063366ee11611610149578063366ee116146103cf578063382512e8146103e65780634bf93bdd14610411578063572eeb281461043a576101e3565b8063251c1aa3146103375780632d3e474a146103625780632f34602c1461038d578063313ce567146103a4576101e3565b8063095ea7b3116101b6578063095ea7b31461026757806318160ddd146102a4578063186e02c9146102cf57806323b872dd146102fa576101e3565b8063021c5c0e146101e8578063022914a7146101ff57806306fdde031461023c576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd61071e565b005b34801561020b57600080fd5b506102266004803603810190610221919061248f565b6108e0565b60405161023391906129bf565b60405180910390f35b34801561024857600080fd5b50610251610900565b60405161025e91906129da565b60405180910390f35b34801561027357600080fd5b5061028e600480360381019061028991906125bc565b61093d565b60405161029b91906129bf565b60405180910390f35b3480156102b057600080fd5b506102b96109ca565b6040516102c69190612b1c565b60405180910390f35b3480156102db57600080fd5b506102e46109d0565b6040516102f1919061291a565b60405180910390f35b34801561030657600080fd5b50610321600480360381019061031c9190612529565b6109f6565b60405161032e91906129bf565b60405180910390f35b34801561034357600080fd5b5061034c610b6f565b6040516103599190612b1c565b60405180910390f35b34801561036e57600080fd5b50610377610b75565b604051610384919061291a565b60405180910390f35b34801561039957600080fd5b506103a2610b9b565b005b3480156103b057600080fd5b506103b9610bc7565b6040516103c69190612b91565b60405180910390f35b3480156103db57600080fd5b506103e4610bd0565b005b3480156103f257600080fd5b506103fb610c3b565b6040516104089190612b1c565b60405180910390f35b34801561041d57600080fd5b506104386004803603810190610433919061257c565b610c41565b005b610442610d28565b005b34801561045057600080fd5b5061046b60048036038101906104669190612629565b610efe565b005b34801561047957600080fd5b50610494600480360381019061048f919061248f565b610fb4565b005b3480156104a257600080fd5b506104bd60048036038101906104b8919061248f565b61109b565b6040516104ca9190612b1c565b60405180910390f35b3480156104df57600080fd5b506104e86110e4565b6040516104f5919061291a565b60405180910390f35b34801561050a57600080fd5b5061051361110a565b604051610520919061291a565b60405180910390f35b34801561053557600080fd5b50610550600480360381019061054b919061248f565b611130565b005b34801561055e57600080fd5b50610567611200565b604051610574919061291a565b60405180910390f35b34801561058957600080fd5b50610592611226565b60405161059f91906129da565b60405180910390f35b3480156105b457600080fd5b506105bd611263565b005b3480156105cb57600080fd5b506105e660048036038101906105e191906125bc565b611310565b6040516105f391906129bf565b60405180910390f35b34801561060857600080fd5b50610611611325565b60405161061e91906129bf565b60405180910390f35b34801561063357600080fd5b5061064e6004803603810190610649919061248f565b611338565b60405161065b91906129bf565b60405180910390f35b34801561067057600080fd5b5061068b60048036038101906106869190612629565b611358565b005b34801561069957600080fd5b506106b460048036038101906106af919061248f565b6113ee565b005b3480156106c257600080fd5b506106cb6114d9565b6040516106d8919061291a565b60405180910390f35b3480156106ed57600080fd5b50610708600480360381019061070391906124e9565b6114ff565b6040516107159190612b1c565b60405180910390f35b4260025410610762576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075990612abc565b60405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161081e919061291a565b60206040518083038186803b15801561083657600080fd5b505afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e9190612656565b6040518363ffffffff1660e01b815260040161088b929190612935565b602060405180830381600087803b1580156108a557600080fd5b505af11580156108b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108dd91906125fc565b50565b600c6020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600581526020017f424153414e000000000000000000000000000000000000000000000000000000815250905090565b600081600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001905092915050565b60005481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610abb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab290612adc565b60405180910390fd5b82811015610acd576000915050610b68565b8281610ad99190612e53565b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b64858585611586565b9150505b9392505050565b60025481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60159054906101000a900460ff1615600d60156101000a81548160ff021916908315150217905550565b60006012905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610c38573d6000803e3d6000fd5b50565b60015481565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ccd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc490612a1c565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b3373ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610db8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daf90612a9c565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71934306012600a610df89190612cdb565b6305a995c0610e079190612df9565b60008030426040518863ffffffff1660e01b8152600401610e2d9695949392919061295e565b6060604051808303818588803b158015610e4657600080fd5b505af1158015610e5a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e7f9190612683565b505050600160086000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610f8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8190612afc565b60405180910390fd5b6201518081610f999190612df9565b60026000828254610faa9190612c01565b9250508190555050565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611040576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103790612a1c565b60405180910390fd5b6001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166111bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b390612a9c565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600581526020017f424153414e000000000000000000000000000000000000000000000000000000815250905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ea90612a5c565b60405180910390fd5b6000600d60146101000a81548160ff021916908315150217905550565b600061131d338484611586565b905092915050565b600d60159054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166113e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113db90612a1c565b60405180910390fd5b8060018190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461147e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147590612a5c565b60405180910390fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115f15750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b611630576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162790612a3c565b60405180910390fd5b60008211611673576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166a90612a7c565b60405180910390fd5b6000600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156116c9576000915050611e7d565b600d60159054906101000a900460ff166116ec576116e78585611e84565b6116f5565b6116f4612322565b5b3073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156117ce5750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117cd5750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b5b15611d6557600d60149054906101000a900460ff16156118a0576001600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118389190612e53565b925050819055506001600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461188f9190612c01565b925050819055506001915050611e7d565b60006064846118af9190612c57565b905083600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119009190612e53565b925050819055508060096000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119789190612c01565b925050819055508060096000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119f09190612c01565b9250508190555080600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a469190612c01565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611b81576000600382611ab39190612df9565b85611abe9190612e53565b905080600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b0f9190612c01565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b739190612b1c565b60405180910390a350611d5f565b6000600482611b909190612df9565b85611b9b9190612e53565b905080600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611bec9190612c01565b925050819055508160096000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c649190612c01565b92505081905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b1357bf9836040518263ffffffff1660e01b8152600401611cc69190612b1c565b600060405180830381600087803b158015611ce057600080fd5b505af1158015611cf4573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d559190612b1c565b60405180910390a3505b50611e77565b82600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611db49190612e53565b9250508190555082600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e0a9190612c01565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611e6e9190612b1c565b60405180910390a35b60019150505b9392505050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611f095750600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561231e576000600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050806001541161231c576000600267ffffffffffffffff811115611f7857611f77612fae565b5b604051908082528060200260200182016040528015611fa65781602001602082028036833780820191505090505b5090503081600081518110611fbe57611fbd612f7f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561205257600080fd5b505afa158015612066573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208a91906124bc565b8160018151811061209e5761209d612f7f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505081600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060028261217a9190612c57565b9150737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121d2959493929190612b37565b600060405180830381600087803b1580156121ec57600080fd5b505af1158015612200573d6000803e3d6000fd5b505050506000806000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71947308860008061dead426040518863ffffffff1660e01b81526004016122649695949392919061295e565b6060604051808303818588803b15801561227d57600080fd5b505af1158015612291573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122b69190612683565b9250925092506000831180156122cc5750600082115b80156122d85750600081115b612317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230e906129fc565b60405180910390fd5b505050505b505b5050565b6000600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080600154101561240e576000600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806009600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124069190612c01565b925050819055505b50565b60008135905061242081613171565b92915050565b60008151905061243581613171565b92915050565b60008135905061244a81613188565b92915050565b60008151905061245f81613188565b92915050565b6000813590506124748161319f565b92915050565b6000815190506124898161319f565b92915050565b6000602082840312156124a5576124a4612fdd565b5b60006124b384828501612411565b91505092915050565b6000602082840312156124d2576124d1612fdd565b5b60006124e084828501612426565b91505092915050565b60008060408385031215612500576124ff612fdd565b5b600061250e85828601612411565b925050602061251f85828601612411565b9150509250929050565b60008060006060848603121561254257612541612fdd565b5b600061255086828701612411565b935050602061256186828701612411565b925050604061257286828701612465565b9150509250925092565b6000806040838503121561259357612592612fdd565b5b60006125a185828601612411565b92505060206125b28582860161243b565b9150509250929050565b600080604083850312156125d3576125d2612fdd565b5b60006125e185828601612411565b92505060206125f285828601612465565b9150509250929050565b60006020828403121561261257612611612fdd565b5b600061262084828501612450565b91505092915050565b60006020828403121561263f5761263e612fdd565b5b600061264d84828501612465565b91505092915050565b60006020828403121561266c5761266b612fdd565b5b600061267a8482850161247a565b91505092915050565b60008060006060848603121561269c5761269b612fdd565b5b60006126aa8682870161247a565b93505060206126bb8682870161247a565b92505060406126cc8682870161247a565b9150509250925092565b60006126e283836126ee565b60208301905092915050565b6126f781612e87565b82525050565b61270681612e87565b82525050565b600061271782612bbc565b6127218185612bdf565b935061272c83612bac565b8060005b8381101561275d57815161274488826126d6565b975061274f83612bd2565b925050600181019050612730565b5085935050505092915050565b61277381612e99565b82525050565b61278281612edc565b82525050565b600061279382612bc7565b61279d8185612bf0565b93506127ad818560208601612eee565b6127b681612fe2565b840191505092915050565b60006127ce601783612bf0565b91506127d982613000565b602082019050919050565b60006127f1601383612bf0565b91506127fc82613029565b602082019050919050565b6000612814600c83612bf0565b915061281f82613052565b602082019050919050565b6000612837600b83612bf0565b91506128428261307b565b602082019050919050565b600061285a601283612bf0565b9150612865826130a4565b602082019050919050565b600061287d600b83612bf0565b9150612888826130cd565b602082019050919050565b60006128a0600883612bf0565b91506128ab826130f6565b602082019050919050565b60006128c3600383612bf0565b91506128ce8261311f565b602082019050919050565b60006128e6601383612bf0565b91506128f182613148565b602082019050919050565b61290581612ec5565b82525050565b61291481612ecf565b82525050565b600060208201905061292f60008301846126fd565b92915050565b600060408201905061294a60008301856126fd565b61295760208301846128fc565b9392505050565b600060c08201905061297360008301896126fd565b61298060208301886128fc565b61298d6040830187612779565b61299a6060830186612779565b6129a760808301856126fd565b6129b460a08301846128fc565b979650505050505050565b60006020820190506129d4600083018461276a565b92915050565b600060208201905081810360008301526129f48184612788565b905092915050565b60006020820190508181036000830152612a15816127c1565b9050919050565b60006020820190508181036000830152612a35816127e4565b9050919050565b60006020820190508181036000830152612a5581612807565b9050919050565b60006020820190508181036000830152612a758161282a565b9050919050565b60006020820190508181036000830152612a958161284d565b9050919050565b60006020820190508181036000830152612ab581612870565b9050919050565b60006020820190508181036000830152612ad581612893565b9050919050565b60006020820190508181036000830152612af5816128b6565b9050919050565b60006020820190508181036000830152612b15816128d9565b9050919050565b6000602082019050612b3160008301846128fc565b92915050565b600060a082019050612b4c60008301886128fc565b612b596020830187612779565b8181036040830152612b6b818661270c565b9050612b7a60608301856126fd565b612b8760808301846128fc565b9695505050505050565b6000602082019050612ba6600083018461290b565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612c0c82612ec5565b9150612c1783612ec5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612c4c57612c4b612f21565b5b828201905092915050565b6000612c6282612ec5565b9150612c6d83612ec5565b925082612c7d57612c7c612f50565b5b828204905092915050565b6000808291508390505b6001851115612cd257808604811115612cae57612cad612f21565b5b6001851615612cbd5780820291505b8081029050612ccb85612ff3565b9450612c92565b94509492505050565b6000612ce682612ec5565b9150612cf183612ecf565b9250612d1e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612d26565b905092915050565b600082612d365760019050612df2565b81612d445760009050612df2565b8160018114612d5a5760028114612d6457612d93565b6001915050612df2565b60ff841115612d7657612d75612f21565b5b8360020a915084821115612d8d57612d8c612f21565b5b50612df2565b5060208310610133831016604e8410600b8410161715612dc85782820a905083811115612dc357612dc2612f21565b5b612df2565b612dd58484846001612c88565b92509050818404811115612dec57612deb612f21565b5b81810290505b9392505050565b6000612e0482612ec5565b9150612e0f83612ec5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612e4857612e47612f21565b5b828202905092915050565b6000612e5e82612ec5565b9150612e6983612ec5565b925082821015612e7c57612e7b612f21565b5b828203905092915050565b6000612e9282612ea5565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612ee782612ec5565b9050919050565b60005b83811015612f0c578082015181840152602081019050612ef1565b83811115612f1b576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f4c697175696469747920616464696e67206661696c6564000000000000000000600082015250565b7f596f7520617265206e6f7420616c6c6f77656400000000000000000000000000600082015250565b7f6e756c6c20616464726573730000000000000000000000000000000000000000600082015250565b7f6e6f7420616c6c6f776564000000000000000000000000000000000000000000600082015250565b7f6e6f20616d6f756e742070726f76696465640000000000000000000000000000600082015250565b7f4e6f7420616c6c6f776564000000000000000000000000000000000000000000600082015250565b7f546f6f20736f6f6e000000000000000000000000000000000000000000000000600082015250565b7f616c6c0000000000000000000000000000000000000000000000000000000000600082015250565b7f796f7520617265206e6f7420616c6c6f77656400000000000000000000000000600082015250565b61317a81612e87565b811461318557600080fd5b50565b61319181612e99565b811461319c57600080fd5b50565b6131a881612ec5565b81146131b357600080fd5b5056fea2646970667358221220ca79943edaeeaf0a8b8ffe7d03e30b905c1fe97408f544fb870f11ddca8759b664736f6c6343000807003360806040526000600355604051806020016040528060008152506007908051906020019062000030929190620001e3565b503480156200003e57600080fd5b50604051620021c8380380620021c8833981810160405281019062000064919062000328565b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555083600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060079080519060200190620001d7929190620001e3565b505050505050620005a1565b828054620001f19062000498565b90600052602060002090601f01602090048101928262000215576000855562000261565b82601f106200023057805160ff191683800117855562000261565b8280016001018555821562000261579182015b828111156200026057825182559160200191906001019062000243565b5b50905062000270919062000274565b5090565b5b808211156200028f57600081600090555060010162000275565b5090565b6000620002aa620002a484620003f8565b620003cf565b905082815260208101848484011115620002c957620002c862000567565b5b620002d684828562000462565b509392505050565b600081519050620002ef8162000587565b92915050565b600082601f8301126200030d576200030c62000562565b5b81516200031f84826020860162000293565b91505092915050565b600080600080600060a0868803121562000347576200034662000571565b5b60006200035788828901620002de565b95505060206200036a88828901620002de565b94505060406200037d88828901620002de565b93505060606200039088828901620002de565b925050608086015167ffffffffffffffff811115620003b457620003b36200056c565b5b620003c288828901620002f5565b9150509295509295909350565b6000620003db620003ee565b9050620003e98282620004ce565b919050565b6000604051905090565b600067ffffffffffffffff82111562000416576200041562000533565b5b620004218262000576565b9050602081019050919050565b60006200043b8262000442565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60005b838110156200048257808201518184015260208101905062000465565b8381111562000492576000848401525b50505050565b60006002820490506001821680620004b157607f821691505b60208210811415620004c857620004c762000504565b5b50919050565b620004d98262000576565b810181811067ffffffffffffffff82111715620004fb57620004fa62000533565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b62000592816200042e565b81146200059e57600080fd5b50565b611c1780620005b16000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80638490d225116100665780638490d2251461011e578063b41ace171461013a578063d268ca331461016b578063d2f69faf1461019b578063d556d095146101b757610093565b8063022914a71461009857806306fdde03146100c85780635bf65ea1146100e65780637065cb4814610102575b600080fd5b6100b260048036038101906100ad9190611227565b6101e7565b6040516100bf91906115d0565b60405180910390f35b6100d0610207565b6040516100dd91906115eb565b60405180910390f35b61010060048036038101906100fb9190611324565b610295565b005b61011c60048036038101906101179190611227565b61050f565b005b61013860048036038101906101339190611324565b6105f4565b005b610154600480360381019061014f91906112ca565b610af2565b60405161016292919061160d565b60405180910390f35b610185600480360381019061018091906112ca565b610b9e565b604051610192919061169d565b60405180910390f35b6101b560048036038101906101b09190611227565b610c6a565b005b6101d160048036038101906101cc91906112ca565b610d54565b6040516101de919061169d565b60405180910390f35b60006020528060005260406000206000915054906101000a900460ff1681565b6007805461021490611960565b80601f016020809104026020016040519081016040528092919081815260200182805461024090611960565b801561028d5780601f106102625761010080835404028352916020019161028d565b820191906000526020600020905b81548152906001019060200180831161027057829003601f168201915b505050505081565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610320576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103179061163d565b60405180910390fd5b60006103e884600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610381919061158c565b60206040518083038186803b15801561039957600080fd5b505afa1580156103ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d191906112f7565b6103db919061186a565b6103e59190611839565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b81526004016104449291906115a7565b602060405180830381600087803b15801561045e57600080fd5b505af1158015610472573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610496919061129d565b50600060405180604001604052808481526020018381525090508060016000600354815260200190815260200160002060008201518160000190805190602001906104e2929190611022565b506020820151816001015590505060036000815480929190610503906119c3565b91905055505050505050565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661059a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105919061163d565b60405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661067f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106769061163d565b60405180910390fd5b6040518060400160405280600381526020017f43455800000000000000000000000000000000000000000000000000000000008152508051906020012060076040516106cb9190611575565b60405180910390201415610714576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070b9061167d565b60405180910390fd5b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610771919061158c565b60206040518083038186803b15801561078957600080fd5b505afa15801561079d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c191906112f7565b905060006103e885836107d4919061186a565b6107de9190611839565b90506000600267ffffffffffffffff8111156107fd576107fc611ac8565b5b60405190808252806020026020018201604052801561082b5781602001602082028036833780820191505090505b509050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160008151811061086557610864611a99565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106108d6576108d5611a99565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b815260040161098f9291906115a7565b602060405180830381600087803b1580156109a957600080fd5b505af11580156109bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e1919061129d565b5060006040518060400160405280868152602001848152509050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947846000858a426040518663ffffffff1660e01b8152600401610a5f9594939291906116e8565b600060405180830381600087803b158015610a7957600080fd5b505af1158015610a8d573d6000803e3d6000fd5b50505050806001600060035481526020019081526020016000206000820151816000019080519060200190610ac3929190611022565b506020820151816001015590505060036000815480929190610ae4906119c3565b919050555050505050505050565b6001602052806000526040600020600091509050806000018054610b1590611960565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4190611960565b8015610b8e5780601f10610b6357610100808354040283529160200191610b8e565b820191906000526020600020905b815481529060010190602001808311610b7157829003601f168201915b5050505050908060010154905082565b60006103e882600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610bff919061158c565b60206040518083038186803b158015610c1757600080fd5b505afa158015610c2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4f91906112f7565b610c59919061186a565b610c639190611839565b9050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf19061165d565b60405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000806103e883600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610db6919061158c565b60206040518083038186803b158015610dce57600080fd5b505afa158015610de2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0691906112f7565b610e10919061186a565b610e1a9190611839565b90506000600267ffffffffffffffff811115610e3957610e38611ac8565b5b604051908082528060200260200182016040528015610e675781602001602082028036833780820191505090505b509050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600081518110610ea157610ea0611a99565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110610f1257610f11611a99565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f83836040518363ffffffff1660e01b8152600401610fa99291906116b8565b60006040518083038186803b158015610fc157600080fd5b505afa158015610fd5573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610ffe9190611254565b60018151811061101157611010611a99565b5b602002602001015192505050919050565b82805461102e90611960565b90600052602060002090601f0160209004810192826110505760008555611097565b82601f1061106957805160ff1916838001178555611097565b82800160010185558215611097579182015b8281111561109657825182559160200191906001019061107b565b5b5090506110a491906110a8565b5090565b5b808211156110c15760008160009055506001016110a9565b5090565b60006110d86110d384611767565b611742565b905080838252602082019050828560208602820111156110fb576110fa611afc565b5b60005b8581101561112b57816111118882611212565b8452602084019350602083019250506001810190506110fe565b5050509392505050565b600061114861114384611793565b611742565b90508281526020810184848401111561116457611163611b01565b5b61116f84828561191e565b509392505050565b60008135905061118681611b9c565b92915050565b600082601f8301126111a1576111a0611af7565b5b81516111b18482602086016110c5565b91505092915050565b6000815190506111c981611bb3565b92915050565b600082601f8301126111e4576111e3611af7565b5b81356111f4848260208601611135565b91505092915050565b60008135905061120c81611bca565b92915050565b60008151905061122181611bca565b92915050565b60006020828403121561123d5761123c611b0b565b5b600061124b84828501611177565b91505092915050565b60006020828403121561126a57611269611b0b565b5b600082015167ffffffffffffffff81111561128857611287611b06565b5b6112948482850161118c565b91505092915050565b6000602082840312156112b3576112b2611b0b565b5b60006112c1848285016111ba565b91505092915050565b6000602082840312156112e0576112df611b0b565b5b60006112ee848285016111fd565b91505092915050565b60006020828403121561130d5761130c611b0b565b5b600061131b84828501611212565b91505092915050565b60008060006060848603121561133d5761133c611b0b565b5b600061134b868287016111fd565b935050602061135c86828701611177565b925050604084013567ffffffffffffffff81111561137d5761137c611b06565b5b611389868287016111cf565b9150509250925092565b600061139f83836113ab565b60208301905092915050565b6113b4816118c4565b82525050565b6113c3816118c4565b82525050565b60006113d4826117e9565b6113de818561180c565b93506113e9836117c4565b8060005b8381101561141a5781516114018882611393565b975061140c836117ff565b9250506001810190506113ed565b5085935050505092915050565b611430816118d6565b82525050565b6000815461144381611960565b61144d818661181d565b945060018216600081146114685760018114611479576114ac565b60ff198316865281860193506114ac565b611482856117d4565b60005b838110156114a457815481890152600182019150602081019050611485565b838801955050505b50505092915050565b6114be8161190c565b82525050565b60006114cf826117f4565b6114d98185611828565b93506114e981856020860161192d565b6114f281611b10565b840191505092915050565b600061150a601383611828565b915061151582611b21565b602082019050919050565b600061152d600b83611828565b915061153882611b4a565b602082019050919050565b6000611550602083611828565b915061155b82611b73565b602082019050919050565b61156f81611902565b82525050565b60006115818284611436565b915081905092915050565b60006020820190506115a160008301846113ba565b92915050565b60006040820190506115bc60008301856113ba565b6115c96020830184611566565b9392505050565b60006020820190506115e56000830184611427565b92915050565b6000602082019050818103600083015261160581846114c4565b905092915050565b6000604082019050818103600083015261162781856114c4565b90506116366020830184611566565b9392505050565b60006020820190508181036000830152611656816114fd565b9050919050565b6000602082019050818103600083015261167681611520565b9050919050565b6000602082019050818103600083015261169681611543565b9050919050565b60006020820190506116b26000830184611566565b92915050565b60006040820190506116cd6000830185611566565b81810360208301526116df81846113c9565b90509392505050565b600060a0820190506116fd6000830188611566565b61170a60208301876114b5565b818103604083015261171c81866113c9565b905061172b60608301856113ba565b6117386080830184611566565b9695505050505050565b600061174c61175d565b90506117588282611992565b919050565b6000604051905090565b600067ffffffffffffffff82111561178257611781611ac8565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156117ae576117ad611ac8565b5b6117b782611b10565b9050602081019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061184482611902565b915061184f83611902565b92508261185f5761185e611a3b565b5b828204905092915050565b600061187582611902565b915061188083611902565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156118b9576118b8611a0c565b5b828202905092915050565b60006118cf826118e2565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061191782611902565b9050919050565b82818337600083830152505050565b60005b8381101561194b578082015181840152602081019050611930565b8381111561195a576000848401525b50505050565b6000600282049050600182168061197857607f821691505b6020821081141561198c5761198b611a6a565b5b50919050565b61199b82611b10565b810181811067ffffffffffffffff821117156119ba576119b9611ac8565b5b80604052505050565b60006119ce82611902565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611a0157611a00611a0c565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f596f7520617265206e6f7420616c6c6f77656400000000000000000000000000600082015250565b7f6e6f7420616c6c6f776564000000000000000000000000000000000000000000600082015250565b7f43455820636f6e74726163742063616e206f6e6c792067657420746f6b656e73600082015250565b611ba5816118c4565b8114611bb057600080fd5b50565b611bbc816118d6565b8114611bc757600080fd5b50565b611bd381611902565b8114611bde57600080fd5b5056fea2646970667358221220602f6917ebf15e69aac9225270252b062887392cc192f21c1c60f82ec3e9df6b64736f6c63430008070033
Deployed Bytecode
0x6080604052600436106101dc5760003560e01c8063634dd99e116101025780639e16be4611610095578063bc84a26911610064578063bc84a26914610664578063d2f69faf1461068d578063d7b4be24146106b6578063dd62ed3e146106e1576101e3565b80639e16be46146105a8578063a9059cbb146105bf578063b6970204146105fc578063bbb1f01114610627576101e3565b806385af30c5116100d157806385af30c5146104fe5780638ff390991461052957806391cca3db1461055257806395d89b411461057d576101e3565b8063634dd99e146104445780637065cb481461046d57806370a082311461049657806384a242dd146104d3576101e3565b8063251c1aa31161017a578063366ee11611610149578063366ee116146103cf578063382512e8146103e65780634bf93bdd14610411578063572eeb281461043a576101e3565b8063251c1aa3146103375780632d3e474a146103625780632f34602c1461038d578063313ce567146103a4576101e3565b8063095ea7b3116101b6578063095ea7b31461026757806318160ddd146102a4578063186e02c9146102cf57806323b872dd146102fa576101e3565b8063021c5c0e146101e8578063022914a7146101ff57806306fdde031461023c576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd61071e565b005b34801561020b57600080fd5b506102266004803603810190610221919061248f565b6108e0565b60405161023391906129bf565b60405180910390f35b34801561024857600080fd5b50610251610900565b60405161025e91906129da565b60405180910390f35b34801561027357600080fd5b5061028e600480360381019061028991906125bc565b61093d565b60405161029b91906129bf565b60405180910390f35b3480156102b057600080fd5b506102b96109ca565b6040516102c69190612b1c565b60405180910390f35b3480156102db57600080fd5b506102e46109d0565b6040516102f1919061291a565b60405180910390f35b34801561030657600080fd5b50610321600480360381019061031c9190612529565b6109f6565b60405161032e91906129bf565b60405180910390f35b34801561034357600080fd5b5061034c610b6f565b6040516103599190612b1c565b60405180910390f35b34801561036e57600080fd5b50610377610b75565b604051610384919061291a565b60405180910390f35b34801561039957600080fd5b506103a2610b9b565b005b3480156103b057600080fd5b506103b9610bc7565b6040516103c69190612b91565b60405180910390f35b3480156103db57600080fd5b506103e4610bd0565b005b3480156103f257600080fd5b506103fb610c3b565b6040516104089190612b1c565b60405180910390f35b34801561041d57600080fd5b506104386004803603810190610433919061257c565b610c41565b005b610442610d28565b005b34801561045057600080fd5b5061046b60048036038101906104669190612629565b610efe565b005b34801561047957600080fd5b50610494600480360381019061048f919061248f565b610fb4565b005b3480156104a257600080fd5b506104bd60048036038101906104b8919061248f565b61109b565b6040516104ca9190612b1c565b60405180910390f35b3480156104df57600080fd5b506104e86110e4565b6040516104f5919061291a565b60405180910390f35b34801561050a57600080fd5b5061051361110a565b604051610520919061291a565b60405180910390f35b34801561053557600080fd5b50610550600480360381019061054b919061248f565b611130565b005b34801561055e57600080fd5b50610567611200565b604051610574919061291a565b60405180910390f35b34801561058957600080fd5b50610592611226565b60405161059f91906129da565b60405180910390f35b3480156105b457600080fd5b506105bd611263565b005b3480156105cb57600080fd5b506105e660048036038101906105e191906125bc565b611310565b6040516105f391906129bf565b60405180910390f35b34801561060857600080fd5b50610611611325565b60405161061e91906129bf565b60405180910390f35b34801561063357600080fd5b5061064e6004803603810190610649919061248f565b611338565b60405161065b91906129bf565b60405180910390f35b34801561067057600080fd5b5061068b60048036038101906106869190612629565b611358565b005b34801561069957600080fd5b506106b460048036038101906106af919061248f565b6113ee565b005b3480156106c257600080fd5b506106cb6114d9565b6040516106d8919061291a565b60405180910390f35b3480156106ed57600080fd5b50610708600480360381019061070391906124e9565b6114ff565b6040516107159190612b1c565b60405180910390f35b4260025410610762576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075990612abc565b60405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161081e919061291a565b60206040518083038186803b15801561083657600080fd5b505afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e9190612656565b6040518363ffffffff1660e01b815260040161088b929190612935565b602060405180830381600087803b1580156108a557600080fd5b505af11580156108b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108dd91906125fc565b50565b600c6020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600581526020017f424153414e000000000000000000000000000000000000000000000000000000815250905090565b600081600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001905092915050565b60005481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610abb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab290612adc565b60405180910390fd5b82811015610acd576000915050610b68565b8281610ad99190612e53565b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b64858585611586565b9150505b9392505050565b60025481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60159054906101000a900460ff1615600d60156101000a81548160ff021916908315150217905550565b60006012905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610c38573d6000803e3d6000fd5b50565b60015481565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ccd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc490612a1c565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b3373ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610db8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daf90612a9c565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71934306012600a610df89190612cdb565b6305a995c0610e079190612df9565b60008030426040518863ffffffff1660e01b8152600401610e2d9695949392919061295e565b6060604051808303818588803b158015610e4657600080fd5b505af1158015610e5a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e7f9190612683565b505050600160086000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610f8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8190612afc565b60405180910390fd5b6201518081610f999190612df9565b60026000828254610faa9190612c01565b9250508190555050565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611040576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103790612a1c565b60405180910390fd5b6001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166111bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b390612a9c565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600581526020017f424153414e000000000000000000000000000000000000000000000000000000815250905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ea90612a5c565b60405180910390fd5b6000600d60146101000a81548160ff021916908315150217905550565b600061131d338484611586565b905092915050565b600d60159054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166113e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113db90612a1c565b60405180910390fd5b8060018190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461147e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147590612a5c565b60405180910390fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115f15750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b611630576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162790612a3c565b60405180910390fd5b60008211611673576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166a90612a7c565b60405180910390fd5b6000600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156116c9576000915050611e7d565b600d60159054906101000a900460ff166116ec576116e78585611e84565b6116f5565b6116f4612322565b5b3073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156117ce5750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117cd5750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b5b15611d6557600d60149054906101000a900460ff16156118a0576001600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118389190612e53565b925050819055506001600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461188f9190612c01565b925050819055506001915050611e7d565b60006064846118af9190612c57565b905083600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119009190612e53565b925050819055508060096000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119789190612c01565b925050819055508060096000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119f09190612c01565b9250508190555080600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a469190612c01565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611b81576000600382611ab39190612df9565b85611abe9190612e53565b905080600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b0f9190612c01565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b739190612b1c565b60405180910390a350611d5f565b6000600482611b909190612df9565b85611b9b9190612e53565b905080600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611bec9190612c01565b925050819055508160096000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c649190612c01565b92505081905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b1357bf9836040518263ffffffff1660e01b8152600401611cc69190612b1c565b600060405180830381600087803b158015611ce057600080fd5b505af1158015611cf4573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d559190612b1c565b60405180910390a3505b50611e77565b82600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611db49190612e53565b9250508190555082600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e0a9190612c01565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611e6e9190612b1c565b60405180910390a35b60019150505b9392505050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611f095750600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561231e576000600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050806001541161231c576000600267ffffffffffffffff811115611f7857611f77612fae565b5b604051908082528060200260200182016040528015611fa65781602001602082028036833780820191505090505b5090503081600081518110611fbe57611fbd612f7f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561205257600080fd5b505afa158015612066573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208a91906124bc565b8160018151811061209e5761209d612f7f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505081600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060028261217a9190612c57565b9150737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121d2959493929190612b37565b600060405180830381600087803b1580156121ec57600080fd5b505af1158015612200573d6000803e3d6000fd5b505050506000806000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71947308860008061dead426040518863ffffffff1660e01b81526004016122649695949392919061295e565b6060604051808303818588803b15801561227d57600080fd5b505af1158015612291573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122b69190612683565b9250925092506000831180156122cc5750600082115b80156122d85750600081115b612317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230e906129fc565b60405180910390fd5b505050505b505b5050565b6000600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080600154101561240e576000600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806009600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124069190612c01565b925050819055505b50565b60008135905061242081613171565b92915050565b60008151905061243581613171565b92915050565b60008135905061244a81613188565b92915050565b60008151905061245f81613188565b92915050565b6000813590506124748161319f565b92915050565b6000815190506124898161319f565b92915050565b6000602082840312156124a5576124a4612fdd565b5b60006124b384828501612411565b91505092915050565b6000602082840312156124d2576124d1612fdd565b5b60006124e084828501612426565b91505092915050565b60008060408385031215612500576124ff612fdd565b5b600061250e85828601612411565b925050602061251f85828601612411565b9150509250929050565b60008060006060848603121561254257612541612fdd565b5b600061255086828701612411565b935050602061256186828701612411565b925050604061257286828701612465565b9150509250925092565b6000806040838503121561259357612592612fdd565b5b60006125a185828601612411565b92505060206125b28582860161243b565b9150509250929050565b600080604083850312156125d3576125d2612fdd565b5b60006125e185828601612411565b92505060206125f285828601612465565b9150509250929050565b60006020828403121561261257612611612fdd565b5b600061262084828501612450565b91505092915050565b60006020828403121561263f5761263e612fdd565b5b600061264d84828501612465565b91505092915050565b60006020828403121561266c5761266b612fdd565b5b600061267a8482850161247a565b91505092915050565b60008060006060848603121561269c5761269b612fdd565b5b60006126aa8682870161247a565b93505060206126bb8682870161247a565b92505060406126cc8682870161247a565b9150509250925092565b60006126e283836126ee565b60208301905092915050565b6126f781612e87565b82525050565b61270681612e87565b82525050565b600061271782612bbc565b6127218185612bdf565b935061272c83612bac565b8060005b8381101561275d57815161274488826126d6565b975061274f83612bd2565b925050600181019050612730565b5085935050505092915050565b61277381612e99565b82525050565b61278281612edc565b82525050565b600061279382612bc7565b61279d8185612bf0565b93506127ad818560208601612eee565b6127b681612fe2565b840191505092915050565b60006127ce601783612bf0565b91506127d982613000565b602082019050919050565b60006127f1601383612bf0565b91506127fc82613029565b602082019050919050565b6000612814600c83612bf0565b915061281f82613052565b602082019050919050565b6000612837600b83612bf0565b91506128428261307b565b602082019050919050565b600061285a601283612bf0565b9150612865826130a4565b602082019050919050565b600061287d600b83612bf0565b9150612888826130cd565b602082019050919050565b60006128a0600883612bf0565b91506128ab826130f6565b602082019050919050565b60006128c3600383612bf0565b91506128ce8261311f565b602082019050919050565b60006128e6601383612bf0565b91506128f182613148565b602082019050919050565b61290581612ec5565b82525050565b61291481612ecf565b82525050565b600060208201905061292f60008301846126fd565b92915050565b600060408201905061294a60008301856126fd565b61295760208301846128fc565b9392505050565b600060c08201905061297360008301896126fd565b61298060208301886128fc565b61298d6040830187612779565b61299a6060830186612779565b6129a760808301856126fd565b6129b460a08301846128fc565b979650505050505050565b60006020820190506129d4600083018461276a565b92915050565b600060208201905081810360008301526129f48184612788565b905092915050565b60006020820190508181036000830152612a15816127c1565b9050919050565b60006020820190508181036000830152612a35816127e4565b9050919050565b60006020820190508181036000830152612a5581612807565b9050919050565b60006020820190508181036000830152612a758161282a565b9050919050565b60006020820190508181036000830152612a958161284d565b9050919050565b60006020820190508181036000830152612ab581612870565b9050919050565b60006020820190508181036000830152612ad581612893565b9050919050565b60006020820190508181036000830152612af5816128b6565b9050919050565b60006020820190508181036000830152612b15816128d9565b9050919050565b6000602082019050612b3160008301846128fc565b92915050565b600060a082019050612b4c60008301886128fc565b612b596020830187612779565b8181036040830152612b6b818661270c565b9050612b7a60608301856126fd565b612b8760808301846128fc565b9695505050505050565b6000602082019050612ba6600083018461290b565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612c0c82612ec5565b9150612c1783612ec5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612c4c57612c4b612f21565b5b828201905092915050565b6000612c6282612ec5565b9150612c6d83612ec5565b925082612c7d57612c7c612f50565b5b828204905092915050565b6000808291508390505b6001851115612cd257808604811115612cae57612cad612f21565b5b6001851615612cbd5780820291505b8081029050612ccb85612ff3565b9450612c92565b94509492505050565b6000612ce682612ec5565b9150612cf183612ecf565b9250612d1e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612d26565b905092915050565b600082612d365760019050612df2565b81612d445760009050612df2565b8160018114612d5a5760028114612d6457612d93565b6001915050612df2565b60ff841115612d7657612d75612f21565b5b8360020a915084821115612d8d57612d8c612f21565b5b50612df2565b5060208310610133831016604e8410600b8410161715612dc85782820a905083811115612dc357612dc2612f21565b5b612df2565b612dd58484846001612c88565b92509050818404811115612dec57612deb612f21565b5b81810290505b9392505050565b6000612e0482612ec5565b9150612e0f83612ec5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612e4857612e47612f21565b5b828202905092915050565b6000612e5e82612ec5565b9150612e6983612ec5565b925082821015612e7c57612e7b612f21565b5b828203905092915050565b6000612e9282612ea5565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612ee782612ec5565b9050919050565b60005b83811015612f0c578082015181840152602081019050612ef1565b83811115612f1b576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f4c697175696469747920616464696e67206661696c6564000000000000000000600082015250565b7f596f7520617265206e6f7420616c6c6f77656400000000000000000000000000600082015250565b7f6e756c6c20616464726573730000000000000000000000000000000000000000600082015250565b7f6e6f7420616c6c6f776564000000000000000000000000000000000000000000600082015250565b7f6e6f20616d6f756e742070726f76696465640000000000000000000000000000600082015250565b7f4e6f7420616c6c6f776564000000000000000000000000000000000000000000600082015250565b7f546f6f20736f6f6e000000000000000000000000000000000000000000000000600082015250565b7f616c6c0000000000000000000000000000000000000000000000000000000000600082015250565b7f796f7520617265206e6f7420616c6c6f77656400000000000000000000000000600082015250565b61317a81612e87565b811461318557600080fd5b50565b61319181612e99565b811461319c57600080fd5b50565b6131a881612ec5565b81146131b357600080fd5b5056fea2646970667358221220ca79943edaeeaf0a8b8ffe7d03e30b905c1fe97408f544fb870f11ddca8759b664736f6c63430008070033
Deployed Bytecode Sourcemap
6846:7822:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14135:195;;;;;;;;;;;;;:::i;:::-;;7676:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8861:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9883:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6884:66;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7720:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10470:351;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7014:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7394:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14052:75;;;;;;;;;;;;;:::i;:::-;;9045:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12067:102;;;;;;;;;;;;;:::i;:::-;;6957:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9134:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14338:286;;;:::i;:::-;;9291:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9458:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10050:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7344:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7314:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10827:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7369:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8951:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9756:119;;;;;;;;;;;;;:::i;:::-;;10177:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7775:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7474:35;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13899:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9606:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7425:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10321:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14135:195;14205:15;14192:10;;:28;14184:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;14250:8;;;;;;;;;;;14243:25;;;14269:10;;;;;;;;;;;14287:8;;;;;;;;;;;14280:26;;;14315:4;14280:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14243:79;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14135:195::o;7676:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;8861:82::-;8898:13;8931:4;;;;;;;;;;;;;;;;;8924:11;;8861:82;:::o;9883:159::-;9959:4;10006:6;9975:7;:19;9983:10;9975:19;;;;;;;;;;;;;;;:28;9995:7;9975:28;;;;;;;;;;;;;;;:37;;;;10030:4;10023:11;;9883:159;;;;:::o;6884:66::-;;;;:::o;7720:25::-;;;;;;;;;;;;;:::o;10470:351::-;10559:4;10575:11;10589:7;:13;10597:4;10589:13;;;;;;;;;;;;;;;:25;10603:10;10589:25;;;;;;;;;;;;;;;;10575:39;;10641:6;10633:3;:14;;10625:29;;;;;;;;;;;;:::i;:::-;;;;;;;;;10674:6;10668:3;:12;10665:55;;;10703:5;10696:12;;;;;10665:55;10764:6;10758:3;:12;;;;:::i;:::-;10730:7;:13;10738:4;10730:13;;;;;;;;;;;;;;;:25;10744:10;10730:25;;;;;;;;;;;;;;;:40;;;;10788:25;10798:4;10803:2;10806:6;10788:9;:25::i;:::-;10781:32;;;10470:351;;;;;;:::o;7014:25::-;;;;:::o;7394:24::-;;;;;;;;;;;;;:::o;14052:75::-;14109:10;;;;;;;;;;;14108:11;14095:10;;:24;;;;;;;;;;;;;;;;;;14052:75::o;9045:81::-;9085:5;7149:2;9103:15;;9045:81;:::o;12067:102::-;12118:10;;;;;;;;;;;12110:28;;:51;12139:21;12110:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12067:102::o;6957:50::-;;;;:::o;9134:149::-;9204:6;:18;9211:10;9204:18;;;;;;;;;;;;;;;;;;;;;;;;;9196:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;9272:3;9256;:13;9260:8;9256:13;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;9134:149;;:::o;14338:286::-;14411:10;14397:24;;:10;;;;;;;;;;;:24;;;14389:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;7192:42;14447:48;;;14502:9;14521:4;7149:2;14538;:12;;;;:::i;:::-;14527:10;:23;;;;:::i;:::-;14551:1;14553;14563:4;14569:15;14447:138;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14612:4;14596:3;:13;14600:8;;;;;;;;;;;14596:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;14338:286::o;9291:159::-;9356:6;:18;9363:10;9356:18;;;;;;;;;;;;;;;;;;;;;;;;;9348:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;9435:6;9422:10;:19;;;;:::i;:::-;9408:10;;:33;;;;;;;:::i;:::-;;;;;;;;9291:159;:::o;9458:140::-;9518:6;:18;9525:10;9518:18;;;;;;;;;;;;;;;;;;;;;;;;;9510:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;9586:4;9570:6;:13;9577:5;9570:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;9458:140;:::o;10050:119::-;10118:7;10144:8;:17;10153:7;10144:17;;;;;;;;;;;;;;;;10137:24;;10050:119;;;:::o;7344:18::-;;;;;;;;;;;;;:::o;7314:23::-;;;;;;;;;;;;;:::o;10827:160::-;10901:6;:18;10908:10;10901:18;;;;;;;;;;;;;;;;;;;;;;;;;10893:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;10962:17;10945:14;;:34;;;;;;;;;;;;;;;;;;10827:160;:::o;7369:18::-;;;;;;;;;;;;;:::o;8951:86::-;8990:13;9023:6;;;;;;;;;;;;;;;;;9016:13;;8951:86;:::o;9756:119::-;9819:10;;;;;;;;;;;9805:24;;:10;:24;;;9797:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;9862:5;9855:4;;:12;;;;;;;;;;;;;;;;;;9756:119::o;10177:136::-;10251:4;10274:31;10284:10;10295:2;10298:6;10274:9;:31::i;:::-;10267:38;;10177:136;;;;:::o;7775:30::-;;;;;;;;;;;;;:::o;7474:35::-;;;;;;;;;;;;;;;;;;;;;;:::o;13899:145::-;13964:6;:18;13971:10;13964:18;;;;;;;;;;;;;;;;;;;;;;;;;13956:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;14027:9;14016:8;:20;;;;13899:145;:::o;9606:142::-;9683:10;;;;;;;;;;;9669:24;;:10;:24;;;9661:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;9735:5;9719:6;:13;9726:5;9719:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;9606:142;:::o;7425:42::-;;;;;;;;;;;;;:::o;10321:141::-;10405:7;10431;:14;10439:5;10431:14;;;;;;;;;;;;;;;:23;10446:7;10431:23;;;;;;;;;;;;;;;;10424:30;;10321:141;;;;:::o;12376:1515::-;12451:4;12491:1;12475:18;;:4;:18;;;;:38;;;;;12511:1;12497:16;;:2;:16;;;;12475:38;12467:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;12557:1;12548:6;:10;12540:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;12592:19;12614:8;:14;12623:4;12614:14;;;;;;;;;;;;;;;;12592:36;;12656:6;12642:11;:20;12639:63;;;12685:5;12678:12;;;;;12639:63;12712:10;;;;;;;;;;;:36;;12734:14;12740:4;12745:2;12734:5;:14::i;:::-;12712:36;;;12725:6;:4;:6::i;:::-;12712:36;12781:4;12765:21;;:4;:21;;;;:47;;;;;12791:3;:9;12795:4;12791:9;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;;12804:3;:7;12808:2;12804:7;;;;;;;;;;;;;;;;;;;;;;;;;12791:20;12765:47;12760:1092;;;12833:4;;;;;;;;;;;12830:129;;;12876:1;12858:8;:14;12867:4;12858:14;;;;;;;;;;;;;;;;:19;;;;;;;:::i;:::-;;;;;;;;12912:1;12896:8;:12;12905:2;12896:12;;;;;;;;;;;;;;;;:17;;;;;;;:::i;:::-;;;;;;;;12939:4;12932:11;;;;;12830:129;12973:15;13000:3;12991:6;:12;;;;:::i;:::-;12973:30;;13036:6;13018:8;:14;13027:4;13018:14;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;13074:10;13057:8;:13;13066:3;;;;;;;;;;;13057:13;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;13122:10;13099:8;:19;13108:9;;;;;;;;;;;13099:19;;;;;;;;;;;;;;;;:33;;;;;;;:::i;:::-;;;;;;;;13174:10;13147:8;:23;13164:4;13147:23;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;13230:1;13204:28;;:14;;;;;;;;;;;:28;;;13201:478;;;13252:9;13286:1;13273:10;:14;;;;:::i;:::-;13264:6;:23;;;;:::i;:::-;13252:35;;13322:4;13306:8;:12;13315:2;13306:12;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;13365:2;13351:22;;13360:4;13351:22;;;13368:4;13351:22;;;;;;:::i;:::-;;;;;;;;13233:156;13201:478;;;13427:9;13461:1;13448:10;:14;;;;:::i;:::-;13439:6;:23;;;;:::i;:::-;13427:35;;13497:4;13481:8;:12;13490:2;13481:12;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;13548:10;13520:8;:24;13529:14;;;;;;;;;;;13520:24;;;;;;;;;;;;;;;;:38;;;;;;;:::i;:::-;;;;;;;;13585:14;;;;;;;;;;;13577:28;;;13606:10;13577:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13655:2;13641:22;;13650:4;13641:22;;;13658:4;13641:22;;;;;;:::i;:::-;;;;;;;;13407:272;13201:478;12815:889;12760:1092;;;13751:6;13733:8;:14;13742:4;13733:14;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;13788:6;13772:8;:12;13781:2;13772:12;;;;;;;;;;;;;;;;:22;;;;;;;:::i;:::-;;;;;;;;13829:2;13814:26;;13823:4;13814:26;;;13833:6;13814:26;;;;;;:::i;:::-;;;;;;;;12760:1092;13879:4;13872:11;;;12376:1515;;;;;;:::o;10993:1068::-;11076:4;11060:21;;:4;:21;;;;:32;;;;;11085:3;:7;11089:2;11085:7;;;;;;;;;;;;;;;;;;;;;;;;;11060:32;11056:998;;;11112:18;11133:8;:23;11150:4;11133:23;;;;;;;;;;;;;;;;11112:44;;11190:13;11178:8;;:25;11175:864;;11228:21;11266:1;11252:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11228:40;;11309:4;11291;11296:1;11291:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;7192:42;11347:37;;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11337:4;11342:1;11337:7;;;;;;;;:::i;:::-;;;;;;;:49;;;;;;;;;;;11448:13;11409:7;:22;11425:4;11409:22;;;;;;;;;;;;;;;:38;7192:42;11409:38;;;;;;;;;;;;;;;:52;;;;11501:1;11484:18;;;;;:::i;:::-;;;7192:42;11525:83;;;11609:13;11623:1;11625:4;11638;11644:15;11525:135;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11684:16;11702:14;11718;7192:42;11736:48;;;11791:21;11822:4;11828:13;11842:1;11844;11846:42;11889:15;11736:169;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11683:222;;;;;;11950:1;11936:11;:15;:32;;;;;11967:1;11955:9;:13;11936:32;:49;;;;;11984:1;11972:9;:13;11936:49;11928:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;11205:834;;;;11175:864;11093:961;11056:998;10993:1068;;:::o;12175:195::-;12209:8;12220;:23;12237:4;12220:23;;;;;;;;;;;;;;;;12209:34;;12268:3;12257:8;;:14;12254:109;;;12313:1;12287:8;:23;12304:4;12287:23;;;;;;;;;;;;;;;:27;;;;12347:3;12329:8;:14;7265:42;12329:14;;;;;;;;;;;;;;;;:21;;;;;;;:::i;:::-;;;;;;;;12254:109;12198:172;12175:195::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;301:133;;;;:::o;440:137::-;494:5;525:6;519:13;510:22;;541:30;565:5;541:30;:::i;:::-;440:137;;;;:::o;583:139::-;629:5;667:6;654:20;645:29;;683:33;710:5;683:33;:::i;:::-;583:139;;;;:::o;728:143::-;785:5;816:6;810:13;801:22;;832:33;859:5;832:33;:::i;:::-;728:143;;;;:::o;877:329::-;936:6;985:2;973:9;964:7;960:23;956:32;953:119;;;991:79;;:::i;:::-;953:119;1111:1;1136:53;1181:7;1172:6;1161:9;1157:22;1136:53;:::i;:::-;1126:63;;1082:117;877:329;;;;:::o;1212:351::-;1282:6;1331:2;1319:9;1310:7;1306:23;1302:32;1299:119;;;1337:79;;:::i;:::-;1299:119;1457:1;1482:64;1538:7;1529:6;1518:9;1514:22;1482:64;:::i;:::-;1472:74;;1428:128;1212:351;;;;:::o;1569:474::-;1637:6;1645;1694:2;1682:9;1673:7;1669:23;1665:32;1662:119;;;1700:79;;:::i;:::-;1662:119;1820:1;1845:53;1890:7;1881:6;1870:9;1866:22;1845:53;:::i;:::-;1835:63;;1791:117;1947:2;1973:53;2018:7;2009:6;1998:9;1994:22;1973:53;:::i;:::-;1963:63;;1918:118;1569:474;;;;;:::o;2049:619::-;2126:6;2134;2142;2191:2;2179:9;2170:7;2166:23;2162:32;2159:119;;;2197:79;;:::i;:::-;2159:119;2317:1;2342:53;2387:7;2378:6;2367:9;2363:22;2342:53;:::i;:::-;2332:63;;2288:117;2444:2;2470:53;2515:7;2506:6;2495:9;2491:22;2470:53;:::i;:::-;2460:63;;2415:118;2572:2;2598:53;2643:7;2634:6;2623:9;2619:22;2598:53;:::i;:::-;2588:63;;2543:118;2049:619;;;;;:::o;2674:468::-;2739:6;2747;2796:2;2784:9;2775:7;2771:23;2767:32;2764:119;;;2802:79;;:::i;:::-;2764:119;2922:1;2947:53;2992:7;2983:6;2972:9;2968:22;2947:53;:::i;:::-;2937:63;;2893:117;3049:2;3075:50;3117:7;3108:6;3097:9;3093:22;3075:50;:::i;:::-;3065:60;;3020:115;2674:468;;;;;:::o;3148:474::-;3216:6;3224;3273:2;3261:9;3252:7;3248:23;3244:32;3241:119;;;3279:79;;:::i;:::-;3241:119;3399:1;3424:53;3469:7;3460:6;3449:9;3445:22;3424:53;:::i;:::-;3414:63;;3370:117;3526:2;3552:53;3597:7;3588:6;3577:9;3573:22;3552:53;:::i;:::-;3542:63;;3497:118;3148:474;;;;;:::o;3628:345::-;3695:6;3744:2;3732:9;3723:7;3719:23;3715:32;3712:119;;;3750:79;;:::i;:::-;3712:119;3870:1;3895:61;3948:7;3939:6;3928:9;3924:22;3895:61;:::i;:::-;3885:71;;3841:125;3628:345;;;;:::o;3979:329::-;4038:6;4087:2;4075:9;4066:7;4062:23;4058:32;4055:119;;;4093:79;;:::i;:::-;4055:119;4213:1;4238:53;4283:7;4274:6;4263:9;4259:22;4238:53;:::i;:::-;4228:63;;4184:117;3979:329;;;;:::o;4314:351::-;4384:6;4433:2;4421:9;4412:7;4408:23;4404:32;4401:119;;;4439:79;;:::i;:::-;4401:119;4559:1;4584:64;4640:7;4631:6;4620:9;4616:22;4584:64;:::i;:::-;4574:74;;4530:128;4314:351;;;;:::o;4671:663::-;4759:6;4767;4775;4824:2;4812:9;4803:7;4799:23;4795:32;4792:119;;;4830:79;;:::i;:::-;4792:119;4950:1;4975:64;5031:7;5022:6;5011:9;5007:22;4975:64;:::i;:::-;4965:74;;4921:128;5088:2;5114:64;5170:7;5161:6;5150:9;5146:22;5114:64;:::i;:::-;5104:74;;5059:129;5227:2;5253:64;5309:7;5300:6;5289:9;5285:22;5253:64;:::i;:::-;5243:74;;5198:129;4671:663;;;;;:::o;5340:179::-;5409:10;5430:46;5472:3;5464:6;5430:46;:::i;:::-;5508:4;5503:3;5499:14;5485:28;;5340:179;;;;:::o;5525:108::-;5602:24;5620:5;5602:24;:::i;:::-;5597:3;5590:37;5525:108;;:::o;5639:118::-;5726:24;5744:5;5726:24;:::i;:::-;5721:3;5714:37;5639:118;;:::o;5793:732::-;5912:3;5941:54;5989:5;5941:54;:::i;:::-;6011:86;6090:6;6085:3;6011:86;:::i;:::-;6004:93;;6121:56;6171:5;6121:56;:::i;:::-;6200:7;6231:1;6216:284;6241:6;6238:1;6235:13;6216:284;;;6317:6;6311:13;6344:63;6403:3;6388:13;6344:63;:::i;:::-;6337:70;;6430:60;6483:6;6430:60;:::i;:::-;6420:70;;6276:224;6263:1;6260;6256:9;6251:14;;6216:284;;;6220:14;6516:3;6509:10;;5917:608;;;5793:732;;;;:::o;6531:109::-;6612:21;6627:5;6612:21;:::i;:::-;6607:3;6600:34;6531:109;;:::o;6646:147::-;6741:45;6780:5;6741:45;:::i;:::-;6736:3;6729:58;6646:147;;:::o;6799:364::-;6887:3;6915:39;6948:5;6915:39;:::i;:::-;6970:71;7034:6;7029:3;6970:71;:::i;:::-;6963:78;;7050:52;7095:6;7090:3;7083:4;7076:5;7072:16;7050:52;:::i;:::-;7127:29;7149:6;7127:29;:::i;:::-;7122:3;7118:39;7111:46;;6891:272;6799:364;;;;:::o;7169:366::-;7311:3;7332:67;7396:2;7391:3;7332:67;:::i;:::-;7325:74;;7408:93;7497:3;7408:93;:::i;:::-;7526:2;7521:3;7517:12;7510:19;;7169:366;;;:::o;7541:::-;7683:3;7704:67;7768:2;7763:3;7704:67;:::i;:::-;7697:74;;7780:93;7869:3;7780:93;:::i;:::-;7898:2;7893:3;7889:12;7882:19;;7541:366;;;:::o;7913:::-;8055:3;8076:67;8140:2;8135:3;8076:67;:::i;:::-;8069:74;;8152:93;8241:3;8152:93;:::i;:::-;8270:2;8265:3;8261:12;8254:19;;7913:366;;;:::o;8285:::-;8427:3;8448:67;8512:2;8507:3;8448:67;:::i;:::-;8441:74;;8524:93;8613:3;8524:93;:::i;:::-;8642:2;8637:3;8633:12;8626:19;;8285:366;;;:::o;8657:::-;8799:3;8820:67;8884:2;8879:3;8820:67;:::i;:::-;8813:74;;8896:93;8985:3;8896:93;:::i;:::-;9014:2;9009:3;9005:12;8998:19;;8657:366;;;:::o;9029:::-;9171:3;9192:67;9256:2;9251:3;9192:67;:::i;:::-;9185:74;;9268:93;9357:3;9268:93;:::i;:::-;9386:2;9381:3;9377:12;9370:19;;9029:366;;;:::o;9401:365::-;9543:3;9564:66;9628:1;9623:3;9564:66;:::i;:::-;9557:73;;9639:93;9728:3;9639:93;:::i;:::-;9757:2;9752:3;9748:12;9741:19;;9401:365;;;:::o;9772:::-;9914:3;9935:66;9999:1;9994:3;9935:66;:::i;:::-;9928:73;;10010:93;10099:3;10010:93;:::i;:::-;10128:2;10123:3;10119:12;10112:19;;9772:365;;;:::o;10143:366::-;10285:3;10306:67;10370:2;10365:3;10306:67;:::i;:::-;10299:74;;10382:93;10471:3;10382:93;:::i;:::-;10500:2;10495:3;10491:12;10484:19;;10143:366;;;:::o;10515:118::-;10602:24;10620:5;10602:24;:::i;:::-;10597:3;10590:37;10515:118;;:::o;10639:112::-;10722:22;10738:5;10722:22;:::i;:::-;10717:3;10710:35;10639:112;;:::o;10757:222::-;10850:4;10888:2;10877:9;10873:18;10865:26;;10901:71;10969:1;10958:9;10954:17;10945:6;10901:71;:::i;:::-;10757:222;;;;:::o;10985:332::-;11106:4;11144:2;11133:9;11129:18;11121:26;;11157:71;11225:1;11214:9;11210:17;11201:6;11157:71;:::i;:::-;11238:72;11306:2;11295:9;11291:18;11282:6;11238:72;:::i;:::-;10985:332;;;;;:::o;11323:807::-;11572:4;11610:3;11599:9;11595:19;11587:27;;11624:71;11692:1;11681:9;11677:17;11668:6;11624:71;:::i;:::-;11705:72;11773:2;11762:9;11758:18;11749:6;11705:72;:::i;:::-;11787:80;11863:2;11852:9;11848:18;11839:6;11787:80;:::i;:::-;11877;11953:2;11942:9;11938:18;11929:6;11877:80;:::i;:::-;11967:73;12035:3;12024:9;12020:19;12011:6;11967:73;:::i;:::-;12050;12118:3;12107:9;12103:19;12094:6;12050:73;:::i;:::-;11323:807;;;;;;;;;:::o;12136:210::-;12223:4;12261:2;12250:9;12246:18;12238:26;;12274:65;12336:1;12325:9;12321:17;12312:6;12274:65;:::i;:::-;12136:210;;;;:::o;12352:313::-;12465:4;12503:2;12492:9;12488:18;12480:26;;12552:9;12546:4;12542:20;12538:1;12527:9;12523:17;12516:47;12580:78;12653:4;12644:6;12580:78;:::i;:::-;12572:86;;12352:313;;;;:::o;12671:419::-;12837:4;12875:2;12864:9;12860:18;12852:26;;12924:9;12918:4;12914:20;12910:1;12899:9;12895:17;12888:47;12952:131;13078:4;12952:131;:::i;:::-;12944:139;;12671:419;;;:::o;13096:::-;13262:4;13300:2;13289:9;13285:18;13277:26;;13349:9;13343:4;13339:20;13335:1;13324:9;13320:17;13313:47;13377:131;13503:4;13377:131;:::i;:::-;13369:139;;13096:419;;;:::o;13521:::-;13687:4;13725:2;13714:9;13710:18;13702:26;;13774:9;13768:4;13764:20;13760:1;13749:9;13745:17;13738:47;13802:131;13928:4;13802:131;:::i;:::-;13794:139;;13521:419;;;:::o;13946:::-;14112:4;14150:2;14139:9;14135:18;14127:26;;14199:9;14193:4;14189:20;14185:1;14174:9;14170:17;14163:47;14227:131;14353:4;14227:131;:::i;:::-;14219:139;;13946:419;;;:::o;14371:::-;14537:4;14575:2;14564:9;14560:18;14552:26;;14624:9;14618:4;14614:20;14610:1;14599:9;14595:17;14588:47;14652:131;14778:4;14652:131;:::i;:::-;14644:139;;14371:419;;;:::o;14796:::-;14962:4;15000:2;14989:9;14985:18;14977:26;;15049:9;15043:4;15039:20;15035:1;15024:9;15020:17;15013:47;15077:131;15203:4;15077:131;:::i;:::-;15069:139;;14796:419;;;:::o;15221:::-;15387:4;15425:2;15414:9;15410:18;15402:26;;15474:9;15468:4;15464:20;15460:1;15449:9;15445:17;15438:47;15502:131;15628:4;15502:131;:::i;:::-;15494:139;;15221:419;;;:::o;15646:::-;15812:4;15850:2;15839:9;15835:18;15827:26;;15899:9;15893:4;15889:20;15885:1;15874:9;15870:17;15863:47;15927:131;16053:4;15927:131;:::i;:::-;15919:139;;15646:419;;;:::o;16071:::-;16237:4;16275:2;16264:9;16260:18;16252:26;;16324:9;16318:4;16314:20;16310:1;16299:9;16295:17;16288:47;16352:131;16478:4;16352:131;:::i;:::-;16344:139;;16071:419;;;:::o;16496:222::-;16589:4;16627:2;16616:9;16612:18;16604:26;;16640:71;16708:1;16697:9;16693:17;16684:6;16640:71;:::i;:::-;16496:222;;;;:::o;16724:831::-;16987:4;17025:3;17014:9;17010:19;17002:27;;17039:71;17107:1;17096:9;17092:17;17083:6;17039:71;:::i;:::-;17120:80;17196:2;17185:9;17181:18;17172:6;17120:80;:::i;:::-;17247:9;17241:4;17237:20;17232:2;17221:9;17217:18;17210:48;17275:108;17378:4;17369:6;17275:108;:::i;:::-;17267:116;;17393:72;17461:2;17450:9;17446:18;17437:6;17393:72;:::i;:::-;17475:73;17543:3;17532:9;17528:19;17519:6;17475:73;:::i;:::-;16724:831;;;;;;;;:::o;17561:214::-;17650:4;17688:2;17677:9;17673:18;17665:26;;17701:67;17765:1;17754:9;17750:17;17741:6;17701:67;:::i;:::-;17561:214;;;;:::o;17862:132::-;17929:4;17952:3;17944:11;;17982:4;17977:3;17973:14;17965:22;;17862:132;;;:::o;18000:114::-;18067:6;18101:5;18095:12;18085:22;;18000:114;;;:::o;18120:99::-;18172:6;18206:5;18200:12;18190:22;;18120:99;;;:::o;18225:113::-;18295:4;18327;18322:3;18318:14;18310:22;;18225:113;;;:::o;18344:184::-;18443:11;18477:6;18472:3;18465:19;18517:4;18512:3;18508:14;18493:29;;18344:184;;;;:::o;18534:169::-;18618:11;18652:6;18647:3;18640:19;18692:4;18687:3;18683:14;18668:29;;18534:169;;;;:::o;18709:305::-;18749:3;18768:20;18786:1;18768:20;:::i;:::-;18763:25;;18802:20;18820:1;18802:20;:::i;:::-;18797:25;;18956:1;18888:66;18884:74;18881:1;18878:81;18875:107;;;18962:18;;:::i;:::-;18875:107;19006:1;19003;18999:9;18992:16;;18709:305;;;;:::o;19020:185::-;19060:1;19077:20;19095:1;19077:20;:::i;:::-;19072:25;;19111:20;19129:1;19111:20;:::i;:::-;19106:25;;19150:1;19140:35;;19155:18;;:::i;:::-;19140:35;19197:1;19194;19190:9;19185:14;;19020:185;;;;:::o;19211:848::-;19272:5;19279:4;19303:6;19294:15;;19327:5;19318:14;;19341:712;19362:1;19352:8;19349:15;19341:712;;;19457:4;19452:3;19448:14;19442:4;19439:24;19436:50;;;19466:18;;:::i;:::-;19436:50;19516:1;19506:8;19502:16;19499:451;;;19931:4;19924:5;19920:16;19911:25;;19499:451;19981:4;19975;19971:15;19963:23;;20011:32;20034:8;20011:32;:::i;:::-;19999:44;;19341:712;;;19211:848;;;;;;;:::o;20065:281::-;20123:5;20147:23;20165:4;20147:23;:::i;:::-;20139:31;;20191:25;20207:8;20191:25;:::i;:::-;20179:37;;20235:104;20272:66;20262:8;20256:4;20235:104;:::i;:::-;20226:113;;20065:281;;;;:::o;20352:1073::-;20406:5;20597:8;20587:40;;20618:1;20609:10;;20620:5;;20587:40;20646:4;20636:36;;20663:1;20654:10;;20665:5;;20636:36;20732:4;20780:1;20775:27;;;;20816:1;20811:191;;;;20725:277;;20775:27;20793:1;20784:10;;20795:5;;;20811:191;20856:3;20846:8;20843:17;20840:43;;;20863:18;;:::i;:::-;20840:43;20912:8;20909:1;20905:16;20896:25;;20947:3;20940:5;20937:14;20934:40;;;20954:18;;:::i;:::-;20934:40;20987:5;;;20725:277;;21111:2;21101:8;21098:16;21092:3;21086:4;21083:13;21079:36;21061:2;21051:8;21048:16;21043:2;21037:4;21034:12;21030:35;21014:111;21011:246;;;21167:8;21161:4;21157:19;21148:28;;21202:3;21195:5;21192:14;21189:40;;;21209:18;;:::i;:::-;21189:40;21242:5;;21011:246;21282:42;21320:3;21310:8;21304:4;21301:1;21282:42;:::i;:::-;21267:57;;;;21356:4;21351:3;21347:14;21340:5;21337:25;21334:51;;;21365:18;;:::i;:::-;21334:51;21414:4;21407:5;21403:16;21394:25;;20352:1073;;;;;;:::o;21431:348::-;21471:7;21494:20;21512:1;21494:20;:::i;:::-;21489:25;;21528:20;21546:1;21528:20;:::i;:::-;21523:25;;21716:1;21648:66;21644:74;21641:1;21638:81;21633:1;21626:9;21619:17;21615:105;21612:131;;;21723:18;;:::i;:::-;21612:131;21771:1;21768;21764:9;21753:20;;21431:348;;;;:::o;21785:191::-;21825:4;21845:20;21863:1;21845:20;:::i;:::-;21840:25;;21879:20;21897:1;21879:20;:::i;:::-;21874:25;;21918:1;21915;21912:8;21909:34;;;21923:18;;:::i;:::-;21909:34;21968:1;21965;21961:9;21953:17;;21785:191;;;;:::o;21982:96::-;22019:7;22048:24;22066:5;22048:24;:::i;:::-;22037:35;;21982:96;;;:::o;22084:90::-;22118:7;22161:5;22154:13;22147:21;22136:32;;22084:90;;;:::o;22180:126::-;22217:7;22257:42;22250:5;22246:54;22235:65;;22180:126;;;:::o;22312:77::-;22349:7;22378:5;22367:16;;22312:77;;;:::o;22395:86::-;22430:7;22470:4;22463:5;22459:16;22448:27;;22395:86;;;:::o;22487:121::-;22545:9;22578:24;22596:5;22578:24;:::i;:::-;22565:37;;22487:121;;;:::o;22614:307::-;22682:1;22692:113;22706:6;22703:1;22700:13;22692:113;;;22791:1;22786:3;22782:11;22776:18;22772:1;22767:3;22763:11;22756:39;22728:2;22725:1;22721:10;22716:15;;22692:113;;;22823:6;22820:1;22817:13;22814:101;;;22903:1;22894:6;22889:3;22885:16;22878:27;22814:101;22663:258;22614:307;;;:::o;22927:180::-;22975:77;22972:1;22965:88;23072:4;23069:1;23062:15;23096:4;23093:1;23086:15;23113:180;23161:77;23158:1;23151:88;23258:4;23255:1;23248:15;23282:4;23279:1;23272:15;23299:180;23347:77;23344:1;23337:88;23444:4;23441:1;23434:15;23468:4;23465:1;23458:15;23485:180;23533:77;23530:1;23523:88;23630:4;23627:1;23620:15;23654:4;23651:1;23644:15;23794:117;23903:1;23900;23893:12;23917:102;23958:6;24009:2;24005:7;24000:2;23993:5;23989:14;23985:28;23975:38;;23917:102;;;:::o;24025:::-;24067:8;24114:5;24111:1;24107:13;24086:34;;24025:102;;;:::o;24133:173::-;24273:25;24269:1;24261:6;24257:14;24250:49;24133:173;:::o;24312:169::-;24452:21;24448:1;24440:6;24436:14;24429:45;24312:169;:::o;24487:162::-;24627:14;24623:1;24615:6;24611:14;24604:38;24487:162;:::o;24655:161::-;24795:13;24791:1;24783:6;24779:14;24772:37;24655:161;:::o;24822:168::-;24962:20;24958:1;24950:6;24946:14;24939:44;24822:168;:::o;24996:161::-;25136:13;25132:1;25124:6;25120:14;25113:37;24996:161;:::o;25163:158::-;25303:10;25299:1;25291:6;25287:14;25280:34;25163:158;:::o;25327:153::-;25467:5;25463:1;25455:6;25451:14;25444:29;25327:153;:::o;25486:169::-;25626:21;25622:1;25614:6;25610:14;25603:45;25486:169;:::o;25661:122::-;25734:24;25752:5;25734:24;:::i;:::-;25727:5;25724:35;25714:63;;25773:1;25770;25763:12;25714:63;25661:122;:::o;25789:116::-;25859:21;25874:5;25859:21;:::i;:::-;25852:5;25849:32;25839:60;;25895:1;25892;25885:12;25839:60;25789:116;:::o;25911:122::-;25984:24;26002:5;25984:24;:::i;:::-;25977:5;25974:35;25964:63;;26023:1;26020;26013:12;25964:63;25911:122;:::o
Swarm Source
ipfs://602f6917ebf15e69aac9225270252b062887392cc192f21c1c60f82ec3e9df6b
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.