ERC-20
Overview
Max Total Supply
420,000,000,000,000 Grumpy Cat 1.0
Holders
116
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 6 Decimals)
Balance
269,229,263.576065 Grumpy Cat 1.0Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
GrumpyCat_1_0
Compiler Version
v0.8.14+commit.80d49f37
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-23 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.14; interface IERC20 { function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface ISwapRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); } interface ISwapFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } abstract contract Ownable { address internal _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = msg.sender; _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == msg.sender, "!owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "new is 0"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract TokenDistributor { constructor (address token) { IERC20(token).approve(msg.sender, uint(~uint256(0))); } } abstract contract AbsToken is IERC20, Ownable { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; address public fundAddress; string private _name; string private _symbol; uint8 private _decimals; uint256 public maxBuyAmount; mapping(address => bool) public _feeWhiteList; mapping(address => bool) public _blackList; mapping (address => bool) public isWalletLimitExempt; uint256 private _tTotal; ISwapRouter public _swapRouter; address public _fist; mapping(address => bool) public _swapPairList; bool private inSwap; uint256 private constant MAX = ~uint256(0); TokenDistributor public _tokenDistributor; uint256 public _buyFundFee = 100; uint256 public _buyLPDividendFee = 0; uint256 public _sellLPDividendFee = 0; uint256 public _sellFundFee = 100; uint256 public _sellLPFee = 0; bool public limitEnable = true; uint256 public walletLimit; uint256 public startTradeBlock; address public _mainPair; modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor ( address RouterAddress, address FISTAddress, string memory Name, string memory Symbol, uint8 Decimals, uint256 Supply, address FundAddress, address ReceiveAddress ){ _name = Name; _symbol = Symbol; _decimals = Decimals; ISwapRouter swapRouter = ISwapRouter(RouterAddress); IERC20(FISTAddress).approve(address(swapRouter), MAX); _fist = FISTAddress; _swapRouter = swapRouter; _allowances[address(this)][address(swapRouter)] = MAX; ISwapFactory swapFactory = ISwapFactory(swapRouter.factory()); address swapPair = swapFactory.createPair(address(this), FISTAddress); _mainPair = swapPair; _swapPairList[swapPair] = true; uint256 total = Supply * 10 ** Decimals; _tTotal = total; _balances[ReceiveAddress] = total; emit Transfer(address(0), ReceiveAddress, total); fundAddress = FundAddress; maxBuyAmount = 420000000000000 * 10** Decimals; walletLimit = 420000000000000 * 10** Decimals; _feeWhiteList[FundAddress] = true; _feeWhiteList[ReceiveAddress] = true; _feeWhiteList[address(this)] = true; _feeWhiteList[address(swapRouter)] = true; _feeWhiteList[msg.sender] = true; isWalletLimitExempt[msg.sender] = true; isWalletLimitExempt[fundAddress] = true; isWalletLimitExempt[ReceiveAddress] = true; isWalletLimitExempt[address(swapRouter)] = true; isWalletLimitExempt[address(_mainPair)] = true; isWalletLimitExempt[address(this)] = true; isWalletLimitExempt[address(0xdead)] = true; excludeHolder[address(0)] = true; excludeHolder[address(0x000000000000000000000000000000000000dEaD)] = true; holderRewardCondition = 10 * 10 ** IERC20(FISTAddress).decimals(); _tokenDistributor = new TokenDistributor(FISTAddress); } function symbol() external view override returns (string memory) { return _symbol; } function name() external view override returns (string memory) { return _name; } function decimals() external view override returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(msg.sender, spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); if (_allowances[sender][msg.sender] != MAX) { _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount; } return true; } function _approve(address owner, address spender, uint256 amount) private { _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function setMaxAmount(uint256 _maxBuyAmount) public onlyOwner{ maxBuyAmount = _maxBuyAmount; } function setWalletLimit(uint256 _walletLimit) public onlyOwner{ walletLimit = _walletLimit; } function _transfer( address from, address to, uint256 amount ) private { require(!_blackList[from], "blackList"); uint256 balance = balanceOf(from); require(balance >= amount, "balanceNotEnough"); if (!_feeWhiteList[from] && !_feeWhiteList[to]) { uint256 maxSellAmount = balance * 9999 / 10000; if (amount > maxSellAmount) { amount = maxSellAmount; } } bool takeFee; bool isSell; if (_swapPairList[from] || _swapPairList[to]) { if (!_feeWhiteList[from] && !_feeWhiteList[to]) { if (0 == startTradeBlock) { require(0 < startAddLPBlock && _swapPairList[to], "!startAddLP"); } if (block.number < startTradeBlock + 0) { _funTransfer(from, to, amount); return; } if (_swapPairList[to]) { if (!inSwap) { uint256 contractTokenBalance = balanceOf(address(this)); if (contractTokenBalance > 0) { uint256 swapFee = _buyFundFee + _buyLPDividendFee + _sellFundFee + _sellLPDividendFee + _sellLPFee; uint256 numTokensSellToFund = amount * swapFee / 5000; if (numTokensSellToFund > contractTokenBalance) { numTokensSellToFund = contractTokenBalance; } swapTokenForFund(numTokensSellToFund, swapFee); } } } takeFee = true; } if (_swapPairList[to]) { isSell = true; } } _tokenTransfer(from, to, amount, takeFee, isSell); if (from != address(this)) { if (isSell) { addHolder(from); } processReward(500000); } } function _funTransfer( address sender, address recipient, uint256 tAmount ) private { _balances[sender] = _balances[sender] - tAmount; uint256 feeAmount = tAmount * 50 / 100; _takeTransfer( sender, fundAddress, feeAmount ); _takeTransfer(sender, recipient, tAmount - feeAmount); } function setisWalletLimitExempt(address holder, bool exempt) external onlyOwner { isWalletLimitExempt[holder] = exempt; } function setLimitEnable(bool status) public onlyOwner { limitEnable = status; } function _tokenTransfer( address sender, address recipient, uint256 tAmount, bool takeFee, bool isSell ) private { _balances[sender] = _balances[sender] - tAmount; uint256 feeAmount; if (takeFee) { uint256 swapFee; if (isSell) { swapFee = _sellFundFee + _sellLPDividendFee + _sellLPFee; } else { swapFee = _buyFundFee + _buyLPDividendFee; require(tAmount <= maxBuyAmount,"over max buy amount"); } uint256 swapAmount = tAmount * swapFee / 10000; if (swapAmount > 0) { feeAmount += swapAmount; _takeTransfer( sender, address(this), swapAmount ); } } if(!isWalletLimitExempt[recipient] && limitEnable) require((balanceOf(recipient) + tAmount - feeAmount) <= walletLimit,"over max wallet limit"); _takeTransfer(sender, recipient, tAmount - feeAmount); } function swapTokenForFund(uint256 tokenAmount, uint256 swapFee) private lockTheSwap { swapFee += swapFee; uint256 lpFee = _sellLPFee; uint256 lpAmount = tokenAmount * lpFee / swapFee; address[] memory path = new address[](2); path[0] = address(this); path[1] = _fist; _swapRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens( tokenAmount - lpAmount, 0, path, address(_tokenDistributor), block.timestamp ); swapFee -= lpFee; IERC20 FIST = IERC20(_fist); uint256 fistBalance = FIST.balanceOf(address(_tokenDistributor)); uint256 fundAmount = fistBalance * (_buyFundFee + _sellFundFee) * 2 / swapFee; FIST.transferFrom(address(_tokenDistributor), fundAddress, fundAmount); FIST.transferFrom(address(_tokenDistributor), address(this), fistBalance - fundAmount); if (lpAmount > 0) { uint256 lpFist = fistBalance * lpFee / swapFee; if (lpFist > 0) { _swapRouter.addLiquidity( address(this), _fist, lpAmount, lpFist, 0, 0, fundAddress, block.timestamp ); } } } function _takeTransfer( address sender, address to, uint256 tAmount ) private { _balances[to] = _balances[to] + tAmount; emit Transfer(sender, to, tAmount); } function setFundAddress(address addr) external onlyFunder { fundAddress = addr; _feeWhiteList[addr] = true; } function setBuyLPDividendFee(uint256 dividendFee) external onlyOwner { _buyLPDividendFee = dividendFee; } function setBuyFundFee(uint256 fundFee) external onlyOwner { _buyFundFee = fundFee; } function setSellLPDividendFee(uint256 dividendFee) external onlyOwner { _sellLPDividendFee = dividendFee; } function setSellFundFee(uint256 fundFee) external onlyOwner { _sellFundFee = fundFee; } function setSellLPFee(uint256 lpFee) external onlyOwner { _sellLPFee = lpFee; } uint256 public startAddLPBlock; function startAddLP() external onlyOwner { require(0 == startAddLPBlock, "startedAddLP"); startAddLPBlock = block.number; } function closeAddLP() external onlyOwner { startAddLPBlock = 0; } function startTrade() external onlyOwner { require(0 == startTradeBlock, "trading"); startTradeBlock = block.number; } function closeTrade() external onlyOwner { startTradeBlock = 0; } function setFeeWhiteList(address addr, bool enable) external onlyFunder { _feeWhiteList[addr] = enable; } function setBlackList(address addr, bool enable) external onlyOwner { _blackList[addr] = enable; } function multiBlackList(address[] calldata addresses, bool status) public onlyOwner { require(addresses.length < 201); for (uint256 i; i < addresses.length; ++i) { _blackList[addresses[i]] = status; } } function setSwapPairList(address addr, bool enable) external onlyFunder { _swapPairList[addr] = enable; } function claimBalance() external { payable(fundAddress).transfer(address(this).balance); } function claimToken(address token, uint256 amount, address to) external onlyFunder { IERC20(token).transfer(to, amount); } modifier onlyFunder() { require(_owner == msg.sender || fundAddress == msg.sender, "!Funder"); _; } receive() external payable {} address[] private holders; mapping(address => uint256) holderIndex; mapping(address => bool) excludeHolder; function addHolder(address adr) private { uint256 size; assembly {size := extcodesize(adr)} if (size > 0) { return; } if (0 == holderIndex[adr]) { if (0 == holders.length || holders[0] != adr) { holderIndex[adr] = holders.length; holders.push(adr); } } } uint256 private currentIndex; uint256 private holderRewardCondition; uint256 private progressRewardBlock; function processReward(uint256 gas) private { if (progressRewardBlock + 20 > block.number) { return; } IERC20 FIST = IERC20(_fist); uint256 balance = FIST.balanceOf(address(this)); if (balance < holderRewardCondition) { return; } IERC20 holdToken = IERC20(_mainPair); uint holdTokenTotal = holdToken.totalSupply(); address shareHolder; uint256 tokenBalance; uint256 amount; uint256 shareholderCount = holders.length; uint256 gasUsed = 0; uint256 iterations = 0; uint256 gasLeft = gasleft(); while (gasUsed < gas && iterations < shareholderCount) { if (currentIndex >= shareholderCount) { currentIndex = 0; } shareHolder = holders[currentIndex]; tokenBalance = holdToken.balanceOf(shareHolder); if (tokenBalance > 0 && !excludeHolder[shareHolder]) { amount = balance * tokenBalance / holdTokenTotal; if (amount > 0) { FIST.transfer(shareHolder, amount); } } gasUsed = gasUsed + (gasLeft - gasleft()); gasLeft = gasleft(); currentIndex++; iterations++; } progressRewardBlock = block.number; } function setHolderRewardCondition(uint256 amount) external onlyFunder { holderRewardCondition = amount; } function setExcludeHolder(address addr, bool enable) external onlyFunder { excludeHolder[addr] = enable; } } contract GrumpyCat_1_0 is AbsToken { constructor() AbsToken( address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D),//RouterAddress address(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2),//FISTAddress "Grumpy Cat 1.0",//Name "Grumpy Cat 1.0",//Symbol 6,//Decimals 420000000000000,//Supply address(0x3499292c252ea07324765a1eD2feC47b3E1926AE),//FundAddress address(0x8125fdA219b4B1D5F43Df7600a2760C8ea12d25c)//ReceiveAddress ){ } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_blackList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyFundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLPDividendFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_feeWhiteList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_fist","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mainPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLPDividendFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLPFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_swapPairList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapRouter","outputs":[{"internalType":"contract ISwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tokenDistributor","outputs":[{"internalType":"contract TokenDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"claimToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"closeAddLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"closeTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fundAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"multiBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fundFee","type":"uint256"}],"name":"setBuyFundFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"dividendFee","type":"uint256"}],"name":"setBuyLPDividendFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setExcludeHolder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setFeeWhiteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"setFundAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setHolderRewardCondition","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setLimitEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxBuyAmount","type":"uint256"}],"name":"setMaxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fundFee","type":"uint256"}],"name":"setSellFundFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"dividendFee","type":"uint256"}],"name":"setSellLPDividendFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"lpFee","type":"uint256"}],"name":"setSellLPFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setSwapPairList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_walletLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setisWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startAddLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startAddLPBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTradeBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"walletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052606460105560006011556000601255606460135560006014556001601560006101000a81548160ff0219169083151502179055503480156200004557600080fd5b50737a250d5630b4cf539739df2c5dacb4c659f2488d73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26040518060400160405280600e81526020017f4772756d70792043617420312e300000000000000000000000000000000000008152506040518060400160405280600e81526020017f4772756d70792043617420312e30000000000000000000000000000000000000815250600666017dfcdece4000733499292c252ea07324765a1ed2fec47b3e1926ae738125fda219b4b1d5f43df7600a2760c8ea12d25c6000339050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3508560049080519060200190620001c992919062000cc1565b508460059080519060200190620001e292919062000cc1565b5083600660006101000a81548160ff021916908360ff16021790555060008890508773ffffffffffffffffffffffffffffffffffffffff1663095ea7b3826000196040518363ffffffff1660e01b81526004016200024292919062000ddf565b6020604051808303816000875af115801562000262573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000288919062000e4e565b5087600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000402919062000eb1565b905060008173ffffffffffffffffffffffffffffffffffffffff1663c9c65396308c6040518363ffffffff1660e01b81526004016200044392919062000ee3565b6020604051808303816000875af115801562000463573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000489919062000eb1565b905080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600087600a620005359190620010a0565b87620005429190620010f1565b905080600b8190555080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620005ef919062001152565b60405180910390a385600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555087600a620006479190620010a0565b66017dfcdece40006200065b9190620010f1565b60078190555087600a620006709190620010a0565b66017dfcdece4000620006849190620010f1565b6016819055506001600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601c60008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601c600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508a73ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000bee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c149190620011a0565b600a62000c229190620010a0565b600a62000c309190620010f1565b601e819055508a60405162000c459062000d52565b62000c519190620011d2565b604051809103906000f08015801562000c6e573d6000803e3d6000fd5b50600f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050505050505062001253565b82805462000ccf906200121e565b90600052602060002090601f01602090048101928262000cf3576000855562000d3f565b82601f1062000d0e57805160ff191683800117855562000d3f565b8280016001018555821562000d3f579182015b8281111562000d3e57825182559160200191906001019062000d21565b5b50905062000d4e919062000d60565b5090565b61024c8062005f6a83390190565b5b8082111562000d7b57600081600090555060010162000d61565b5090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000dac8262000d7f565b9050919050565b62000dbe8162000d9f565b82525050565b6000819050919050565b62000dd98162000dc4565b82525050565b600060408201905062000df6600083018562000db3565b62000e05602083018462000dce565b9392505050565b600080fd5b60008115159050919050565b62000e288162000e11565b811462000e3457600080fd5b50565b60008151905062000e488162000e1d565b92915050565b60006020828403121562000e675762000e6662000e0c565b5b600062000e778482850162000e37565b91505092915050565b62000e8b8162000d9f565b811462000e9757600080fd5b50565b60008151905062000eab8162000e80565b92915050565b60006020828403121562000eca5762000ec962000e0c565b5b600062000eda8482850162000e9a565b91505092915050565b600060408201905062000efa600083018562000db3565b62000f09602083018462000db3565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000f9e5780860481111562000f765762000f7562000f10565b5b600185161562000f865780820291505b808102905062000f968562000f3f565b945062000f56565b94509492505050565b60008262000fb957600190506200108c565b8162000fc957600090506200108c565b816001811462000fe2576002811462000fed5762001023565b60019150506200108c565b60ff84111562001002576200100162000f10565b5b8360020a9150848211156200101c576200101b62000f10565b5b506200108c565b5060208310610133831016604e8410600b84101617156200105d5782820a90508381111562001057576200105662000f10565b5b6200108c565b6200106c848484600162000f4c565b9250905081840481111562001086576200108562000f10565b5b81810290505b9392505050565b600060ff82169050919050565b6000620010ad8262000dc4565b9150620010ba8362001093565b9250620010e97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000fa7565b905092915050565b6000620010fe8262000dc4565b91506200110b8362000dc4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562001147576200114662000f10565b5b828202905092915050565b600060208201905062001169600083018462000dce565b92915050565b6200117a8162001093565b81146200118657600080fd5b50565b6000815190506200119a816200116f565b92915050565b600060208284031215620011b957620011b862000e0c565b5b6000620011c98482850162001189565b91505092915050565b6000602082019050620011e9600083018462000db3565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200123757607f821691505b6020821081036200124d576200124c620011ef565b5b50919050565b614d0780620012636000396000f3fe60806040526004361061031e5760003560e01c8063715018a6116101ab578063adc7955d116100f7578063d83d414311610095578063f1d5f5171161006f578063f1d5f51714610b83578063f2fde38b14610bac578063f9aba09314610bd5578063fcdb89ce14610c0057610325565b8063d83d414314610af2578063dd62ed3e14610b1b578063e82bef2914610b5857610325565b8063c213d62d116100d1578063c213d62d14610a38578063c35660e414610a61578063c867d60b14610a8a578063ce0192f914610ac757610325565b8063adc7955d146109bb578063b3621cfb146109e6578063bfac5ee014610a0f57610325565b80638da5cb5b116101645780639dd33c671161013e5780639dd33c6714610901578063a84248611461092a578063a9059cbb14610953578063a925a6bd1461099057610325565b80638da5cb5b1461088057806395d89b41146108ab5780639bb85344146108d657610325565b8063715018a6146107aa5780637d3c13e9146107c15780637f4949b5146107d857806385dc3004146108015780638718b24f1461082a57806388e765ff1461085557610325565b80633bfe62ca1161026a578063595dec3c1161022357806369768b50116101fd57806369768b50146107025780636c5808011461072d57806370a02c8b1461074457806370a082311461076d57610325565b8063595dec3c146106735780636659606f146106b057806368092bd9146106d957610325565b80633bfe62ca146105615780633c11100d1461058c5780633c8463a1146105c95780634188bf5a146105f45780634fe47f701461061f578063553193ca1461064857610325565b80631c5ac473116102d757806324163a1e116102b157806324163a1e146104cd57806329778207146104f657806330509bca1461051f578063313ce5671461053657610325565b80631c5ac4731461044e578063206c17bb1461046557806323b872dd1461049057610325565b806301986fad1461032a57806305833c2b1461036757806306fdde0314610390578063095ea7b3146103bb5780630a607930146103f857806318160ddd1461042357610325565b3661032557005b600080fd5b34801561033657600080fd5b50610351600480360381019061034c9190613dd2565b610c17565b60405161035e9190613e1a565b60405180910390f35b34801561037357600080fd5b5061038e60048036038101906103899190613e61565b610c37565b005b34801561039c57600080fd5b506103a5610d78565b6040516103b29190613f3a565b60405180910390f35b3480156103c757600080fd5b506103e260048036038101906103dd9190613f92565b610e0a565b6040516103ef9190613e1a565b60405180910390f35b34801561040457600080fd5b5061040d610e21565b60405161041a9190613fe1565b60405180910390f35b34801561042f57600080fd5b50610438610e27565b6040516104459190613fe1565b60405180910390f35b34801561045a57600080fd5b50610463610e31565b005b34801561047157600080fd5b5061047a610ec9565b604051610487919061405b565b60405180910390f35b34801561049c57600080fd5b506104b760048036038101906104b29190614076565b610eef565b6040516104c49190613e1a565b60405180910390f35b3480156104d957600080fd5b506104f460048036038101906104ef91906140c9565b611095565b005b34801561050257600080fd5b5061051d600480360381019061051891906140f6565b61112d565b005b34801561052b57600080fd5b506105346111d8565b005b34801561054257600080fd5b5061054b611243565b604051610558919061413f565b60405180910390f35b34801561056d57600080fd5b5061057661125a565b6040516105839190613fe1565b60405180910390f35b34801561059857600080fd5b506105b360048036038101906105ae9190613dd2565b611260565b6040516105c09190613e1a565b60405180910390f35b3480156105d557600080fd5b506105de611280565b6040516105eb9190613fe1565b60405180910390f35b34801561060057600080fd5b50610609611286565b6040516106169190614169565b60405180910390f35b34801561062b57600080fd5b50610646600480360381019061064191906140c9565b6112ac565b005b34801561065457600080fd5b5061065d611344565b60405161066a9190613fe1565b60405180910390f35b34801561067f57600080fd5b5061069a60048036038101906106959190613dd2565b61134a565b6040516106a79190613e1a565b60405180910390f35b3480156106bc57600080fd5b506106d760048036038101906106d291906140c9565b61136a565b005b3480156106e557600080fd5b5061070060048036038101906106fb9190613e61565b611402565b005b34801561070e57600080fd5b506107176114eb565b6040516107249190613e1a565b60405180910390f35b34801561073957600080fd5b506107426114fe565b005b34801561075057600080fd5b5061076b60048036038101906107669190613e61565b6115da565b005b34801561077957600080fd5b50610794600480360381019061078f9190613dd2565b6116c3565b6040516107a19190613fe1565b60405180910390f35b3480156107b657600080fd5b506107bf61170c565b005b3480156107cd57600080fd5b506107d6611858565b005b3480156107e457600080fd5b506107ff60048036038101906107fa91906140c9565b611934565b005b34801561080d57600080fd5b5061082860048036038101906108239190613dd2565b6119cc565b005b34801561083657600080fd5b5061083f611b4e565b60405161084c91906141a5565b60405180910390f35b34801561086157600080fd5b5061086a611b74565b6040516108779190613fe1565b60405180910390f35b34801561088c57600080fd5b50610895611b7a565b6040516108a29190614169565b60405180910390f35b3480156108b757600080fd5b506108c0611ba3565b6040516108cd9190613f3a565b60405180910390f35b3480156108e257600080fd5b506108eb611c35565b6040516108f89190613fe1565b60405180910390f35b34801561090d57600080fd5b5061092860048036038101906109239190614225565b611c3b565b005b34801561093657600080fd5b50610951600480360381019061094c9190613e61565b611d7c565b005b34801561095f57600080fd5b5061097a60048036038101906109759190613f92565b611ebd565b6040516109879190613e1a565b60405180910390f35b34801561099c57600080fd5b506109a5611ed4565b6040516109b29190613fe1565b60405180910390f35b3480156109c757600080fd5b506109d0611eda565b6040516109dd9190613fe1565b60405180910390f35b3480156109f257600080fd5b50610a0d6004803603810190610a0891906140c9565b611ee0565b005b348015610a1b57600080fd5b50610a366004803603810190610a319190614285565b611f78565b005b348015610a4457600080fd5b50610a5f6004803603810190610a5a91906140c9565b6120e2565b005b348015610a6d57600080fd5b50610a886004803603810190610a8391906140c9565b6121d2565b005b348015610a9657600080fd5b50610ab16004803603810190610aac9190613dd2565b61226a565b604051610abe9190613e1a565b60405180910390f35b348015610ad357600080fd5b50610adc61228a565b604051610ae99190613fe1565b60405180910390f35b348015610afe57600080fd5b50610b196004803603810190610b149190613e61565b612290565b005b348015610b2757600080fd5b50610b426004803603810190610b3d91906142d8565b6123d1565b604051610b4f9190613fe1565b60405180910390f35b348015610b6457600080fd5b50610b6d612458565b604051610b7a9190614169565b60405180910390f35b348015610b8f57600080fd5b50610baa6004803603810190610ba591906140c9565b61247e565b005b348015610bb857600080fd5b50610bd36004803603810190610bce9190613dd2565b612516565b005b348015610be157600080fd5b50610bea6126d0565b604051610bf79190614169565b60405180910390f35b348015610c0c57600080fd5b50610c156126f6565b005b60086020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610cde57503373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610d1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1490614364565b60405180910390fd5b80601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b606060048054610d87906143b3565b80601f0160208091040260200160405190810160405280929190818152602001828054610db3906143b3565b8015610e005780601f10610dd557610100808354040283529160200191610e00565b820191906000526020600020905b815481529060010190602001808311610de357829003601f168201915b5050505050905090565b6000610e1733848461278e565b6001905092915050565b60125481565b6000600b54905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb690614430565b60405180910390fd5b6000601981905550565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610efc848484612879565b600019600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461108a5781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611009919061447f565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600190509392505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611123576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111a90614430565b60405180910390fd5b8060108190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b290614430565b60405180910390fd5b80601560006101000a81548160ff02191690831515021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611240573d6000803e3d6000fd5b50565b6000600660009054906101000a900460ff16905090565b60135481565b600e6020528060005260406000206000915054906101000a900460ff1681565b60165481565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461133a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133190614430565b60405180910390fd5b8060078190555050565b60175481565b60096020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ef90614430565b60405180910390fd5b8060128190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611490576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148790614430565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601560009054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461158c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158390614430565b60405180910390fd5b6017546000146115d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c8906144ff565b60405180910390fd5b43601781905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165f90614430565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461179a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179190614430565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118dd90614430565b60405180910390fd5b60195460001461192b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119229061456b565b60405180910390fd5b43601981905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b990614430565b60405180910390fd5b8060138190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480611a7357503373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b611ab2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa990614364565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054611bb2906143b3565b80601f0160208091040260200160405190810160405280929190818152602001828054611bde906143b3565b8015611c2b5780601f10611c0057610100808354040283529160200191611c2b565b820191906000526020600020905b815481529060010190602001808311611c0e57829003601f168201915b5050505050905090565b60195481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc090614430565b60405180910390fd5b60c98383905010611cd957600080fd5b60005b83839050811015611d76578160096000868685818110611cff57611cfe61458b565b5b9050602002016020810190611d149190613dd2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080611d6f906145ba565b9050611cdc565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480611e2357503373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b611e62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5990614364565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611eca338484612879565b6001905092915050565b60115481565b60145481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6590614430565b60405180910390fd5b8060148190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061201f57503373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b61205e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205590614364565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82846040518363ffffffff1660e01b8152600401612099929190614602565b6020604051808303816000875af11580156120b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120dc9190614640565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061218957503373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b6121c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121bf90614364565b60405180910390fd5b80601e8190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612260576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225790614430565b60405180910390fd5b8060118190555050565b600a6020528060005260406000206000915054906101000a900460ff1681565b60105481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061233757503373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b612376576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236d90614364565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461250c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250390614430565b60405180910390fd5b8060168190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259b90614430565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612613576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260a906146b9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612784576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277b90614430565b60405180910390fd5b6000601781905550565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161286c9190613fe1565b60405180910390a3505050565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128fd90614725565b60405180910390fd5b6000612911846116c3565b905081811015612956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294d90614791565b60405180910390fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129fa5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a2c57600061271061270f83612a1291906147b1565b612a1c919061483a565b905080831115612a2a578092505b505b600080600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612ad05750600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612d9957600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b795750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612d4157601754600003612c23576019546000108015612be35750600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612c22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c19906148b7565b60405180910390fd5b5b6000601754612c3291906148d7565b431015612c4c57612c44868686612dff565b505050612dfa565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612d3c57600f60009054906101000a900460ff16612d3b576000612cbd306116c3565b90506000811115612d39576000601454601254601354601154601054612ce391906148d7565b612ced91906148d7565b612cf791906148d7565b612d0191906148d7565b905060006113888288612d1491906147b1565b612d1e919061483a565b905082811115612d2c578290505b612d368183612ef3565b50505b505b5b600191505b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612d9857600190505b5b612da686868685856134d6565b3073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614612df6578015612de957612de886613720565b5b612df56207a1206138b3565b5b5050505b505050565b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e4a919061447f565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006064603283612e9e91906147b1565b612ea8919061483a565b9050612ed784600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613c72565b612eed84848385612ee8919061447f565b613c72565b50505050565b6001600f60006101000a81548160ff0219169083151502179055508081612f1a91906148d7565b9050600060145490506000828285612f3291906147b1565b612f3c919061483a565b90506000600267ffffffffffffffff811115612f5b57612f5a61492d565b5b604051908082528060200260200182016040528015612f895781602001602082028036833780820191505090505b5090503081600081518110612fa157612fa061458b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106130125761301161458b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d7958387613096919061447f565b600084600f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016130dd959493929190614a55565b600060405180830381600087803b1580156130f757600080fd5b505af115801561310b573d6000803e3d6000fd5b50505050828461311b919061447f565b93506000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231600f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016131a19190614169565b602060405180830381865afa1580156131be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131e29190614ac4565b905060008660026013546010546131f991906148d7565b8461320491906147b1565b61320e91906147b1565b613218919061483a565b90508273ffffffffffffffffffffffffffffffffffffffff166323b872dd600f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b815260040161329b93929190614af1565b6020604051808303816000875af11580156132ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132de9190614640565b508273ffffffffffffffffffffffffffffffffffffffff166323b872dd600f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1630848661332b919061447f565b6040518463ffffffff1660e01b815260040161334993929190614af1565b6020604051808303816000875af1158015613368573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061338c9190614640565b5060008511156134b15760008787846133a591906147b1565b6133af919061483a565b905060008111156134af57600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e8e3370030600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168985600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518963ffffffff1660e01b8152600401613468989796959493929190614b28565b6060604051808303816000875af1158015613487573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134ab9190614ba6565b5050505b505b5050505050506000600f60006101000a81548160ff0219169083151502179055505050565b82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613521919061447f565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000821561363357600082156135985760145460125460135461358791906148d7565b61359191906148d7565b90506135f0565b6011546010546135a891906148d7565b90506007548511156135ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135e690614c45565b60405180910390fd5b5b6000612710828761360191906147b1565b61360b919061483a565b9050600081111561363057808361362291906148d7565b925061362f883083613c72565b5b50505b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156136995750601560009054906101000a900460ff165b156137025760165481856136ac886116c3565b6136b691906148d7565b6136c0919061447f565b1115613701576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136f890614cb1565b60405180910390fd5b5b61371886868387613713919061447f565b613c72565b505050505050565b6000813b9050600081111561373557506138b0565b601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546000036138ae57601a80549050600014806137fb57508173ffffffffffffffffffffffffffffffffffffffff16601a6000815481106137b7576137b661458b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b156138ad57601a80549050601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601a829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b505b50565b436014601f546138c391906148d7565b11613c6f576000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161392a9190614169565b602060405180830381865afa158015613947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061396b9190614ac4565b9050601e5481101561397e575050613c6f565b6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156139f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a169190614ac4565b9050600080600080601a80549050905060008060005a90505b8b83108015613a3d57508382105b15613c5c5783601d5410613a54576000601d819055505b601a601d5481548110613a6a57613a6961458b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1696508873ffffffffffffffffffffffffffffffffffffffff166370a08231886040518263ffffffff1660e01b8152600401613ad09190614169565b602060405180830381865afa158015613aed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b119190614ac4565b9550600086118015613b6d5750601c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613c155787868b613b7f91906147b1565b613b89919061483a565b94506000851115613c14578a73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb88876040518363ffffffff1660e01b8152600401613bcf929190614602565b6020604051808303816000875af1158015613bee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c129190614640565b505b5b5a81613c21919061447f565b83613c2c91906148d7565b92505a9050601d6000815480929190613c44906145ba565b91905055508180613c54906145ba565b925050613a2f565b43601f8190555050505050505050505050505b50565b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613cbd91906148d7565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613d5d9190613fe1565b60405180910390a3505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613d9f82613d74565b9050919050565b613daf81613d94565b8114613dba57600080fd5b50565b600081359050613dcc81613da6565b92915050565b600060208284031215613de857613de7613d6a565b5b6000613df684828501613dbd565b91505092915050565b60008115159050919050565b613e1481613dff565b82525050565b6000602082019050613e2f6000830184613e0b565b92915050565b613e3e81613dff565b8114613e4957600080fd5b50565b600081359050613e5b81613e35565b92915050565b60008060408385031215613e7857613e77613d6a565b5b6000613e8685828601613dbd565b9250506020613e9785828601613e4c565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613edb578082015181840152602081019050613ec0565b83811115613eea576000848401525b50505050565b6000601f19601f8301169050919050565b6000613f0c82613ea1565b613f168185613eac565b9350613f26818560208601613ebd565b613f2f81613ef0565b840191505092915050565b60006020820190508181036000830152613f548184613f01565b905092915050565b6000819050919050565b613f6f81613f5c565b8114613f7a57600080fd5b50565b600081359050613f8c81613f66565b92915050565b60008060408385031215613fa957613fa8613d6a565b5b6000613fb785828601613dbd565b9250506020613fc885828601613f7d565b9150509250929050565b613fdb81613f5c565b82525050565b6000602082019050613ff66000830184613fd2565b92915050565b6000819050919050565b600061402161401c61401784613d74565b613ffc565b613d74565b9050919050565b600061403382614006565b9050919050565b600061404582614028565b9050919050565b6140558161403a565b82525050565b6000602082019050614070600083018461404c565b92915050565b60008060006060848603121561408f5761408e613d6a565b5b600061409d86828701613dbd565b93505060206140ae86828701613dbd565b92505060406140bf86828701613f7d565b9150509250925092565b6000602082840312156140df576140de613d6a565b5b60006140ed84828501613f7d565b91505092915050565b60006020828403121561410c5761410b613d6a565b5b600061411a84828501613e4c565b91505092915050565b600060ff82169050919050565b61413981614123565b82525050565b60006020820190506141546000830184614130565b92915050565b61416381613d94565b82525050565b600060208201905061417e600083018461415a565b92915050565b600061418f82614028565b9050919050565b61419f81614184565b82525050565b60006020820190506141ba6000830184614196565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126141e5576141e46141c0565b5b8235905067ffffffffffffffff811115614202576142016141c5565b5b60208301915083602082028301111561421e5761421d6141ca565b5b9250929050565b60008060006040848603121561423e5761423d613d6a565b5b600084013567ffffffffffffffff81111561425c5761425b613d6f565b5b614268868287016141cf565b9350935050602061427b86828701613e4c565b9150509250925092565b60008060006060848603121561429e5761429d613d6a565b5b60006142ac86828701613dbd565b93505060206142bd86828701613f7d565b92505060406142ce86828701613dbd565b9150509250925092565b600080604083850312156142ef576142ee613d6a565b5b60006142fd85828601613dbd565b925050602061430e85828601613dbd565b9150509250929050565b7f2146756e64657200000000000000000000000000000000000000000000000000600082015250565b600061434e600783613eac565b915061435982614318565b602082019050919050565b6000602082019050818103600083015261437d81614341565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806143cb57607f821691505b6020821081036143de576143dd614384565b5b50919050565b7f216f776e65720000000000000000000000000000000000000000000000000000600082015250565b600061441a600683613eac565b9150614425826143e4565b602082019050919050565b600060208201905081810360008301526144498161440d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061448a82613f5c565b915061449583613f5c565b9250828210156144a8576144a7614450565b5b828203905092915050565b7f74726164696e6700000000000000000000000000000000000000000000000000600082015250565b60006144e9600783613eac565b91506144f4826144b3565b602082019050919050565b60006020820190508181036000830152614518816144dc565b9050919050565b7f737461727465644164644c500000000000000000000000000000000000000000600082015250565b6000614555600c83613eac565b91506145608261451f565b602082019050919050565b6000602082019050818103600083015261458481614548565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006145c582613f5c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036145f7576145f6614450565b5b600182019050919050565b6000604082019050614617600083018561415a565b6146246020830184613fd2565b9392505050565b60008151905061463a81613e35565b92915050565b60006020828403121561465657614655613d6a565b5b60006146648482850161462b565b91505092915050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b60006146a3600883613eac565b91506146ae8261466d565b602082019050919050565b600060208201905081810360008301526146d281614696565b9050919050565b7f626c61636b4c6973740000000000000000000000000000000000000000000000600082015250565b600061470f600983613eac565b915061471a826146d9565b602082019050919050565b6000602082019050818103600083015261473e81614702565b9050919050565b7f62616c616e63654e6f74456e6f75676800000000000000000000000000000000600082015250565b600061477b601083613eac565b915061478682614745565b602082019050919050565b600060208201905081810360008301526147aa8161476e565b9050919050565b60006147bc82613f5c565b91506147c783613f5c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614800576147ff614450565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061484582613f5c565b915061485083613f5c565b9250826148605761485f61480b565b5b828204905092915050565b7f2173746172744164644c50000000000000000000000000000000000000000000600082015250565b60006148a1600b83613eac565b91506148ac8261486b565b602082019050919050565b600060208201905081810360008301526148d081614894565b9050919050565b60006148e282613f5c565b91506148ed83613f5c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561492257614921614450565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b600061498161497c6149778461495c565b613ffc565b613f5c565b9050919050565b61499181614966565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6149cc81613d94565b82525050565b60006149de83836149c3565b60208301905092915050565b6000602082019050919050565b6000614a0282614997565b614a0c81856149a2565b9350614a17836149b3565b8060005b83811015614a48578151614a2f88826149d2565b9750614a3a836149ea565b925050600181019050614a1b565b5085935050505092915050565b600060a082019050614a6a6000830188613fd2565b614a776020830187614988565b8181036040830152614a8981866149f7565b9050614a98606083018561415a565b614aa56080830184613fd2565b9695505050505050565b600081519050614abe81613f66565b92915050565b600060208284031215614ada57614ad9613d6a565b5b6000614ae884828501614aaf565b91505092915050565b6000606082019050614b06600083018661415a565b614b13602083018561415a565b614b206040830184613fd2565b949350505050565b600061010082019050614b3e600083018b61415a565b614b4b602083018a61415a565b614b586040830189613fd2565b614b656060830188613fd2565b614b726080830187614988565b614b7f60a0830186614988565b614b8c60c083018561415a565b614b9960e0830184613fd2565b9998505050505050505050565b600080600060608486031215614bbf57614bbe613d6a565b5b6000614bcd86828701614aaf565b9350506020614bde86828701614aaf565b9250506040614bef86828701614aaf565b9150509250925092565b7f6f766572206d61782062757920616d6f756e7400000000000000000000000000600082015250565b6000614c2f601383613eac565b9150614c3a82614bf9565b602082019050919050565b60006020820190508181036000830152614c5e81614c22565b9050919050565b7f6f766572206d61782077616c6c6574206c696d69740000000000000000000000600082015250565b6000614c9b601583613eac565b9150614ca682614c65565b602082019050919050565b60006020820190508181036000830152614cca81614c8e565b905091905056fea26469706673582212206fc5e031124e563f30f88da2a6cd1d53fc0b0fa68cb48ad12e2dc740e205872a64736f6c634300080e0033608060405234801561001057600080fd5b5060405161024c38038061024c8339818101604052810190610032919061011c565b8073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3336000196040518363ffffffff1660e01b815260040161006f929190610171565b6020604051808303816000875af115801561008e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100b291906101d2565b50506101ff565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100e9826100be565b9050919050565b6100f9816100de565b811461010457600080fd5b50565b600081519050610116816100f0565b92915050565b600060208284031215610132576101316100b9565b5b600061014084828501610107565b91505092915050565b610152816100de565b82525050565b6000819050919050565b61016b81610158565b82525050565b60006040820190506101866000830185610149565b6101936020830184610162565b9392505050565b60008115159050919050565b6101af8161019a565b81146101ba57600080fd5b50565b6000815190506101cc816101a6565b92915050565b6000602082840312156101e8576101e76100b9565b5b60006101f6848285016101bd565b91505092915050565b603f8061020d6000396000f3fe6080604052600080fdfea26469706673582212208888e5df521fd3da4d95ec4b021f97e8aafeb68cdda650cb13a015c1935c849964736f6c634300080e0033
Deployed Bytecode
0x60806040526004361061031e5760003560e01c8063715018a6116101ab578063adc7955d116100f7578063d83d414311610095578063f1d5f5171161006f578063f1d5f51714610b83578063f2fde38b14610bac578063f9aba09314610bd5578063fcdb89ce14610c0057610325565b8063d83d414314610af2578063dd62ed3e14610b1b578063e82bef2914610b5857610325565b8063c213d62d116100d1578063c213d62d14610a38578063c35660e414610a61578063c867d60b14610a8a578063ce0192f914610ac757610325565b8063adc7955d146109bb578063b3621cfb146109e6578063bfac5ee014610a0f57610325565b80638da5cb5b116101645780639dd33c671161013e5780639dd33c6714610901578063a84248611461092a578063a9059cbb14610953578063a925a6bd1461099057610325565b80638da5cb5b1461088057806395d89b41146108ab5780639bb85344146108d657610325565b8063715018a6146107aa5780637d3c13e9146107c15780637f4949b5146107d857806385dc3004146108015780638718b24f1461082a57806388e765ff1461085557610325565b80633bfe62ca1161026a578063595dec3c1161022357806369768b50116101fd57806369768b50146107025780636c5808011461072d57806370a02c8b1461074457806370a082311461076d57610325565b8063595dec3c146106735780636659606f146106b057806368092bd9146106d957610325565b80633bfe62ca146105615780633c11100d1461058c5780633c8463a1146105c95780634188bf5a146105f45780634fe47f701461061f578063553193ca1461064857610325565b80631c5ac473116102d757806324163a1e116102b157806324163a1e146104cd57806329778207146104f657806330509bca1461051f578063313ce5671461053657610325565b80631c5ac4731461044e578063206c17bb1461046557806323b872dd1461049057610325565b806301986fad1461032a57806305833c2b1461036757806306fdde0314610390578063095ea7b3146103bb5780630a607930146103f857806318160ddd1461042357610325565b3661032557005b600080fd5b34801561033657600080fd5b50610351600480360381019061034c9190613dd2565b610c17565b60405161035e9190613e1a565b60405180910390f35b34801561037357600080fd5b5061038e60048036038101906103899190613e61565b610c37565b005b34801561039c57600080fd5b506103a5610d78565b6040516103b29190613f3a565b60405180910390f35b3480156103c757600080fd5b506103e260048036038101906103dd9190613f92565b610e0a565b6040516103ef9190613e1a565b60405180910390f35b34801561040457600080fd5b5061040d610e21565b60405161041a9190613fe1565b60405180910390f35b34801561042f57600080fd5b50610438610e27565b6040516104459190613fe1565b60405180910390f35b34801561045a57600080fd5b50610463610e31565b005b34801561047157600080fd5b5061047a610ec9565b604051610487919061405b565b60405180910390f35b34801561049c57600080fd5b506104b760048036038101906104b29190614076565b610eef565b6040516104c49190613e1a565b60405180910390f35b3480156104d957600080fd5b506104f460048036038101906104ef91906140c9565b611095565b005b34801561050257600080fd5b5061051d600480360381019061051891906140f6565b61112d565b005b34801561052b57600080fd5b506105346111d8565b005b34801561054257600080fd5b5061054b611243565b604051610558919061413f565b60405180910390f35b34801561056d57600080fd5b5061057661125a565b6040516105839190613fe1565b60405180910390f35b34801561059857600080fd5b506105b360048036038101906105ae9190613dd2565b611260565b6040516105c09190613e1a565b60405180910390f35b3480156105d557600080fd5b506105de611280565b6040516105eb9190613fe1565b60405180910390f35b34801561060057600080fd5b50610609611286565b6040516106169190614169565b60405180910390f35b34801561062b57600080fd5b50610646600480360381019061064191906140c9565b6112ac565b005b34801561065457600080fd5b5061065d611344565b60405161066a9190613fe1565b60405180910390f35b34801561067f57600080fd5b5061069a60048036038101906106959190613dd2565b61134a565b6040516106a79190613e1a565b60405180910390f35b3480156106bc57600080fd5b506106d760048036038101906106d291906140c9565b61136a565b005b3480156106e557600080fd5b5061070060048036038101906106fb9190613e61565b611402565b005b34801561070e57600080fd5b506107176114eb565b6040516107249190613e1a565b60405180910390f35b34801561073957600080fd5b506107426114fe565b005b34801561075057600080fd5b5061076b60048036038101906107669190613e61565b6115da565b005b34801561077957600080fd5b50610794600480360381019061078f9190613dd2565b6116c3565b6040516107a19190613fe1565b60405180910390f35b3480156107b657600080fd5b506107bf61170c565b005b3480156107cd57600080fd5b506107d6611858565b005b3480156107e457600080fd5b506107ff60048036038101906107fa91906140c9565b611934565b005b34801561080d57600080fd5b5061082860048036038101906108239190613dd2565b6119cc565b005b34801561083657600080fd5b5061083f611b4e565b60405161084c91906141a5565b60405180910390f35b34801561086157600080fd5b5061086a611b74565b6040516108779190613fe1565b60405180910390f35b34801561088c57600080fd5b50610895611b7a565b6040516108a29190614169565b60405180910390f35b3480156108b757600080fd5b506108c0611ba3565b6040516108cd9190613f3a565b60405180910390f35b3480156108e257600080fd5b506108eb611c35565b6040516108f89190613fe1565b60405180910390f35b34801561090d57600080fd5b5061092860048036038101906109239190614225565b611c3b565b005b34801561093657600080fd5b50610951600480360381019061094c9190613e61565b611d7c565b005b34801561095f57600080fd5b5061097a60048036038101906109759190613f92565b611ebd565b6040516109879190613e1a565b60405180910390f35b34801561099c57600080fd5b506109a5611ed4565b6040516109b29190613fe1565b60405180910390f35b3480156109c757600080fd5b506109d0611eda565b6040516109dd9190613fe1565b60405180910390f35b3480156109f257600080fd5b50610a0d6004803603810190610a0891906140c9565b611ee0565b005b348015610a1b57600080fd5b50610a366004803603810190610a319190614285565b611f78565b005b348015610a4457600080fd5b50610a5f6004803603810190610a5a91906140c9565b6120e2565b005b348015610a6d57600080fd5b50610a886004803603810190610a8391906140c9565b6121d2565b005b348015610a9657600080fd5b50610ab16004803603810190610aac9190613dd2565b61226a565b604051610abe9190613e1a565b60405180910390f35b348015610ad357600080fd5b50610adc61228a565b604051610ae99190613fe1565b60405180910390f35b348015610afe57600080fd5b50610b196004803603810190610b149190613e61565b612290565b005b348015610b2757600080fd5b50610b426004803603810190610b3d91906142d8565b6123d1565b604051610b4f9190613fe1565b60405180910390f35b348015610b6457600080fd5b50610b6d612458565b604051610b7a9190614169565b60405180910390f35b348015610b8f57600080fd5b50610baa6004803603810190610ba591906140c9565b61247e565b005b348015610bb857600080fd5b50610bd36004803603810190610bce9190613dd2565b612516565b005b348015610be157600080fd5b50610bea6126d0565b604051610bf79190614169565b60405180910390f35b348015610c0c57600080fd5b50610c156126f6565b005b60086020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610cde57503373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610d1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1490614364565b60405180910390fd5b80601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b606060048054610d87906143b3565b80601f0160208091040260200160405190810160405280929190818152602001828054610db3906143b3565b8015610e005780601f10610dd557610100808354040283529160200191610e00565b820191906000526020600020905b815481529060010190602001808311610de357829003601f168201915b5050505050905090565b6000610e1733848461278e565b6001905092915050565b60125481565b6000600b54905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb690614430565b60405180910390fd5b6000601981905550565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610efc848484612879565b600019600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461108a5781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611009919061447f565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600190509392505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611123576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111a90614430565b60405180910390fd5b8060108190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b290614430565b60405180910390fd5b80601560006101000a81548160ff02191690831515021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611240573d6000803e3d6000fd5b50565b6000600660009054906101000a900460ff16905090565b60135481565b600e6020528060005260406000206000915054906101000a900460ff1681565b60165481565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461133a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133190614430565b60405180910390fd5b8060078190555050565b60175481565b60096020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ef90614430565b60405180910390fd5b8060128190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611490576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148790614430565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601560009054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461158c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158390614430565b60405180910390fd5b6017546000146115d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c8906144ff565b60405180910390fd5b43601781905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165f90614430565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461179a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179190614430565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118dd90614430565b60405180910390fd5b60195460001461192b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119229061456b565b60405180910390fd5b43601981905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b990614430565b60405180910390fd5b8060138190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480611a7357503373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b611ab2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa990614364565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054611bb2906143b3565b80601f0160208091040260200160405190810160405280929190818152602001828054611bde906143b3565b8015611c2b5780601f10611c0057610100808354040283529160200191611c2b565b820191906000526020600020905b815481529060010190602001808311611c0e57829003601f168201915b5050505050905090565b60195481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc090614430565b60405180910390fd5b60c98383905010611cd957600080fd5b60005b83839050811015611d76578160096000868685818110611cff57611cfe61458b565b5b9050602002016020810190611d149190613dd2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080611d6f906145ba565b9050611cdc565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480611e2357503373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b611e62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5990614364565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611eca338484612879565b6001905092915050565b60115481565b60145481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6590614430565b60405180910390fd5b8060148190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061201f57503373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b61205e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205590614364565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82846040518363ffffffff1660e01b8152600401612099929190614602565b6020604051808303816000875af11580156120b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120dc9190614640565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061218957503373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b6121c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121bf90614364565b60405180910390fd5b80601e8190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612260576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225790614430565b60405180910390fd5b8060118190555050565b600a6020528060005260406000206000915054906101000a900460ff1681565b60105481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061233757503373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b612376576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236d90614364565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461250c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250390614430565b60405180910390fd5b8060168190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259b90614430565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612613576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260a906146b9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612784576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277b90614430565b60405180910390fd5b6000601781905550565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161286c9190613fe1565b60405180910390a3505050565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128fd90614725565b60405180910390fd5b6000612911846116c3565b905081811015612956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294d90614791565b60405180910390fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129fa5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a2c57600061271061270f83612a1291906147b1565b612a1c919061483a565b905080831115612a2a578092505b505b600080600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612ad05750600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612d9957600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b795750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612d4157601754600003612c23576019546000108015612be35750600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612c22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c19906148b7565b60405180910390fd5b5b6000601754612c3291906148d7565b431015612c4c57612c44868686612dff565b505050612dfa565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612d3c57600f60009054906101000a900460ff16612d3b576000612cbd306116c3565b90506000811115612d39576000601454601254601354601154601054612ce391906148d7565b612ced91906148d7565b612cf791906148d7565b612d0191906148d7565b905060006113888288612d1491906147b1565b612d1e919061483a565b905082811115612d2c578290505b612d368183612ef3565b50505b505b5b600191505b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612d9857600190505b5b612da686868685856134d6565b3073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614612df6578015612de957612de886613720565b5b612df56207a1206138b3565b5b5050505b505050565b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e4a919061447f565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006064603283612e9e91906147b1565b612ea8919061483a565b9050612ed784600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613c72565b612eed84848385612ee8919061447f565b613c72565b50505050565b6001600f60006101000a81548160ff0219169083151502179055508081612f1a91906148d7565b9050600060145490506000828285612f3291906147b1565b612f3c919061483a565b90506000600267ffffffffffffffff811115612f5b57612f5a61492d565b5b604051908082528060200260200182016040528015612f895781602001602082028036833780820191505090505b5090503081600081518110612fa157612fa061458b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106130125761301161458b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d7958387613096919061447f565b600084600f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016130dd959493929190614a55565b600060405180830381600087803b1580156130f757600080fd5b505af115801561310b573d6000803e3d6000fd5b50505050828461311b919061447f565b93506000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231600f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016131a19190614169565b602060405180830381865afa1580156131be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131e29190614ac4565b905060008660026013546010546131f991906148d7565b8461320491906147b1565b61320e91906147b1565b613218919061483a565b90508273ffffffffffffffffffffffffffffffffffffffff166323b872dd600f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b815260040161329b93929190614af1565b6020604051808303816000875af11580156132ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132de9190614640565b508273ffffffffffffffffffffffffffffffffffffffff166323b872dd600f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1630848661332b919061447f565b6040518463ffffffff1660e01b815260040161334993929190614af1565b6020604051808303816000875af1158015613368573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061338c9190614640565b5060008511156134b15760008787846133a591906147b1565b6133af919061483a565b905060008111156134af57600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e8e3370030600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168985600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518963ffffffff1660e01b8152600401613468989796959493929190614b28565b6060604051808303816000875af1158015613487573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134ab9190614ba6565b5050505b505b5050505050506000600f60006101000a81548160ff0219169083151502179055505050565b82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613521919061447f565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000821561363357600082156135985760145460125460135461358791906148d7565b61359191906148d7565b90506135f0565b6011546010546135a891906148d7565b90506007548511156135ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135e690614c45565b60405180910390fd5b5b6000612710828761360191906147b1565b61360b919061483a565b9050600081111561363057808361362291906148d7565b925061362f883083613c72565b5b50505b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156136995750601560009054906101000a900460ff165b156137025760165481856136ac886116c3565b6136b691906148d7565b6136c0919061447f565b1115613701576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136f890614cb1565b60405180910390fd5b5b61371886868387613713919061447f565b613c72565b505050505050565b6000813b9050600081111561373557506138b0565b601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546000036138ae57601a80549050600014806137fb57508173ffffffffffffffffffffffffffffffffffffffff16601a6000815481106137b7576137b661458b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b156138ad57601a80549050601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601a829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b505b50565b436014601f546138c391906148d7565b11613c6f576000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161392a9190614169565b602060405180830381865afa158015613947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061396b9190614ac4565b9050601e5481101561397e575050613c6f565b6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156139f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a169190614ac4565b9050600080600080601a80549050905060008060005a90505b8b83108015613a3d57508382105b15613c5c5783601d5410613a54576000601d819055505b601a601d5481548110613a6a57613a6961458b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1696508873ffffffffffffffffffffffffffffffffffffffff166370a08231886040518263ffffffff1660e01b8152600401613ad09190614169565b602060405180830381865afa158015613aed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b119190614ac4565b9550600086118015613b6d5750601c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613c155787868b613b7f91906147b1565b613b89919061483a565b94506000851115613c14578a73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb88876040518363ffffffff1660e01b8152600401613bcf929190614602565b6020604051808303816000875af1158015613bee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c129190614640565b505b5b5a81613c21919061447f565b83613c2c91906148d7565b92505a9050601d6000815480929190613c44906145ba565b91905055508180613c54906145ba565b925050613a2f565b43601f8190555050505050505050505050505b50565b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613cbd91906148d7565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613d5d9190613fe1565b60405180910390a3505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613d9f82613d74565b9050919050565b613daf81613d94565b8114613dba57600080fd5b50565b600081359050613dcc81613da6565b92915050565b600060208284031215613de857613de7613d6a565b5b6000613df684828501613dbd565b91505092915050565b60008115159050919050565b613e1481613dff565b82525050565b6000602082019050613e2f6000830184613e0b565b92915050565b613e3e81613dff565b8114613e4957600080fd5b50565b600081359050613e5b81613e35565b92915050565b60008060408385031215613e7857613e77613d6a565b5b6000613e8685828601613dbd565b9250506020613e9785828601613e4c565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613edb578082015181840152602081019050613ec0565b83811115613eea576000848401525b50505050565b6000601f19601f8301169050919050565b6000613f0c82613ea1565b613f168185613eac565b9350613f26818560208601613ebd565b613f2f81613ef0565b840191505092915050565b60006020820190508181036000830152613f548184613f01565b905092915050565b6000819050919050565b613f6f81613f5c565b8114613f7a57600080fd5b50565b600081359050613f8c81613f66565b92915050565b60008060408385031215613fa957613fa8613d6a565b5b6000613fb785828601613dbd565b9250506020613fc885828601613f7d565b9150509250929050565b613fdb81613f5c565b82525050565b6000602082019050613ff66000830184613fd2565b92915050565b6000819050919050565b600061402161401c61401784613d74565b613ffc565b613d74565b9050919050565b600061403382614006565b9050919050565b600061404582614028565b9050919050565b6140558161403a565b82525050565b6000602082019050614070600083018461404c565b92915050565b60008060006060848603121561408f5761408e613d6a565b5b600061409d86828701613dbd565b93505060206140ae86828701613dbd565b92505060406140bf86828701613f7d565b9150509250925092565b6000602082840312156140df576140de613d6a565b5b60006140ed84828501613f7d565b91505092915050565b60006020828403121561410c5761410b613d6a565b5b600061411a84828501613e4c565b91505092915050565b600060ff82169050919050565b61413981614123565b82525050565b60006020820190506141546000830184614130565b92915050565b61416381613d94565b82525050565b600060208201905061417e600083018461415a565b92915050565b600061418f82614028565b9050919050565b61419f81614184565b82525050565b60006020820190506141ba6000830184614196565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126141e5576141e46141c0565b5b8235905067ffffffffffffffff811115614202576142016141c5565b5b60208301915083602082028301111561421e5761421d6141ca565b5b9250929050565b60008060006040848603121561423e5761423d613d6a565b5b600084013567ffffffffffffffff81111561425c5761425b613d6f565b5b614268868287016141cf565b9350935050602061427b86828701613e4c565b9150509250925092565b60008060006060848603121561429e5761429d613d6a565b5b60006142ac86828701613dbd565b93505060206142bd86828701613f7d565b92505060406142ce86828701613dbd565b9150509250925092565b600080604083850312156142ef576142ee613d6a565b5b60006142fd85828601613dbd565b925050602061430e85828601613dbd565b9150509250929050565b7f2146756e64657200000000000000000000000000000000000000000000000000600082015250565b600061434e600783613eac565b915061435982614318565b602082019050919050565b6000602082019050818103600083015261437d81614341565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806143cb57607f821691505b6020821081036143de576143dd614384565b5b50919050565b7f216f776e65720000000000000000000000000000000000000000000000000000600082015250565b600061441a600683613eac565b9150614425826143e4565b602082019050919050565b600060208201905081810360008301526144498161440d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061448a82613f5c565b915061449583613f5c565b9250828210156144a8576144a7614450565b5b828203905092915050565b7f74726164696e6700000000000000000000000000000000000000000000000000600082015250565b60006144e9600783613eac565b91506144f4826144b3565b602082019050919050565b60006020820190508181036000830152614518816144dc565b9050919050565b7f737461727465644164644c500000000000000000000000000000000000000000600082015250565b6000614555600c83613eac565b91506145608261451f565b602082019050919050565b6000602082019050818103600083015261458481614548565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006145c582613f5c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036145f7576145f6614450565b5b600182019050919050565b6000604082019050614617600083018561415a565b6146246020830184613fd2565b9392505050565b60008151905061463a81613e35565b92915050565b60006020828403121561465657614655613d6a565b5b60006146648482850161462b565b91505092915050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b60006146a3600883613eac565b91506146ae8261466d565b602082019050919050565b600060208201905081810360008301526146d281614696565b9050919050565b7f626c61636b4c6973740000000000000000000000000000000000000000000000600082015250565b600061470f600983613eac565b915061471a826146d9565b602082019050919050565b6000602082019050818103600083015261473e81614702565b9050919050565b7f62616c616e63654e6f74456e6f75676800000000000000000000000000000000600082015250565b600061477b601083613eac565b915061478682614745565b602082019050919050565b600060208201905081810360008301526147aa8161476e565b9050919050565b60006147bc82613f5c565b91506147c783613f5c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614800576147ff614450565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061484582613f5c565b915061485083613f5c565b9250826148605761485f61480b565b5b828204905092915050565b7f2173746172744164644c50000000000000000000000000000000000000000000600082015250565b60006148a1600b83613eac565b91506148ac8261486b565b602082019050919050565b600060208201905081810360008301526148d081614894565b9050919050565b60006148e282613f5c565b91506148ed83613f5c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561492257614921614450565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b600061498161497c6149778461495c565b613ffc565b613f5c565b9050919050565b61499181614966565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6149cc81613d94565b82525050565b60006149de83836149c3565b60208301905092915050565b6000602082019050919050565b6000614a0282614997565b614a0c81856149a2565b9350614a17836149b3565b8060005b83811015614a48578151614a2f88826149d2565b9750614a3a836149ea565b925050600181019050614a1b565b5085935050505092915050565b600060a082019050614a6a6000830188613fd2565b614a776020830187614988565b8181036040830152614a8981866149f7565b9050614a98606083018561415a565b614aa56080830184613fd2565b9695505050505050565b600081519050614abe81613f66565b92915050565b600060208284031215614ada57614ad9613d6a565b5b6000614ae884828501614aaf565b91505092915050565b6000606082019050614b06600083018661415a565b614b13602083018561415a565b614b206040830184613fd2565b949350505050565b600061010082019050614b3e600083018b61415a565b614b4b602083018a61415a565b614b586040830189613fd2565b614b656060830188613fd2565b614b726080830187614988565b614b7f60a0830186614988565b614b8c60c083018561415a565b614b9960e0830184613fd2565b9998505050505050505050565b600080600060608486031215614bbf57614bbe613d6a565b5b6000614bcd86828701614aaf565b9350506020614bde86828701614aaf565b9250506040614bef86828701614aaf565b9150509250925092565b7f6f766572206d61782062757920616d6f756e7400000000000000000000000000600082015250565b6000614c2f601383613eac565b9150614c3a82614bf9565b602082019050919050565b60006020820190508181036000830152614c5e81614c22565b9050919050565b7f6f766572206d61782077616c6c6574206c696d69740000000000000000000000600082015250565b6000614c9b601583613eac565b9150614ca682614c65565b602082019050919050565b60006020820190508181036000830152614cca81614c8e565b905091905056fea26469706673582212206fc5e031124e563f30f88da2a6cd1d53fc0b0fa68cb48ad12e2dc740e205872a64736f6c634300080e0033
Deployed Bytecode Sourcemap
17797:513:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3083:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17670:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6086:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6844:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3604:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6290:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14098:79;;;;;;;;;;;;;:::i;:::-;;3277:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7011:336;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13459:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10443:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15050:104;;;;;;;;;;;;;:::i;:::-;;6188:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3648:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3341:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3761:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3837:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7540:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3798:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3135:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13566:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14548:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3724:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14185:141;;;;;;;;;;;;;:::i;:::-;;10300:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6393:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2227:148;;;;;;;;;;;;;:::i;:::-;;13944:146;;;;;;;;;;;;;:::i;:::-;;13695:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13192:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3472:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3045:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2041:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5980:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13905:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14668:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14923:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6520:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3561:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3688:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13804:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15162:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17543:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13332;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3184:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3522:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14421:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6693:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2924:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7656:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2383:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3314:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14334:79;;;;;;;;;;;;;:::i;:::-;;3083:45;;;;;;;;;;;;;;;;;;;;;;:::o;17670:120::-;15357:10;15347:20;;:6;;;;;;;;;;:20;;;:49;;;;15386:10;15371:25;;:11;;;;;;;;;;;:25;;;15347:49;15339:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;17776:6:::1;17754:13;:19;17768:4;17754:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;17670:120:::0;;:::o;6086:94::-;6134:13;6167:5;6160:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6086:94;:::o;6844:159::-;6919:4;6936:37;6945:10;6957:7;6966:6;6936:8;:37::i;:::-;6991:4;6984:11;;6844:159;;;;:::o;3604:37::-;;;;:::o;6290:95::-;6343:7;6370;;6363:14;;6290:95;:::o;14098:79::-;2178:10;2168:20;;:6;;;;;;;;;;:20;;;2160:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;14168:1:::1;14150:15;:19;;;;14098:79::o:0;3277:30::-;;;;;;;;;;;;;:::o;7011:336::-;7109:4;7126:36;7136:6;7144:9;7155:6;7126:9;:36::i;:::-;3463:1;3454:11;7177;:19;7189:6;7177:19;;;;;;;;;;;;;;;:31;7197:10;7177:31;;;;;;;;;;;;;;;;:38;7173:145;;7300:6;7266:11;:19;7278:6;7266:19;;;;;;;;;;;;;;;:31;7286:10;7266:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;7232:11;:19;7244:6;7232:19;;;;;;;;;;;;;;;:31;7252:10;7232:31;;;;;;;;;;;;;;;:74;;;;7173:145;7335:4;7328:11;;7011:336;;;;;:::o;13459:99::-;2178:10;2168:20;;:6;;;;;;;;;;:20;;;2160:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;13543:7:::1;13529:11;:21;;;;13459:99:::0;:::o;10443:93::-;2178:10;2168:20;;:6;;;;;;;;;;:20;;;2160:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;10522:6:::1;10508:11;;:20;;;;;;;;;;;;;;;;;;10443:93:::0;:::o;15050:104::-;15102:11;;;;;;;;;;;15094:29;;:52;15124:21;15094:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15050:104::o;6188:94::-;6240:5;6265:9;;;;;;;;;;;6258:16;;6188:94;:::o;3648:33::-;;;;:::o;3341:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;3761:26::-;;;;:::o;3837:24::-;;;;;;;;;;;;;:::o;7540:108::-;2178:10;2168:20;;:6;;;;;;;;;;:20;;;2160:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;7627:13:::1;7612:12;:28;;;;7540:108:::0;:::o;3798:30::-;;;;:::o;3135:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;13566:121::-;2178:10;2168:20;;:6;;;;;;;;;;:20;;;2160:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;13668:11:::1;13647:18;:32;;;;13566:121:::0;:::o;14548:112::-;2178:10;2168:20;;:6;;;;;;;;;;:20;;;2160:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;14646:6:::1;14627:10;:16;14638:4;14627:16;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;14548:112:::0;;:::o;3724:30::-;;;;;;;;;;;;;:::o;14185:141::-;2178:10;2168:20;;:6;;;;;;;;;;:20;;;2160:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;14250:15:::1;;14245:1;:20;14237:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;14306:12;14288:15;:30;;;;14185:141::o:0;10300:135::-;2178:10;2168:20;;:6;;;;;;;;;;:20;;;2160:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;10421:6:::1;10391:19;:27;10411:6;10391:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;10300:135:::0;;:::o;6393:119::-;6459:7;6486:9;:18;6496:7;6486:18;;;;;;;;;;;;;;;;6479:25;;6393:119;;;:::o;2227:148::-;2178:10;2168:20;;:6;;;;;;;;;;:20;;;2160:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;2334:1:::1;2297:40;;2318:6;::::0;::::1;;;;;;;;2297:40;;;;;;;;;;;;2365:1;2348:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2227:148::o:0;13944:146::-;2178:10;2168:20;;:6;;;;;;;;;;:20;;;2160:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;14009:15:::1;;14004:1;:20;13996:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;14070:12;14052:15;:30;;;;13944:146::o:0;13695:101::-;2178:10;2168:20;;:6;;;;;;;;;;:20;;;2160:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;13781:7:::1;13766:12;:22;;;;13695:101:::0;:::o;13192:132::-;15357:10;15347:20;;:6;;;;;;;;;;:20;;;:49;;;;15386:10;15371:25;;:11;;;;;;;;;;;:25;;;15347:49;15339:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;13275:4:::1;13261:11;;:18;;;;;;;;;;;;;;;;;;13312:4;13290:13;:19;13304:4;13290:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;13192:132:::0;:::o;3472:41::-;;;;;;;;;;;;;:::o;3045:27::-;;;;:::o;2041:79::-;2079:7;2106:6;;;;;;;;;;;2099:13;;2041:79;:::o;5980:98::-;6030:13;6063:7;6056:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5980:98;:::o;13905:30::-;;;;:::o;14668:247::-;2178:10;2168:20;;:6;;;;;;;;;;:20;;;2160:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;14790:3:::1;14771:9;;:16;;:22;14763:31;;;::::0;::::1;;14810:9;14805:103;14825:9;;:16;;14821:1;:20;14805:103;;;14890:6;14863:10;:24;14874:9;;14884:1;14874:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;14863:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;14843:3;;;;:::i;:::-;;;14805:103;;;;14668:247:::0;;;:::o;14923:119::-;15357:10;15347:20;;:6;;;;;;;;;;:20;;;:49;;;;15386:10;15371:25;;:11;;;;;;;;;;;:25;;;15347:49;15339:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;15028:6:::1;15006:13;:19;15020:4;15006:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;14923:119:::0;;:::o;6520:165::-;6598:4;6615:40;6625:10;6637:9;6648:6;6615:9;:40::i;:::-;6673:4;6666:11;;6520:165;;;;:::o;3561:36::-;;;;:::o;3688:29::-;;;;:::o;13804:93::-;2178:10;2168:20;;:6;;;;;;;;;;:20;;;2160:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;13884:5:::1;13871:10;:18;;;;13804:93:::0;:::o;15162:136::-;15357:10;15347:20;;:6;;;;;;;;;;:20;;;:49;;;;15386:10;15371:25;;:11;;;;;;;;;;;:25;;;15347:49;15339:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;15263:5:::1;15256:22;;;15279:2;15283:6;15256:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15162:136:::0;;;:::o;17543:119::-;15357:10;15347:20;;:6;;;;;;;;;;:20;;;:49;;;;15386:10;15371:25;;:11;;;;;;;;;;;:25;;;15347:49;15339:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;17648:6:::1;17624:21;:30;;;;17543:119:::0;:::o;13332:::-;2178:10;2168:20;;:6;;;;;;;;;;:20;;;2160:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;13432:11:::1;13412:17;:31;;;;13332:119:::0;:::o;3184:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;3522:32::-;;;;:::o;14421:119::-;15357:10;15347:20;;:6;;;;;;;;;;:20;;;:49;;;;15386:10;15371:25;;:11;;;;;;;;;;;:25;;;15347:49;15339:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;14526:6:::1;14504:13;:19;14518:4;14504:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;14421:119:::0;;:::o;6693:143::-;6774:7;6801:11;:18;6813:5;6801:18;;;;;;;;;;;;;;;:27;6820:7;6801:27;;;;;;;;;;;;;;;;6794:34;;6693:143;;;;:::o;2924:26::-;;;;;;;;;;;;;:::o;7656:107::-;2178:10;2168:20;;:6;;;;;;;;;;:20;;;2160:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;7743:12:::1;7729:11;:26;;;;7656:107:::0;:::o;2383:214::-;2178:10;2168:20;;:6;;;;;;;;;;:20;;;2160:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;2492:1:::1;2472:22;;:8;:22;;::::0;2464:43:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2552:8;2523:38;;2544:6;::::0;::::1;;;;;;;;2523:38;;;;;;;;;;;;2581:8;2572:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2383:214:::0;:::o;3314:20::-;;;;;;;;;;;;;:::o;14334:79::-;2178:10;2168:20;;:6;;;;;;;;;;:20;;;2160:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;14404:1:::1;14386:15;:19;;;;14334:79::o:0;7355:177::-;7470:6;7440:11;:18;7452:5;7440:18;;;;;;;;;;;;;;;:27;7459:7;7440:27;;;;;;;;;;;;;;;:36;;;;7508:7;7492:32;;7501:5;7492:32;;;7517:6;7492:32;;;;;;:::i;:::-;;;;;;;;7355:177;;;:::o;7773:2110::-;7896:10;:16;7907:4;7896:16;;;;;;;;;;;;;;;;;;;;;;;;;7895:17;7887:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;7939:15;7957;7967:4;7957:9;:15::i;:::-;7939:33;;8002:6;7991:7;:17;;7983:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;8047:13;:19;8061:4;8047:19;;;;;;;;;;;;;;;;;;;;;;;;;8046:20;:42;;;;;8071:13;:17;8085:2;8071:17;;;;;;;;;;;;;;;;;;;;;;;;;8070:18;8046:42;8042:220;;;8105:21;8146:5;8139:4;8129:7;:14;;;;:::i;:::-;:22;;;;:::i;:::-;8105:46;;8179:13;8170:6;:22;8166:85;;;8222:13;8213:22;;8166:85;8090:172;8042:220;8274:12;8297:11;8325:13;:19;8339:4;8325:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;8348:13;:17;8362:2;8348:17;;;;;;;;;;;;;;;;;;;;;;;;;8325:40;8321:1330;;;8387:13;:19;8401:4;8387:19;;;;;;;;;;;;;;;;;;;;;;;;;8386:20;:42;;;;;8411:13;:17;8425:2;8411:17;;;;;;;;;;;;;;;;;;;;;;;;;8410:18;8386:42;8382:1173;;;8458:15;;8453:1;:20;8449:133;;8510:15;;8506:1;:19;:40;;;;;8529:13;:17;8543:2;8529:17;;;;;;;;;;;;;;;;;;;;;;;;;8506:40;8498:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8449:133;8637:1;8619:15;;:19;;;;:::i;:::-;8604:12;:34;8600:142;;;8663:30;8676:4;8682:2;8686:6;8663:12;:30::i;:::-;8716:7;;;;;8600:142;8766:13;:17;8780:2;8766:17;;;;;;;;;;;;;;;;;;;;;;;;;8762:745;;;8813:6;;;;;;;;;;;8808:680;;8848:28;8879:24;8897:4;8879:9;:24::i;:::-;8848:55;;8957:1;8934:20;:24;8930:535;;;8991:15;9079:10;;9058:18;;9043:12;;9023:17;;9009:11;;:31;;;;:::i;:::-;:46;;;;:::i;:::-;:67;;;;:::i;:::-;:80;;;;:::i;:::-;8991:98;;9120:27;9169:4;9159:7;9150:6;:16;;;;:::i;:::-;:23;;;;:::i;:::-;9120:53;;9230:20;9208:19;:42;9204:157;;;9309:20;9287:42;;9204:157;9391:46;9408:19;9429:7;9391:16;:46::i;:::-;8960:505;;8930:535;8821:667;8808:680;8762:745;9535:4;9525:14;;8382:1173;9573:13;:17;9587:2;9573:17;;;;;;;;;;;;;;;;;;;;;;;;;9569:71;;;9620:4;9611:13;;9569:71;8321:1330;9663:49;9678:4;9684:2;9688:6;9696:7;9705:6;9663:14;:49::i;:::-;9745:4;9729:21;;:4;:21;;;9725:151;;9771:6;9767:62;;;9798:15;9808:4;9798:9;:15::i;:::-;9767:62;9843:21;9857:6;9843:13;:21::i;:::-;9725:151;7876:2007;;;7773:2110;;;;:::o;9891:401::-;10058:7;10038:9;:17;10048:6;10038:17;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;10018:9;:17;10028:6;10018:17;;;;;;;;;;;;;;;:47;;;;10076:17;10111:3;10106:2;10096:7;:12;;;;:::i;:::-;:18;;;;:::i;:::-;10076:38;;10125:95;10153:6;10174:11;;;;;;;;;;;10200:9;10125:13;:95::i;:::-;10231:53;10245:6;10253:9;10274;10264:7;:19;;;;:::i;:::-;10231:13;:53::i;:::-;10007:285;9891:401;;;:::o;11685:1278::-;3911:4;3902:6;;:13;;;;;;;;;;;;;;;;;;11791:7:::1;11780:18;;;;;:::i;:::-;;;11809:13;11825:10;;11809:26;;11846:16;11887:7;11879:5;11865:11;:19;;;;:::i;:::-;:29;;;;:::i;:::-;11846:48;;11907:21;11945:1;11931:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11907:40;;11976:4;11958;11963:1;11958:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12002:5;;;;;;;;;;;11992:4;11997:1;11992:7;;;;;;;;:::i;:::-;;;;;;;:15;;;;;;;;;::::0;::::1;12018:11;;;;;;;;;;;:65;;;12112:8;12098:11;:22;;;;:::i;:::-;12135:1;12151:4;12178:17;;;;;;;;;;;12211:15;12018:219;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12261:5;12250:16;;;;;:::i;:::-;;;12279:11;12300:5;;;;;;;;;;;12279:27;;12317:19;12339:4;:14;;;12362:17;;;;;;;;;;;12339:42;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12317:64;;12392:18;12462:7;12458:1;12442:12;;12428:11;;:26;;;;:::i;:::-;12413:11;:42;;;;:::i;:::-;:46;;;;:::i;:::-;:56;;;;:::i;:::-;12392:77;;12480:4;:17;;;12506;;;;;;;;;;;12526:11;;;;;;;;;;;12539:10;12480:70;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12561:4;:17;;;12587;;;;;;;;;;;12615:4;12636:10;12622:11;:24;;;;:::i;:::-;12561:86;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12675:1;12664:8;:12;12660:296;;;12693:14;12732:7;12724:5;12710:11;:19;;;;:::i;:::-;:29;;;;:::i;:::-;12693:46;;12767:1;12758:6;:10;12754:191;;;12789:11;;;;;;;;;;;:24;;;12844:4;12851:5;;;;;;;;;;;12858:8;12868:6;12876:1;12879::::0;12882:11:::1;;;;;;;;;;;12895:15;12789:140;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12754:191;12678:278;12660:296;11769:1194;;;;;;3947:5:::0;3938:6;;:14;;;;;;;;;;;;;;;;;;11685:1278;;:::o;10544:1133::-;10758:7;10738:9;:17;10748:6;10738:17;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;10718:9;:17;10728:6;10718:17;;;;;;;;;;;;;;;:47;;;;10776:17;10810:7;10806:629;;;10834:15;10868:6;10864:258;;;10941:10;;10920:18;;10905:12;;:33;;;;:::i;:::-;:46;;;;:::i;:::-;10895:56;;10864:258;;;11016:17;;11002:11;;:31;;;;:::i;:::-;10992:41;;11071:12;;11060:7;:23;;11052:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;10864:258;11136:18;11177:5;11167:7;11157;:17;;;;:::i;:::-;:25;;;;:::i;:::-;11136:46;;11214:1;11201:10;:14;11197:227;;;11249:10;11236:23;;;;;:::i;:::-;;;11278:130;11314:6;11351:4;11379:10;11278:13;:130::i;:::-;11197:227;10819:616;;10806:629;11451:19;:30;11471:9;11451:30;;;;;;;;;;;;;;;;;;;;;;;;;11450:31;:46;;;;;11485:11;;;;;;;;;;;11450:46;11447:156;;;11567:11;;11553:9;11543:7;11520:20;11530:9;11520;:20::i;:::-;:30;;;;:::i;:::-;:42;;;;:::i;:::-;11519:59;;11511:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;11447:156;11616:53;11630:6;11638:9;11659;11649:7;:19;;;;:::i;:::-;11616:13;:53::i;:::-;10707:970;10544:1133;;;;;:::o;15598:386::-;15649:12;15702:3;15690:16;15682:24;;15728:1;15721:4;:8;15717:47;;;15746:7;;;15717:47;15783:11;:16;15795:3;15783:16;;;;;;;;;;;;;;;;15778:1;:21;15774:203;;15825:7;:14;;;;15820:1;:19;:40;;;;15857:3;15843:17;;:7;15851:1;15843:10;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:17;;;;15820:40;15816:150;;;15900:7;:14;;;;15881:11;:16;15893:3;15881:16;;;;;;;;;;;;;;;:33;;;;15933:7;15946:3;15933:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15816:150;15774:203;15638:346;15598:386;;:::o;16115:1420::-;16201:12;16196:2;16174:19;;:24;;;;:::i;:::-;:39;16230:7;16170:78;16260:11;16281:5;;;;;;;;;;;16260:27;;16300:15;16318:4;:14;;;16341:4;16318:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16300:47;;16372:21;;16362:7;:31;16358:70;;;16410:7;;;;16358:70;16440:16;16466:9;;;;;;;;;;;16440:36;;16487:19;16509:9;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16487:45;;16545:19;16575:20;16606:14;16633:24;16660:7;:14;;;;16633:41;;16687:15;16717:18;16750:15;16768:9;16750:27;;16790:691;16807:3;16797:7;:13;:46;;;;;16827:16;16814:10;:29;16797:46;16790:691;;;16880:16;16864:12;;:32;16860:89;;16932:1;16917:12;:16;;;;16860:89;16977:7;16985:12;;16977:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16963:35;;17028:9;:19;;;17048:11;17028:32;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17013:47;;17094:1;17079:12;:16;:47;;;;;17100:13;:26;17114:11;17100:26;;;;;;;;;;;;;;;;;;;;;;;;;17099:27;17079:47;17075:247;;;17181:14;17166:12;17156:7;:22;;;;:::i;:::-;:39;;;;:::i;:::-;17147:48;;17227:1;17218:6;:10;17214:93;;;17253:4;:13;;;17267:11;17280:6;17253:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17214:93;17075:247;17369:9;17359:7;:19;;;;:::i;:::-;17348:7;:31;;;;:::i;:::-;17338:41;;17404:9;17394:19;;17428:12;;:14;;;;;;;;;:::i;:::-;;;;;;17457:12;;;;;:::i;:::-;;;;16790:691;;;17515:12;17493:19;:34;;;;16159:1376;;;;;;;;;;;16115:1420;;:::o;12971:213::-;13124:7;13108:9;:13;13118:2;13108:13;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;13092:9;:13;13102:2;13092:13;;;;;;;;;;;;;;;:39;;;;13164:2;13147:29;;13156:6;13147:29;;;13168:7;13147:29;;;;;;:::i;:::-;;;;;;;;12971:213;;;:::o;88:117:1:-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:90::-;1210:7;1253:5;1246:13;1239:21;1228:32;;1176:90;;;:::o;1272:109::-;1353:21;1368:5;1353:21;:::i;:::-;1348:3;1341:34;1272:109;;:::o;1387:210::-;1474:4;1512:2;1501:9;1497:18;1489:26;;1525:65;1587:1;1576:9;1572:17;1563:6;1525:65;:::i;:::-;1387:210;;;;:::o;1603:116::-;1673:21;1688:5;1673:21;:::i;:::-;1666:5;1663:32;1653:60;;1709:1;1706;1699:12;1653:60;1603:116;:::o;1725:133::-;1768:5;1806:6;1793:20;1784:29;;1822:30;1846:5;1822:30;:::i;:::-;1725:133;;;;:::o;1864:468::-;1929:6;1937;1986:2;1974:9;1965:7;1961:23;1957:32;1954:119;;;1992:79;;:::i;:::-;1954:119;2112:1;2137:53;2182:7;2173:6;2162:9;2158:22;2137:53;:::i;:::-;2127:63;;2083:117;2239:2;2265:50;2307:7;2298:6;2287:9;2283:22;2265:50;:::i;:::-;2255:60;;2210:115;1864:468;;;;;:::o;2338:99::-;2390:6;2424:5;2418:12;2408:22;;2338:99;;;:::o;2443:169::-;2527:11;2561:6;2556:3;2549:19;2601:4;2596:3;2592:14;2577:29;;2443:169;;;;:::o;2618:307::-;2686:1;2696:113;2710:6;2707:1;2704:13;2696:113;;;2795:1;2790:3;2786:11;2780:18;2776:1;2771:3;2767:11;2760:39;2732:2;2729:1;2725:10;2720:15;;2696:113;;;2827:6;2824:1;2821:13;2818:101;;;2907:1;2898:6;2893:3;2889:16;2882:27;2818:101;2667:258;2618:307;;;:::o;2931:102::-;2972:6;3023:2;3019:7;3014:2;3007:5;3003:14;2999:28;2989:38;;2931:102;;;:::o;3039:364::-;3127:3;3155:39;3188:5;3155:39;:::i;:::-;3210:71;3274:6;3269:3;3210:71;:::i;:::-;3203:78;;3290:52;3335:6;3330:3;3323:4;3316:5;3312:16;3290:52;:::i;:::-;3367:29;3389:6;3367:29;:::i;:::-;3362:3;3358:39;3351:46;;3131:272;3039:364;;;;:::o;3409:313::-;3522:4;3560:2;3549:9;3545:18;3537:26;;3609:9;3603:4;3599:20;3595:1;3584:9;3580:17;3573:47;3637:78;3710:4;3701:6;3637:78;:::i;:::-;3629:86;;3409:313;;;;:::o;3728:77::-;3765:7;3794:5;3783:16;;3728:77;;;:::o;3811:122::-;3884:24;3902:5;3884:24;:::i;:::-;3877:5;3874:35;3864:63;;3923:1;3920;3913:12;3864:63;3811:122;:::o;3939:139::-;3985:5;4023:6;4010:20;4001:29;;4039:33;4066:5;4039:33;:::i;:::-;3939:139;;;;:::o;4084:474::-;4152:6;4160;4209:2;4197:9;4188:7;4184:23;4180:32;4177:119;;;4215:79;;:::i;:::-;4177:119;4335:1;4360:53;4405:7;4396:6;4385:9;4381:22;4360:53;:::i;:::-;4350:63;;4306:117;4462:2;4488:53;4533:7;4524:6;4513:9;4509:22;4488:53;:::i;:::-;4478:63;;4433:118;4084:474;;;;;:::o;4564:118::-;4651:24;4669:5;4651:24;:::i;:::-;4646:3;4639:37;4564:118;;:::o;4688:222::-;4781:4;4819:2;4808:9;4804:18;4796:26;;4832:71;4900:1;4889:9;4885:17;4876:6;4832:71;:::i;:::-;4688:222;;;;:::o;4916:60::-;4944:3;4965:5;4958:12;;4916:60;;;:::o;4982:142::-;5032:9;5065:53;5083:34;5092:24;5110:5;5092:24;:::i;:::-;5083:34;:::i;:::-;5065:53;:::i;:::-;5052:66;;4982:142;;;:::o;5130:126::-;5180:9;5213:37;5244:5;5213:37;:::i;:::-;5200:50;;5130:126;;;:::o;5262:145::-;5331:9;5364:37;5395:5;5364:37;:::i;:::-;5351:50;;5262:145;;;:::o;5413:169::-;5519:56;5569:5;5519:56;:::i;:::-;5514:3;5507:69;5413:169;;:::o;5588:260::-;5700:4;5738:2;5727:9;5723:18;5715:26;;5751:90;5838:1;5827:9;5823:17;5814:6;5751:90;:::i;:::-;5588:260;;;;:::o;5854:619::-;5931:6;5939;5947;5996:2;5984:9;5975:7;5971:23;5967:32;5964:119;;;6002:79;;:::i;:::-;5964:119;6122:1;6147:53;6192:7;6183:6;6172:9;6168:22;6147:53;:::i;:::-;6137:63;;6093:117;6249:2;6275:53;6320:7;6311:6;6300:9;6296:22;6275:53;:::i;:::-;6265:63;;6220:118;6377:2;6403:53;6448:7;6439:6;6428:9;6424:22;6403:53;:::i;:::-;6393:63;;6348:118;5854:619;;;;;:::o;6479:329::-;6538:6;6587:2;6575:9;6566:7;6562:23;6558:32;6555:119;;;6593:79;;:::i;:::-;6555:119;6713:1;6738:53;6783:7;6774:6;6763:9;6759:22;6738:53;:::i;:::-;6728:63;;6684:117;6479:329;;;;:::o;6814:323::-;6870:6;6919:2;6907:9;6898:7;6894:23;6890:32;6887:119;;;6925:79;;:::i;:::-;6887:119;7045:1;7070:50;7112:7;7103:6;7092:9;7088:22;7070:50;:::i;:::-;7060:60;;7016:114;6814:323;;;;:::o;7143:86::-;7178:7;7218:4;7211:5;7207:16;7196:27;;7143:86;;;:::o;7235:112::-;7318:22;7334:5;7318:22;:::i;:::-;7313:3;7306:35;7235:112;;:::o;7353:214::-;7442:4;7480:2;7469:9;7465:18;7457:26;;7493:67;7557:1;7546:9;7542:17;7533:6;7493:67;:::i;:::-;7353:214;;;;:::o;7573:118::-;7660:24;7678:5;7660:24;:::i;:::-;7655:3;7648:37;7573:118;;:::o;7697:222::-;7790:4;7828:2;7817:9;7813:18;7805:26;;7841:71;7909:1;7898:9;7894:17;7885:6;7841:71;:::i;:::-;7697:222;;;;:::o;7925:150::-;7999:9;8032:37;8063:5;8032:37;:::i;:::-;8019:50;;7925:150;;;:::o;8081:179::-;8192:61;8247:5;8192:61;:::i;:::-;8187:3;8180:74;8081:179;;:::o;8266:270::-;8383:4;8421:2;8410:9;8406:18;8398:26;;8434:95;8526:1;8515:9;8511:17;8502:6;8434:95;:::i;:::-;8266:270;;;;:::o;8542:117::-;8651:1;8648;8641:12;8665:117;8774:1;8771;8764:12;8788:117;8897:1;8894;8887:12;8928:568;9001:8;9011:6;9061:3;9054:4;9046:6;9042:17;9038:27;9028:122;;9069:79;;:::i;:::-;9028:122;9182:6;9169:20;9159:30;;9212:18;9204:6;9201:30;9198:117;;;9234:79;;:::i;:::-;9198:117;9348:4;9340:6;9336:17;9324:29;;9402:3;9394:4;9386:6;9382:17;9372:8;9368:32;9365:41;9362:128;;;9409:79;;:::i;:::-;9362:128;8928:568;;;;;:::o;9502:698::-;9594:6;9602;9610;9659:2;9647:9;9638:7;9634:23;9630:32;9627:119;;;9665:79;;:::i;:::-;9627:119;9813:1;9802:9;9798:17;9785:31;9843:18;9835:6;9832:30;9829:117;;;9865:79;;:::i;:::-;9829:117;9978:80;10050:7;10041:6;10030:9;10026:22;9978:80;:::i;:::-;9960:98;;;;9756:312;10107:2;10133:50;10175:7;10166:6;10155:9;10151:22;10133:50;:::i;:::-;10123:60;;10078:115;9502:698;;;;;:::o;10206:619::-;10283:6;10291;10299;10348:2;10336:9;10327:7;10323:23;10319:32;10316:119;;;10354:79;;:::i;:::-;10316:119;10474:1;10499:53;10544:7;10535:6;10524:9;10520:22;10499:53;:::i;:::-;10489:63;;10445:117;10601:2;10627:53;10672:7;10663:6;10652:9;10648:22;10627:53;:::i;:::-;10617:63;;10572:118;10729:2;10755:53;10800:7;10791:6;10780:9;10776:22;10755:53;:::i;:::-;10745:63;;10700:118;10206:619;;;;;:::o;10831:474::-;10899:6;10907;10956:2;10944:9;10935:7;10931:23;10927:32;10924:119;;;10962:79;;:::i;:::-;10924:119;11082:1;11107:53;11152:7;11143:6;11132:9;11128:22;11107:53;:::i;:::-;11097:63;;11053:117;11209:2;11235:53;11280:7;11271:6;11260:9;11256:22;11235:53;:::i;:::-;11225:63;;11180:118;10831:474;;;;;:::o;11311:157::-;11451:9;11447:1;11439:6;11435:14;11428:33;11311:157;:::o;11474:365::-;11616:3;11637:66;11701:1;11696:3;11637:66;:::i;:::-;11630:73;;11712:93;11801:3;11712:93;:::i;:::-;11830:2;11825:3;11821:12;11814:19;;11474:365;;;:::o;11845:419::-;12011:4;12049:2;12038:9;12034:18;12026:26;;12098:9;12092:4;12088:20;12084:1;12073:9;12069:17;12062:47;12126:131;12252:4;12126:131;:::i;:::-;12118:139;;11845:419;;;:::o;12270:180::-;12318:77;12315:1;12308:88;12415:4;12412:1;12405:15;12439:4;12436:1;12429:15;12456:320;12500:6;12537:1;12531:4;12527:12;12517:22;;12584:1;12578:4;12574:12;12605:18;12595:81;;12661:4;12653:6;12649:17;12639:27;;12595:81;12723:2;12715:6;12712:14;12692:18;12689:38;12686:84;;12742:18;;:::i;:::-;12686:84;12507:269;12456:320;;;:::o;12782:156::-;12922:8;12918:1;12910:6;12906:14;12899:32;12782:156;:::o;12944:365::-;13086:3;13107:66;13171:1;13166:3;13107:66;:::i;:::-;13100:73;;13182:93;13271:3;13182:93;:::i;:::-;13300:2;13295:3;13291:12;13284:19;;12944:365;;;:::o;13315:419::-;13481:4;13519:2;13508:9;13504:18;13496:26;;13568:9;13562:4;13558:20;13554:1;13543:9;13539:17;13532:47;13596:131;13722:4;13596:131;:::i;:::-;13588:139;;13315:419;;;:::o;13740:180::-;13788:77;13785:1;13778:88;13885:4;13882:1;13875:15;13909:4;13906:1;13899:15;13926:191;13966:4;13986:20;14004:1;13986:20;:::i;:::-;13981:25;;14020:20;14038:1;14020:20;:::i;:::-;14015:25;;14059:1;14056;14053:8;14050:34;;;14064:18;;:::i;:::-;14050:34;14109:1;14106;14102:9;14094:17;;13926:191;;;;:::o;14123:157::-;14263:9;14259:1;14251:6;14247:14;14240:33;14123:157;:::o;14286:365::-;14428:3;14449:66;14513:1;14508:3;14449:66;:::i;:::-;14442:73;;14524:93;14613:3;14524:93;:::i;:::-;14642:2;14637:3;14633:12;14626:19;;14286:365;;;:::o;14657:419::-;14823:4;14861:2;14850:9;14846:18;14838:26;;14910:9;14904:4;14900:20;14896:1;14885:9;14881:17;14874:47;14938:131;15064:4;14938:131;:::i;:::-;14930:139;;14657:419;;;:::o;15082:162::-;15222:14;15218:1;15210:6;15206:14;15199:38;15082:162;:::o;15250:366::-;15392:3;15413:67;15477:2;15472:3;15413:67;:::i;:::-;15406:74;;15489:93;15578:3;15489:93;:::i;:::-;15607:2;15602:3;15598:12;15591:19;;15250:366;;;:::o;15622:419::-;15788:4;15826:2;15815:9;15811:18;15803:26;;15875:9;15869:4;15865:20;15861:1;15850:9;15846:17;15839:47;15903:131;16029:4;15903:131;:::i;:::-;15895:139;;15622:419;;;:::o;16047:180::-;16095:77;16092:1;16085:88;16192:4;16189:1;16182:15;16216:4;16213:1;16206:15;16233:233;16272:3;16295:24;16313:5;16295:24;:::i;:::-;16286:33;;16341:66;16334:5;16331:77;16328:103;;16411:18;;:::i;:::-;16328:103;16458:1;16451:5;16447:13;16440:20;;16233:233;;;:::o;16472:332::-;16593:4;16631:2;16620:9;16616:18;16608:26;;16644:71;16712:1;16701:9;16697:17;16688:6;16644:71;:::i;:::-;16725:72;16793:2;16782:9;16778:18;16769:6;16725:72;:::i;:::-;16472:332;;;;;:::o;16810:137::-;16864:5;16895:6;16889:13;16880:22;;16911:30;16935:5;16911:30;:::i;:::-;16810:137;;;;:::o;16953:345::-;17020:6;17069:2;17057:9;17048:7;17044:23;17040:32;17037:119;;;17075:79;;:::i;:::-;17037:119;17195:1;17220:61;17273:7;17264:6;17253:9;17249:22;17220:61;:::i;:::-;17210:71;;17166:125;16953:345;;;;:::o;17304:158::-;17444:10;17440:1;17432:6;17428:14;17421:34;17304:158;:::o;17468:365::-;17610:3;17631:66;17695:1;17690:3;17631:66;:::i;:::-;17624:73;;17706:93;17795:3;17706:93;:::i;:::-;17824:2;17819:3;17815:12;17808:19;;17468:365;;;:::o;17839:419::-;18005:4;18043:2;18032:9;18028:18;18020:26;;18092:9;18086:4;18082:20;18078:1;18067:9;18063:17;18056:47;18120:131;18246:4;18120:131;:::i;:::-;18112:139;;17839:419;;;:::o;18264:159::-;18404:11;18400:1;18392:6;18388:14;18381:35;18264:159;:::o;18429:365::-;18571:3;18592:66;18656:1;18651:3;18592:66;:::i;:::-;18585:73;;18667:93;18756:3;18667:93;:::i;:::-;18785:2;18780:3;18776:12;18769:19;;18429:365;;;:::o;18800:419::-;18966:4;19004:2;18993:9;18989:18;18981:26;;19053:9;19047:4;19043:20;19039:1;19028:9;19024:17;19017:47;19081:131;19207:4;19081:131;:::i;:::-;19073:139;;18800:419;;;:::o;19225:166::-;19365:18;19361:1;19353:6;19349:14;19342:42;19225:166;:::o;19397:366::-;19539:3;19560:67;19624:2;19619:3;19560:67;:::i;:::-;19553:74;;19636:93;19725:3;19636:93;:::i;:::-;19754:2;19749:3;19745:12;19738:19;;19397:366;;;:::o;19769:419::-;19935:4;19973:2;19962:9;19958:18;19950:26;;20022:9;20016:4;20012:20;20008:1;19997:9;19993:17;19986:47;20050:131;20176:4;20050:131;:::i;:::-;20042:139;;19769:419;;;:::o;20194:348::-;20234:7;20257:20;20275:1;20257:20;:::i;:::-;20252:25;;20291:20;20309:1;20291:20;:::i;:::-;20286:25;;20479:1;20411:66;20407:74;20404:1;20401:81;20396:1;20389:9;20382:17;20378:105;20375:131;;;20486:18;;:::i;:::-;20375:131;20534:1;20531;20527:9;20516:20;;20194:348;;;;:::o;20548:180::-;20596:77;20593:1;20586:88;20693:4;20690:1;20683:15;20717:4;20714:1;20707:15;20734:185;20774:1;20791:20;20809:1;20791:20;:::i;:::-;20786:25;;20825:20;20843:1;20825:20;:::i;:::-;20820:25;;20864:1;20854:35;;20869:18;;:::i;:::-;20854:35;20911:1;20908;20904:9;20899:14;;20734:185;;;;:::o;20925:161::-;21065:13;21061:1;21053:6;21049:14;21042:37;20925:161;:::o;21092:366::-;21234:3;21255:67;21319:2;21314:3;21255:67;:::i;:::-;21248:74;;21331:93;21420:3;21331:93;:::i;:::-;21449:2;21444:3;21440:12;21433:19;;21092:366;;;:::o;21464:419::-;21630:4;21668:2;21657:9;21653:18;21645:26;;21717:9;21711:4;21707:20;21703:1;21692:9;21688:17;21681:47;21745:131;21871:4;21745:131;:::i;:::-;21737:139;;21464:419;;;:::o;21889:305::-;21929:3;21948:20;21966:1;21948:20;:::i;:::-;21943:25;;21982:20;22000:1;21982:20;:::i;:::-;21977:25;;22136:1;22068:66;22064:74;22061:1;22058:81;22055:107;;;22142:18;;:::i;:::-;22055:107;22186:1;22183;22179:9;22172:16;;21889:305;;;;:::o;22200:180::-;22248:77;22245:1;22238:88;22345:4;22342:1;22335:15;22369:4;22366:1;22359:15;22386:85;22431:7;22460:5;22449:16;;22386:85;;;:::o;22477:158::-;22535:9;22568:61;22586:42;22595:32;22621:5;22595:32;:::i;:::-;22586:42;:::i;:::-;22568:61;:::i;:::-;22555:74;;22477:158;;;:::o;22641:147::-;22736:45;22775:5;22736:45;:::i;:::-;22731:3;22724:58;22641:147;;:::o;22794:114::-;22861:6;22895:5;22889:12;22879:22;;22794:114;;;:::o;22914:184::-;23013:11;23047:6;23042:3;23035:19;23087:4;23082:3;23078:14;23063:29;;22914:184;;;;:::o;23104:132::-;23171:4;23194:3;23186:11;;23224:4;23219:3;23215:14;23207:22;;23104:132;;;:::o;23242:108::-;23319:24;23337:5;23319:24;:::i;:::-;23314:3;23307:37;23242:108;;:::o;23356:179::-;23425:10;23446:46;23488:3;23480:6;23446:46;:::i;:::-;23524:4;23519:3;23515:14;23501:28;;23356:179;;;;:::o;23541:113::-;23611:4;23643;23638:3;23634:14;23626:22;;23541:113;;;:::o;23690:732::-;23809:3;23838:54;23886:5;23838:54;:::i;:::-;23908:86;23987:6;23982:3;23908:86;:::i;:::-;23901:93;;24018:56;24068:5;24018:56;:::i;:::-;24097:7;24128:1;24113:284;24138:6;24135:1;24132:13;24113:284;;;24214:6;24208:13;24241:63;24300:3;24285:13;24241:63;:::i;:::-;24234:70;;24327:60;24380:6;24327:60;:::i;:::-;24317:70;;24173:224;24160:1;24157;24153:9;24148:14;;24113:284;;;24117:14;24413:3;24406:10;;23814:608;;;23690:732;;;;:::o;24428:831::-;24691:4;24729:3;24718:9;24714:19;24706:27;;24743:71;24811:1;24800:9;24796:17;24787:6;24743:71;:::i;:::-;24824:80;24900:2;24889:9;24885:18;24876:6;24824:80;:::i;:::-;24951:9;24945:4;24941:20;24936:2;24925:9;24921:18;24914:48;24979:108;25082:4;25073:6;24979:108;:::i;:::-;24971:116;;25097:72;25165:2;25154:9;25150:18;25141:6;25097:72;:::i;:::-;25179:73;25247:3;25236:9;25232:19;25223:6;25179:73;:::i;:::-;24428:831;;;;;;;;:::o;25265:143::-;25322:5;25353:6;25347:13;25338:22;;25369:33;25396:5;25369:33;:::i;:::-;25265:143;;;;:::o;25414:351::-;25484:6;25533:2;25521:9;25512:7;25508:23;25504:32;25501:119;;;25539:79;;:::i;:::-;25501:119;25659:1;25684:64;25740:7;25731:6;25720:9;25716:22;25684:64;:::i;:::-;25674:74;;25630:128;25414:351;;;;:::o;25771:442::-;25920:4;25958:2;25947:9;25943:18;25935:26;;25971:71;26039:1;26028:9;26024:17;26015:6;25971:71;:::i;:::-;26052:72;26120:2;26109:9;26105:18;26096:6;26052:72;:::i;:::-;26134;26202:2;26191:9;26187:18;26178:6;26134:72;:::i;:::-;25771:442;;;;;;:::o;26219:1029::-;26524:4;26562:3;26551:9;26547:19;26539:27;;26576:71;26644:1;26633:9;26629:17;26620:6;26576:71;:::i;:::-;26657:72;26725:2;26714:9;26710:18;26701:6;26657:72;:::i;:::-;26739;26807:2;26796:9;26792:18;26783:6;26739:72;:::i;:::-;26821;26889:2;26878:9;26874:18;26865:6;26821:72;:::i;:::-;26903:81;26979:3;26968:9;26964:19;26955:6;26903:81;:::i;:::-;26994;27070:3;27059:9;27055:19;27046:6;26994:81;:::i;:::-;27085:73;27153:3;27142:9;27138:19;27129:6;27085:73;:::i;:::-;27168;27236:3;27225:9;27221:19;27212:6;27168:73;:::i;:::-;26219:1029;;;;;;;;;;;:::o;27254:663::-;27342:6;27350;27358;27407:2;27395:9;27386:7;27382:23;27378:32;27375:119;;;27413:79;;:::i;:::-;27375:119;27533:1;27558:64;27614:7;27605:6;27594:9;27590:22;27558:64;:::i;:::-;27548:74;;27504:128;27671:2;27697:64;27753:7;27744:6;27733:9;27729:22;27697:64;:::i;:::-;27687:74;;27642:129;27810:2;27836:64;27892:7;27883:6;27872:9;27868:22;27836:64;:::i;:::-;27826:74;;27781:129;27254:663;;;;;:::o;27923:169::-;28063:21;28059:1;28051:6;28047:14;28040:45;27923:169;:::o;28098:366::-;28240:3;28261:67;28325:2;28320:3;28261:67;:::i;:::-;28254:74;;28337:93;28426:3;28337:93;:::i;:::-;28455:2;28450:3;28446:12;28439:19;;28098:366;;;:::o;28470:419::-;28636:4;28674:2;28663:9;28659:18;28651:26;;28723:9;28717:4;28713:20;28709:1;28698:9;28694:17;28687:47;28751:131;28877:4;28751:131;:::i;:::-;28743:139;;28470:419;;;:::o;28895:171::-;29035:23;29031:1;29023:6;29019:14;29012:47;28895:171;:::o;29072:366::-;29214:3;29235:67;29299:2;29294:3;29235:67;:::i;:::-;29228:74;;29311:93;29400:3;29311:93;:::i;:::-;29429:2;29424:3;29420:12;29413:19;;29072:366;;;:::o;29444:419::-;29610:4;29648:2;29637:9;29633:18;29625:26;;29697:9;29691:4;29687:20;29683:1;29672:9;29668:17;29661:47;29725:131;29851:4;29725:131;:::i;:::-;29717:139;;29444:419;;;:::o
Swarm Source
ipfs://8888e5df521fd3da4d95ec4b021f97e8aafeb68cdda650cb13a015c1935c8499
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.