ERC-20
Overview
Max Total Supply
100,000,000 XRPrrr
Holders
43
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
1.138491392739070012 XRPrrrValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
XRPrrr
Compiler Version
v0.8.13+commit.abaa5c0e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-13 */ /** *Submitted for verification at Etherscan.io on 2023-03-31 */ // SPDX-License-Identifier: Unlicensed pragma solidity 0.8.13; /** XRPrrr The $XRP printer Printer go Prr !! Wrapped XRP - Reflections https://t.me/XRPrrr https://twitter.com/XRPrrrToken https://www.xrprintertoken.com */ /** * Standard SafeMath, stripped down to just add/sub/mul/div */ library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } /** * ERC20 standard interface. */ interface IERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function 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 IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface IStormyDaniels { function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external; function setShare(address shareholder, uint256 amount) external; function deposit() external payable; function process(uint256 gas) external; function hush(address shareholder) external; } contract StormyDaniels is IStormyDaniels { using SafeMath for uint256; address _token; address public wXRP; IDEXRouter router; struct Share { uint256 amount; uint256 totalExcluded; uint256 totalRealised; } address[] shareholders; mapping (address => uint256) shareholderIndexes; mapping (address => uint256) shareholderClaims; mapping (address => Share) public shares; uint256 public totalShares; uint256 public totalDividends; uint256 public totalDistributed; uint256 public dividendsPerShare; uint256 public dividendsPerShareAccuracyFactor = 10 ** 36; uint256 public minPeriod = 30 minutes; uint256 public minDistribution = 0 * (10 ** 9); uint256 public currentIndex; bool initialized; modifier initialization() { require(!initialized); _; initialized = true; } modifier onlyToken() { require(msg.sender == _token); _; } constructor () { _token = msg.sender; router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); wXRP = 0x39fBBABf11738317a448031930706cd3e612e1B9; } receive() external payable { deposit(); } function setDistributionCriteria(uint256 newMinPeriod, uint256 newMinDistribution) external override onlyToken { minPeriod = newMinPeriod; minDistribution = newMinDistribution; } function setShare(address shareholder, uint256 amount) external override onlyToken { if(shares[shareholder].amount > 0){ distributeDividend(shareholder); } if(amount > 0 && shares[shareholder].amount == 0){ addShareholder(shareholder); }else if(amount == 0 && shares[shareholder].amount > 0){ removeShareholder(shareholder); } totalShares = totalShares.sub(shares[shareholder].amount).add(amount); shares[shareholder].amount = amount; shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } function deposit() public payable override { uint256 balanceBefore = IERC20(wXRP).balanceOf(address(this)); address[] memory path = new address[](2); path[0] = router.WETH(); path[1] = address(wXRP); router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}( 0, path, address(this), block.timestamp ); uint256 amount = IERC20(wXRP).balanceOf(address(this)).sub(balanceBefore); totalDividends = totalDividends.add(amount); dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares)); } function process(uint256 gas) external override { uint256 shareholderCount = shareholders.length; if(shareholderCount == 0) { return; } uint256 iterations = 0; uint256 gasUsed = 0; uint256 gasLeft = gasleft(); while(gasUsed < gas && iterations < shareholderCount) { if(currentIndex >= shareholderCount){ currentIndex = 0; } if(shouldDistribute(shareholders[currentIndex])){ distributeDividend(shareholders[currentIndex]); } gasUsed = gasUsed.add(gasLeft.sub(gasleft())); gasLeft = gasleft(); currentIndex++; iterations++; } } function shouldDistribute(address shareholder) public view returns (bool) { return shareholderClaims[shareholder] + minPeriod < block.timestamp && getUnpaidEarnings(shareholder) > minDistribution; } function distributeDividend(address shareholder) internal { if(shares[shareholder].amount == 0){ return; } uint256 amount = getUnpaidEarnings(shareholder); if(amount > 0){ totalDistributed = totalDistributed.add(amount); IERC20(wXRP).transfer(shareholder, amount); shareholderClaims[shareholder] = block.timestamp; shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount); shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } } function hush(address shareholder) external override onlyToken { distributeDividend(shareholder); } function getUnpaidEarnings(address shareholder) public view returns (uint256) { if(shares[shareholder].amount == 0){ return 0; } uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount); uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded; if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; } return shareholderTotalDividends.sub(shareholderTotalExcluded); } function getCumulativeDividends(uint256 share) internal view returns (uint256) { return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor); } function addShareholder(address shareholder) internal { shareholderIndexes[shareholder] = shareholders.length; shareholders.push(shareholder); } function removeShareholder(address shareholder) internal { shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1]; shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder]; shareholders.pop(); } } contract XRPrrr is IERC20, Ownable { using SafeMath for uint256; address public wXRP = 0x39fBBABf11738317a448031930706cd3e612e1B9; string private constant _name = "XRPrrr"; string private constant _symbol = "XRPrrr"; uint8 private constant _decimals = 18; uint256 private _totalSupply = 100000000 * (10 ** _decimals); mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping (address => uint256) private cooldown; address private WETH; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; bool public antiBot = true; mapping (address => bool) private bots; mapping (address => bool) public isFeeExempt; mapping (address => bool) public isTxLimitExempt; mapping (address => bool) public isDividendExempt; uint256 public launchedAt; address private lpWallet = DEAD; uint256 public buyFee = 25; uint256 public sellFee = 45; uint256 public toReflections = 5; uint256 public toLiquidity = 0; uint256 public toMarketing = 95; uint256 public allocationSum = 100; IDEXRouter public router; address public pair; address public factory; address public michaelCohen = payable(0xaC63760B52c83157f78dc77b93243896E9461518); bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public tradingOpen = false; StormyDaniels public stormy; uint256 public stormyGas = 0; modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } uint256 public maxTx = _totalSupply.div(50); uint256 public maxWallet = _totalSupply.div(50); uint256 public swapThreshold = _totalSupply.div(100); constructor () { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); WETH = router.WETH(); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); _allowances[address(this)][address(router)] = type(uint256).max; stormy = new StormyDaniels(); isFeeExempt[owner()] = true; isFeeExempt[michaelCohen] = true; isDividendExempt[pair] = true; isDividendExempt[address(this)] = true; isDividendExempt[DEAD] = true; isTxLimitExempt[owner()] = true; isTxLimitExempt[pair] = true; isTxLimitExempt[DEAD] = true; isTxLimitExempt[michaelCohen] = true; _balances[owner()] = _totalSupply; emit Transfer(address(0), owner(), _totalSupply); } receive() external payable { } function setBots(address[] memory bots_) external onlyOwner { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } //once enabled, cannot be reversed function openTrading() external onlyOwner { launchedAt = block.number; tradingOpen = true; } function changeTotalFees(uint256 newBuyFee, uint256 newSellFee) external onlyOwner { buyFee = newBuyFee; sellFee = newSellFee; require(buyFee <= 15, "too high"); require(sellFee <= 25, "too high"); } function changeFeeAllocation(uint256 newRewardFee, uint256 newLpFee, uint256 newMarketingFee) external onlyOwner { toReflections = newRewardFee; toLiquidity = newLpFee; toMarketing = newMarketingFee; } function changeTxLimit(uint256 newLimit) external onlyOwner { maxTx = newLimit; } function changeWalletLimit(uint256 newLimit) external onlyOwner { maxWallet = newLimit; } function changeIsFeeExempt(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; } function changeIsTxLimitExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } function setMichaelCohen(address payable newMichaelCohen) external onlyOwner { michaelCohen = payable(newMichaelCohen); } function setLpWallet(address newLpWallet) external onlyOwner { lpWallet = newLpWallet; } function changeSwapBackSettings(bool enableSwapBack, uint256 newSwapBackLimit) external onlyOwner { swapAndLiquifyEnabled = enableSwapBack; swapThreshold = newSwapBackLimit; } function setDistributionCriteria(uint256 newMinPeriod, uint256 newMinDistribution) external onlyOwner { stormy.setDistributionCriteria(newMinPeriod, newMinDistribution); } function delBot(address notbot) external onlyOwner { bots[notbot] = false; } function _setIsDividendExempt(address holder, bool exempt) internal { require(holder != address(this) && holder != pair); isDividendExempt[holder] = exempt; if(exempt){ stormy.setShare(holder, 0); }else{ stormy.setShare(holder, _balances[holder]); } } function setIsDividendExempt(address holder, bool exempt) external onlyOwner { _setIsDividendExempt(holder, exempt); } function changeStormyGas(uint256 newGas) external onlyOwner { stormyGas = newGas; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transfer(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transfer(sender, recipient, amount); } function _transfer(address sender, address recipient, uint256 amount) internal returns (bool) { if (sender!= owner() && recipient!= owner()) require(tradingOpen, "hold ur horses big guy."); //transfers disabled before tradingActive require(!bots[sender] && !bots[recipient]); if(inSwapAndLiquify){ return _basicTransfer(sender, recipient, amount); } require(amount <= maxTx || isTxLimitExempt[sender], "tx"); if(!isTxLimitExempt[recipient] && antiBot) { require(_balances[recipient].add(amount) <= maxWallet, "wallet"); } if(msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold){ swapBack(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient].add(finalAmount); // Dividend tracker if(!isDividendExempt[sender]) { try stormy.setShare(sender, _balances[sender]) {} catch {} } if(!isDividendExempt[recipient]) { try stormy.setShare(recipient, _balances[recipient]) {} catch {} } emit Transfer(sender, recipient, finalAmount); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeApplicable = pair == recipient ? sellFee : buyFee; uint256 feeAmount = amount.mul(feeApplicable).div(100); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); approve(address(this), tokenAmount); router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, 0, lpWallet, block.timestamp ); } function swapBack() internal lockTheSwap { uint256 tokenBalance = _balances[address(this)]; uint256 tokensForLiquidity = tokenBalance.mul(toLiquidity).div(100).div(2); uint256 amountToSwap = tokenBalance.sub(tokensForLiquidity); swapTokensForEth(amountToSwap); uint256 totalEthBalance = address(this).balance; uint256 ethForHush = totalEthBalance.mul(toReflections).div(100); uint256 ethForMichaelCohen = totalEthBalance.mul(toMarketing).div(100); uint256 ethForLiquidity = totalEthBalance.mul(toLiquidity).div(100).div(2); if (totalEthBalance > 0){ payable(michaelCohen).transfer(ethForMichaelCohen); } try stormy.deposit{value: ethForHush}() {} catch {} if (tokensForLiquidity > 0){ addLiquidity(tokensForLiquidity, ethForLiquidity); } } function manualSwapBack() external onlyOwner { swapBack(); } function clearStuckEth() external onlyOwner { uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0){ payable(michaelCohen).transfer(contractETHBalance); } } function manualProcessGas(uint256 manualGas) external onlyOwner { stormy.process(manualGas); } function checkPendingReflections(address shareholder) external view returns (uint256) { return stormy.getUnpaidEarnings(shareholder); } function hush() external { stormy.hush(msg.sender); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"allocationSum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antiBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","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":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newRewardFee","type":"uint256"},{"internalType":"uint256","name":"newLpFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"}],"name":"changeFeeAllocation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newGas","type":"uint256"}],"name":"changeStormyGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"}],"name":"changeSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"changeTotalFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"checkPendingReflections","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hush","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDividendExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"manualGas","type":"uint256"}],"name":"manualProcessGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"michaelCohen","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMinPeriod","type":"uint256"},{"internalType":"uint256","name":"newMinDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLpWallet","type":"address"}],"name":"setLpWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newMichaelCohen","type":"address"}],"name":"setMichaelCohen","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stormy","outputs":[{"internalType":"contract StormyDaniels","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stormyGas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"toLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toReflections","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"wXRP","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040527339fbbabf11738317a448031930706cd3e612e1b9600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a62000069919062000e85565b6305f5e1006200007a919062000ed6565b60025561dead600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860146101000a81548160ff021916908315150217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506019600f55602d60105560056011556000601255605f601355606460145573ac63760b52c83157f78dc77b93243896e9461518601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601860156101000a81548160ff0219169083151502179055506000601860166101000a81548160ff0219169083151502179055506000601a556200024b603260025462000bf260201b6200280e1790919060201c565b601b556200026b603260025462000bf260201b6200280e1790919060201c565b601c556200028b606460025462000bf260201b6200280e1790919060201c565b601d553480156200029b57600080fd5b506000620002ae62000c4460201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200040f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000435919062000fa1565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000509919062000fa1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200056792919062000fe4565b6020604051808303816000875af115801562000587573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005ad919062000fa1565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550604051620006be9062000cdd565b604051809103906000f080158015620006db573d6000803e3d6000fd5b50601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a60006200073262000c4c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60006200095f62000c4c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506002546003600062000b3562000c4c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000b8362000c4c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60025460405162000be4919062001022565b60405180910390a36200116e565b600062000c3c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000c7560201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000cbf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000cb69190620010e3565b60405180910390fd5b506000838562000cd0919062001136565b9050809150509392505050565b61204c806200601583390190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000d795780860481111562000d515762000d5062000ceb565b5b600185161562000d615780820291505b808102905062000d718562000d1a565b945062000d31565b94509492505050565b60008262000d94576001905062000e67565b8162000da4576000905062000e67565b816001811462000dbd576002811462000dc85762000dfe565b600191505062000e67565b60ff84111562000ddd5762000ddc62000ceb565b5b8360020a91508482111562000df75762000df662000ceb565b5b5062000e67565b5060208310610133831016604e8410600b841016171562000e385782820a90508381111562000e325762000e3162000ceb565b5b62000e67565b62000e47848484600162000d27565b9250905081840481111562000e615762000e6062000ceb565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000e928262000e6e565b915062000e9f8362000e78565b925062000ece7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000d82565b905092915050565b600062000ee38262000e6e565b915062000ef08362000e6e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000f2c5762000f2b62000ceb565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000f698262000f3c565b9050919050565b62000f7b8162000f5c565b811462000f8757600080fd5b50565b60008151905062000f9b8162000f70565b92915050565b60006020828403121562000fba5762000fb962000f37565b5b600062000fca8482850162000f8a565b91505092915050565b62000fde8162000f5c565b82525050565b600060408201905062000ffb600083018562000fd3565b6200100a602083018462000fd3565b9392505050565b6200101c8162000e6e565b82525050565b600060208201905062001039600083018462001011565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156200107b5780820151818401526020810190506200105e565b838111156200108b576000848401525b50505050565b6000601f19601f8301169050919050565b6000620010af826200103f565b620010bb81856200104a565b9350620010cd8185602086016200105b565b620010d88162001091565b840191505092915050565b60006020820190508181036000830152620010ff8184620010a2565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620011438262000e6e565b9150620011508362000e6e565b92508262001163576200116262001107565b5b828204905092915050565b614e97806200117e6000396000f3fe60806040526004361061037a5760003560e01c80637437681e116101d1578063a9059cbb11610102578063d920334e116100a0578063f887ea401161006f578063f887ea4014610c9f578063f8b45b0514610cca578063fabe628314610cf5578063ffb54a9914610d1e57610381565b8063d920334e14610be7578063dd62ed3e14610c10578063f2fde38b14610c4d578063f708a64f14610c7657610381565b8063c45a0155116100dc578063c45a015514610b4f578063c8d1293d14610b7a578063c9567bf914610ba5578063caa5581b14610bbc57610381565b8063a9059cbb14610abe578063b515566a14610afb578063bf56b37114610b2457610381565b806389291a8f1161016f5780638da5cb5b116101495780638da5cb5b14610a1457806395d89b4114610a3f578063a3a2e89e14610a6a578063a8aa1b3114610a9357610381565b806389291a8f146109a95780638aba4691146109c05780638b42507f146109d757610381565b80637db1342c116101ab5780637db1342c146109015780637dfcbe341461092a5780638193403114610955578063859e3c451461097e57610381565b80637437681e1461086e57806375df13051461089957806377359aa7146108c457610381565b8063313ce567116102ab578063470624021161024957806366eb37851161022357806366eb3785146107d85780636877e52b146107ef57806370a082311461081a578063715018a61461085757610381565b806347062402146107455780634a74bb0214610770578063571ac8b01461079b57610381565b80633f4218e0116102855780633f4218e0146106775780634355855a146106b457806345434377146106f1578063468c7ee21461071c57610381565b8063313ce567146105fa5780633b7e4070146106255780633dab52691461064e57610381565b806323b872dd116103185780632b14ca56116102f25780632b14ca56146105545780632d48e8961461057f5780632dbea2e1146105a857806330ca34ee146105d157610381565b806323b872dd146104c3578063273123b7146105005780632b112e491461052957610381565b80630708291a116103545780630708291a146104055780630837511114610430578063095ea7b31461045b57806318160ddd1461049857610381565b80630445b6671461038657806305410457146103b157806306fdde03146103da57610381565b3661038157005b600080fd5b34801561039257600080fd5b5061039b610d49565b6040516103a89190613e8a565b60405180910390f35b3480156103bd57600080fd5b506103d860048036038101906103d39190613f17565b610d4f565b005b3480156103e657600080fd5b506103ef610e28565b6040516103fc9190613fdd565b60405180910390f35b34801561041157600080fd5b5061041a610e65565b6040516104279190614020565b60405180910390f35b34801561043c57600080fd5b50610445610e8b565b6040516104529190613e8a565b60405180910390f35b34801561046757600080fd5b50610482600480360381019061047d9190614093565b610e91565b60405161048f91906140ee565b60405180910390f35b3480156104a457600080fd5b506104ad610f83565b6040516104ba9190613e8a565b60405180910390f35b3480156104cf57600080fd5b506104ea60048036038101906104e59190614109565b610f8d565b6040516104f791906140ee565b60405180910390f35b34801561050c57600080fd5b506105276004803603810190610522919061415c565b61118d565b005b34801561053557600080fd5b5061053e61127d565b60405161054b9190613e8a565b60405180910390f35b34801561056057600080fd5b506105696112ff565b6040516105769190613e8a565b60405180910390f35b34801561058b57600080fd5b506105a660048036038101906105a19190614189565b611305565b005b3480156105b457600080fd5b506105cf60048036038101906105ca91906141c9565b61142d565b005b3480156105dd57600080fd5b506105f860048036038101906105f39190614189565b6114dc565b005b34801561060657600080fd5b5061060f61160e565b60405161061c9190614238565b60405180910390f35b34801561063157600080fd5b5061064c60048036038101906106479190614253565b611617565b005b34801561065a57600080fd5b50610675600480360381019061067091906142ac565b6116b6565b005b34801561068357600080fd5b5061069e6004803603810190610699919061415c565b611770565b6040516106ab91906140ee565b60405180910390f35b3480156106c057600080fd5b506106db60048036038101906106d6919061415c565b611790565b6040516106e891906140ee565b60405180910390f35b3480156106fd57600080fd5b506107066117b0565b6040516107139190613e8a565b60405180910390f35b34801561072857600080fd5b50610743600480360381019061073e919061415c565b6117b6565b005b34801561075157600080fd5b5061075a61188f565b6040516107679190613e8a565b60405180910390f35b34801561077c57600080fd5b50610785611895565b60405161079291906140ee565b60405180910390f35b3480156107a757600080fd5b506107c260048036038101906107bd919061415c565b6118a8565b6040516107cf91906140ee565b60405180910390f35b3480156107e457600080fd5b506107ed6118db565b005b3480156107fb57600080fd5b5061080461197a565b604051610811919061434b565b60405180910390f35b34801561082657600080fd5b50610841600480360381019061083c919061415c565b6119a0565b60405161084e9190613e8a565b60405180910390f35b34801561086357600080fd5b5061086c6119e9565b005b34801561087a57600080fd5b50610883611b3c565b6040516108909190613e8a565b60405180910390f35b3480156108a557600080fd5b506108ae611b42565b6040516108bb9190613e8a565b60405180910390f35b3480156108d057600080fd5b506108eb60048036038101906108e6919061415c565b611b48565b6040516108f89190613e8a565b60405180910390f35b34801561090d57600080fd5b5061092860048036038101906109239190614253565b611bed565b005b34801561093657600080fd5b5061093f611c8c565b60405161094c91906140ee565b60405180910390f35b34801561096157600080fd5b5061097c60048036038101906109779190614253565b611c9f565b005b34801561098a57600080fd5b50610993611dc4565b6040516109a09190614020565b60405180910390f35b3480156109b557600080fd5b506109be611dea565b005b3480156109cc57600080fd5b506109d5611efa565b005b3480156109e357600080fd5b506109fe60048036038101906109f9919061415c565b611f89565b604051610a0b91906140ee565b60405180910390f35b348015610a2057600080fd5b50610a29611fa9565b604051610a369190614020565b60405180910390f35b348015610a4b57600080fd5b50610a54611fd2565b604051610a619190613fdd565b60405180910390f35b348015610a7657600080fd5b50610a916004803603810190610a8c9190614366565b61200f565b005b348015610a9f57600080fd5b50610aa86120ff565b604051610ab59190614020565b60405180910390f35b348015610aca57600080fd5b50610ae56004803603810190610ae09190614093565b612125565b604051610af291906140ee565b60405180910390f35b348015610b0757600080fd5b50610b226004803603810190610b1d91906144ee565b61213a565b005b348015610b3057600080fd5b50610b39612264565b604051610b469190613e8a565b60405180910390f35b348015610b5b57600080fd5b50610b6461226a565b604051610b719190614020565b60405180910390f35b348015610b8657600080fd5b50610b8f612290565b604051610b9c9190613e8a565b60405180910390f35b348015610bb157600080fd5b50610bba612296565b005b348015610bc857600080fd5b50610bd161234f565b604051610bde9190613e8a565b60405180910390f35b348015610bf357600080fd5b50610c0e6004803603810190610c099190614253565b612355565b005b348015610c1c57600080fd5b50610c376004803603810190610c329190614537565b6123f4565b604051610c449190613e8a565b60405180910390f35b348015610c5957600080fd5b50610c746004803603810190610c6f919061415c565b61247b565b005b348015610c8257600080fd5b50610c9d6004803603810190610c989190614366565b61263c565b005b348015610cab57600080fd5b50610cb46126df565b604051610cc191906145aa565b60405180910390f35b348015610cd657600080fd5b50610cdf612705565b604051610cec9190613e8a565b60405180910390f35b348015610d0157600080fd5b50610d1c6004803603810190610d179190614366565b61270b565b005b348015610d2a57600080fd5b50610d336127fb565b604051610d4091906140ee565b60405180910390f35b601d5481565b610d57612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddb90614611565b60405180910390fd5b80601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606040518060400160405280600681526020017f5852507272720000000000000000000000000000000000000000000000000000815250905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601a5481565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610f719190613e8a565b60405180910390a36001905092915050565b6000600254905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611179576110f8826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128609092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6111848484846128c4565b90509392505050565b611195612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121990614611565b60405180910390fd5b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006112fa6112ad600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166119a0565b6112ec6112db600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166119a0565b6002546131a390919063ffffffff16565b6131a390919063ffffffff16565b905090565b60105481565b61130d612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461139a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139190614611565b60405180910390fd5b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b81526004016113f7929190614631565b600060405180830381600087803b15801561141157600080fd5b505af1158015611425573d6000803e3d6000fd5b505050505050565b611435612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b990614611565b60405180910390fd5b826011819055508160128190555080601381905550505050565b6114e4612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611571576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156890614611565b60405180910390fd5b81600f8190555080601081905550600f805411156115c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bb906146a6565b60405180910390fd5b6019601054111561160a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611601906146a6565b60405180910390fd5b5050565b60006012905090565b61161f612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a390614611565b60405180910390fd5b80601a8190555050565b6116be612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461174b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174290614611565b60405180910390fd5b81601860156101000a81548160ff02191690831515021790555080601d819055505050565b600a6020528060005260406000206000915054906101000a900460ff1681565b600c6020528060005260406000206000915054906101000a900460ff1681565b60145481565b6117be612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461184b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184290614611565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b601860159054906101000a900460ff1681565b60006118d4827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610e91565b9050919050565b6118e3612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611970576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196790614611565b60405180910390fd5b6119786131ed565b565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6119f1612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7590614611565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601b5481565b60135481565b6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166328fd3198836040518263ffffffff1660e01b8152600401611ba59190614020565b602060405180830381865afa158015611bc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be691906146db565b9050919050565b611bf5612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7990614611565b60405180910390fd5b80601c8190555050565b600860149054906101000a900460ff1681565b611ca7612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2b90614611565b60405180910390fd5b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c479826040518263ffffffff1660e01b8152600401611d8f9190613e8a565b600060405180830381600087803b158015611da957600080fd5b505af1158015611dbd573d6000803e3d6000fd5b5050505050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611df2612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7690614611565b60405180910390fd5b60004790506000811115611ef757601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611ef5573d6000803e3d6000fd5b505b50565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a1e0cb86336040518263ffffffff1660e01b8152600401611f559190614020565b600060405180830381600087803b158015611f6f57600080fd5b505af1158015611f83573d6000803e3d6000fd5b50505050565b600b6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f5852507272720000000000000000000000000000000000000000000000000000815250905090565b612017612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209b90614611565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006121323384846128c4565b905092915050565b612142612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c690614611565b60405180910390fd5b60005b8151811015612260576001600960008484815181106121f4576121f3614708565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061225890614766565b9150506121d2565b5050565b600d5481565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60125481565b61229e612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461232b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232290614611565b60405180910390fd5b43600d819055506001601860166101000a81548160ff021916908315150217905550565b60115481565b61235d612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e190614611565b60405180910390fd5b80601b8190555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612483612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612510576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250790614611565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361257f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257690614820565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612644612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c890614611565b60405180910390fd5b6126db828261346f565b5050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c5481565b612713612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279790614611565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601860169054906101000a900460ff1681565b600061285083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506136c7565b905092915050565b600033905090565b60008383111582906128a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289f9190613fdd565b60405180910390fd5b50600083856128b79190614840565b9050809150509392505050565b60006128ce611fa9565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561293c575061290c611fa9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561299157601860169054906101000a900460ff16612990576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612987906148c0565b60405180910390fd5b5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612a355750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612a3e57600080fd5b601860149054906101000a900460ff1615612a6557612a5e84848461372a565b905061319c565b601b5482111580612abf5750600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af59061492c565b60405180910390fd5b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b645750600860149054906101000a900460ff165b15612c0057601c54612bbe83600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138fd90919063ffffffff16565b1115612bff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf690614998565b60405180910390fd5b5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612c6b5750601860149054906101000a900460ff16155b8015612c835750601860159054906101000a900460ff165b8015612cd05750601d54600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15612cde57612cdd6131ed565b5b612d67826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128609092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612e505750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612e5a5782612e66565b612e6585858561395b565b5b9050612eba81600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138fd90919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661301757601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612fea9291906149b8565b600060405180830381600087803b15801561300457600080fd5b505af1925050508015613015575060015b505b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661313157601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016131049291906149b8565b600060405180830381600087803b15801561311e57600080fd5b505af192505050801561312f575060015b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161318e9190613e8a565b60405180910390a360019150505b9392505050565b60006131e583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612860565b905092915050565b6001601860146101000a81548160ff0219169083151502179055506000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000613289600261327b606461326d60125487613b0390919063ffffffff16565b61280e90919063ffffffff16565b61280e90919063ffffffff16565b905060006132a082846131a390919063ffffffff16565b90506132ab81613b7d565b600047905060006132da60646132cc60115485613b0390919063ffffffff16565b61280e90919063ffffffff16565b9050600061330660646132f860135486613b0390919063ffffffff16565b61280e90919063ffffffff16565b905060006133456002613337606461332960125489613b0390919063ffffffff16565b61280e90919063ffffffff16565b61280e90919063ffffffff16565b905060008411156133ba57601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156133b8573d6000803e3d6000fd5b505b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b15801561342457600080fd5b505af193505050508015613436575060015b50600086111561344b5761344a8682613d9e565b5b505050505050506000601860146101000a81548160ff021916908315150217905550565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156134f95750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61350257600080fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156135f457601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b81526004016135bd929190614a1c565b600060405180830381600087803b1580156135d757600080fd5b505af11580156135eb573d6000803e3d6000fd5b505050506136c3565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016136909291906149b8565b600060405180830381600087803b1580156136aa57600080fd5b505af11580156136be573d6000803e3d6000fd5b505050505b5050565b6000808311829061370e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137059190613fdd565b60405180910390fd5b506000838561371d9190614a74565b9050809150509392505050565b60006137b5826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128609092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061384a82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138fd90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516138ea9190613e8a565b60405180910390a3600190509392505050565b600080828461390c9190614aa5565b905083811015613951576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161394890614b47565b60405180910390fd5b8091505092915050565b6000808373ffffffffffffffffffffffffffffffffffffffff16601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146139bb57600f546139bf565b6010545b905060006139e960646139db8487613b0390919063ffffffff16565b61280e90919063ffffffff16565b9050613a3d81600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138fd90919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613add9190613e8a565b60405180910390a3613af881856131a390919063ffffffff16565b925050509392505050565b6000808303613b155760009050613b77565b60008284613b239190614b67565b9050828482613b329190614a74565b14613b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b6990614c33565b60405180910390fd5b809150505b92915050565b6000600267ffffffffffffffff811115613b9a57613b996143ab565b5b604051908082528060200260200182016040528015613bc85781602001602082028036833780820191505090505b5090503081600081518110613be057613bdf614708565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613c87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cab9190614c68565b81600181518110613cbf57613cbe614708565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613d033083610e91565b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613d68959493929190614d53565b600060405180830381600087803b158015613d8257600080fd5b505af1158015613d96573d6000803e3d6000fd5b505050505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613e2796959493929190614dad565b60606040518083038185885af1158015613e45573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613e6a9190614e0e565b5050505050565b6000819050919050565b613e8481613e71565b82525050565b6000602082019050613e9f6000830184613e7b565b92915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613ee482613eb9565b9050919050565b613ef481613ed9565b8114613eff57600080fd5b50565b600081359050613f1181613eeb565b92915050565b600060208284031215613f2d57613f2c613eaf565b5b6000613f3b84828501613f02565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613f7e578082015181840152602081019050613f63565b83811115613f8d576000848401525b50505050565b6000601f19601f8301169050919050565b6000613faf82613f44565b613fb98185613f4f565b9350613fc9818560208601613f60565b613fd281613f93565b840191505092915050565b60006020820190508181036000830152613ff78184613fa4565b905092915050565b600061400a82613eb9565b9050919050565b61401a81613fff565b82525050565b60006020820190506140356000830184614011565b92915050565b61404481613fff565b811461404f57600080fd5b50565b6000813590506140618161403b565b92915050565b61407081613e71565b811461407b57600080fd5b50565b60008135905061408d81614067565b92915050565b600080604083850312156140aa576140a9613eaf565b5b60006140b885828601614052565b92505060206140c98582860161407e565b9150509250929050565b60008115159050919050565b6140e8816140d3565b82525050565b600060208201905061410360008301846140df565b92915050565b60008060006060848603121561412257614121613eaf565b5b600061413086828701614052565b935050602061414186828701614052565b92505060406141528682870161407e565b9150509250925092565b60006020828403121561417257614171613eaf565b5b600061418084828501614052565b91505092915050565b600080604083850312156141a05761419f613eaf565b5b60006141ae8582860161407e565b92505060206141bf8582860161407e565b9150509250929050565b6000806000606084860312156141e2576141e1613eaf565b5b60006141f08682870161407e565b93505060206142018682870161407e565b92505060406142128682870161407e565b9150509250925092565b600060ff82169050919050565b6142328161421c565b82525050565b600060208201905061424d6000830184614229565b92915050565b60006020828403121561426957614268613eaf565b5b60006142778482850161407e565b91505092915050565b614289816140d3565b811461429457600080fd5b50565b6000813590506142a681614280565b92915050565b600080604083850312156142c3576142c2613eaf565b5b60006142d185828601614297565b92505060206142e28582860161407e565b9150509250929050565b6000819050919050565b600061431161430c61430784613eb9565b6142ec565b613eb9565b9050919050565b6000614323826142f6565b9050919050565b600061433582614318565b9050919050565b6143458161432a565b82525050565b6000602082019050614360600083018461433c565b92915050565b6000806040838503121561437d5761437c613eaf565b5b600061438b85828601614052565b925050602061439c85828601614297565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6143e382613f93565b810181811067ffffffffffffffff82111715614402576144016143ab565b5b80604052505050565b6000614415613ea5565b905061442182826143da565b919050565b600067ffffffffffffffff821115614441576144406143ab565b5b602082029050602081019050919050565b600080fd5b600061446a61446584614426565b61440b565b9050808382526020820190506020840283018581111561448d5761448c614452565b5b835b818110156144b657806144a28882614052565b84526020840193505060208101905061448f565b5050509392505050565b600082601f8301126144d5576144d46143a6565b5b81356144e5848260208601614457565b91505092915050565b60006020828403121561450457614503613eaf565b5b600082013567ffffffffffffffff81111561452257614521613eb4565b5b61452e848285016144c0565b91505092915050565b6000806040838503121561454e5761454d613eaf565b5b600061455c85828601614052565b925050602061456d85828601614052565b9150509250929050565b6000614582826142f6565b9050919050565b600061459482614577565b9050919050565b6145a481614589565b82525050565b60006020820190506145bf600083018461459b565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006145fb602083613f4f565b9150614606826145c5565b602082019050919050565b6000602082019050818103600083015261462a816145ee565b9050919050565b60006040820190506146466000830185613e7b565b6146536020830184613e7b565b9392505050565b7f746f6f2068696768000000000000000000000000000000000000000000000000600082015250565b6000614690600883613f4f565b915061469b8261465a565b602082019050919050565b600060208201905081810360008301526146bf81614683565b9050919050565b6000815190506146d581614067565b92915050565b6000602082840312156146f1576146f0613eaf565b5b60006146ff848285016146c6565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061477182613e71565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036147a3576147a2614737565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061480a602683613f4f565b9150614815826147ae565b604082019050919050565b60006020820190508181036000830152614839816147fd565b9050919050565b600061484b82613e71565b915061485683613e71565b92508282101561486957614868614737565b5b828203905092915050565b7f686f6c6420757220686f7273657320626967206775792e000000000000000000600082015250565b60006148aa601783613f4f565b91506148b582614874565b602082019050919050565b600060208201905081810360008301526148d98161489d565b9050919050565b7f7478000000000000000000000000000000000000000000000000000000000000600082015250565b6000614916600283613f4f565b9150614921826148e0565b602082019050919050565b6000602082019050818103600083015261494581614909565b9050919050565b7f77616c6c65740000000000000000000000000000000000000000000000000000600082015250565b6000614982600683613f4f565b915061498d8261494c565b602082019050919050565b600060208201905081810360008301526149b181614975565b9050919050565b60006040820190506149cd6000830185614011565b6149da6020830184613e7b565b9392505050565b6000819050919050565b6000614a06614a016149fc846149e1565b6142ec565b613e71565b9050919050565b614a16816149eb565b82525050565b6000604082019050614a316000830185614011565b614a3e6020830184614a0d565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614a7f82613e71565b9150614a8a83613e71565b925082614a9a57614a99614a45565b5b828204905092915050565b6000614ab082613e71565b9150614abb83613e71565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614af057614aef614737565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614b31601b83613f4f565b9150614b3c82614afb565b602082019050919050565b60006020820190508181036000830152614b6081614b24565b9050919050565b6000614b7282613e71565b9150614b7d83613e71565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614bb657614bb5614737565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614c1d602183613f4f565b9150614c2882614bc1565b604082019050919050565b60006020820190508181036000830152614c4c81614c10565b9050919050565b600081519050614c628161403b565b92915050565b600060208284031215614c7e57614c7d613eaf565b5b6000614c8c84828501614c53565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614cca81613fff565b82525050565b6000614cdc8383614cc1565b60208301905092915050565b6000602082019050919050565b6000614d0082614c95565b614d0a8185614ca0565b9350614d1583614cb1565b8060005b83811015614d46578151614d2d8882614cd0565b9750614d3883614ce8565b925050600181019050614d19565b5085935050505092915050565b600060a082019050614d686000830188613e7b565b614d756020830187614a0d565b8181036040830152614d878186614cf5565b9050614d966060830185614011565b614da36080830184613e7b565b9695505050505050565b600060c082019050614dc26000830189614011565b614dcf6020830188613e7b565b614ddc6040830187614a0d565b614de96060830186614a0d565b614df66080830185614011565b614e0360a0830184613e7b565b979650505050505050565b600080600060608486031215614e2757614e26613eaf565b5b6000614e35868287016146c6565b9350506020614e46868287016146c6565b9250506040614e57868287016146c6565b915050925092509256fea264697066735822122077666573198bfa65d693caac78ca800b6d54f5746362bbdda7f67a5a3b9170d564736f6c634300080d003360806040526ec097ce7bc90715b34b9f1000000000600b55610708600c556000600d5534801561002e57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507339fbbabf11738317a448031930706cd3e612e1b9600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611f24806101286000396000f3fe6080604052600436106101025760003560e01c80638c21cd5211610095578063d0e30db011610064578063d0e30db01461034c578063e2d2e21914610356578063efca2eed14610381578063ffb2c479146103ac578063ffd49c84146103d557610111565b80638c21cd521461027c578063997664d7146102b9578063a1e0cb86146102e4578063ce7c2ac21461030d57610111565b806328fd3198116100d157806328fd3198146101c05780632d48e896146101fd5780633a98ef39146102265780634fab0ae81461025157610111565b80630708291a1461011657806311ce023d1461014157806314b6ca961461016c57806326987b601461019557610111565b366101115761010f610400565b005b600080fd5b34801561012257600080fd5b5061012b6107e8565b60405161013891906116a5565b60405180910390f35b34801561014d57600080fd5b5061015661080e565b60405161016391906116d9565b60405180910390f35b34801561017857600080fd5b50610193600480360381019061018e9190611751565b610814565b005b3480156101a157600080fd5b506101aa610ad3565b6040516101b791906116d9565b60405180910390f35b3480156101cc57600080fd5b506101e760048036038101906101e29190611791565b610ad9565b6040516101f491906116d9565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f91906117be565b610bf2565b005b34801561023257600080fd5b5061023b610c5c565b60405161024891906116d9565b60405180910390f35b34801561025d57600080fd5b50610266610c62565b60405161027391906116d9565b60405180910390f35b34801561028857600080fd5b506102a3600480360381019061029e9190611791565b610c68565b6040516102b09190611819565b60405180910390f35b3480156102c557600080fd5b506102ce610cd5565b6040516102db91906116d9565b60405180910390f35b3480156102f057600080fd5b5061030b60048036038101906103069190611791565b610cdb565b005b34801561031957600080fd5b50610334600480360381019061032f9190611791565b610d3f565b60405161034393929190611834565b60405180910390f35b610354610400565b005b34801561036257600080fd5b5061036b610d69565b60405161037891906116d9565b60405180910390f35b34801561038d57600080fd5b50610396610d6f565b6040516103a391906116d9565b60405180910390f35b3480156103b857600080fd5b506103d360048036038101906103ce919061186b565b610d75565b005b3480156103e157600080fd5b506103ea610eb0565b6040516103f791906116d9565b60405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161045d91906116a5565b602060405180830381865afa15801561047a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049e91906118ad565b90506000600267ffffffffffffffff8111156104bd576104bc6118da565b5b6040519080825280602002602001820160405280156104eb5781602001602082028036833780820191505090505b509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561055b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057f919061191e565b816000815181106105935761059261194b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106106045761060361194b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de953460008430426040518663ffffffff1660e01b81526004016106a19493929190611a7d565b6000604051808303818588803b1580156106ba57600080fd5b505af11580156106ce573d6000803e3d6000fd5b5050505050600061078383600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161073491906116a5565b602060405180830381865afa158015610751573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077591906118ad565b610eb690919063ffffffff16565b905061079a81600854610f0090919063ffffffff16565b6008819055506107dd6107cc6007546107be84600b54610f5e90919063ffffffff16565b610fd890919063ffffffff16565b600a54610f0090919063ffffffff16565b600a81905550505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461086c57600080fd5b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411156108c1576108c082611022565b5b60008111801561091357506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b1561092657610921826112b5565b610988565b60008114801561097857506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b156109875761098682611364565b5b5b6109f1816109e3600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600754610eb690919063ffffffff16565b610f0090919063ffffffff16565b60078190555080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550610a89600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461156b565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b600e5481565b600080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015403610b2d5760009050610bed565b6000610b7a600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461156b565b90506000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050808211610bd557600092505050610bed565b610be88183610eb690919063ffffffff16565b925050505b919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c4a57600080fd5b81600c8190555080600d819055505050565b60075481565b600d5481565b600042600c54600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610cb89190611af8565b108015610cce5750600d54610ccc83610ad9565b115b9050919050565b60085481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d3357600080fd5b610d3c81611022565b50565b60066020528060005260406000206000915090508060000154908060010154908060020154905083565b600a5481565b60095481565b6000600380549050905060008103610d8d5750610ead565b60008060005a90505b8482108015610da457508383105b15610ea85783600e5410610dbb576000600e819055505b610e046003600e5481548110610dd457610dd361194b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610c68565b15610e5357610e526003600e5481548110610e2257610e2161194b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611022565b5b610e78610e695a83610eb690919063ffffffff16565b83610f0090919063ffffffff16565b91505a9050600e6000815480929190610e9090611b4e565b91905055508280610ea090611b4e565b935050610d96565b505050505b50565b600c5481565b6000610ef883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061159d565b905092915050565b6000808284610f0f9190611af8565b905083811015610f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4b90611bf3565b60405180910390fd5b8091505092915050565b6000808303610f705760009050610fd2565b60008284610f7e9190611c13565b9050828482610f8d9190611c9c565b14610fcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc490611d3f565b60405180910390fd5b809150505b92915050565b600061101a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611601565b905092915050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015403156112b257600061107882610ad9565b905060008111156112b05761109881600954610f0090919063ffffffff16565b600981905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b81526004016110fb929190611d5f565b6020604051808303816000875af115801561111a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113e9190611db4565b5042600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111d881600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154610f0090919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550611269600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461156b565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600380549050600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506003819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360016003805490506113789190611de1565b815481106113895761138861194b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166003600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815481106114075761140661194b565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460046000600360016003805490506114a79190611de1565b815481106114b8576114b761194b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600380548061153357611532611e15565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b6000611596600b54611588600a5485610f5e90919063ffffffff16565b610fd890919063ffffffff16565b9050919050565b60008383111582906115e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dc9190611ecc565b60405180910390fd5b50600083856115f49190611de1565b9050809150509392505050565b60008083118290611648576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163f9190611ecc565b60405180910390fd5b50600083856116579190611c9c565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061168f82611664565b9050919050565b61169f81611684565b82525050565b60006020820190506116ba6000830184611696565b92915050565b6000819050919050565b6116d3816116c0565b82525050565b60006020820190506116ee60008301846116ca565b92915050565b600080fd5b61170281611684565b811461170d57600080fd5b50565b60008135905061171f816116f9565b92915050565b61172e816116c0565b811461173957600080fd5b50565b60008135905061174b81611725565b92915050565b60008060408385031215611768576117676116f4565b5b600061177685828601611710565b92505060206117878582860161173c565b9150509250929050565b6000602082840312156117a7576117a66116f4565b5b60006117b584828501611710565b91505092915050565b600080604083850312156117d5576117d46116f4565b5b60006117e38582860161173c565b92505060206117f48582860161173c565b9150509250929050565b60008115159050919050565b611813816117fe565b82525050565b600060208201905061182e600083018461180a565b92915050565b600060608201905061184960008301866116ca565b61185660208301856116ca565b61186360408301846116ca565b949350505050565b600060208284031215611881576118806116f4565b5b600061188f8482850161173c565b91505092915050565b6000815190506118a781611725565b92915050565b6000602082840312156118c3576118c26116f4565b5b60006118d184828501611898565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050611918816116f9565b92915050565b600060208284031215611934576119336116f4565b5b600061194284828501611909565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000819050919050565b60006119a96119a461199f8461197a565b611984565b6116c0565b9050919050565b6119b98161198e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6119f481611684565b82525050565b6000611a0683836119eb565b60208301905092915050565b6000602082019050919050565b6000611a2a826119bf565b611a3481856119ca565b9350611a3f836119db565b8060005b83811015611a70578151611a5788826119fa565b9750611a6283611a12565b925050600181019050611a43565b5085935050505092915050565b6000608082019050611a9260008301876119b0565b8181036020830152611aa48186611a1f565b9050611ab36040830185611696565b611ac060608301846116ca565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611b03826116c0565b9150611b0e836116c0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611b4357611b42611ac9565b5b828201905092915050565b6000611b59826116c0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611b8b57611b8a611ac9565b5b600182019050919050565b600082825260208201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000611bdd601b83611b96565b9150611be882611ba7565b602082019050919050565b60006020820190508181036000830152611c0c81611bd0565b9050919050565b6000611c1e826116c0565b9150611c29836116c0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611c6257611c61611ac9565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ca7826116c0565b9150611cb2836116c0565b925082611cc257611cc1611c6d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000611d29602183611b96565b9150611d3482611ccd565b604082019050919050565b60006020820190508181036000830152611d5881611d1c565b9050919050565b6000604082019050611d746000830185611696565b611d8160208301846116ca565b9392505050565b611d91816117fe565b8114611d9c57600080fd5b50565b600081519050611dae81611d88565b92915050565b600060208284031215611dca57611dc96116f4565b5b6000611dd884828501611d9f565b91505092915050565b6000611dec826116c0565b9150611df7836116c0565b925082821015611e0a57611e09611ac9565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600081519050919050565b60005b83811015611e6d578082015181840152602081019050611e52565b83811115611e7c576000848401525b50505050565b6000601f19601f8301169050919050565b6000611e9e82611e44565b611ea88185611b96565b9350611eb8818560208601611e4f565b611ec181611e82565b840191505092915050565b60006020820190508181036000830152611ee68184611e93565b90509291505056fea26469706673582212206a5a17d679b72f8550f2c33a86c766a4732e32bc92cd6f9648d762a0fec7703d64736f6c634300080d0033
Deployed Bytecode
0x60806040526004361061037a5760003560e01c80637437681e116101d1578063a9059cbb11610102578063d920334e116100a0578063f887ea401161006f578063f887ea4014610c9f578063f8b45b0514610cca578063fabe628314610cf5578063ffb54a9914610d1e57610381565b8063d920334e14610be7578063dd62ed3e14610c10578063f2fde38b14610c4d578063f708a64f14610c7657610381565b8063c45a0155116100dc578063c45a015514610b4f578063c8d1293d14610b7a578063c9567bf914610ba5578063caa5581b14610bbc57610381565b8063a9059cbb14610abe578063b515566a14610afb578063bf56b37114610b2457610381565b806389291a8f1161016f5780638da5cb5b116101495780638da5cb5b14610a1457806395d89b4114610a3f578063a3a2e89e14610a6a578063a8aa1b3114610a9357610381565b806389291a8f146109a95780638aba4691146109c05780638b42507f146109d757610381565b80637db1342c116101ab5780637db1342c146109015780637dfcbe341461092a5780638193403114610955578063859e3c451461097e57610381565b80637437681e1461086e57806375df13051461089957806377359aa7146108c457610381565b8063313ce567116102ab578063470624021161024957806366eb37851161022357806366eb3785146107d85780636877e52b146107ef57806370a082311461081a578063715018a61461085757610381565b806347062402146107455780634a74bb0214610770578063571ac8b01461079b57610381565b80633f4218e0116102855780633f4218e0146106775780634355855a146106b457806345434377146106f1578063468c7ee21461071c57610381565b8063313ce567146105fa5780633b7e4070146106255780633dab52691461064e57610381565b806323b872dd116103185780632b14ca56116102f25780632b14ca56146105545780632d48e8961461057f5780632dbea2e1146105a857806330ca34ee146105d157610381565b806323b872dd146104c3578063273123b7146105005780632b112e491461052957610381565b80630708291a116103545780630708291a146104055780630837511114610430578063095ea7b31461045b57806318160ddd1461049857610381565b80630445b6671461038657806305410457146103b157806306fdde03146103da57610381565b3661038157005b600080fd5b34801561039257600080fd5b5061039b610d49565b6040516103a89190613e8a565b60405180910390f35b3480156103bd57600080fd5b506103d860048036038101906103d39190613f17565b610d4f565b005b3480156103e657600080fd5b506103ef610e28565b6040516103fc9190613fdd565b60405180910390f35b34801561041157600080fd5b5061041a610e65565b6040516104279190614020565b60405180910390f35b34801561043c57600080fd5b50610445610e8b565b6040516104529190613e8a565b60405180910390f35b34801561046757600080fd5b50610482600480360381019061047d9190614093565b610e91565b60405161048f91906140ee565b60405180910390f35b3480156104a457600080fd5b506104ad610f83565b6040516104ba9190613e8a565b60405180910390f35b3480156104cf57600080fd5b506104ea60048036038101906104e59190614109565b610f8d565b6040516104f791906140ee565b60405180910390f35b34801561050c57600080fd5b506105276004803603810190610522919061415c565b61118d565b005b34801561053557600080fd5b5061053e61127d565b60405161054b9190613e8a565b60405180910390f35b34801561056057600080fd5b506105696112ff565b6040516105769190613e8a565b60405180910390f35b34801561058b57600080fd5b506105a660048036038101906105a19190614189565b611305565b005b3480156105b457600080fd5b506105cf60048036038101906105ca91906141c9565b61142d565b005b3480156105dd57600080fd5b506105f860048036038101906105f39190614189565b6114dc565b005b34801561060657600080fd5b5061060f61160e565b60405161061c9190614238565b60405180910390f35b34801561063157600080fd5b5061064c60048036038101906106479190614253565b611617565b005b34801561065a57600080fd5b50610675600480360381019061067091906142ac565b6116b6565b005b34801561068357600080fd5b5061069e6004803603810190610699919061415c565b611770565b6040516106ab91906140ee565b60405180910390f35b3480156106c057600080fd5b506106db60048036038101906106d6919061415c565b611790565b6040516106e891906140ee565b60405180910390f35b3480156106fd57600080fd5b506107066117b0565b6040516107139190613e8a565b60405180910390f35b34801561072857600080fd5b50610743600480360381019061073e919061415c565b6117b6565b005b34801561075157600080fd5b5061075a61188f565b6040516107679190613e8a565b60405180910390f35b34801561077c57600080fd5b50610785611895565b60405161079291906140ee565b60405180910390f35b3480156107a757600080fd5b506107c260048036038101906107bd919061415c565b6118a8565b6040516107cf91906140ee565b60405180910390f35b3480156107e457600080fd5b506107ed6118db565b005b3480156107fb57600080fd5b5061080461197a565b604051610811919061434b565b60405180910390f35b34801561082657600080fd5b50610841600480360381019061083c919061415c565b6119a0565b60405161084e9190613e8a565b60405180910390f35b34801561086357600080fd5b5061086c6119e9565b005b34801561087a57600080fd5b50610883611b3c565b6040516108909190613e8a565b60405180910390f35b3480156108a557600080fd5b506108ae611b42565b6040516108bb9190613e8a565b60405180910390f35b3480156108d057600080fd5b506108eb60048036038101906108e6919061415c565b611b48565b6040516108f89190613e8a565b60405180910390f35b34801561090d57600080fd5b5061092860048036038101906109239190614253565b611bed565b005b34801561093657600080fd5b5061093f611c8c565b60405161094c91906140ee565b60405180910390f35b34801561096157600080fd5b5061097c60048036038101906109779190614253565b611c9f565b005b34801561098a57600080fd5b50610993611dc4565b6040516109a09190614020565b60405180910390f35b3480156109b557600080fd5b506109be611dea565b005b3480156109cc57600080fd5b506109d5611efa565b005b3480156109e357600080fd5b506109fe60048036038101906109f9919061415c565b611f89565b604051610a0b91906140ee565b60405180910390f35b348015610a2057600080fd5b50610a29611fa9565b604051610a369190614020565b60405180910390f35b348015610a4b57600080fd5b50610a54611fd2565b604051610a619190613fdd565b60405180910390f35b348015610a7657600080fd5b50610a916004803603810190610a8c9190614366565b61200f565b005b348015610a9f57600080fd5b50610aa86120ff565b604051610ab59190614020565b60405180910390f35b348015610aca57600080fd5b50610ae56004803603810190610ae09190614093565b612125565b604051610af291906140ee565b60405180910390f35b348015610b0757600080fd5b50610b226004803603810190610b1d91906144ee565b61213a565b005b348015610b3057600080fd5b50610b39612264565b604051610b469190613e8a565b60405180910390f35b348015610b5b57600080fd5b50610b6461226a565b604051610b719190614020565b60405180910390f35b348015610b8657600080fd5b50610b8f612290565b604051610b9c9190613e8a565b60405180910390f35b348015610bb157600080fd5b50610bba612296565b005b348015610bc857600080fd5b50610bd161234f565b604051610bde9190613e8a565b60405180910390f35b348015610bf357600080fd5b50610c0e6004803603810190610c099190614253565b612355565b005b348015610c1c57600080fd5b50610c376004803603810190610c329190614537565b6123f4565b604051610c449190613e8a565b60405180910390f35b348015610c5957600080fd5b50610c746004803603810190610c6f919061415c565b61247b565b005b348015610c8257600080fd5b50610c9d6004803603810190610c989190614366565b61263c565b005b348015610cab57600080fd5b50610cb46126df565b604051610cc191906145aa565b60405180910390f35b348015610cd657600080fd5b50610cdf612705565b604051610cec9190613e8a565b60405180910390f35b348015610d0157600080fd5b50610d1c6004803603810190610d179190614366565b61270b565b005b348015610d2a57600080fd5b50610d336127fb565b604051610d4091906140ee565b60405180910390f35b601d5481565b610d57612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddb90614611565b60405180910390fd5b80601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606040518060400160405280600681526020017f5852507272720000000000000000000000000000000000000000000000000000815250905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601a5481565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610f719190613e8a565b60405180910390a36001905092915050565b6000600254905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611179576110f8826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128609092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6111848484846128c4565b90509392505050565b611195612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121990614611565b60405180910390fd5b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006112fa6112ad600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166119a0565b6112ec6112db600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166119a0565b6002546131a390919063ffffffff16565b6131a390919063ffffffff16565b905090565b60105481565b61130d612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461139a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139190614611565b60405180910390fd5b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b81526004016113f7929190614631565b600060405180830381600087803b15801561141157600080fd5b505af1158015611425573d6000803e3d6000fd5b505050505050565b611435612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b990614611565b60405180910390fd5b826011819055508160128190555080601381905550505050565b6114e4612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611571576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156890614611565b60405180910390fd5b81600f8190555080601081905550600f805411156115c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bb906146a6565b60405180910390fd5b6019601054111561160a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611601906146a6565b60405180910390fd5b5050565b60006012905090565b61161f612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a390614611565b60405180910390fd5b80601a8190555050565b6116be612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461174b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174290614611565b60405180910390fd5b81601860156101000a81548160ff02191690831515021790555080601d819055505050565b600a6020528060005260406000206000915054906101000a900460ff1681565b600c6020528060005260406000206000915054906101000a900460ff1681565b60145481565b6117be612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461184b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184290614611565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b601860159054906101000a900460ff1681565b60006118d4827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610e91565b9050919050565b6118e3612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611970576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196790614611565b60405180910390fd5b6119786131ed565b565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6119f1612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7590614611565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601b5481565b60135481565b6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166328fd3198836040518263ffffffff1660e01b8152600401611ba59190614020565b602060405180830381865afa158015611bc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be691906146db565b9050919050565b611bf5612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7990614611565b60405180910390fd5b80601c8190555050565b600860149054906101000a900460ff1681565b611ca7612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2b90614611565b60405180910390fd5b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c479826040518263ffffffff1660e01b8152600401611d8f9190613e8a565b600060405180830381600087803b158015611da957600080fd5b505af1158015611dbd573d6000803e3d6000fd5b5050505050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611df2612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7690614611565b60405180910390fd5b60004790506000811115611ef757601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611ef5573d6000803e3d6000fd5b505b50565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a1e0cb86336040518263ffffffff1660e01b8152600401611f559190614020565b600060405180830381600087803b158015611f6f57600080fd5b505af1158015611f83573d6000803e3d6000fd5b50505050565b600b6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f5852507272720000000000000000000000000000000000000000000000000000815250905090565b612017612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209b90614611565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006121323384846128c4565b905092915050565b612142612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c690614611565b60405180910390fd5b60005b8151811015612260576001600960008484815181106121f4576121f3614708565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061225890614766565b9150506121d2565b5050565b600d5481565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60125481565b61229e612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461232b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232290614611565b60405180910390fd5b43600d819055506001601860166101000a81548160ff021916908315150217905550565b60115481565b61235d612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e190614611565b60405180910390fd5b80601b8190555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612483612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612510576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250790614611565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361257f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257690614820565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612644612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c890614611565b60405180910390fd5b6126db828261346f565b5050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c5481565b612713612858565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279790614611565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601860169054906101000a900460ff1681565b600061285083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506136c7565b905092915050565b600033905090565b60008383111582906128a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289f9190613fdd565b60405180910390fd5b50600083856128b79190614840565b9050809150509392505050565b60006128ce611fa9565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561293c575061290c611fa9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561299157601860169054906101000a900460ff16612990576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612987906148c0565b60405180910390fd5b5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612a355750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612a3e57600080fd5b601860149054906101000a900460ff1615612a6557612a5e84848461372a565b905061319c565b601b5482111580612abf5750600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af59061492c565b60405180910390fd5b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b645750600860149054906101000a900460ff165b15612c0057601c54612bbe83600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138fd90919063ffffffff16565b1115612bff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf690614998565b60405180910390fd5b5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612c6b5750601860149054906101000a900460ff16155b8015612c835750601860159054906101000a900460ff165b8015612cd05750601d54600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15612cde57612cdd6131ed565b5b612d67826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128609092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612e505750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612e5a5782612e66565b612e6585858561395b565b5b9050612eba81600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138fd90919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661301757601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612fea9291906149b8565b600060405180830381600087803b15801561300457600080fd5b505af1925050508015613015575060015b505b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661313157601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016131049291906149b8565b600060405180830381600087803b15801561311e57600080fd5b505af192505050801561312f575060015b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161318e9190613e8a565b60405180910390a360019150505b9392505050565b60006131e583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612860565b905092915050565b6001601860146101000a81548160ff0219169083151502179055506000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000613289600261327b606461326d60125487613b0390919063ffffffff16565b61280e90919063ffffffff16565b61280e90919063ffffffff16565b905060006132a082846131a390919063ffffffff16565b90506132ab81613b7d565b600047905060006132da60646132cc60115485613b0390919063ffffffff16565b61280e90919063ffffffff16565b9050600061330660646132f860135486613b0390919063ffffffff16565b61280e90919063ffffffff16565b905060006133456002613337606461332960125489613b0390919063ffffffff16565b61280e90919063ffffffff16565b61280e90919063ffffffff16565b905060008411156133ba57601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156133b8573d6000803e3d6000fd5b505b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b15801561342457600080fd5b505af193505050508015613436575060015b50600086111561344b5761344a8682613d9e565b5b505050505050506000601860146101000a81548160ff021916908315150217905550565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156134f95750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61350257600080fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156135f457601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b81526004016135bd929190614a1c565b600060405180830381600087803b1580156135d757600080fd5b505af11580156135eb573d6000803e3d6000fd5b505050506136c3565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016136909291906149b8565b600060405180830381600087803b1580156136aa57600080fd5b505af11580156136be573d6000803e3d6000fd5b505050505b5050565b6000808311829061370e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137059190613fdd565b60405180910390fd5b506000838561371d9190614a74565b9050809150509392505050565b60006137b5826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128609092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061384a82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138fd90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516138ea9190613e8a565b60405180910390a3600190509392505050565b600080828461390c9190614aa5565b905083811015613951576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161394890614b47565b60405180910390fd5b8091505092915050565b6000808373ffffffffffffffffffffffffffffffffffffffff16601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146139bb57600f546139bf565b6010545b905060006139e960646139db8487613b0390919063ffffffff16565b61280e90919063ffffffff16565b9050613a3d81600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138fd90919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613add9190613e8a565b60405180910390a3613af881856131a390919063ffffffff16565b925050509392505050565b6000808303613b155760009050613b77565b60008284613b239190614b67565b9050828482613b329190614a74565b14613b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b6990614c33565b60405180910390fd5b809150505b92915050565b6000600267ffffffffffffffff811115613b9a57613b996143ab565b5b604051908082528060200260200182016040528015613bc85781602001602082028036833780820191505090505b5090503081600081518110613be057613bdf614708565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613c87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cab9190614c68565b81600181518110613cbf57613cbe614708565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613d033083610e91565b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613d68959493929190614d53565b600060405180830381600087803b158015613d8257600080fd5b505af1158015613d96573d6000803e3d6000fd5b505050505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613e2796959493929190614dad565b60606040518083038185885af1158015613e45573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613e6a9190614e0e565b5050505050565b6000819050919050565b613e8481613e71565b82525050565b6000602082019050613e9f6000830184613e7b565b92915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613ee482613eb9565b9050919050565b613ef481613ed9565b8114613eff57600080fd5b50565b600081359050613f1181613eeb565b92915050565b600060208284031215613f2d57613f2c613eaf565b5b6000613f3b84828501613f02565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613f7e578082015181840152602081019050613f63565b83811115613f8d576000848401525b50505050565b6000601f19601f8301169050919050565b6000613faf82613f44565b613fb98185613f4f565b9350613fc9818560208601613f60565b613fd281613f93565b840191505092915050565b60006020820190508181036000830152613ff78184613fa4565b905092915050565b600061400a82613eb9565b9050919050565b61401a81613fff565b82525050565b60006020820190506140356000830184614011565b92915050565b61404481613fff565b811461404f57600080fd5b50565b6000813590506140618161403b565b92915050565b61407081613e71565b811461407b57600080fd5b50565b60008135905061408d81614067565b92915050565b600080604083850312156140aa576140a9613eaf565b5b60006140b885828601614052565b92505060206140c98582860161407e565b9150509250929050565b60008115159050919050565b6140e8816140d3565b82525050565b600060208201905061410360008301846140df565b92915050565b60008060006060848603121561412257614121613eaf565b5b600061413086828701614052565b935050602061414186828701614052565b92505060406141528682870161407e565b9150509250925092565b60006020828403121561417257614171613eaf565b5b600061418084828501614052565b91505092915050565b600080604083850312156141a05761419f613eaf565b5b60006141ae8582860161407e565b92505060206141bf8582860161407e565b9150509250929050565b6000806000606084860312156141e2576141e1613eaf565b5b60006141f08682870161407e565b93505060206142018682870161407e565b92505060406142128682870161407e565b9150509250925092565b600060ff82169050919050565b6142328161421c565b82525050565b600060208201905061424d6000830184614229565b92915050565b60006020828403121561426957614268613eaf565b5b60006142778482850161407e565b91505092915050565b614289816140d3565b811461429457600080fd5b50565b6000813590506142a681614280565b92915050565b600080604083850312156142c3576142c2613eaf565b5b60006142d185828601614297565b92505060206142e28582860161407e565b9150509250929050565b6000819050919050565b600061431161430c61430784613eb9565b6142ec565b613eb9565b9050919050565b6000614323826142f6565b9050919050565b600061433582614318565b9050919050565b6143458161432a565b82525050565b6000602082019050614360600083018461433c565b92915050565b6000806040838503121561437d5761437c613eaf565b5b600061438b85828601614052565b925050602061439c85828601614297565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6143e382613f93565b810181811067ffffffffffffffff82111715614402576144016143ab565b5b80604052505050565b6000614415613ea5565b905061442182826143da565b919050565b600067ffffffffffffffff821115614441576144406143ab565b5b602082029050602081019050919050565b600080fd5b600061446a61446584614426565b61440b565b9050808382526020820190506020840283018581111561448d5761448c614452565b5b835b818110156144b657806144a28882614052565b84526020840193505060208101905061448f565b5050509392505050565b600082601f8301126144d5576144d46143a6565b5b81356144e5848260208601614457565b91505092915050565b60006020828403121561450457614503613eaf565b5b600082013567ffffffffffffffff81111561452257614521613eb4565b5b61452e848285016144c0565b91505092915050565b6000806040838503121561454e5761454d613eaf565b5b600061455c85828601614052565b925050602061456d85828601614052565b9150509250929050565b6000614582826142f6565b9050919050565b600061459482614577565b9050919050565b6145a481614589565b82525050565b60006020820190506145bf600083018461459b565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006145fb602083613f4f565b9150614606826145c5565b602082019050919050565b6000602082019050818103600083015261462a816145ee565b9050919050565b60006040820190506146466000830185613e7b565b6146536020830184613e7b565b9392505050565b7f746f6f2068696768000000000000000000000000000000000000000000000000600082015250565b6000614690600883613f4f565b915061469b8261465a565b602082019050919050565b600060208201905081810360008301526146bf81614683565b9050919050565b6000815190506146d581614067565b92915050565b6000602082840312156146f1576146f0613eaf565b5b60006146ff848285016146c6565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061477182613e71565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036147a3576147a2614737565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061480a602683613f4f565b9150614815826147ae565b604082019050919050565b60006020820190508181036000830152614839816147fd565b9050919050565b600061484b82613e71565b915061485683613e71565b92508282101561486957614868614737565b5b828203905092915050565b7f686f6c6420757220686f7273657320626967206775792e000000000000000000600082015250565b60006148aa601783613f4f565b91506148b582614874565b602082019050919050565b600060208201905081810360008301526148d98161489d565b9050919050565b7f7478000000000000000000000000000000000000000000000000000000000000600082015250565b6000614916600283613f4f565b9150614921826148e0565b602082019050919050565b6000602082019050818103600083015261494581614909565b9050919050565b7f77616c6c65740000000000000000000000000000000000000000000000000000600082015250565b6000614982600683613f4f565b915061498d8261494c565b602082019050919050565b600060208201905081810360008301526149b181614975565b9050919050565b60006040820190506149cd6000830185614011565b6149da6020830184613e7b565b9392505050565b6000819050919050565b6000614a06614a016149fc846149e1565b6142ec565b613e71565b9050919050565b614a16816149eb565b82525050565b6000604082019050614a316000830185614011565b614a3e6020830184614a0d565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614a7f82613e71565b9150614a8a83613e71565b925082614a9a57614a99614a45565b5b828204905092915050565b6000614ab082613e71565b9150614abb83613e71565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614af057614aef614737565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614b31601b83613f4f565b9150614b3c82614afb565b602082019050919050565b60006020820190508181036000830152614b6081614b24565b9050919050565b6000614b7282613e71565b9150614b7d83613e71565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614bb657614bb5614737565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614c1d602183613f4f565b9150614c2882614bc1565b604082019050919050565b60006020820190508181036000830152614c4c81614c10565b9050919050565b600081519050614c628161403b565b92915050565b600060208284031215614c7e57614c7d613eaf565b5b6000614c8c84828501614c53565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614cca81613fff565b82525050565b6000614cdc8383614cc1565b60208301905092915050565b6000602082019050919050565b6000614d0082614c95565b614d0a8185614ca0565b9350614d1583614cb1565b8060005b83811015614d46578151614d2d8882614cd0565b9750614d3883614ce8565b925050600181019050614d19565b5085935050505092915050565b600060a082019050614d686000830188613e7b565b614d756020830187614a0d565b8181036040830152614d878186614cf5565b9050614d966060830185614011565b614da36080830184613e7b565b9695505050505050565b600060c082019050614dc26000830189614011565b614dcf6020830188613e7b565b614ddc6040830187614a0d565b614de96060830186614a0d565b614df66080830185614011565b614e0360a0830184613e7b565b979650505050505050565b600080600060608486031215614e2757614e26613eaf565b5b6000614e35868287016146c6565b9350506020614e46868287016146c6565b9250506040614e57868287016146c6565b915050925092509256fea264697066735822122077666573198bfa65d693caac78ca800b6d54f5746362bbdda7f67a5a3b9170d564736f6c634300080d0033
Deployed Bytecode Sourcemap
11277:11722:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13112:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15423:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17197:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11354:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12853:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17539:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16927:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18053:366;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16088:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16777:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12329:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15887:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14689:233;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14432:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17021:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16661:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15680:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12060:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12166:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12481:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15566:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12296:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12728:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17763:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22330:74;;;;;;;;;;;;;:::i;:::-;;12819:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17283:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2483:148;;;;;;;;;;;;;:::i;:::-;;13008:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12441:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22772:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15033:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11979:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22656:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12610:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22412:236;;;;;;;;;;;;;:::i;:::-;;22929:67;;;;;;;;;;;;;:::i;:::-;;12111:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2269:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17107:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15149:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12555:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17893:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14085:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12224:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12581:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12404:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14303:115;;;;;;;;;;;;;:::i;:::-;;12365:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14930:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17394:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2639:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16521:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12524:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13058:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15279:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12775:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13112:52;;;;:::o;15423:135::-;2406:12;:10;:12::i;:::-;2396:22;;:6;;;;;;;;;;:22;;;2388:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15534:15:::1;15511:12;;:39;;;;;;;;;;;;;;;;;;15423:135:::0;:::o;17197:80::-;17245:13;17269:5;;;;;;;;;;;;;;;;;17262:12;;17197:80;:::o;11354:64::-;;;;;;;;;;;;;:::o;12853:28::-;;;;:::o;17539:216::-;17614:4;17666:6;17631:11;:23;17643:10;17631:23;;;;;;;;;;;;;;;:32;17655:7;17631:32;;;;;;;;;;;;;;;:41;;;;17709:7;17688:37;;17697:10;17688:37;;;17718:6;17688:37;;;;;;:::i;:::-;;;;;;;;17743:4;17736:11;;17539:216;;;;:::o;16927:88::-;16982:7;17000:12;;16993:19;;16927:88;:::o;18053:366::-;18153:4;18208:17;18173:11;:19;18185:6;18173:19;;;;;;;;;;;;;;;:31;18193:10;18173:31;;;;;;;;;;;;;;;;:52;18170:186;;18275:69;18311:6;18275:69;;;;;;;;;;;;;;;;;:11;:19;18287:6;18275:19;;;;;;;;;;;;;;;:31;18295:10;18275:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;18241:11;:19;18253:6;18241:19;;;;;;;;;;;;;;;:31;18261:10;18241:31;;;;;;;;;;;;;;;:103;;;;18170:186;18375:36;18385:6;18393:9;18404:6;18375:9;:36::i;:::-;18368:43;;18053:366;;;;;:::o;16088:90::-;2406:12;:10;:12::i;:::-;2396:22;;:6;;;;;;;;;;:22;;;2388:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16165:5:::1;16150:4;:12;16155:6;16150:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;16088:90:::0;:::o;16777:142::-;16830:7;16857:54;16895:15;16905:4;;;;;;;;;;;16895:9;:15::i;:::-;16857:33;16874:15;16884:4;;;;;;;;;;;16874:9;:15::i;:::-;16857:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;16850:61;;16777:142;:::o;12329:27::-;;;;:::o;15887:193::-;2406:12;:10;:12::i;:::-;2396:22;;:6;;;;;;;;;;:22;;;2388:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16000:6:::1;;;;;;;;;;;:30;;;16031:12;16045:18;16000:64;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15887:193:::0;;:::o;14689:233::-;2406:12;:10;:12::i;:::-;2396:22;;:6;;;;;;;;;;:22;;;2388:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14829:12:::1;14813:13;:28;;;;14866:8;14852:11;:22;;;;14899:15;14885:11;:29;;;;14689:233:::0;;;:::o;14432:244::-;2406:12;:10;:12::i;:::-;2396:22;;:6;;;;;;;;;;:22;;;2388:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14537:9:::1;14528:6;:18;;;;14567:10;14557:7;:20;;;;14608:2;14598:6:::0;::::1;:12;;14590:33;;;;;;;;;;;;:::i;:::-;;;;;;;;;14653:2;14642:7;;:13;;14634:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;14432:244:::0;;:::o;17021:80::-;17073:5;11558:2;17082:16;;17021:80;:::o;16661:97::-;2406:12;:10;:12::i;:::-;2396:22;;:6;;;;;;;;;;:22;;;2388:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16744:6:::1;16732:9;:18;;;;16661:97:::0;:::o;15680:199::-;2406:12;:10;:12::i;:::-;2396:22;;:6;;;;;;;;;;:22;;;2388:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15814:14:::1;15789:21;;:39;;;;;;;;;;;;;;;;;;15855:16;15839:13;:32;;;;15680:199:::0;;:::o;12060:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;12166:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;12481:34::-;;;;:::o;15566:102::-;2406:12;:10;:12::i;:::-;2396:22;;:6;;;;;;;;;;:22;;;2388:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15649:11:::1;15638:8;;:22;;;;;;;;;;;;;;;;;;15566:102:::0;:::o;12296:26::-;;;;:::o;12728:40::-;;;;;;;;;;;;;:::o;17763:122::-;17818:4;17842:35;17850:7;17859:17;17842:7;:35::i;:::-;17835:42;;17763:122;;;:::o;22330:74::-;2406:12;:10;:12::i;:::-;2396:22;;:6;;;;;;;;;;:22;;;2388:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22386:10:::1;:8;:10::i;:::-;22330:74::o:0;12819:27::-;;;;;;;;;;;;;:::o;17283:105::-;17349:7;17367:9;:18;17377:7;17367:18;;;;;;;;;;;;;;;;17360:25;;17283:105;;;:::o;2483:148::-;2406:12;:10;:12::i;:::-;2396:22;;:6;;;;;;;;;;:22;;;2388:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2590:1:::1;2553:40;;2574:6;::::0;::::1;;;;;;;;2553:40;;;;;;;;;;;;2621:1;2604:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2483:148::o:0;13008:43::-;;;;:::o;12441:31::-;;;;:::o;22772:149::-;22849:7;22876:6;;;;;;;;;;;:24;;;22901:11;22876:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22869:44;;22772:149;;;:::o;15033:104::-;2406:12;:10;:12::i;:::-;2396:22;;:6;;;;;;;;;;:22;;;2388:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15121:8:::1;15108:9;:21;;;;15033:104:::0;:::o;11979:26::-;;;;;;;;;;;;;:::o;22656:108::-;2406:12;:10;:12::i;:::-;2396:22;;:6;;;;;;;;;;:22;;;2388:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22731:6:::1;;;;;;;;;;;:14;;;22746:9;22731:25;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;22656:108:::0;:::o;12610:81::-;;;;;;;;;;;;;:::o;22412:236::-;2406:12;:10;:12::i;:::-;2396:22;;:6;;;;;;;;;;:22;;;2388:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22467:26:::1;22496:21;22467:50;;22552:1;22531:18;:22;22528:113;;;22587:12;;;;;;;;;;;22579:30;;:50;22610:18;22579:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22528:113;22456:192;22412:236::o:0;22929:67::-;22965:6;;;;;;;;;;;:11;;;22977:10;22965:23;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22929:67::o;12111:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;2269:79::-;2307:7;2334:6;;;;;;;;;;;2327:13;;2269:79;:::o;17107:84::-;17157:13;17181:7;;;;;;;;;;;;;;;;;17174:14;;17107:84;:::o;15149:122::-;2406:12;:10;:12::i;:::-;2396:22;;:6;;;;;;;;;;:22;;;2388:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15257:6:::1;15235:11;:19;15247:6;15235:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;15149:122:::0;;:::o;12555:19::-;;;;;;;;;;;;;:::o;17893:152::-;17973:4;17997:40;18007:10;18019:9;18030:6;17997:9;:40::i;:::-;17990:47;;17893:152;;;;:::o;14085:166::-;2406:12;:10;:12::i;:::-;2396:22;;:6;;;;;;;;;;:22;;;2388:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14161:6:::1;14156:88;14177:5;:12;14173:1;:16;14156:88;;;14228:4;14211;:14;14216:5;14222:1;14216:8;;;;;;;;:::i;:::-;;;;;;;;14211:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14191:3;;;;;:::i;:::-;;;;14156:88;;;;14085:166:::0;:::o;12224:25::-;;;;:::o;12581:22::-;;;;;;;;;;;;;:::o;12404:30::-;;;;:::o;14303:115::-;2406:12;:10;:12::i;:::-;2396:22;;:6;;;;;;;;;;:22;;;2388:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14369:12:::1;14356:10;:25;;;;14406:4;14392:11;;:18;;;;;;;;;;;;;;;;;;14303:115::o:0;12365:32::-;;;;:::o;14930:95::-;2406:12;:10;:12::i;:::-;2396:22;;:6;;;;;;;;;;:22;;;2388:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15009:8:::1;15001:5;:16;;;;14930:95:::0;:::o;17394:133::-;17478:7;17496:11;:19;17508:6;17496:19;;;;;;;;;;;;;;;:28;17516:7;17496:28;;;;;;;;;;;;;;;;17489:35;;17394:133;;;;:::o;2639:244::-;2406:12;:10;:12::i;:::-;2396:22;;:6;;;;;;;;;;:22;;;2388:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2748:1:::1;2728:22;;:8;:22;;::::0;2720:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2838:8;2809:38;;2830:6;::::0;::::1;;;;;;;;2809:38;;;;;;;;;;;;2867:8;2858:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2639:244:::0;:::o;16521:132::-;2406:12;:10;:12::i;:::-;2396:22;;:6;;;;;;;;;;:22;;;2388:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16609:36:::1;16630:6;16638;16609:20;:36::i;:::-;16521:132:::0;;:::o;12524:24::-;;;;;;;;;;;;;:::o;13058:47::-;;;;:::o;15279:136::-;2406:12;:10;:12::i;:::-;2396:22;;:6;;;;;;;;;;:22;;;2388:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15401:6:::1;15375:15;:23;15391:6;15375:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;15279:136:::0;;:::o;12775:31::-;;;;;;;;;;;;;:::o;1209:132::-;1267:7;1294:39;1298:1;1301;1294:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1287:46;;1209:132;;;;:::o;1734:98::-;1787:7;1814:10;1807:17;;1734:98;:::o;755:192::-;841:7;874:1;869;:6;;877:12;861:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;901:9;917:1;913;:5;;;;:::i;:::-;901:17;;938:1;931:8;;;755:192;;;;;:::o;18427:1414::-;18515:4;18545:7;:5;:7::i;:::-;18536:16;;:6;:16;;;;:39;;;;;18568:7;:5;:7::i;:::-;18556:19;;:9;:19;;;;18536:39;18532:92;;;18585:11;;;;;;;;;;;18577:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;18532:92;18686:4;:12;18691:6;18686:12;;;;;;;;;;;;;;;;;;;;;;;;;18685:13;:33;;;;;18703:4;:15;18708:9;18703:15;;;;;;;;;;;;;;;;;;;;;;;;;18702:16;18685:33;18677:42;;;;;;18735:16;;;;;;;;;;;18732:73;;;18761:41;18776:6;18784:9;18795:6;18761:14;:41::i;:::-;18754:48;;;;18732:73;18835:5;;18825:6;:15;;:42;;;;18844:15;:23;18860:6;18844:23;;;;;;;;;;;;;;;;;;;;;;;;;18825:42;18817:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;18891:15;:26;18907:9;18891:26;;;;;;;;;;;;;;;;;;;;;;;;;18890:27;:38;;;;;18921:7;;;;;;;;;;;18890:38;18887:143;;;18998:9;;18962:32;18987:6;18962:9;:20;18972:9;18962:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;:45;;18954:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;18887:143;19059:4;;;;;;;;;;;19045:18;;:10;:18;;;;:39;;;;;19068:16;;;;;;;;;;;19067:17;19045:39;:64;;;;;19088:21;;;;;;;;;;;19045:64;:109;;;;;19141:13;;19113:9;:24;19131:4;19113:24;;;;;;;;;;;;;;;;:41;;19045:109;19042:128;;;19157:10;:8;:10::i;:::-;19042:128;19202:53;19224:6;19202:53;;;;;;;;;;;;;;;;;:9;:17;19212:6;19202:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;19182:9;:17;19192:6;19182:17;;;;;;;;;;;;;;;:73;;;;19276:19;19299:11;:19;19311:6;19299:19;;;;;;;;;;;;;;;;;;;;;;;;;19298:20;:47;;;;;19323:11;:22;19335:9;19323:22;;;;;;;;;;;;;;;;;;;;;;;;;19322:23;19298:47;:93;;19385:6;19298:93;;;19348:34;19356:6;19364:9;19375:6;19348:7;:34::i;:::-;19298:93;19276:115;;19425:37;19450:11;19425:9;:20;19435:9;19425:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;19402:9;:20;19412:9;19402:20;;;;;;;;;;;;;;;:60;;;;19508:16;:24;19525:6;19508:24;;;;;;;;;;;;;;;;;;;;;;;;;19504:114;;19553:6;;;;;;;;;;;:15;;;19569:6;19577:9;:17;19587:6;19577:17;;;;;;;;;;;;;;;;19553:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19549:58;19504:114;19634:16;:27;19651:9;19634:27;;;;;;;;;;;;;;;;;;;;;;;;;19630:124;;19682:6;;;;;;;;;;;:15;;;19698:9;19709;:20;19719:9;19709:20;;;;;;;;;;;;;;;;19682:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19678:64;19630:124;19788:9;19771:40;;19780:6;19771:40;;;19799:11;19771:40;;;;;;:::i;:::-;;;;;;;;19829:4;19822:11;;;18427:1414;;;;;;:::o;613:136::-;671:7;698:43;702:1;705;698:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;691:50;;613:136;;;;:::o;21391:931::-;12941:4;12922:16;;:23;;;;;;;;;;;;;;;;;;21449:20:::1;21472:9;:24;21490:4;21472:24;;;;;;;;;;;;;;;;21449:47;;21508:26;21537:45;21580:1;21537:38;21571:3;21537:29;21554:11;;21537:12;:16;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;:42;;:45;;;;:::i;:::-;21508:74;;21598:20;21621:36;21638:18;21621:12;:16;;:36;;;;:::i;:::-;21598:59;;21670:30;21687:12;21670:16;:30::i;:::-;21713:23;21739:21;21713:47;;21771:18;21792:43;21831:3;21792:34;21812:13;;21792:15;:19;;:34;;;;:::i;:::-;:38;;:43;;;;:::i;:::-;21771:64;;21846:26;21875:41;21912:3;21875:32;21895:11;;21875:15;:19;;:32;;;;:::i;:::-;:36;;:41;;;;:::i;:::-;21846:70;;21927:23;21953:48;21999:1;21953:41;21990:3;21953:32;21973:11;;21953:15;:19;;:32;;;;:::i;:::-;:36;;:41;;;;:::i;:::-;:45;;:48;;;;:::i;:::-;21927:74;;22042:1;22024:15;:19;22020:101;;;22067:12;;;;;;;;;;;22059:30;;:50;22090:18;22059:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22020:101;22145:6;;;;;;;;;;;:14;;;22167:10;22145:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;22141:51:::0;22237:1:::1;22216:18;:22;22212:103;;;22254:49;22267:18;22287:15;22254:12;:49::i;:::-;22212:103;21432:890;;;;;;;12987:5:::0;12968:16;;:24;;;;;;;;;;;;;;;;;;21391:931::o;16186:327::-;16291:4;16273:23;;:6;:23;;;;:41;;;;;16310:4;;;;;;;;;;;16300:14;;:6;:14;;;;16273:41;16265:50;;;;;;16353:6;16326:16;:24;16343:6;16326:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;16373:6;16370:136;;;16395:6;;;;;;;;;;;:15;;;16411:6;16419:1;16395:26;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16370:136;;;16452:6;;;;;;;;;;;:15;;;16468:6;16476:9;:17;16486:6;16476:17;;;;;;;;;;;;;;;;16452:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16370:136;16186:327;;:::o;1347:345::-;1433:7;1532:1;1528;:5;1535:12;1520:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1559:9;1575:1;1571;:5;;;;:::i;:::-;1559:17;;1683:1;1676:8;;;1347:345;;;;;:::o;19853:330::-;19946:4;19983:53;20005:6;19983:53;;;;;;;;;;;;;;;;;:9;:17;19993:6;19983:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;19963:9;:17;19973:6;19963:17;;;;;;;;;;;;;;;:73;;;;20070:32;20095:6;20070:9;:20;20080:9;20070:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;20047:9;:20;20057:9;20047:20;;;;;;;;;;;;;;;:55;;;;20135:9;20118:35;;20127:6;20118:35;;;20146:6;20118:35;;;;;;:::i;:::-;;;;;;;;20171:4;20164:11;;19853:330;;;;;:::o;426:181::-;484:7;504:9;520:1;516;:5;;;;:::i;:::-;504:17;;545:1;540;:6;;532:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;598:1;591:8;;;426:181;;;;:::o;20197:427::-;20283:7;20313:21;20345:9;20337:17;;:4;;;;;;;;;;;:17;;;:36;;20367:6;;20337:36;;;20357:7;;20337:36;20313:60;;20384:17;20404:34;20434:3;20404:25;20415:13;20404:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;20384:54;;20478:39;20507:9;20478;:24;20496:4;20478:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;20451:9;:24;20469:4;20451:24;;;;;;;;;;;;;;;:66;;;;20558:4;20533:42;;20542:6;20533:42;;;20565:9;20533:42;;;;;;:::i;:::-;;;;;;;;20595:21;20606:9;20595:6;:10;;:21;;;;:::i;:::-;20588:28;;;;20197:427;;;;;:::o;953:250::-;1011:7;1040:1;1035;:6;1031:47;;1065:1;1058:8;;;;1031:47;1090:9;1106:1;1102;:5;;;;:::i;:::-;1090:17;;1135:1;1130;1126;:5;;;;:::i;:::-;:10;1118:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1194:1;1187:8;;;953:250;;;;;:::o;20636:460::-;20704:21;20742:1;20728:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20704:40;;20773:4;20755;20760:1;20755:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;20799:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20789:4;20794:1;20789:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;20825:35;20841:4;20848:11;20825:7;:35::i;:::-;;20873:6;;;;;;;;;;;:57;;;20945:11;20971:1;21015:4;21042;21062:15;20873:215;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20691:405;20636:460;:::o;21104:279::-;21185:6;;;;;;;;;;;:22;;;21215:9;21248:4;21268:11;21294:1;21310;21326:8;;;;;;;;;;;21349:15;21185:190;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21104:279;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:75::-;475:6;508:2;502:9;492:19;;442:75;:::o;523:117::-;632:1;629;622:12;646:117;755:1;752;745:12;769:126;806:7;846:42;839:5;835:54;824:65;;769:126;;;:::o;901:104::-;946:7;975:24;993:5;975:24;:::i;:::-;964:35;;901:104;;;:::o;1011:138::-;1092:32;1118:5;1092:32;:::i;:::-;1085:5;1082:43;1072:71;;1139:1;1136;1129:12;1072:71;1011:138;:::o;1155:155::-;1209:5;1247:6;1234:20;1225:29;;1263:41;1298:5;1263:41;:::i;:::-;1155:155;;;;:::o;1316:345::-;1383:6;1432:2;1420:9;1411:7;1407:23;1403:32;1400:119;;;1438:79;;:::i;:::-;1400:119;1558:1;1583:61;1636:7;1627:6;1616:9;1612:22;1583:61;:::i;:::-;1573:71;;1529:125;1316:345;;;;:::o;1667:99::-;1719:6;1753:5;1747:12;1737:22;;1667:99;;;:::o;1772:169::-;1856:11;1890:6;1885:3;1878:19;1930:4;1925:3;1921:14;1906:29;;1772:169;;;;:::o;1947:307::-;2015:1;2025:113;2039:6;2036:1;2033:13;2025:113;;;2124:1;2119:3;2115:11;2109:18;2105:1;2100:3;2096:11;2089:39;2061:2;2058:1;2054:10;2049:15;;2025:113;;;2156:6;2153:1;2150:13;2147:101;;;2236:1;2227:6;2222:3;2218:16;2211:27;2147:101;1996:258;1947:307;;;:::o;2260:102::-;2301:6;2352:2;2348:7;2343:2;2336:5;2332:14;2328:28;2318:38;;2260:102;;;:::o;2368:364::-;2456:3;2484:39;2517:5;2484:39;:::i;:::-;2539:71;2603:6;2598:3;2539:71;:::i;:::-;2532:78;;2619:52;2664:6;2659:3;2652:4;2645:5;2641:16;2619:52;:::i;:::-;2696:29;2718:6;2696:29;:::i;:::-;2691:3;2687:39;2680:46;;2460:272;2368:364;;;;:::o;2738:313::-;2851:4;2889:2;2878:9;2874:18;2866:26;;2938:9;2932:4;2928:20;2924:1;2913:9;2909:17;2902:47;2966:78;3039:4;3030:6;2966:78;:::i;:::-;2958:86;;2738:313;;;;:::o;3057:96::-;3094:7;3123:24;3141:5;3123:24;:::i;:::-;3112:35;;3057:96;;;:::o;3159:118::-;3246:24;3264:5;3246:24;:::i;:::-;3241:3;3234:37;3159:118;;:::o;3283:222::-;3376:4;3414:2;3403:9;3399:18;3391:26;;3427:71;3495:1;3484:9;3480:17;3471:6;3427:71;:::i;:::-;3283:222;;;;:::o;3511:122::-;3584:24;3602:5;3584:24;:::i;:::-;3577:5;3574:35;3564:63;;3623:1;3620;3613:12;3564:63;3511:122;:::o;3639:139::-;3685:5;3723:6;3710:20;3701:29;;3739:33;3766:5;3739:33;:::i;:::-;3639:139;;;;:::o;3784:122::-;3857:24;3875:5;3857:24;:::i;:::-;3850:5;3847:35;3837:63;;3896:1;3893;3886:12;3837:63;3784:122;:::o;3912:139::-;3958:5;3996:6;3983:20;3974:29;;4012:33;4039:5;4012:33;:::i;:::-;3912:139;;;;:::o;4057:474::-;4125:6;4133;4182:2;4170:9;4161:7;4157:23;4153:32;4150:119;;;4188:79;;:::i;:::-;4150:119;4308:1;4333:53;4378:7;4369:6;4358:9;4354:22;4333:53;:::i;:::-;4323:63;;4279:117;4435:2;4461:53;4506:7;4497:6;4486:9;4482:22;4461:53;:::i;:::-;4451:63;;4406:118;4057:474;;;;;:::o;4537:90::-;4571:7;4614:5;4607:13;4600:21;4589:32;;4537:90;;;:::o;4633:109::-;4714:21;4729:5;4714:21;:::i;:::-;4709:3;4702:34;4633:109;;:::o;4748:210::-;4835:4;4873:2;4862:9;4858:18;4850:26;;4886:65;4948:1;4937:9;4933:17;4924:6;4886:65;:::i;:::-;4748:210;;;;:::o;4964:619::-;5041:6;5049;5057;5106:2;5094:9;5085:7;5081:23;5077:32;5074:119;;;5112:79;;:::i;:::-;5074:119;5232:1;5257:53;5302:7;5293:6;5282:9;5278:22;5257:53;:::i;:::-;5247:63;;5203:117;5359:2;5385:53;5430:7;5421:6;5410:9;5406:22;5385:53;:::i;:::-;5375:63;;5330:118;5487:2;5513:53;5558:7;5549:6;5538:9;5534:22;5513:53;:::i;:::-;5503:63;;5458:118;4964:619;;;;;:::o;5589:329::-;5648:6;5697:2;5685:9;5676:7;5672:23;5668:32;5665:119;;;5703:79;;:::i;:::-;5665:119;5823:1;5848:53;5893:7;5884:6;5873:9;5869:22;5848:53;:::i;:::-;5838:63;;5794:117;5589:329;;;;:::o;5924:474::-;5992:6;6000;6049:2;6037:9;6028:7;6024:23;6020:32;6017:119;;;6055:79;;:::i;:::-;6017:119;6175:1;6200:53;6245:7;6236:6;6225:9;6221:22;6200:53;:::i;:::-;6190:63;;6146:117;6302:2;6328:53;6373:7;6364:6;6353:9;6349:22;6328:53;:::i;:::-;6318:63;;6273:118;5924:474;;;;;:::o;6404:619::-;6481:6;6489;6497;6546:2;6534:9;6525:7;6521:23;6517:32;6514:119;;;6552:79;;:::i;:::-;6514:119;6672:1;6697:53;6742:7;6733:6;6722:9;6718:22;6697:53;:::i;:::-;6687:63;;6643:117;6799:2;6825:53;6870:7;6861:6;6850:9;6846:22;6825:53;:::i;:::-;6815:63;;6770:118;6927:2;6953:53;6998:7;6989:6;6978:9;6974:22;6953:53;:::i;:::-;6943:63;;6898:118;6404:619;;;;;:::o;7029:86::-;7064:7;7104:4;7097:5;7093:16;7082:27;;7029:86;;;:::o;7121:112::-;7204:22;7220:5;7204:22;:::i;:::-;7199:3;7192:35;7121:112;;:::o;7239:214::-;7328:4;7366:2;7355:9;7351:18;7343:26;;7379:67;7443:1;7432:9;7428:17;7419:6;7379:67;:::i;:::-;7239:214;;;;:::o;7459:329::-;7518:6;7567:2;7555:9;7546:7;7542:23;7538:32;7535:119;;;7573:79;;:::i;:::-;7535:119;7693:1;7718:53;7763:7;7754:6;7743:9;7739:22;7718:53;:::i;:::-;7708:63;;7664:117;7459:329;;;;:::o;7794:116::-;7864:21;7879:5;7864:21;:::i;:::-;7857:5;7854:32;7844:60;;7900:1;7897;7890:12;7844:60;7794:116;:::o;7916:133::-;7959:5;7997:6;7984:20;7975:29;;8013:30;8037:5;8013:30;:::i;:::-;7916:133;;;;:::o;8055:468::-;8120:6;8128;8177:2;8165:9;8156:7;8152:23;8148:32;8145:119;;;8183:79;;:::i;:::-;8145:119;8303:1;8328:50;8370:7;8361:6;8350:9;8346:22;8328:50;:::i;:::-;8318:60;;8274:114;8427:2;8453:53;8498:7;8489:6;8478:9;8474:22;8453:53;:::i;:::-;8443:63;;8398:118;8055:468;;;;;:::o;8529:60::-;8557:3;8578:5;8571:12;;8529:60;;;:::o;8595:142::-;8645:9;8678:53;8696:34;8705:24;8723:5;8705:24;:::i;:::-;8696:34;:::i;:::-;8678:53;:::i;:::-;8665:66;;8595:142;;;:::o;8743:134::-;8801:9;8834:37;8865:5;8834:37;:::i;:::-;8821:50;;8743:134;;;:::o;8883:164::-;8963:9;8996:45;9035:5;8996:45;:::i;:::-;8983:58;;8883:164;;;:::o;9053:191::-;9170:67;9231:5;9170:67;:::i;:::-;9165:3;9158:80;9053:191;;:::o;9250:282::-;9373:4;9411:2;9400:9;9396:18;9388:26;;9424:101;9522:1;9511:9;9507:17;9498:6;9424:101;:::i;:::-;9250:282;;;;:::o;9538:468::-;9603:6;9611;9660:2;9648:9;9639:7;9635:23;9631:32;9628:119;;;9666:79;;:::i;:::-;9628:119;9786:1;9811:53;9856:7;9847:6;9836:9;9832:22;9811:53;:::i;:::-;9801:63;;9757:117;9913:2;9939:50;9981:7;9972:6;9961:9;9957:22;9939:50;:::i;:::-;9929:60;;9884:115;9538:468;;;;;:::o;10012:117::-;10121:1;10118;10111:12;10135:180;10183:77;10180:1;10173:88;10280:4;10277:1;10270:15;10304:4;10301:1;10294:15;10321:281;10404:27;10426:4;10404:27;:::i;:::-;10396:6;10392:40;10534:6;10522:10;10519:22;10498:18;10486:10;10483:34;10480:62;10477:88;;;10545:18;;:::i;:::-;10477:88;10585:10;10581:2;10574:22;10364:238;10321:281;;:::o;10608:129::-;10642:6;10669:20;;:::i;:::-;10659:30;;10698:33;10726:4;10718:6;10698:33;:::i;:::-;10608:129;;;:::o;10743:311::-;10820:4;10910:18;10902:6;10899:30;10896:56;;;10932:18;;:::i;:::-;10896:56;10982:4;10974:6;10970:17;10962:25;;11042:4;11036;11032:15;11024:23;;10743:311;;;:::o;11060:117::-;11169:1;11166;11159:12;11200:710;11296:5;11321:81;11337:64;11394:6;11337:64;:::i;:::-;11321:81;:::i;:::-;11312:90;;11422:5;11451:6;11444:5;11437:21;11485:4;11478:5;11474:16;11467:23;;11538:4;11530:6;11526:17;11518:6;11514:30;11567:3;11559:6;11556:15;11553:122;;;11586:79;;:::i;:::-;11553:122;11701:6;11684:220;11718:6;11713:3;11710:15;11684:220;;;11793:3;11822:37;11855:3;11843:10;11822:37;:::i;:::-;11817:3;11810:50;11889:4;11884:3;11880:14;11873:21;;11760:144;11744:4;11739:3;11735:14;11728:21;;11684:220;;;11688:21;11302:608;;11200:710;;;;;:::o;11933:370::-;12004:5;12053:3;12046:4;12038:6;12034:17;12030:27;12020:122;;12061:79;;:::i;:::-;12020:122;12178:6;12165:20;12203:94;12293:3;12285:6;12278:4;12270:6;12266:17;12203:94;:::i;:::-;12194:103;;12010:293;11933:370;;;;:::o;12309:539::-;12393:6;12442:2;12430:9;12421:7;12417:23;12413:32;12410:119;;;12448:79;;:::i;:::-;12410:119;12596:1;12585:9;12581:17;12568:31;12626:18;12618:6;12615:30;12612:117;;;12648:79;;:::i;:::-;12612:117;12753:78;12823:7;12814:6;12803:9;12799:22;12753:78;:::i;:::-;12743:88;;12539:302;12309:539;;;;:::o;12854:474::-;12922:6;12930;12979:2;12967:9;12958:7;12954:23;12950:32;12947:119;;;12985:79;;:::i;:::-;12947:119;13105:1;13130:53;13175:7;13166:6;13155:9;13151:22;13130:53;:::i;:::-;13120:63;;13076:117;13232:2;13258:53;13303:7;13294:6;13283:9;13279:22;13258:53;:::i;:::-;13248:63;;13203:118;12854:474;;;;;:::o;13334:126::-;13384:9;13417:37;13448:5;13417:37;:::i;:::-;13404:50;;13334:126;;;:::o;13466:144::-;13534:9;13567:37;13598:5;13567:37;:::i;:::-;13554:50;;13466:144;;;:::o;13616:167::-;13721:55;13770:5;13721:55;:::i;:::-;13716:3;13709:68;13616:167;;:::o;13789:258::-;13900:4;13938:2;13927:9;13923:18;13915:26;;13951:89;14037:1;14026:9;14022:17;14013:6;13951:89;:::i;:::-;13789:258;;;;:::o;14053:182::-;14193:34;14189:1;14181:6;14177:14;14170:58;14053:182;:::o;14241:366::-;14383:3;14404:67;14468:2;14463:3;14404:67;:::i;:::-;14397:74;;14480:93;14569:3;14480:93;:::i;:::-;14598:2;14593:3;14589:12;14582:19;;14241:366;;;:::o;14613:419::-;14779:4;14817:2;14806:9;14802:18;14794:26;;14866:9;14860:4;14856:20;14852:1;14841:9;14837:17;14830:47;14894:131;15020:4;14894:131;:::i;:::-;14886:139;;14613:419;;;:::o;15038:332::-;15159:4;15197:2;15186:9;15182:18;15174:26;;15210:71;15278:1;15267:9;15263:17;15254:6;15210:71;:::i;:::-;15291:72;15359:2;15348:9;15344:18;15335:6;15291:72;:::i;:::-;15038:332;;;;;:::o;15376:158::-;15516:10;15512:1;15504:6;15500:14;15493:34;15376:158;:::o;15540:365::-;15682:3;15703:66;15767:1;15762:3;15703:66;:::i;:::-;15696:73;;15778:93;15867:3;15778:93;:::i;:::-;15896:2;15891:3;15887:12;15880:19;;15540:365;;;:::o;15911:419::-;16077:4;16115:2;16104:9;16100:18;16092:26;;16164:9;16158:4;16154:20;16150:1;16139:9;16135:17;16128:47;16192:131;16318:4;16192:131;:::i;:::-;16184:139;;15911:419;;;:::o;16336:143::-;16393:5;16424:6;16418:13;16409:22;;16440:33;16467:5;16440:33;:::i;:::-;16336:143;;;;:::o;16485:351::-;16555:6;16604:2;16592:9;16583:7;16579:23;16575:32;16572:119;;;16610:79;;:::i;:::-;16572:119;16730:1;16755:64;16811:7;16802:6;16791:9;16787:22;16755:64;:::i;:::-;16745:74;;16701:128;16485:351;;;;:::o;16842:180::-;16890:77;16887:1;16880:88;16987:4;16984:1;16977:15;17011:4;17008:1;17001:15;17028:180;17076:77;17073:1;17066:88;17173:4;17170:1;17163:15;17197:4;17194:1;17187:15;17214:233;17253:3;17276:24;17294:5;17276:24;:::i;:::-;17267:33;;17322:66;17315:5;17312:77;17309:103;;17392:18;;:::i;:::-;17309:103;17439:1;17432:5;17428:13;17421:20;;17214:233;;;:::o;17453:225::-;17593:34;17589:1;17581:6;17577:14;17570:58;17662:8;17657:2;17649:6;17645:15;17638:33;17453:225;:::o;17684:366::-;17826:3;17847:67;17911:2;17906:3;17847:67;:::i;:::-;17840:74;;17923:93;18012:3;17923:93;:::i;:::-;18041:2;18036:3;18032:12;18025:19;;17684:366;;;:::o;18056:419::-;18222:4;18260:2;18249:9;18245:18;18237:26;;18309:9;18303:4;18299:20;18295:1;18284:9;18280:17;18273:47;18337:131;18463:4;18337:131;:::i;:::-;18329:139;;18056:419;;;:::o;18481:191::-;18521:4;18541:20;18559:1;18541:20;:::i;:::-;18536:25;;18575:20;18593:1;18575:20;:::i;:::-;18570:25;;18614:1;18611;18608:8;18605:34;;;18619:18;;:::i;:::-;18605:34;18664:1;18661;18657:9;18649:17;;18481:191;;;;:::o;18678:173::-;18818:25;18814:1;18806:6;18802:14;18795:49;18678:173;:::o;18857:366::-;18999:3;19020:67;19084:2;19079:3;19020:67;:::i;:::-;19013:74;;19096:93;19185:3;19096:93;:::i;:::-;19214:2;19209:3;19205:12;19198:19;;18857:366;;;:::o;19229:419::-;19395:4;19433:2;19422:9;19418:18;19410:26;;19482:9;19476:4;19472:20;19468:1;19457:9;19453:17;19446:47;19510:131;19636:4;19510:131;:::i;:::-;19502:139;;19229:419;;;:::o;19654:152::-;19794:4;19790:1;19782:6;19778:14;19771:28;19654:152;:::o;19812:365::-;19954:3;19975:66;20039:1;20034:3;19975:66;:::i;:::-;19968:73;;20050:93;20139:3;20050:93;:::i;:::-;20168:2;20163:3;20159:12;20152:19;;19812:365;;;:::o;20183:419::-;20349:4;20387:2;20376:9;20372:18;20364:26;;20436:9;20430:4;20426:20;20422:1;20411:9;20407:17;20400:47;20464:131;20590:4;20464:131;:::i;:::-;20456:139;;20183:419;;;:::o;20608:156::-;20748:8;20744:1;20736:6;20732:14;20725:32;20608:156;:::o;20770:365::-;20912:3;20933:66;20997:1;20992:3;20933:66;:::i;:::-;20926:73;;21008:93;21097:3;21008:93;:::i;:::-;21126:2;21121:3;21117:12;21110:19;;20770:365;;;:::o;21141:419::-;21307:4;21345:2;21334:9;21330:18;21322:26;;21394:9;21388:4;21384:20;21380:1;21369:9;21365:17;21358:47;21422:131;21548:4;21422:131;:::i;:::-;21414:139;;21141:419;;;:::o;21566:332::-;21687:4;21725:2;21714:9;21710:18;21702:26;;21738:71;21806:1;21795:9;21791:17;21782:6;21738:71;:::i;:::-;21819:72;21887:2;21876:9;21872:18;21863:6;21819:72;:::i;:::-;21566:332;;;;;:::o;21904:85::-;21949:7;21978:5;21967:16;;21904:85;;;:::o;21995:158::-;22053:9;22086:61;22104:42;22113:32;22139:5;22113:32;:::i;:::-;22104:42;:::i;:::-;22086:61;:::i;:::-;22073:74;;21995:158;;;:::o;22159:147::-;22254:45;22293:5;22254:45;:::i;:::-;22249:3;22242:58;22159:147;;:::o;22312:348::-;22441:4;22479:2;22468:9;22464:18;22456:26;;22492:71;22560:1;22549:9;22545:17;22536:6;22492:71;:::i;:::-;22573:80;22649:2;22638:9;22634:18;22625:6;22573:80;:::i;:::-;22312:348;;;;;:::o;22666:180::-;22714:77;22711:1;22704:88;22811:4;22808:1;22801:15;22835:4;22832:1;22825:15;22852:185;22892:1;22909:20;22927:1;22909:20;:::i;:::-;22904:25;;22943:20;22961:1;22943:20;:::i;:::-;22938:25;;22982:1;22972:35;;22987:18;;:::i;:::-;22972:35;23029:1;23026;23022:9;23017:14;;22852:185;;;;:::o;23043:305::-;23083:3;23102:20;23120:1;23102:20;:::i;:::-;23097:25;;23136:20;23154:1;23136:20;:::i;:::-;23131:25;;23290:1;23222:66;23218:74;23215:1;23212:81;23209:107;;;23296:18;;:::i;:::-;23209:107;23340:1;23337;23333:9;23326:16;;23043:305;;;;:::o;23354:177::-;23494:29;23490:1;23482:6;23478:14;23471:53;23354:177;:::o;23537:366::-;23679:3;23700:67;23764:2;23759:3;23700:67;:::i;:::-;23693:74;;23776:93;23865:3;23776:93;:::i;:::-;23894:2;23889:3;23885:12;23878:19;;23537:366;;;:::o;23909:419::-;24075:4;24113:2;24102:9;24098:18;24090:26;;24162:9;24156:4;24152:20;24148:1;24137:9;24133:17;24126:47;24190:131;24316:4;24190:131;:::i;:::-;24182:139;;23909:419;;;:::o;24334:348::-;24374:7;24397:20;24415:1;24397:20;:::i;:::-;24392:25;;24431:20;24449:1;24431:20;:::i;:::-;24426:25;;24619:1;24551:66;24547:74;24544:1;24541:81;24536:1;24529:9;24522:17;24518:105;24515:131;;;24626:18;;:::i;:::-;24515:131;24674:1;24671;24667:9;24656:20;;24334:348;;;;:::o;24688:220::-;24828:34;24824:1;24816:6;24812:14;24805:58;24897:3;24892:2;24884:6;24880:15;24873:28;24688:220;:::o;24914:366::-;25056:3;25077:67;25141:2;25136:3;25077:67;:::i;:::-;25070:74;;25153:93;25242:3;25153:93;:::i;:::-;25271:2;25266:3;25262:12;25255:19;;24914:366;;;:::o;25286:419::-;25452:4;25490:2;25479:9;25475:18;25467:26;;25539:9;25533:4;25529:20;25525:1;25514:9;25510:17;25503:47;25567:131;25693:4;25567:131;:::i;:::-;25559:139;;25286:419;;;:::o;25711:143::-;25768:5;25799:6;25793:13;25784:22;;25815:33;25842:5;25815:33;:::i;:::-;25711:143;;;;:::o;25860:351::-;25930:6;25979:2;25967:9;25958:7;25954:23;25950:32;25947:119;;;25985:79;;:::i;:::-;25947:119;26105:1;26130:64;26186:7;26177:6;26166:9;26162:22;26130:64;:::i;:::-;26120:74;;26076:128;25860:351;;;;:::o;26217:114::-;26284:6;26318:5;26312:12;26302:22;;26217:114;;;:::o;26337:184::-;26436:11;26470:6;26465:3;26458:19;26510:4;26505:3;26501:14;26486:29;;26337:184;;;;:::o;26527:132::-;26594:4;26617:3;26609:11;;26647:4;26642:3;26638:14;26630:22;;26527:132;;;:::o;26665:108::-;26742:24;26760:5;26742:24;:::i;:::-;26737:3;26730:37;26665:108;;:::o;26779:179::-;26848:10;26869:46;26911:3;26903:6;26869:46;:::i;:::-;26947:4;26942:3;26938:14;26924:28;;26779:179;;;;:::o;26964:113::-;27034:4;27066;27061:3;27057:14;27049:22;;26964:113;;;:::o;27113:732::-;27232:3;27261:54;27309:5;27261:54;:::i;:::-;27331:86;27410:6;27405:3;27331:86;:::i;:::-;27324:93;;27441:56;27491:5;27441:56;:::i;:::-;27520:7;27551:1;27536:284;27561:6;27558:1;27555:13;27536:284;;;27637:6;27631:13;27664:63;27723:3;27708:13;27664:63;:::i;:::-;27657:70;;27750:60;27803:6;27750:60;:::i;:::-;27740:70;;27596:224;27583:1;27580;27576:9;27571:14;;27536:284;;;27540:14;27836:3;27829:10;;27237:608;;;27113:732;;;;:::o;27851:831::-;28114:4;28152:3;28141:9;28137:19;28129:27;;28166:71;28234:1;28223:9;28219:17;28210:6;28166:71;:::i;:::-;28247:80;28323:2;28312:9;28308:18;28299:6;28247:80;:::i;:::-;28374:9;28368:4;28364:20;28359:2;28348:9;28344:18;28337:48;28402:108;28505:4;28496:6;28402:108;:::i;:::-;28394:116;;28520:72;28588:2;28577:9;28573:18;28564:6;28520:72;:::i;:::-;28602:73;28670:3;28659:9;28655:19;28646:6;28602:73;:::i;:::-;27851:831;;;;;;;;:::o;28688:807::-;28937:4;28975:3;28964:9;28960:19;28952:27;;28989:71;29057:1;29046:9;29042:17;29033:6;28989:71;:::i;:::-;29070:72;29138:2;29127:9;29123:18;29114:6;29070:72;:::i;:::-;29152:80;29228:2;29217:9;29213:18;29204:6;29152:80;:::i;:::-;29242;29318:2;29307:9;29303:18;29294:6;29242:80;:::i;:::-;29332:73;29400:3;29389:9;29385:19;29376:6;29332:73;:::i;:::-;29415;29483:3;29472:9;29468:19;29459:6;29415:73;:::i;:::-;28688:807;;;;;;;;;:::o;29501:663::-;29589:6;29597;29605;29654:2;29642:9;29633:7;29629:23;29625:32;29622:119;;;29660:79;;:::i;:::-;29622:119;29780:1;29805:64;29861:7;29852:6;29841:9;29837:22;29805:64;:::i;:::-;29795:74;;29751:128;29918:2;29944:64;30000:7;29991:6;29980:9;29976:22;29944:64;:::i;:::-;29934:74;;29889:129;30057:2;30083:64;30139:7;30130:6;30119:9;30115:22;30083:64;:::i;:::-;30073:74;;30028:129;29501:663;;;;;:::o
Swarm Source
ipfs://6a5a17d679b72f8550f2c33a86c766a4732e32bc92cd6f9648d762a0fec7703d
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.