Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000 SG$
Holders
40
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
SantaGiftsToken
Compiler Version
v0.8.10+commit.fc410830
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-12-22 */ /** ███████ █████ ███ ██ ████████ █████ ██ ██ ██ ████ ██ ██ ██ ██ ███████ ███████ ██ ██ ██ ██ ███████ ██ ██ ██ ██ ██ ██ ██ ██ ██ ███████ ██ ██ ██ ████ ██ ██ ██ ██████ ██ ███████ ████████ ███████ ██ ██ ██ ██ ██ ██ ███ ██ █████ ██ ███████ ██ ██ ██ ██ ██ ██ ██████ ██ ██ ██ ███████ */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.10; library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } 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 addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } interface IERC20Extended { 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 recipient, address indexed to, uint256 value ); event Approval( address indexed owner, address indexed spender, uint256 value ); } abstract contract Ownable { address internal owner; event OwnershipTransferred(address owner); constructor(address _owner) { owner = _owner; } modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } function isOwner(address account) public view returns (bool) { return account == owner; } function transferOwnership(address payable adr) public onlyOwner { owner = adr; emit OwnershipTransferred(adr); } } // main contract contract SantaGiftsToken is IERC20Extended, Ownable { using SafeMath for uint256; string private constant _name = "Santa Gifts"; string private constant _symbol = "SG$"; uint8 private constant _decimals = 9; uint256 private constant _totalSupply = 100_000_000 * 10**_decimals; address private constant DEAD = address(0xdead); address private constant ZERO = address(0); address public giftToken = address(0xdAC17F958D2ee523a2206206994597C13D831ec7); IDexRouter public router; address public pair; address public autoLiquidityReceiver; address public marketingFeeReceiver; address public giftsFeeReceiver; uint256 _liquidityBuyFee = 1; uint256 _marketingBuyFee = 2; uint256 _giftsBuyFee = 1; uint256 _surpriseBuyFee = 1; uint256 _liquiditySellFee = 5; uint256 _marketingSellFee = 5; uint256 _giftsSellFee = 3; uint256 _surpriseSellFee = 2; uint256 _liquidityFeeCount; uint256 _marketingFeeCount; uint256 _giftsFeeCount; uint256 _surpriseFeeCount; uint256 public totalBuyFee = 5; uint256 public totalSellFee = 15; uint256 public feeDenominator = 100; uint256 public maxTxnAmount = (_totalSupply * 5) / 1000; uint256 public maxWalletAmount = (_totalSupply * 15) / 1000; uint256 public launchedAt; uint256 public snipingTime = 40 seconds; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) public isFeeExempt; mapping(address => bool) public isLimitExmpt; mapping(address => bool) public isWalletExmpt; mapping(address => bool) public isBot; address[] public buyers; bool public surpriseEnable; bool public swapEnabled; uint256 public swapThreshold = _totalSupply / 1_000; bool public trading; // once enable can't be disable afterwards bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } event AutoLiquify(uint256 amountBNB, uint256 amountBOG); constructor() Ownable(msg.sender) { address router_ = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // uniswap v2 autoLiquidityReceiver = msg.sender; marketingFeeReceiver = address( 0xADF0a294D555D08CC33b5d884AbD5F5F2a0Df81c ); giftsFeeReceiver = address(0xDbaa53EDD1196e1Dc1d800E5D154824e853807A8); router = IDexRouter(router_); pair = IDexFactory(router.factory()).createPair( address(this), router.WETH() ); isFeeExempt[msg.sender] = true; isFeeExempt[marketingFeeReceiver] = true; isFeeExempt[giftsFeeReceiver] = true; isLimitExmpt[msg.sender] = true; isLimitExmpt[address(this)] = true; isWalletExmpt[msg.sender] = true; isWalletExmpt[router_] = true; isWalletExmpt[pair] = true; isWalletExmpt[address(this)] = true; isWalletExmpt[ZERO] = true; isWalletExmpt[DEAD] = true; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable {} function totalSupply() external pure 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, _totalSupply); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferrecipient(msg.sender, recipient, amount); } function transferFrom( address sender, address recipient, uint256 amount ) external override returns (bool) { if (_allowances[sender][msg.sender] != _totalSupply) { _allowances[sender][msg.sender] = _allowances[sender][msg.sender] .sub(amount, "Insufficient Allowance"); } return _transferrecipient(sender, recipient, amount); } function _transferrecipient( address sender, address recipient, uint256 amount ) internal returns (bool) { require(!isBot[sender], "Bot detected"); if (!isLimitExmpt[sender] && !isLimitExmpt[recipient]) { require(amount <= maxTxnAmount, "Max limit exceeds"); if (!trading) { require( pair != sender && pair != recipient, " trading is disable" ); } } if (!isWalletExmpt[recipient]) { require( balanceOf(recipient).add(amount) < maxWalletAmount, "Max Wallet limit exceeds" ); } if (inSwap) { return _basicTransfer(sender, recipient, amount); } if (shouldSwapBack()) { swapBack(); } if ( block.timestamp < launchedAt + snipingTime && recipient != address(router) ) { if (pair == sender) { isBot[recipient] = true; } else if (pair == recipient) { isBot[sender] = true; } } _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); uint256 amountReceived; if ( isFeeExempt[sender] || isFeeExempt[recipient] || (sender != pair && recipient != pair) ) { amountReceived = amount; } else { uint256 feeAmount; if (sender == pair) { feeAmount = amount.mul(totalBuyFee).div(feeDenominator); amountReceived = amount.sub(feeAmount); takeFee(sender, feeAmount); setBuyAccFee(amount); buyers.push(recipient); } else { feeAmount = amount.mul(totalSellFee).div(feeDenominator); amountReceived = amount.sub(feeAmount); takeFee(sender, feeAmount); setSellAccFee(amount); if (!isLimitExmpt[sender] && surpriseEnable) { buyersReward(); } } } _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); 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, uint256 feeAmount) internal { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } function setBuyAccFee(uint256 _amount) internal { _liquidityFeeCount += _amount.mul(_liquidityBuyFee).div(feeDenominator); _marketingFeeCount += _amount.mul(_marketingBuyFee).div(feeDenominator); _giftsFeeCount += _amount.mul(_giftsBuyFee).div(feeDenominator); _surpriseFeeCount += _amount.mul(_surpriseBuyFee).div(feeDenominator); } function setSellAccFee(uint256 _amount) internal { _liquidityFeeCount += _amount.mul(_liquiditySellFee).div( feeDenominator ); _marketingFeeCount += _amount.mul(_marketingSellFee).div( feeDenominator ); _giftsFeeCount += _amount.mul(_giftsSellFee).div(feeDenominator); _surpriseFeeCount += _amount.mul(_surpriseSellFee).div(feeDenominator); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function swapBack() internal swapping { uint256 totalFee = _liquidityFeeCount.add(_marketingFeeCount).add( _giftsFeeCount ); uint256 amountToLiquify = swapThreshold .mul(_liquidityFeeCount) .div(totalFee) .div(2); uint256 amountToSwap = swapThreshold.sub(amountToLiquify); _allowances[address(this)][address(router)] = _totalSupply; address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountBNB = address(this).balance.sub(balanceBefore); uint256 totalBNBFee = totalFee.sub(_liquidityFeeCount.div(2)); uint256 amountBNBLiquidity = amountBNB .mul(_liquidityFeeCount) .div(totalBNBFee) .div(2); if (amountToLiquify > 0) { router.addLiquidityETH{value: amountBNBLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountBNBLiquidity, amountToLiquify); } uint256 amountBNBgifts = amountBNB.mul(_giftsFeeCount).div(totalBNBFee); if (amountBNBgifts > 0) { address[] memory path1 = new address[](2); path1[0] = router.WETH(); path1[1] = address(giftToken); router.swapExactETHForTokensSupportingFeeOnTransferTokens{ value: amountBNBgifts }(0, path1, giftsFeeReceiver, block.timestamp); } uint256 amountBNBMarketing = amountBNB.mul(_marketingFeeCount).div( totalBNBFee ); if (amountBNBMarketing > 0) { payable(marketingFeeReceiver).transfer(amountBNBMarketing); } _liquidityFeeCount = 0; _marketingFeeCount = 0; _giftsFeeCount = 0; } function buyersReward() internal swapping { uint256 amountToSwap = _surpriseFeeCount; _allowances[address(this)][address(router)] = _totalSupply; address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountBNB = address(this).balance.sub(balanceBefore); uint256 rewardForEach; if (buyers.length < 5) { rewardForEach = amountBNB / buyers.length; for (uint256 i; i < buyers.length; i++) { payable(buyers[i]).transfer(rewardForEach); } } else { rewardForEach = amountBNB / 5; for (uint256 i = buyers.length - 1; i >= buyers.length - 5; i--) { payable(buyers[i]).transfer(rewardForEach); } } _surpriseFeeCount = 0; } function setIsFeeExempt(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; } function setIsLimitExempt(address holder, bool exempt) external onlyOwner { isLimitExmpt[holder] = exempt; } function setIsWalletExempt(address holder, bool exempt) external onlyOwner { isWalletExmpt[holder] = exempt; } function removeStuckFunds() external onlyOwner { payable(owner).transfer(address(this).balance); } function setMaxTxnAmount(uint256 _amount) external onlyOwner { maxTxnAmount = _amount; } function setMaxWalletAmount(uint256 _amount) external onlyOwner { maxWalletAmount = _amount; } function enableTrading() external onlyOwner { require(!trading, "already enabled"); trading = true; swapEnabled = true; surpriseEnable = true; launchedAt = block.timestamp; } function setSurpriseEnable(bool _value) external onlyOwner { surpriseEnable = _value; } function setBuyFees( uint256 _liquidityFee, uint256 _marketingFee, uint256 _giftsFee, uint256 _surpriseFee, uint256 _feeDenominator ) public onlyOwner { _liquidityBuyFee = _liquidityFee; _marketingBuyFee = _marketingFee; _surpriseBuyFee = _giftsFee; _giftsBuyFee = _surpriseFee; totalBuyFee = _liquidityFee.add(_marketingFee).add(_giftsFee).add( _surpriseFee ); feeDenominator = _feeDenominator; } function setSellFees( uint256 _liquidityFee, uint256 _marketingFee, uint256 _giftsFee, uint256 _surpriseFee, uint256 _feeDenominator ) public onlyOwner { _liquiditySellFee = _liquidityFee; _marketingSellFee = _marketingFee; _giftsSellFee = _giftsFee; _surpriseSellFee = _surpriseFee; totalSellFee = _liquidityFee.add(_marketingFee).add(_giftsFee).add( _surpriseFee ); feeDenominator = _feeDenominator; } function setFeeReceivers( address _autoLiquidityReceiver, address _marketingFeeReceiver, address _giftsFeeReceiver ) external onlyOwner { autoLiquidityReceiver = _autoLiquidityReceiver; marketingFeeReceiver = _marketingFeeReceiver; giftsFeeReceiver = _giftsFeeReceiver; } function setGiftToken(address _giftToken) external onlyOwner { giftToken = _giftToken; } function addOrRemoveBots(address[] memory accounts, bool value) external onlyOwner { for (uint256 i; i < accounts.length; i++) { require( accounts[i] != address(router) && pair != accounts[i], "cannot blacklist Dex" ); isBot[accounts[i]] = value; } } function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner { swapEnabled = _enabled; swapThreshold = _amount; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"addOrRemoveBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"buyers","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"giftToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"giftsFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","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":"isLimitExmpt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletExmpt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxnAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeStuckFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_giftsFee","type":"uint256"},{"internalType":"uint256","name":"_surpriseFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_giftsFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_giftToken","type":"address"}],"name":"setGiftToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsWalletExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_giftsFee","type":"uint256"},{"internalType":"uint256","name":"_surpriseFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"setSurpriseEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snipingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"surpriseEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","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":"totalBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"trading","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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405273dac17f958d2ee523a2206206994597c13d831ec7600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600755600260085560016009556001600a556005600b556005600c556003600d556002600e556005601355600f60145560646015556103e860056009600a620000a5919062000b85565b6305f5e100620000b6919062000bd6565b620000c2919062000bd6565b620000ce919062000c66565b6016556103e8600f6009600a620000e6919062000b85565b6305f5e100620000f7919062000bd6565b62000103919062000bd6565b6200010f919062000c66565b60175560286019556103e86009600a6200012a919062000b85565b6305f5e1006200013b919062000bd6565b62000147919062000c66565b6022553480156200015757600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000737a250d5630b4cf539739df2c5dacb4c659f2488d905033600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073adf0a294d555d08cc33b5d884abd5f5f2a0df81c600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073dbaa53edd1196e1dc1d800e5d154824e853807a8600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200034d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000373919062000d08565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000423919062000d08565b6040518363ffffffff1660e01b81526004016200044292919062000d4b565b6020604051808303816000875af115801562000462573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000488919062000d08565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601c6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601c6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601e6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601e60008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601e600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506009600a62000908919062000b85565b6305f5e10062000919919062000bd6565b601a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620009bc919062000b85565b6305f5e100620009cd919062000bd6565b604051620009dc919062000d89565b60405180910390a35062000da6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000a795780860481111562000a515762000a50620009eb565b5b600185161562000a615780820291505b808102905062000a718562000a1a565b945062000a31565b94509492505050565b60008262000a94576001905062000b67565b8162000aa4576000905062000b67565b816001811462000abd576002811462000ac85762000afe565b600191505062000b67565b60ff84111562000add5762000adc620009eb565b5b8360020a91508482111562000af75762000af6620009eb565b5b5062000b67565b5060208310610133831016604e8410600b841016171562000b385782820a90508381111562000b325762000b31620009eb565b5b62000b67565b62000b47848484600162000a27565b9250905081840481111562000b615762000b60620009eb565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000b928262000b6e565b915062000b9f8362000b78565b925062000bce7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a82565b905092915050565b600062000be38262000b6e565b915062000bf08362000b6e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c2c5762000c2b620009eb565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000c738262000b6e565b915062000c808362000b6e565b92508262000c935762000c9262000c37565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000cd08262000ca3565b9050919050565b62000ce28162000cc3565b811462000cee57600080fd5b50565b60008151905062000d028162000cd7565b92915050565b60006020828403121562000d215762000d2062000c9e565b5b600062000d318482850162000cf1565b91505092915050565b62000d458162000cc3565b82525050565b600060408201905062000d62600083018562000d3a565b62000d71602083018462000d3a565b9392505050565b62000d838162000b6e565b82525050565b600060208201905062000da0600083018462000d78565b92915050565b614c6a8062000db66000396000f3fe6080604052600436106102975760003560e01c806382db44881161015a578063d7c01032116100c1578063ebfef14d1161007a578063ebfef14d14610a4d578063ec44acf214610a64578063f2aa821814610a8f578063f2fde38b14610acc578063f887ea4014610af5578063fc899bdc14610b205761029e565b8063d7c010321461093f578063d91f852e14610968578063d962cf5814610993578063dd62ed3e146109bc578063df20fd49146109f9578063e96fada214610a225761029e565b8063a9059cbb11610113578063a9059cbb1461082d578063aa4bde281461086a578063bf56b37114610895578063c1cf53c4146108c0578063ca33e64c146108e9578063cf46f24c146109145761029e565b806382db44881461072f57806386cb8fb1146107585780638a8c523c1461079557806395d89b41146107ac5780639d9241ec146107d7578063a8aa1b31146108025761029e565b80633f4218e0116101fe578063658d4b7f116101b7578063658d4b7f1461061f5780636ddd17131461064857806370a082311461067357806374010ece146106b057806375cd44f5146106d95780637d99c66d146107045761029e565b80633f4218e0146104eb57806347a28b79146105285780634b52f89b14610551578063540b8a271461057a578063571ac8b0146105b757806359b107b9146105f45761029e565b80632091f955116102505780632091f955146103b557806323b872dd146103e057806327a14fc21461041d5780632f54bf6e14610446578063313ce567146104835780633bbac579146104ae5761029e565b80630445b667146102a357806306fdde03146102ce578063095ea7b3146102f957806310a60f0214610336578063180b0d7e1461035f57806318160ddd1461038a5761029e565b3661029e57005b600080fd5b3480156102af57600080fd5b506102b8610b49565b6040516102c59190613b36565b60405180910390f35b3480156102da57600080fd5b506102e3610b4f565b6040516102f09190613bea565b60405180910390f35b34801561030557600080fd5b50610320600480360381019061031b9190613caa565b610b8c565b60405161032d9190613d05565b60405180910390f35b34801561034257600080fd5b5061035d60048036038101906103589190613e94565b610c7e565b005b34801561036b57600080fd5b50610374610e7a565b6040516103819190613b36565b60405180910390f35b34801561039657600080fd5b5061039f610e80565b6040516103ac9190613b36565b60405180910390f35b3480156103c157600080fd5b506103ca610ea4565b6040516103d79190613eff565b60405180910390f35b3480156103ec57600080fd5b5061040760048036038101906104029190613f1a565b610eca565b6040516104149190613d05565b60405180910390f35b34801561042957600080fd5b50610444600480360381019061043f9190613f6d565b6110c6565b005b34801561045257600080fd5b5061046d60048036038101906104689190613f9a565b611118565b60405161047a9190613d05565b60405180910390f35b34801561048f57600080fd5b50610498611171565b6040516104a59190613fe3565b60405180910390f35b3480156104ba57600080fd5b506104d560048036038101906104d09190613f9a565b61117a565b6040516104e29190613d05565b60405180910390f35b3480156104f757600080fd5b50610512600480360381019061050d9190613f9a565b61119a565b60405161051f9190613d05565b60405180910390f35b34801561053457600080fd5b5061054f600480360381019061054a9190613ffe565b6111ba565b005b34801561055d57600080fd5b5061057860048036038101906105739190613f9a565b611269565b005b34801561058657600080fd5b506105a1600480360381019061059c9190613f9a565b6112f5565b6040516105ae9190613d05565b60405180910390f35b3480156105c357600080fd5b506105de60048036038101906105d99190613f9a565b611315565b6040516105eb9190613d05565b60405180910390f35b34801561060057600080fd5b50610609611344565b6040516106169190613b36565b60405180910390f35b34801561062b57600080fd5b5061064660048036038101906106419190614079565b61134a565b005b34801561065457600080fd5b5061065d6113ed565b60405161066a9190613d05565b60405180910390f35b34801561067f57600080fd5b5061069a60048036038101906106959190613f9a565b611400565b6040516106a79190613b36565b60405180910390f35b3480156106bc57600080fd5b506106d760048036038101906106d29190613f6d565b611449565b005b3480156106e557600080fd5b506106ee61149b565b6040516106fb9190613eff565b60405180910390f35b34801561071057600080fd5b506107196114c1565b6040516107269190613b36565b60405180910390f35b34801561073b57600080fd5b50610756600480360381019061075191906140b9565b6114c7565b005b34801561076457600080fd5b5061077f600480360381019061077a9190613f9a565b61152c565b60405161078c9190613d05565b60405180910390f35b3480156107a157600080fd5b506107aa61154c565b005b3480156107b857600080fd5b506107c161163e565b6040516107ce9190613bea565b60405180910390f35b3480156107e357600080fd5b506107ec61167b565b6040516107f99190613b36565b60405180910390f35b34801561080e57600080fd5b50610817611681565b6040516108249190613eff565b60405180910390f35b34801561083957600080fd5b50610854600480360381019061084f9190613caa565b6116a7565b6040516108619190613d05565b60405180910390f35b34801561087657600080fd5b5061087f6116bc565b60405161088c9190613b36565b60405180910390f35b3480156108a157600080fd5b506108aa6116c2565b6040516108b79190613b36565b60405180910390f35b3480156108cc57600080fd5b506108e760048036038101906108e29190613ffe565b6116c8565b005b3480156108f557600080fd5b506108fe611777565b60405161090b9190613eff565b60405180910390f35b34801561092057600080fd5b5061092961179d565b6040516109369190613b36565b60405180910390f35b34801561094b57600080fd5b50610966600480360381019061096191906140e6565b6117a3565b005b34801561097457600080fd5b5061097d6118b3565b60405161098a9190613d05565b60405180910390f35b34801561099f57600080fd5b506109ba60048036038101906109b59190614079565b6118c6565b005b3480156109c857600080fd5b506109e360048036038101906109de9190614139565b611969565b6040516109f09190613b36565b60405180910390f35b348015610a0557600080fd5b50610a206004803603810190610a1b9190614179565b6119f0565b005b348015610a2e57600080fd5b50610a37611a5d565b604051610a449190613eff565b60405180910390f35b348015610a5957600080fd5b50610a62611a83565b005b348015610a7057600080fd5b50610a79611b34565b604051610a869190613d05565b60405180910390f35b348015610a9b57600080fd5b50610ab66004803603810190610ab19190613f6d565b611b47565b604051610ac39190613eff565b60405180910390f35b348015610ad857600080fd5b50610af36004803603810190610aee91906141f7565b611b86565b005b348015610b0157600080fd5b50610b0a611c48565b604051610b179190614283565b60405180910390f35b348015610b2c57600080fd5b50610b476004803603810190610b429190614079565b611c6e565b005b60225481565b60606040518060400160405280600b81526020017f53616e7461204769667473000000000000000000000000000000000000000000815250905090565b600081601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c6c9190613b36565b60405180910390a36001905092915050565b610c8733611118565b610cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbd906142ea565b60405180910390fd5b60005b8251811015610e7557600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16838281518110610d1e57610d1d61430a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614158015610db25750828181518110610d5857610d5761430a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b610df1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de890614385565b60405180910390fd5b81601f6000858481518110610e0957610e0861430a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e6d906143d4565b915050610cc9565b505050565b60155481565b60006009600a610e909190614550565b6305f5e100610e9f919061459b565b905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009600a610eda9190614550565b6305f5e100610ee9919061459b565b601b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146110b257611031826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250601b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d119092919063ffffffff16565b601b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6110bd848484611d66565b90509392505050565b6110cf33611118565b61110e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611105906142ea565b60405180910390fd5b8060178190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b601f6020528060005260406000206000915054906101000a900460ff1681565b601c6020528060005260406000206000915054906101000a900460ff1681565b6111c333611118565b611202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f9906142ea565b60405180910390fd5b846007819055508360088190555082600a81905550816009819055506112558261124785611239888a6127b990919063ffffffff16565b6127b990919063ffffffff16565b6127b990919063ffffffff16565b601381905550806015819055505050505050565b61127233611118565b6112b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a8906142ea565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601d6020528060005260406000206000915054906101000a900460ff1681565b600061133d826009600a6113299190614550565b6305f5e100611338919061459b565b610b8c565b9050919050565b60135481565b61135333611118565b611392576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611389906142ea565b60405180910390fd5b80601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602160019054906101000a900460ff1681565b6000601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61145233611118565b611491576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611488906142ea565b60405180910390fd5b8060168190555050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b6114d033611118565b61150f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611506906142ea565b60405180910390fd5b80602160006101000a81548160ff02191690831515021790555050565b601e6020528060005260406000206000915054906101000a900460ff1681565b61155533611118565b611594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158b906142ea565b60405180910390fd5b602360009054906101000a900460ff16156115e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115db90614641565b60405180910390fd5b6001602360006101000a81548160ff0219169083151502179055506001602160016101000a81548160ff0219169083151502179055506001602160006101000a81548160ff02191690831515021790555042601881905550565b60606040518060400160405280600381526020017f5347240000000000000000000000000000000000000000000000000000000000815250905090565b60145481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006116b4338484611d66565b905092915050565b60175481565b60185481565b6116d133611118565b611710576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611707906142ea565b60405180910390fd5b84600b8190555083600c8190555082600d8190555081600e819055506117638261175585611747888a6127b990919063ffffffff16565b6127b990919063ffffffff16565b6127b990919063ffffffff16565b601481905550806015819055505050505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60165481565b6117ac33611118565b6117eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e2906142ea565b60405180910390fd5b82600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b602160009054906101000a900460ff1681565b6118cf33611118565b61190e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611905906142ea565b60405180910390fd5b80601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6119f933611118565b611a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2f906142ea565b60405180910390fd5b81602160016101000a81548160ff021916908315150217905550806022819055505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611a8c33611118565b611acb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac2906142ea565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611b31573d6000803e3d6000fd5b50565b602360009054906101000a900460ff1681565b60208181548110611b5757600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b8f33611118565b611bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc5906142ea565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611c3d9190614682565b60405180910390a150565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611c7733611118565b611cb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cad906142ea565b60405180910390fd5b80601e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000838311158290611d59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d509190613bea565b60405180910390fd5b5082840390509392505050565b6000601f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611df5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dec906146e9565b60405180910390fd5b601d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e995750601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611fe457601654821115611ee3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eda90614755565b60405180910390fd5b602360009054906101000a900460ff16611fe3578373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015611fa357508273ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b611fe2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd9906147c1565b60405180910390fd5b5b5b601e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612094576017546120538361204586611400565b6127b990919063ffffffff16565b10612093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208a9061482d565b60405180910390fd5b5b602360019054906101000a900460ff16156120bb576120b48484846127cf565b90506127b2565b6120c36129a2565b156120d1576120d0612a79565b5b6019546018546120e1919061484d565b4210801561213d5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122a6578373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156121f5576001601f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506122a5565b8273ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156122a4576001601f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b5b61232f826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250601a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d119092919063ffffffff16565b601a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124155750601c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806124c85750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156124c75750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b5b156124d5578290506126b2565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614156125e857612556601554612548601354876132ed90919063ffffffff16565b61330390919063ffffffff16565b905061256b818561331990919063ffffffff16565b9150612577868261332f565b6125808461342d565b6020859080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506126b0565b612611601554612603601454876132ed90919063ffffffff16565b61330390919063ffffffff16565b9050612626818561331990919063ffffffff16565b9150612632868261332f565b61263b84613534565b601d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156126a15750602160009054906101000a900460ff165b156126af576126ae61363b565b5b5b505b61270481601a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b990919063ffffffff16565b601a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127a49190613b36565b60405180910390a360019150505b9392505050565b600081836127c7919061484d565b905092915050565b600061285a826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250601a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d119092919063ffffffff16565b601a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128ef82601a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b990919063ffffffff16565b601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161298f9190613b36565b60405180910390a3600190509392505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612a0f5750602360019054906101000a900460ff16155b8015612a275750602160019054906101000a900460ff165b8015612a745750602254601a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602360016101000a81548160ff0219169083151502179055506000612ac1601154612ab3601054600f546127b990919063ffffffff16565b6127b990919063ffffffff16565b90506000612b016002612af384612ae5600f546022546132ed90919063ffffffff16565b61330390919063ffffffff16565b61330390919063ffffffff16565b90506000612b1a8260225461331990919063ffffffff16565b90506009600a612b2a9190614550565b6305f5e100612b39919061459b565b601b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600267ffffffffffffffff811115612bf857612bf7613d25565b5b604051908082528060200260200182016040528015612c265781602001602082028036833780820191505090505b5090503081600081518110612c3e57612c3d61430a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ce5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d0991906148b8565b81600181518110612d1d57612d1c61430a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612dc09594939291906149de565b600060405180830381600087803b158015612dda57600080fd5b505af1158015612dee573d6000803e3d6000fd5b505050506000612e07824761331990919063ffffffff16565b90506000612e33612e246002600f5461330390919063ffffffff16565b8861331990919063ffffffff16565b90506000612e716002612e6384612e55600f54886132ed90919063ffffffff16565b61330390919063ffffffff16565b61330390919063ffffffff16565b90506000871115612f8557600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308a600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612f0596959493929190614a38565b60606040518083038185885af1158015612f23573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612f489190614aae565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b45068188604051612f7c929190614b01565b60405180910390a15b6000612fae83612fa0601154876132ed90919063ffffffff16565b61330390919063ffffffff16565b90506000811115613210576000600267ffffffffffffffff811115612fd657612fd5613d25565b5b6040519080825280602002602001820160405280156130045781602001602082028036833780820191505090505b509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613074573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061309891906148b8565b816000815181106130ac576130ab61430a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061311d5761311c61430a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de9583600084600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016131dc9493929190614b2a565b6000604051808303818588803b1580156131f557600080fd5b505af1158015613209573d6000803e3d6000fd5b5050505050505b60006132398461322b601054886132ed90919063ffffffff16565b61330390919063ffffffff16565b905060008111156132ae57600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156132ac573d6000803e3d6000fd5b505b6000600f8190555060006010819055506000601181905550505050505050505050506000602360016101000a81548160ff021916908315150217905550565b600081836132fb919061459b565b905092915050565b600081836133119190614ba5565b905092915050565b600081836133279190614bd6565b905092915050565b61338181601a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b990919063ffffffff16565b601a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516134219190613b36565b60405180910390a35050565b613456601554613448600754846132ed90919063ffffffff16565b61330390919063ffffffff16565b600f6000828254613467919061484d565b92505081905550613497601554613489600854846132ed90919063ffffffff16565b61330390919063ffffffff16565b601060008282546134a8919061484d565b925050819055506134d86015546134ca600954846132ed90919063ffffffff16565b61330390919063ffffffff16565b601160008282546134e9919061484d565b9250508190555061351960155461350b600a54846132ed90919063ffffffff16565b61330390919063ffffffff16565b6012600082825461352a919061484d565b9250508190555050565b61355d60155461354f600b54846132ed90919063ffffffff16565b61330390919063ffffffff16565b600f600082825461356e919061484d565b9250508190555061359e601554613590600c54846132ed90919063ffffffff16565b61330390919063ffffffff16565b601060008282546135af919061484d565b925050819055506135df6015546135d1600d54846132ed90919063ffffffff16565b61330390919063ffffffff16565b601160008282546135f0919061484d565b92505081905550613620601554613612600e54846132ed90919063ffffffff16565b61330390919063ffffffff16565b60126000828254613631919061484d565b9250508190555050565b6001602360016101000a81548160ff021916908315150217905550600060125490506009600a61366b9190614550565b6305f5e10061367a919061459b565b601b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600267ffffffffffffffff81111561373957613738613d25565b5b6040519080825280602002602001820160405280156137675781602001602082028036833780820191505090505b509050308160008151811061377f5761377e61430a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613826573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061384a91906148b8565b8160018151811061385e5761385d61430a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016139019594939291906149de565b600060405180830381600087803b15801561391b57600080fd5b505af115801561392f573d6000803e3d6000fd5b505050506000613948824761331990919063ffffffff16565b9050600060056020805490501015613a1b576020805490508261396b9190614ba5565b905060005b602080549050811015613a1557602081815481106139915761399061430a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015613a01573d6000803e3d6000fd5b508080613a0d906143d4565b915050613970565b50613af3565b600582613a289190614ba5565b905060006001602080549050613a3e9190614bd6565b90505b6005602080549050613a539190614bd6565b8110613af15760208181548110613a6d57613a6c61430a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015613add573d6000803e3d6000fd5b508080613ae990614c0a565b915050613a41565b505b600060128190555050505050506000602360016101000a81548160ff021916908315150217905550565b6000819050919050565b613b3081613b1d565b82525050565b6000602082019050613b4b6000830184613b27565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613b8b578082015181840152602081019050613b70565b83811115613b9a576000848401525b50505050565b6000601f19601f8301169050919050565b6000613bbc82613b51565b613bc68185613b5c565b9350613bd6818560208601613b6d565b613bdf81613ba0565b840191505092915050565b60006020820190508181036000830152613c048184613bb1565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613c4b82613c20565b9050919050565b613c5b81613c40565b8114613c6657600080fd5b50565b600081359050613c7881613c52565b92915050565b613c8781613b1d565b8114613c9257600080fd5b50565b600081359050613ca481613c7e565b92915050565b60008060408385031215613cc157613cc0613c16565b5b6000613ccf85828601613c69565b9250506020613ce085828601613c95565b9150509250929050565b60008115159050919050565b613cff81613cea565b82525050565b6000602082019050613d1a6000830184613cf6565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613d5d82613ba0565b810181811067ffffffffffffffff82111715613d7c57613d7b613d25565b5b80604052505050565b6000613d8f613c0c565b9050613d9b8282613d54565b919050565b600067ffffffffffffffff821115613dbb57613dba613d25565b5b602082029050602081019050919050565b600080fd5b6000613de4613ddf84613da0565b613d85565b90508083825260208201905060208402830185811115613e0757613e06613dcc565b5b835b81811015613e305780613e1c8882613c69565b845260208401935050602081019050613e09565b5050509392505050565b600082601f830112613e4f57613e4e613d20565b5b8135613e5f848260208601613dd1565b91505092915050565b613e7181613cea565b8114613e7c57600080fd5b50565b600081359050613e8e81613e68565b92915050565b60008060408385031215613eab57613eaa613c16565b5b600083013567ffffffffffffffff811115613ec957613ec8613c1b565b5b613ed585828601613e3a565b9250506020613ee685828601613e7f565b9150509250929050565b613ef981613c40565b82525050565b6000602082019050613f146000830184613ef0565b92915050565b600080600060608486031215613f3357613f32613c16565b5b6000613f4186828701613c69565b9350506020613f5286828701613c69565b9250506040613f6386828701613c95565b9150509250925092565b600060208284031215613f8357613f82613c16565b5b6000613f9184828501613c95565b91505092915050565b600060208284031215613fb057613faf613c16565b5b6000613fbe84828501613c69565b91505092915050565b600060ff82169050919050565b613fdd81613fc7565b82525050565b6000602082019050613ff86000830184613fd4565b92915050565b600080600080600060a0868803121561401a57614019613c16565b5b600061402888828901613c95565b955050602061403988828901613c95565b945050604061404a88828901613c95565b935050606061405b88828901613c95565b925050608061406c88828901613c95565b9150509295509295909350565b600080604083850312156140905761408f613c16565b5b600061409e85828601613c69565b92505060206140af85828601613e7f565b9150509250929050565b6000602082840312156140cf576140ce613c16565b5b60006140dd84828501613e7f565b91505092915050565b6000806000606084860312156140ff576140fe613c16565b5b600061410d86828701613c69565b935050602061411e86828701613c69565b925050604061412f86828701613c69565b9150509250925092565b600080604083850312156141505761414f613c16565b5b600061415e85828601613c69565b925050602061416f85828601613c69565b9150509250929050565b600080604083850312156141905761418f613c16565b5b600061419e85828601613e7f565b92505060206141af85828601613c95565b9150509250929050565b60006141c482613c20565b9050919050565b6141d4816141b9565b81146141df57600080fd5b50565b6000813590506141f1816141cb565b92915050565b60006020828403121561420d5761420c613c16565b5b600061421b848285016141e2565b91505092915050565b6000819050919050565b600061424961424461423f84613c20565b614224565b613c20565b9050919050565b600061425b8261422e565b9050919050565b600061426d82614250565b9050919050565b61427d81614262565b82525050565b60006020820190506142986000830184614274565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b60006142d4600683613b5c565b91506142df8261429e565b602082019050919050565b60006020820190508181036000830152614303816142c7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f63616e6e6f7420626c61636b6c69737420446578000000000000000000000000600082015250565b600061436f601483613b5c565b915061437a82614339565b602082019050919050565b6000602082019050818103600083015261439e81614362565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006143df82613b1d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614412576144116143a5565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b6001851115614474578086048111156144505761444f6143a5565b5b600185161561445f5780820291505b808102905061446d8561441d565b9450614434565b94509492505050565b60008261448d5760019050614549565b8161449b5760009050614549565b81600181146144b157600281146144bb576144ea565b6001915050614549565b60ff8411156144cd576144cc6143a5565b5b8360020a9150848211156144e4576144e36143a5565b5b50614549565b5060208310610133831016604e8410600b841016171561451f5782820a90508381111561451a576145196143a5565b5b614549565b61452c848484600161442a565b92509050818404811115614543576145426143a5565b5b81810290505b9392505050565b600061455b82613b1d565b915061456683613fc7565b92506145937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461447d565b905092915050565b60006145a682613b1d565b91506145b183613b1d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156145ea576145e96143a5565b5b828202905092915050565b7f616c726561647920656e61626c65640000000000000000000000000000000000600082015250565b600061462b600f83613b5c565b9150614636826145f5565b602082019050919050565b6000602082019050818103600083015261465a8161461e565b9050919050565b600061466c82614250565b9050919050565b61467c81614661565b82525050565b60006020820190506146976000830184614673565b92915050565b7f426f742064657465637465640000000000000000000000000000000000000000600082015250565b60006146d3600c83613b5c565b91506146de8261469d565b602082019050919050565b60006020820190508181036000830152614702816146c6565b9050919050565b7f4d6178206c696d69742065786365656473000000000000000000000000000000600082015250565b600061473f601183613b5c565b915061474a82614709565b602082019050919050565b6000602082019050818103600083015261476e81614732565b9050919050565b7f2074726164696e672069732064697361626c6500000000000000000000000000600082015250565b60006147ab601383613b5c565b91506147b682614775565b602082019050919050565b600060208201905081810360008301526147da8161479e565b9050919050565b7f4d61782057616c6c6574206c696d697420657863656564730000000000000000600082015250565b6000614817601883613b5c565b9150614822826147e1565b602082019050919050565b600060208201905081810360008301526148468161480a565b9050919050565b600061485882613b1d565b915061486383613b1d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614898576148976143a5565b5b828201905092915050565b6000815190506148b281613c52565b92915050565b6000602082840312156148ce576148cd613c16565b5b60006148dc848285016148a3565b91505092915050565b6000819050919050565b600061490a614905614900846148e5565b614224565b613b1d565b9050919050565b61491a816148ef565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61495581613c40565b82525050565b6000614967838361494c565b60208301905092915050565b6000602082019050919050565b600061498b82614920565b614995818561492b565b93506149a08361493c565b8060005b838110156149d15781516149b8888261495b565b97506149c383614973565b9250506001810190506149a4565b5085935050505092915050565b600060a0820190506149f36000830188613b27565b614a006020830187614911565b8181036040830152614a128186614980565b9050614a216060830185613ef0565b614a2e6080830184613b27565b9695505050505050565b600060c082019050614a4d6000830189613ef0565b614a5a6020830188613b27565b614a676040830187614911565b614a746060830186614911565b614a816080830185613ef0565b614a8e60a0830184613b27565b979650505050505050565b600081519050614aa881613c7e565b92915050565b600080600060608486031215614ac757614ac6613c16565b5b6000614ad586828701614a99565b9350506020614ae686828701614a99565b9250506040614af786828701614a99565b9150509250925092565b6000604082019050614b166000830185613b27565b614b236020830184613b27565b9392505050565b6000608082019050614b3f6000830187614911565b8181036020830152614b518186614980565b9050614b606040830185613ef0565b614b6d6060830184613b27565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614bb082613b1d565b9150614bbb83613b1d565b925082614bcb57614bca614b76565b5b828204905092915050565b6000614be182613b1d565b9150614bec83613b1d565b925082821015614bff57614bfe6143a5565b5b828203905092915050565b6000614c1582613b1d565b91506000821415614c2957614c286143a5565b5b60018203905091905056fea264697066735822122049049bc16ff87addec1fecfd89078b80bb2557302223918b4243754967e2e3c964736f6c634300080a0033
Deployed Bytecode
0x6080604052600436106102975760003560e01c806382db44881161015a578063d7c01032116100c1578063ebfef14d1161007a578063ebfef14d14610a4d578063ec44acf214610a64578063f2aa821814610a8f578063f2fde38b14610acc578063f887ea4014610af5578063fc899bdc14610b205761029e565b8063d7c010321461093f578063d91f852e14610968578063d962cf5814610993578063dd62ed3e146109bc578063df20fd49146109f9578063e96fada214610a225761029e565b8063a9059cbb11610113578063a9059cbb1461082d578063aa4bde281461086a578063bf56b37114610895578063c1cf53c4146108c0578063ca33e64c146108e9578063cf46f24c146109145761029e565b806382db44881461072f57806386cb8fb1146107585780638a8c523c1461079557806395d89b41146107ac5780639d9241ec146107d7578063a8aa1b31146108025761029e565b80633f4218e0116101fe578063658d4b7f116101b7578063658d4b7f1461061f5780636ddd17131461064857806370a082311461067357806374010ece146106b057806375cd44f5146106d95780637d99c66d146107045761029e565b80633f4218e0146104eb57806347a28b79146105285780634b52f89b14610551578063540b8a271461057a578063571ac8b0146105b757806359b107b9146105f45761029e565b80632091f955116102505780632091f955146103b557806323b872dd146103e057806327a14fc21461041d5780632f54bf6e14610446578063313ce567146104835780633bbac579146104ae5761029e565b80630445b667146102a357806306fdde03146102ce578063095ea7b3146102f957806310a60f0214610336578063180b0d7e1461035f57806318160ddd1461038a5761029e565b3661029e57005b600080fd5b3480156102af57600080fd5b506102b8610b49565b6040516102c59190613b36565b60405180910390f35b3480156102da57600080fd5b506102e3610b4f565b6040516102f09190613bea565b60405180910390f35b34801561030557600080fd5b50610320600480360381019061031b9190613caa565b610b8c565b60405161032d9190613d05565b60405180910390f35b34801561034257600080fd5b5061035d60048036038101906103589190613e94565b610c7e565b005b34801561036b57600080fd5b50610374610e7a565b6040516103819190613b36565b60405180910390f35b34801561039657600080fd5b5061039f610e80565b6040516103ac9190613b36565b60405180910390f35b3480156103c157600080fd5b506103ca610ea4565b6040516103d79190613eff565b60405180910390f35b3480156103ec57600080fd5b5061040760048036038101906104029190613f1a565b610eca565b6040516104149190613d05565b60405180910390f35b34801561042957600080fd5b50610444600480360381019061043f9190613f6d565b6110c6565b005b34801561045257600080fd5b5061046d60048036038101906104689190613f9a565b611118565b60405161047a9190613d05565b60405180910390f35b34801561048f57600080fd5b50610498611171565b6040516104a59190613fe3565b60405180910390f35b3480156104ba57600080fd5b506104d560048036038101906104d09190613f9a565b61117a565b6040516104e29190613d05565b60405180910390f35b3480156104f757600080fd5b50610512600480360381019061050d9190613f9a565b61119a565b60405161051f9190613d05565b60405180910390f35b34801561053457600080fd5b5061054f600480360381019061054a9190613ffe565b6111ba565b005b34801561055d57600080fd5b5061057860048036038101906105739190613f9a565b611269565b005b34801561058657600080fd5b506105a1600480360381019061059c9190613f9a565b6112f5565b6040516105ae9190613d05565b60405180910390f35b3480156105c357600080fd5b506105de60048036038101906105d99190613f9a565b611315565b6040516105eb9190613d05565b60405180910390f35b34801561060057600080fd5b50610609611344565b6040516106169190613b36565b60405180910390f35b34801561062b57600080fd5b5061064660048036038101906106419190614079565b61134a565b005b34801561065457600080fd5b5061065d6113ed565b60405161066a9190613d05565b60405180910390f35b34801561067f57600080fd5b5061069a60048036038101906106959190613f9a565b611400565b6040516106a79190613b36565b60405180910390f35b3480156106bc57600080fd5b506106d760048036038101906106d29190613f6d565b611449565b005b3480156106e557600080fd5b506106ee61149b565b6040516106fb9190613eff565b60405180910390f35b34801561071057600080fd5b506107196114c1565b6040516107269190613b36565b60405180910390f35b34801561073b57600080fd5b50610756600480360381019061075191906140b9565b6114c7565b005b34801561076457600080fd5b5061077f600480360381019061077a9190613f9a565b61152c565b60405161078c9190613d05565b60405180910390f35b3480156107a157600080fd5b506107aa61154c565b005b3480156107b857600080fd5b506107c161163e565b6040516107ce9190613bea565b60405180910390f35b3480156107e357600080fd5b506107ec61167b565b6040516107f99190613b36565b60405180910390f35b34801561080e57600080fd5b50610817611681565b6040516108249190613eff565b60405180910390f35b34801561083957600080fd5b50610854600480360381019061084f9190613caa565b6116a7565b6040516108619190613d05565b60405180910390f35b34801561087657600080fd5b5061087f6116bc565b60405161088c9190613b36565b60405180910390f35b3480156108a157600080fd5b506108aa6116c2565b6040516108b79190613b36565b60405180910390f35b3480156108cc57600080fd5b506108e760048036038101906108e29190613ffe565b6116c8565b005b3480156108f557600080fd5b506108fe611777565b60405161090b9190613eff565b60405180910390f35b34801561092057600080fd5b5061092961179d565b6040516109369190613b36565b60405180910390f35b34801561094b57600080fd5b50610966600480360381019061096191906140e6565b6117a3565b005b34801561097457600080fd5b5061097d6118b3565b60405161098a9190613d05565b60405180910390f35b34801561099f57600080fd5b506109ba60048036038101906109b59190614079565b6118c6565b005b3480156109c857600080fd5b506109e360048036038101906109de9190614139565b611969565b6040516109f09190613b36565b60405180910390f35b348015610a0557600080fd5b50610a206004803603810190610a1b9190614179565b6119f0565b005b348015610a2e57600080fd5b50610a37611a5d565b604051610a449190613eff565b60405180910390f35b348015610a5957600080fd5b50610a62611a83565b005b348015610a7057600080fd5b50610a79611b34565b604051610a869190613d05565b60405180910390f35b348015610a9b57600080fd5b50610ab66004803603810190610ab19190613f6d565b611b47565b604051610ac39190613eff565b60405180910390f35b348015610ad857600080fd5b50610af36004803603810190610aee91906141f7565b611b86565b005b348015610b0157600080fd5b50610b0a611c48565b604051610b179190614283565b60405180910390f35b348015610b2c57600080fd5b50610b476004803603810190610b429190614079565b611c6e565b005b60225481565b60606040518060400160405280600b81526020017f53616e7461204769667473000000000000000000000000000000000000000000815250905090565b600081601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c6c9190613b36565b60405180910390a36001905092915050565b610c8733611118565b610cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbd906142ea565b60405180910390fd5b60005b8251811015610e7557600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16838281518110610d1e57610d1d61430a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614158015610db25750828181518110610d5857610d5761430a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b610df1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de890614385565b60405180910390fd5b81601f6000858481518110610e0957610e0861430a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e6d906143d4565b915050610cc9565b505050565b60155481565b60006009600a610e909190614550565b6305f5e100610e9f919061459b565b905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009600a610eda9190614550565b6305f5e100610ee9919061459b565b601b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146110b257611031826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250601b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d119092919063ffffffff16565b601b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6110bd848484611d66565b90509392505050565b6110cf33611118565b61110e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611105906142ea565b60405180910390fd5b8060178190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b601f6020528060005260406000206000915054906101000a900460ff1681565b601c6020528060005260406000206000915054906101000a900460ff1681565b6111c333611118565b611202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f9906142ea565b60405180910390fd5b846007819055508360088190555082600a81905550816009819055506112558261124785611239888a6127b990919063ffffffff16565b6127b990919063ffffffff16565b6127b990919063ffffffff16565b601381905550806015819055505050505050565b61127233611118565b6112b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a8906142ea565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601d6020528060005260406000206000915054906101000a900460ff1681565b600061133d826009600a6113299190614550565b6305f5e100611338919061459b565b610b8c565b9050919050565b60135481565b61135333611118565b611392576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611389906142ea565b60405180910390fd5b80601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602160019054906101000a900460ff1681565b6000601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61145233611118565b611491576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611488906142ea565b60405180910390fd5b8060168190555050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b6114d033611118565b61150f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611506906142ea565b60405180910390fd5b80602160006101000a81548160ff02191690831515021790555050565b601e6020528060005260406000206000915054906101000a900460ff1681565b61155533611118565b611594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158b906142ea565b60405180910390fd5b602360009054906101000a900460ff16156115e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115db90614641565b60405180910390fd5b6001602360006101000a81548160ff0219169083151502179055506001602160016101000a81548160ff0219169083151502179055506001602160006101000a81548160ff02191690831515021790555042601881905550565b60606040518060400160405280600381526020017f5347240000000000000000000000000000000000000000000000000000000000815250905090565b60145481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006116b4338484611d66565b905092915050565b60175481565b60185481565b6116d133611118565b611710576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611707906142ea565b60405180910390fd5b84600b8190555083600c8190555082600d8190555081600e819055506117638261175585611747888a6127b990919063ffffffff16565b6127b990919063ffffffff16565b6127b990919063ffffffff16565b601481905550806015819055505050505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60165481565b6117ac33611118565b6117eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e2906142ea565b60405180910390fd5b82600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b602160009054906101000a900460ff1681565b6118cf33611118565b61190e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611905906142ea565b60405180910390fd5b80601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6119f933611118565b611a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2f906142ea565b60405180910390fd5b81602160016101000a81548160ff021916908315150217905550806022819055505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611a8c33611118565b611acb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac2906142ea565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611b31573d6000803e3d6000fd5b50565b602360009054906101000a900460ff1681565b60208181548110611b5757600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b8f33611118565b611bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc5906142ea565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611c3d9190614682565b60405180910390a150565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611c7733611118565b611cb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cad906142ea565b60405180910390fd5b80601e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000838311158290611d59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d509190613bea565b60405180910390fd5b5082840390509392505050565b6000601f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611df5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dec906146e9565b60405180910390fd5b601d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e995750601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611fe457601654821115611ee3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eda90614755565b60405180910390fd5b602360009054906101000a900460ff16611fe3578373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015611fa357508273ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b611fe2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd9906147c1565b60405180910390fd5b5b5b601e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612094576017546120538361204586611400565b6127b990919063ffffffff16565b10612093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208a9061482d565b60405180910390fd5b5b602360019054906101000a900460ff16156120bb576120b48484846127cf565b90506127b2565b6120c36129a2565b156120d1576120d0612a79565b5b6019546018546120e1919061484d565b4210801561213d5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122a6578373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156121f5576001601f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506122a5565b8273ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156122a4576001601f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b5b61232f826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250601a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d119092919063ffffffff16565b601a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124155750601c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806124c85750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156124c75750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b5b156124d5578290506126b2565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614156125e857612556601554612548601354876132ed90919063ffffffff16565b61330390919063ffffffff16565b905061256b818561331990919063ffffffff16565b9150612577868261332f565b6125808461342d565b6020859080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506126b0565b612611601554612603601454876132ed90919063ffffffff16565b61330390919063ffffffff16565b9050612626818561331990919063ffffffff16565b9150612632868261332f565b61263b84613534565b601d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156126a15750602160009054906101000a900460ff165b156126af576126ae61363b565b5b5b505b61270481601a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b990919063ffffffff16565b601a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127a49190613b36565b60405180910390a360019150505b9392505050565b600081836127c7919061484d565b905092915050565b600061285a826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250601a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d119092919063ffffffff16565b601a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128ef82601a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b990919063ffffffff16565b601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161298f9190613b36565b60405180910390a3600190509392505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612a0f5750602360019054906101000a900460ff16155b8015612a275750602160019054906101000a900460ff165b8015612a745750602254601a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602360016101000a81548160ff0219169083151502179055506000612ac1601154612ab3601054600f546127b990919063ffffffff16565b6127b990919063ffffffff16565b90506000612b016002612af384612ae5600f546022546132ed90919063ffffffff16565b61330390919063ffffffff16565b61330390919063ffffffff16565b90506000612b1a8260225461331990919063ffffffff16565b90506009600a612b2a9190614550565b6305f5e100612b39919061459b565b601b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600267ffffffffffffffff811115612bf857612bf7613d25565b5b604051908082528060200260200182016040528015612c265781602001602082028036833780820191505090505b5090503081600081518110612c3e57612c3d61430a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ce5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d0991906148b8565b81600181518110612d1d57612d1c61430a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612dc09594939291906149de565b600060405180830381600087803b158015612dda57600080fd5b505af1158015612dee573d6000803e3d6000fd5b505050506000612e07824761331990919063ffffffff16565b90506000612e33612e246002600f5461330390919063ffffffff16565b8861331990919063ffffffff16565b90506000612e716002612e6384612e55600f54886132ed90919063ffffffff16565b61330390919063ffffffff16565b61330390919063ffffffff16565b90506000871115612f8557600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308a600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612f0596959493929190614a38565b60606040518083038185885af1158015612f23573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612f489190614aae565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b45068188604051612f7c929190614b01565b60405180910390a15b6000612fae83612fa0601154876132ed90919063ffffffff16565b61330390919063ffffffff16565b90506000811115613210576000600267ffffffffffffffff811115612fd657612fd5613d25565b5b6040519080825280602002602001820160405280156130045781602001602082028036833780820191505090505b509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613074573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061309891906148b8565b816000815181106130ac576130ab61430a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061311d5761311c61430a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de9583600084600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016131dc9493929190614b2a565b6000604051808303818588803b1580156131f557600080fd5b505af1158015613209573d6000803e3d6000fd5b5050505050505b60006132398461322b601054886132ed90919063ffffffff16565b61330390919063ffffffff16565b905060008111156132ae57600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156132ac573d6000803e3d6000fd5b505b6000600f8190555060006010819055506000601181905550505050505050505050506000602360016101000a81548160ff021916908315150217905550565b600081836132fb919061459b565b905092915050565b600081836133119190614ba5565b905092915050565b600081836133279190614bd6565b905092915050565b61338181601a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b990919063ffffffff16565b601a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516134219190613b36565b60405180910390a35050565b613456601554613448600754846132ed90919063ffffffff16565b61330390919063ffffffff16565b600f6000828254613467919061484d565b92505081905550613497601554613489600854846132ed90919063ffffffff16565b61330390919063ffffffff16565b601060008282546134a8919061484d565b925050819055506134d86015546134ca600954846132ed90919063ffffffff16565b61330390919063ffffffff16565b601160008282546134e9919061484d565b9250508190555061351960155461350b600a54846132ed90919063ffffffff16565b61330390919063ffffffff16565b6012600082825461352a919061484d565b9250508190555050565b61355d60155461354f600b54846132ed90919063ffffffff16565b61330390919063ffffffff16565b600f600082825461356e919061484d565b9250508190555061359e601554613590600c54846132ed90919063ffffffff16565b61330390919063ffffffff16565b601060008282546135af919061484d565b925050819055506135df6015546135d1600d54846132ed90919063ffffffff16565b61330390919063ffffffff16565b601160008282546135f0919061484d565b92505081905550613620601554613612600e54846132ed90919063ffffffff16565b61330390919063ffffffff16565b60126000828254613631919061484d565b9250508190555050565b6001602360016101000a81548160ff021916908315150217905550600060125490506009600a61366b9190614550565b6305f5e10061367a919061459b565b601b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600267ffffffffffffffff81111561373957613738613d25565b5b6040519080825280602002602001820160405280156137675781602001602082028036833780820191505090505b509050308160008151811061377f5761377e61430a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613826573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061384a91906148b8565b8160018151811061385e5761385d61430a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016139019594939291906149de565b600060405180830381600087803b15801561391b57600080fd5b505af115801561392f573d6000803e3d6000fd5b505050506000613948824761331990919063ffffffff16565b9050600060056020805490501015613a1b576020805490508261396b9190614ba5565b905060005b602080549050811015613a1557602081815481106139915761399061430a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015613a01573d6000803e3d6000fd5b508080613a0d906143d4565b915050613970565b50613af3565b600582613a289190614ba5565b905060006001602080549050613a3e9190614bd6565b90505b6005602080549050613a539190614bd6565b8110613af15760208181548110613a6d57613a6c61430a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015613add573d6000803e3d6000fd5b508080613ae990614c0a565b915050613a41565b505b600060128190555050505050506000602360016101000a81548160ff021916908315150217905550565b6000819050919050565b613b3081613b1d565b82525050565b6000602082019050613b4b6000830184613b27565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613b8b578082015181840152602081019050613b70565b83811115613b9a576000848401525b50505050565b6000601f19601f8301169050919050565b6000613bbc82613b51565b613bc68185613b5c565b9350613bd6818560208601613b6d565b613bdf81613ba0565b840191505092915050565b60006020820190508181036000830152613c048184613bb1565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613c4b82613c20565b9050919050565b613c5b81613c40565b8114613c6657600080fd5b50565b600081359050613c7881613c52565b92915050565b613c8781613b1d565b8114613c9257600080fd5b50565b600081359050613ca481613c7e565b92915050565b60008060408385031215613cc157613cc0613c16565b5b6000613ccf85828601613c69565b9250506020613ce085828601613c95565b9150509250929050565b60008115159050919050565b613cff81613cea565b82525050565b6000602082019050613d1a6000830184613cf6565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613d5d82613ba0565b810181811067ffffffffffffffff82111715613d7c57613d7b613d25565b5b80604052505050565b6000613d8f613c0c565b9050613d9b8282613d54565b919050565b600067ffffffffffffffff821115613dbb57613dba613d25565b5b602082029050602081019050919050565b600080fd5b6000613de4613ddf84613da0565b613d85565b90508083825260208201905060208402830185811115613e0757613e06613dcc565b5b835b81811015613e305780613e1c8882613c69565b845260208401935050602081019050613e09565b5050509392505050565b600082601f830112613e4f57613e4e613d20565b5b8135613e5f848260208601613dd1565b91505092915050565b613e7181613cea565b8114613e7c57600080fd5b50565b600081359050613e8e81613e68565b92915050565b60008060408385031215613eab57613eaa613c16565b5b600083013567ffffffffffffffff811115613ec957613ec8613c1b565b5b613ed585828601613e3a565b9250506020613ee685828601613e7f565b9150509250929050565b613ef981613c40565b82525050565b6000602082019050613f146000830184613ef0565b92915050565b600080600060608486031215613f3357613f32613c16565b5b6000613f4186828701613c69565b9350506020613f5286828701613c69565b9250506040613f6386828701613c95565b9150509250925092565b600060208284031215613f8357613f82613c16565b5b6000613f9184828501613c95565b91505092915050565b600060208284031215613fb057613faf613c16565b5b6000613fbe84828501613c69565b91505092915050565b600060ff82169050919050565b613fdd81613fc7565b82525050565b6000602082019050613ff86000830184613fd4565b92915050565b600080600080600060a0868803121561401a57614019613c16565b5b600061402888828901613c95565b955050602061403988828901613c95565b945050604061404a88828901613c95565b935050606061405b88828901613c95565b925050608061406c88828901613c95565b9150509295509295909350565b600080604083850312156140905761408f613c16565b5b600061409e85828601613c69565b92505060206140af85828601613e7f565b9150509250929050565b6000602082840312156140cf576140ce613c16565b5b60006140dd84828501613e7f565b91505092915050565b6000806000606084860312156140ff576140fe613c16565b5b600061410d86828701613c69565b935050602061411e86828701613c69565b925050604061412f86828701613c69565b9150509250925092565b600080604083850312156141505761414f613c16565b5b600061415e85828601613c69565b925050602061416f85828601613c69565b9150509250929050565b600080604083850312156141905761418f613c16565b5b600061419e85828601613e7f565b92505060206141af85828601613c95565b9150509250929050565b60006141c482613c20565b9050919050565b6141d4816141b9565b81146141df57600080fd5b50565b6000813590506141f1816141cb565b92915050565b60006020828403121561420d5761420c613c16565b5b600061421b848285016141e2565b91505092915050565b6000819050919050565b600061424961424461423f84613c20565b614224565b613c20565b9050919050565b600061425b8261422e565b9050919050565b600061426d82614250565b9050919050565b61427d81614262565b82525050565b60006020820190506142986000830184614274565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b60006142d4600683613b5c565b91506142df8261429e565b602082019050919050565b60006020820190508181036000830152614303816142c7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f63616e6e6f7420626c61636b6c69737420446578000000000000000000000000600082015250565b600061436f601483613b5c565b915061437a82614339565b602082019050919050565b6000602082019050818103600083015261439e81614362565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006143df82613b1d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614412576144116143a5565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b6001851115614474578086048111156144505761444f6143a5565b5b600185161561445f5780820291505b808102905061446d8561441d565b9450614434565b94509492505050565b60008261448d5760019050614549565b8161449b5760009050614549565b81600181146144b157600281146144bb576144ea565b6001915050614549565b60ff8411156144cd576144cc6143a5565b5b8360020a9150848211156144e4576144e36143a5565b5b50614549565b5060208310610133831016604e8410600b841016171561451f5782820a90508381111561451a576145196143a5565b5b614549565b61452c848484600161442a565b92509050818404811115614543576145426143a5565b5b81810290505b9392505050565b600061455b82613b1d565b915061456683613fc7565b92506145937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461447d565b905092915050565b60006145a682613b1d565b91506145b183613b1d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156145ea576145e96143a5565b5b828202905092915050565b7f616c726561647920656e61626c65640000000000000000000000000000000000600082015250565b600061462b600f83613b5c565b9150614636826145f5565b602082019050919050565b6000602082019050818103600083015261465a8161461e565b9050919050565b600061466c82614250565b9050919050565b61467c81614661565b82525050565b60006020820190506146976000830184614673565b92915050565b7f426f742064657465637465640000000000000000000000000000000000000000600082015250565b60006146d3600c83613b5c565b91506146de8261469d565b602082019050919050565b60006020820190508181036000830152614702816146c6565b9050919050565b7f4d6178206c696d69742065786365656473000000000000000000000000000000600082015250565b600061473f601183613b5c565b915061474a82614709565b602082019050919050565b6000602082019050818103600083015261476e81614732565b9050919050565b7f2074726164696e672069732064697361626c6500000000000000000000000000600082015250565b60006147ab601383613b5c565b91506147b682614775565b602082019050919050565b600060208201905081810360008301526147da8161479e565b9050919050565b7f4d61782057616c6c6574206c696d697420657863656564730000000000000000600082015250565b6000614817601883613b5c565b9150614822826147e1565b602082019050919050565b600060208201905081810360008301526148468161480a565b9050919050565b600061485882613b1d565b915061486383613b1d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614898576148976143a5565b5b828201905092915050565b6000815190506148b281613c52565b92915050565b6000602082840312156148ce576148cd613c16565b5b60006148dc848285016148a3565b91505092915050565b6000819050919050565b600061490a614905614900846148e5565b614224565b613b1d565b9050919050565b61491a816148ef565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61495581613c40565b82525050565b6000614967838361494c565b60208301905092915050565b6000602082019050919050565b600061498b82614920565b614995818561492b565b93506149a08361493c565b8060005b838110156149d15781516149b8888261495b565b97506149c383614973565b9250506001810190506149a4565b5085935050505092915050565b600060a0820190506149f36000830188613b27565b614a006020830187614911565b8181036040830152614a128186614980565b9050614a216060830185613ef0565b614a2e6080830184613b27565b9695505050505050565b600060c082019050614a4d6000830189613ef0565b614a5a6020830188613b27565b614a676040830187614911565b614a746060830186614911565b614a816080830185613ef0565b614a8e60a0830184613b27565b979650505050505050565b600081519050614aa881613c7e565b92915050565b600080600060608486031215614ac757614ac6613c16565b5b6000614ad586828701614a99565b9350506020614ae686828701614a99565b9250506040614af786828701614a99565b9150509250925092565b6000604082019050614b166000830185613b27565b614b236020830184613b27565b9392505050565b6000608082019050614b3f6000830187614911565b8181036020830152614b518186614980565b9050614b606040830185613ef0565b614b6d6060830184613b27565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614bb082613b1d565b9150614bbb83613b1d565b925082614bcb57614bca614b76565b5b828204905092915050565b6000614be182613b1d565b9150614bec83613b1d565b925082821015614bff57614bfe6143a5565b5b828203905092915050565b6000614c1582613b1d565b91506000821415614c2957614c286143a5565b5b60018203905091905056fea264697066735822122049049bc16ff87addec1fecfd89078b80bb2557302223918b4243754967e2e3c964736f6c634300080a0033
Deployed Bytecode Sourcemap
6511:15770:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8354:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10136:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10561:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21723:369;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7684:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9818:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6925:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11143:424;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19735:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6239:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9928:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8215:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8062:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20192:528;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21613:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8112:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10817:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7608:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19116:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8324:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10238:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19625:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7161:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7888:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20083:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8163:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19851:224;;;;;;;;;;;;;:::i;:::-;;10030:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7645:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7050:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10942:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7790:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7856:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20728:534;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7076:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7728:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21270:335;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8291:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19243:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10365:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22100:178;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7119:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19505:112;;;;;;;;;;;;;:::i;:::-;;8412:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8259:23;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6350:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7019:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19373:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8354:51;;;;:::o;10136:94::-;10184:13;10217:5;;;;;;;;;;;;;;;;;10210:12;;10136:94;:::o;10561:248::-;10663:4;10720:6;10685:11;:23;10697:10;10685:23;;;;;;;;;;;;;;;:32;10709:7;10685:32;;;;;;;;;;;;;;;:41;;;;10763:7;10742:37;;10751:10;10742:37;;;10772:6;10742:37;;;;;;:::i;:::-;;;;;;;;10797:4;10790:11;;10561:248;;;;:::o;21723:369::-;6181:19;6189:10;6181:7;:19::i;:::-;6173:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;21845:9:::1;21840:245;21860:8;:15;21856:1;:19;21840:245;;;21946:6;;;;;;;;;;;21923:30;;:8;21932:1;21923:11;;;;;;;;:::i;:::-;;;;;;;;:30;;;;:53;;;;;21965:8;21974:1;21965:11;;;;;;;;:::i;:::-;;;;;;;;21957:19;;:4;;;;;;;;;;;:19;;;;21923:53;21897:135;;;;;;;;;;;;:::i;:::-;;;;;;;;;22068:5;22047;:18;22053:8;22062:1;22053:11;;;;;;;;:::i;:::-;;;;;;;;22047:18;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;21877:3;;;;;:::i;:::-;;;;21840:245;;;;21723:369:::0;;:::o;7684:35::-;;;;:::o;9818:102::-;9873:7;6738:1;6800:2;:13;;;;:::i;:::-;6786:11;:27;;;;:::i;:::-;9893:19;;9818:102;:::o;6925:87::-;;;;;;;;;;;;;:::o;11143:424::-;11277:4;6738:1;6800:2;:13;;;;:::i;:::-;6786:11;:27;;;;:::i;:::-;11298:11;:19;11310:6;11298:19;;;;;;;;;;;;;;;:31;11318:10;11298:31;;;;;;;;;;;;;;;;:47;11294:201;;11396:87;11450:6;11396:87;;;;;;;;;;;;;;;;;:11;:19;11408:6;11396:19;;;;;;;;;;;;;;;:31;11416:10;11396:31;;;;;;;;;;;;;;;;:53;;:87;;;;;:::i;:::-;11362:11;:19;11374:6;11362:19;;;;;;;;;;;;;;;:31;11382:10;11362:31;;;;;;;;;;;;;;;:121;;;;11294:201;11514:45;11533:6;11541:9;11552:6;11514:18;:45::i;:::-;11507:52;;11143:424;;;;;:::o;19735:108::-;6181:19;6189:10;6181:7;:19::i;:::-;6173:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19828:7:::1;19810:15;:25;;;;19735:108:::0;:::o;6239:103::-;6294:4;6329:5;;;;;;;;;;;6318:16;;:7;:16;;;6311:23;;6239:103;;;:::o;9928:94::-;9980:5;6738:1;9998:16;;9928:94;:::o;8215:37::-;;;;;;;;;;;;;;;;;;;;;;:::o;8062:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;20192:528::-;6181:19;6189:10;6181:7;:19::i;:::-;6173:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;20423:13:::1;20404:16;:32;;;;20466:13;20447:16;:32;;;;20508:9;20490:15;:27;;;;20543:12;20528;:27;;;;20580:89;20646:12;20580:47;20617:9;20580:32;20598:13;20580;:17;;:32;;;;:::i;:::-;:36;;:47;;;;:::i;:::-;:51;;:89;;;;:::i;:::-;20566:11;:103;;;;20697:15;20680:14;:32;;;;20192:528:::0;;;;;:::o;21613:102::-;6181:19;6189:10;6181:7;:19::i;:::-;6173:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;21697:10:::1;21685:9;;:22;;;;;;;;;;;;;;;;;;21613:102:::0;:::o;8112:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;10817:117::-;10872:4;10896:30;10904:7;6738:1;6800:2;:13;;;;:::i;:::-;6786:11;:27;;;;:::i;:::-;10896:7;:30::i;:::-;10889:37;;10817:117;;;:::o;7608:30::-;;;;:::o;19116:119::-;6181:19;6189:10;6181:7;:19::i;:::-;6173:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19221:6:::1;19199:11;:19;19211:6;19199:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;19116:119:::0;;:::o;8324:23::-;;;;;;;;;;;;;:::o;10238:119::-;10304:7;10331:9;:18;10341:7;10331:18;;;;;;;;;;;;;;;;10324:25;;10238:119;;;:::o;19625:102::-;6181:19;6189:10;6181:7;:19::i;:::-;6173:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19712:7:::1;19697:12;:22;;;;19625:102:::0;:::o;7161:31::-;;;;;;;;;;;;;:::o;7888:39::-;;;;:::o;20083:101::-;6181:19;6189:10;6181:7;:19::i;:::-;6173:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;20170:6:::1;20153:14;;:23;;;;;;;;;;;;;;;;;;20083:101:::0;:::o;8163:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;19851:224::-;6181:19;6189:10;6181:7;:19::i;:::-;6173:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19915:7:::1;;;;;;;;;;;19914:8;19906:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;19963:4;19953:7;;:14;;;;;;;;;;;;;;;;;;19992:4;19978:11;;:18;;;;;;;;;;;;;;;;;;20024:4;20007:14;;:21;;;;;;;;;;;;;;;;;;20052:15;20039:10;:28;;;;19851:224::o:0;10030:98::-;10080:13;10113:7;;;;;;;;;;;;;;;;;10106:14;;10030:98;:::o;7645:32::-;;;;:::o;7050:19::-;;;;;;;;;;;;;:::o;10942:193::-;11049:4;11078:49;11097:10;11109:9;11120:6;11078:18;:49::i;:::-;11071:56;;10942:193;;;;:::o;7790:59::-;;;;:::o;7856:25::-;;;;:::o;20728:534::-;6181:19;6189:10;6181:7;:19::i;:::-;6173:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;20961:13:::1;20941:17;:33;;;;21005:13;20985:17;:33;;;;21045:9;21029:13;:25;;;;21084:12;21065:16;:31;;;;21122:89;21188:12;21122:47;21159:9;21122:32;21140:13;21122;:17;;:32;;;;:::i;:::-;:36;;:47;;;;:::i;:::-;:51;;:89;;;;:::i;:::-;21107:12;:104;;;;21239:15;21222:14;:32;;;;20728:534:::0;;;;;:::o;7076:36::-;;;;;;;;;;;;;:::o;7728:55::-;;;;:::o;21270:335::-;6181:19;6189:10;6181:7;:19::i;:::-;6173:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;21473:22:::1;21449:21;;:46;;;;;;;;;;;;;;;;;;21529:21;21506:20;;:44;;;;;;;;;;;;;;;;;;21580:17;21561:16;;:36;;;;;;;;;;;;;;;;;;21270:335:::0;;;:::o;8291:26::-;;;;;;;;;;;;;:::o;19243:122::-;6181:19;6189:10;6181:7;:19::i;:::-;6173:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19351:6:::1;19328:12;:20;19341:6;19328:20;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;19243:122:::0;;:::o;10365:188::-;10485:7;10517:11;:19;10529:6;10517:19;;;;;;;;;;;;;;;:28;10537:7;10517:28;;;;;;;;;;;;;;;;10510:35;;10365:188;;;;:::o;22100:178::-;6181:19;6189:10;6181:7;:19::i;:::-;6173:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;22228:8:::1;22214:11;;:22;;;;;;;;;;;;;;;;;;22263:7;22247:13;:23;;;;22100:178:::0;;:::o;7119:35::-;;;;;;;;;;;;;:::o;19505:112::-;6181:19;6189:10;6181:7;:19::i;:::-;6173:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19571:5:::1;::::0;::::1;;;;;;;;19563:23;;:46;19587:21;19563:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;19505:112::o:0;8412:19::-;;;;;;;;;;;;;:::o;8259:23::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6350:136::-;6181:19;6189:10;6181:7;:19::i;:::-;6173:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;6434:3:::1;6426:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;6453:25;6474:3;6453:25;;;;;;:::i;:::-;;;;;;;;6350:136:::0;:::o;7019:24::-;;;;;;;;;;;;;:::o;19373:124::-;6181:19;6189:10;6181:7;:19::i;:::-;6173:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19483:6:::1;19459:13;:21;19473:6;19459:21;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;19373:124:::0;;:::o;3101:240::-;3221:7;3279:1;3274;:6;;3282:12;3266:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3321:1;3317;:5;3310:12;;3101:240;;;;;:::o;11575:2457::-;11706:4;11732:5;:13;11738:6;11732:13;;;;;;;;;;;;;;;;;;;;;;;;;11731:14;11723:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11778:12;:20;11791:6;11778:20;;;;;;;;;;;;;;;;;;;;;;;;;11777:21;:49;;;;;11803:12;:23;11816:9;11803:23;;;;;;;;;;;;;;;;;;;;;;;;;11802:24;11777:49;11773:325;;;11861:12;;11851:6;:22;;11843:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;11915:7;;;;;;;;;;;11910:177;;11981:6;11973:14;;:4;;;;;;;;;;;:14;;;;:35;;;;;11999:9;11991:17;;:4;;;;;;;;;;;:17;;;;11973:35;11943:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;11910:177;11773:325;12115:13;:24;12129:9;12115:24;;;;;;;;;;;;;;;;;;;;;;;;;12110:194;;12217:15;;12182:32;12207:6;12182:20;12192:9;12182;:20::i;:::-;:24;;:32;;;;:::i;:::-;:50;12156:136;;;;;;;;;;;;:::i;:::-;;;;;;;;;12110:194;12320:6;;;;;;;;;;;12316:87;;;12350:41;12365:6;12373:9;12384:6;12350:14;:41::i;:::-;12343:48;;;;12316:87;12419:16;:14;:16::i;:::-;12415:59;;;12452:10;:8;:10::i;:::-;12415:59;12535:11;;12522:10;;:24;;;;:::i;:::-;12504:15;:42;:87;;;;;12584:6;;;;;;;;;;;12563:28;;:9;:28;;;;12504:87;12486:305;;;12630:6;12622:14;;:4;;;;;;;;;;;:14;;;12618:162;;;12676:4;12657:5;:16;12663:9;12657:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;12618:162;;;12714:9;12706:17;;:4;;;;;;;;;;;:17;;;12702:78;;;12760:4;12744:5;:13;12750:6;12744:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;12702:78;12618:162;12486:305;12823:90;12859:6;12823:90;;;;;;;;;;;;;;;;;:9;:17;12833:6;12823:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;12803:9;:17;12813:6;12803:17;;;;;;;;;;;;;;;:110;;;;12926:22;12977:11;:19;12989:6;12977:19;;;;;;;;;;;;;;;;;;;;;;;;;:58;;;;13013:11;:22;13025:9;13013:22;;;;;;;;;;;;;;;;;;;;;;;;;12977:58;:112;;;;13063:4;;;;;;;;;;;13053:14;;:6;:14;;;;:35;;;;;13084:4;;;;;;;;;;;13071:17;;:9;:17;;;;13053:35;12977:112;12959:907;;;13133:6;13116:23;;12959:907;;;13172:17;13218:4;;;;;;;;;;;13208:14;;:6;:14;;;13204:651;;;13255:43;13283:14;;13255:23;13266:11;;13255:6;:10;;:23;;;;:::i;:::-;:27;;:43;;;;:::i;:::-;13243:55;;13334:21;13345:9;13334:6;:10;;:21;;;;:::i;:::-;13317:38;;13374:26;13382:6;13390:9;13374:7;:26::i;:::-;13419:20;13432:6;13419:12;:20::i;:::-;13458:6;13470:9;13458:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13204:651;;;13533:44;13562:14;;13533:24;13544:12;;13533:6;:10;;:24;;;;:::i;:::-;:28;;:44;;;;:::i;:::-;13521:56;;13613:21;13624:9;13613:6;:10;;:21;;;;:::i;:::-;13596:38;;13653:26;13661:6;13669:9;13653:7;:26::i;:::-;13698:21;13712:6;13698:13;:21::i;:::-;13743:12;:20;13756:6;13743:20;;;;;;;;;;;;;;;;;;;;;;;;;13742:21;:39;;;;;13767:14;;;;;;;;;;;13742:39;13738:102;;;13806:14;:12;:14::i;:::-;13738:102;13204:651;13157:709;12959:907;13901:40;13926:14;13901:9;:20;13911:9;13901:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;13878:9;:20;13888:9;13878:20;;;;;;;;;;;;;;;:63;;;;13976:9;13959:43;;13968:6;13959:43;;;13987:14;13959:43;;;;;;:::i;:::-;;;;;;;;14020:4;14013:11;;;11575:2457;;;;;;:::o;2571:98::-;2629:7;2660:1;2656;:5;;;;:::i;:::-;2649:12;;2571:98;;;;:::o;14040:401::-;14167:4;14204:90;14240:6;14204:90;;;;;;;;;;;;;;;;;:9;:17;14214:6;14204:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;14184:9;:17;14194:6;14184:17;;;;;;;;;;;;;;;:110;;;;14328:32;14353:6;14328:9;:20;14338:9;14328:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;14305:9;:20;14315:9;14305:20;;;;;;;;;;;;;;;:55;;;;14393:9;14376:35;;14385:6;14376:35;;;14404:6;14376:35;;;;;;:::i;:::-;;;;;;;;14429:4;14422:11;;14040:401;;;;;:::o;15478:222::-;15527:4;15578;;;;;;;;;;;15564:18;;:10;:18;;;;:42;;;;;15600:6;;;;;;;;;;;15599:7;15564:42;:70;;;;;15623:11;;;;;;;;;;;15564:70;:128;;;;;15679:13;;15651:9;:24;15669:4;15651:24;;;;;;;;;;;;;;;;:41;;15564:128;15544:148;;15478:222;:::o;15708:2257::-;8541:4;8532:6;;:13;;;;;;;;;;;;;;;;;;15757:16:::1;15776:86;15837:14;;15776:42;15799:18;;15776;;:22;;:42;;;;:::i;:::-;:46;;:86;;;;:::i;:::-;15757:105;;15875:23;15901:100;15999:1;15901:79;15971:8;15901:51;15933:18;;15901:13;;:31;;:51;;;;:::i;:::-;:69;;:79;;;;:::i;:::-;:97;;:100;;;;:::i;:::-;15875:126;;16014:20;16037:34;16055:15;16037:13;;:17;;:34;;;;:::i;:::-;16014:57;;6738:1;6800:2;:13;;;;:::i;:::-;6786:11;:27;;;;:::i;:::-;16082:11;:26;16102:4;16082:26;;;;;;;;;;;;;;;:43;16117:6;;;;;;;;;;;16082:43;;;;;;;;;;;;;;;:58;;;;16151:21;16189:1;16175:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16151:40;;16220:4;16202;16207:1;16202:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;16246:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16236:4;16241:1;16236:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;16270:21;16294;16270:45;;16328:6;;;;;;;;;;;:57;;;16400:12;16427:1;16443:4;16470;16490:15;16328:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16529:17;16549:40;16575:13;16549:21;:25;;:40;;;;:::i;:::-;16529:60;;16602:19;16624:39;16637:25;16660:1;16637:18;;:22;;:25;;;;:::i;:::-;16624:8;:12;;:39;;;;:::i;:::-;16602:61;;16676:26;16705:99;16802:1;16705:78;16771:11;16705:47;16733:18;;16705:9;:27;;:47;;;;:::i;:::-;:65;;:78;;;;:::i;:::-;:96;;:99;;;;:::i;:::-;16676:128;;16837:1;16819:15;:19;16815:364;;;16855:6;;;;;;;;;;;:22;;;16885:18;16931:4;16955:15;16989:1;17009::::0;17029:21:::1;;;;;;;;;;;17069:15;16855:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17119:48;17131:18;17151:15;17119:48;;;;;;;:::i;:::-;;;;;;;;16815:364;17191:22;17216:46;17250:11;17216:29;17230:14;;17216:9;:13;;:29;;;;:::i;:::-;:33;;:46;;;;:::i;:::-;17191:71;;17294:1;17277:14;:18;17273:349;;;17312:22;17351:1;17337:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17312:41;;17379:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17368:5;17374:1;17368:8;;;;;;;;:::i;:::-;;;;;;;:24;;;;;;;;;::::0;::::1;17426:9;;;;;;;;;;;17407:5;17413:1;17407:8;;;;;;;;:::i;:::-;;;;;;;:29;;;;;;;;;::::0;::::1;17453:6;;;;;;;;;;;:57;;;17536:14;17566:1;17569:5;17576:16;;;;;;;;;;;17594:15;17453:157;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;17297:325;17273:349;17634:26;17663:74;17715:11;17663:33;17677:18;;17663:9;:13;;:33;;;;:::i;:::-;:37;;:74;;;;:::i;:::-;17634:103;;17773:1;17752:18;:22;17748:113;;;17799:20;;;;;;;;;;;17791:38;;:58;17830:18;17791:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;17748:113;17894:1;17873:18;:22;;;;17927:1;17906:18;:22;;;;17956:1;17939:14;:18;;;;15746:2219;;;;;;;;;;8577:5:::0;8568:6;;:14;;;;;;;;;;;;;;;;;;15708:2257::o;2783:98::-;2841:7;2872:1;2868;:5;;;;:::i;:::-;2861:12;;2783:98;;;;:::o;2889:::-;2947:7;2978:1;2974;:5;;;;:::i;:::-;2967:12;;2889:98;;;;:::o;2677:::-;2735:7;2766:1;2762;:5;;;;:::i;:::-;2755:12;;2677:98;;;;:::o;14449:204::-;14548:39;14577:9;14548;:24;14566:4;14548:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;14521:9;:24;14539:4;14521:24;;;;;;;;;;;;;;;:66;;;;14628:4;14603:42;;14612:6;14603:42;;;14635:9;14603:42;;;;;;:::i;:::-;;;;;;;;14449:204;;:::o;14661:374::-;14742:49;14776:14;;14742:29;14754:16;;14742:7;:11;;:29;;;;:::i;:::-;:33;;:49;;;;:::i;:::-;14720:18;;:71;;;;;;;:::i;:::-;;;;;;;;14824:49;14858:14;;14824:29;14836:16;;14824:7;:11;;:29;;;;:::i;:::-;:33;;:49;;;;:::i;:::-;14802:18;;:71;;;;;;;:::i;:::-;;;;;;;;14902:45;14932:14;;14902:25;14914:12;;14902:7;:11;;:25;;;;:::i;:::-;:29;;:45;;;;:::i;:::-;14884:14;;:63;;;;;;;:::i;:::-;;;;;;;;14979:48;15012:14;;14979:28;14991:15;;14979:7;:11;;:28;;;;:::i;:::-;:32;;:48;;;;:::i;:::-;14958:17;;:69;;;;;;;:::i;:::-;;;;;;;;14661:374;:::o;15043:427::-;15125:74;15174:14;;15125:30;15137:17;;15125:7;:11;;:30;;;;:::i;:::-;:34;;:74;;;;:::i;:::-;15103:18;;:96;;;;;;;:::i;:::-;;;;;;;;15232:74;15281:14;;15232:30;15244:17;;15232:7;:11;;:30;;;;:::i;:::-;:34;;:74;;;;:::i;:::-;15210:18;;:96;;;;;;;:::i;:::-;;;;;;;;15335:46;15366:14;;15335:26;15347:13;;15335:7;:11;;:26;;;;:::i;:::-;:30;;:46;;;;:::i;:::-;15317:14;;:64;;;;;;;:::i;:::-;;;;;;;;15413:49;15447:14;;15413:29;15425:16;;15413:7;:11;;:29;;;;:::i;:::-;:33;;:49;;;;:::i;:::-;15392:17;;:70;;;;;;;:::i;:::-;;;;;;;;15043:427;:::o;17973:1135::-;8541:4;8532:6;;:13;;;;;;;;;;;;;;;;;;18026:20:::1;18049:17;;18026:40;;6738:1;6800:2;:13;;;;:::i;:::-;6786:11;:27;;;;:::i;:::-;18077:11;:26;18097:4;18077:26;;;;;;;;;;;;;;;:43;18112:6;;;;;;;;;;;18077:43;;;;;;;;;;;;;;;:58;;;;18146:21;18184:1;18170:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18146:40;;18215:4;18197;18202:1;18197:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;18241:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18231:4;18236:1;18231:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;18265:21;18289;18265:45;;18323:6;;;;;;;;;;;:57;;;18395:12;18422:1;18438:4;18465;18485:15;18323:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18524:17;18544:40;18570:13;18544:21;:25;;:40;;;;:::i;:::-;18524:60;;18595:21;18647:1;18631:6;:13;;;;:17;18627:440;;;18693:6;:13;;;;18681:9;:25;;;;:::i;:::-;18665:41;;18726:9;18721:117;18741:6;:13;;;;18737:1;:17;18721:117;;;18788:6;18795:1;18788:9;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18780:27;;:42;18808:13;18780:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;18756:3;;;;;:::i;:::-;;;;18721:117;;;;18627:440;;;18898:1;18886:9;:13;;;;:::i;:::-;18870:29;;18919:9;18947:1;18931:6;:13;;;;:17;;;;:::i;:::-;18919:29;;18914:142;18971:1;18955:6;:13;;;;:17;;;;:::i;:::-;18950:1;:22;18914:142;;19006:6;19013:1;19006:9;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18998:27;;:42;19026:13;18998:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;18974:3;;;;;:::i;:::-;;;;18914:142;;;;18627:440;19099:1;19079:17;:21;;;;18015:1093;;;;;8577:5:::0;8568:6;;:14;;;;;;;;;;;;;;;;;;17973:1135::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:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1832:75::-;1865:6;1898:2;1892:9;1882:19;;1832:75;:::o;1913:117::-;2022:1;2019;2012:12;2036:117;2145:1;2142;2135:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:117::-;3955:1;3952;3945:12;3969:180;4017:77;4014:1;4007:88;4114:4;4111:1;4104:15;4138:4;4135:1;4128:15;4155:281;4238:27;4260:4;4238:27;:::i;:::-;4230:6;4226:40;4368:6;4356:10;4353:22;4332:18;4320:10;4317:34;4314:62;4311:88;;;4379:18;;:::i;:::-;4311:88;4419:10;4415:2;4408:22;4198:238;4155:281;;:::o;4442:129::-;4476:6;4503:20;;:::i;:::-;4493:30;;4532:33;4560:4;4552:6;4532:33;:::i;:::-;4442:129;;;:::o;4577:311::-;4654:4;4744:18;4736:6;4733:30;4730:56;;;4766:18;;:::i;:::-;4730:56;4816:4;4808:6;4804:17;4796:25;;4876:4;4870;4866:15;4858:23;;4577:311;;;:::o;4894:117::-;5003:1;5000;4993:12;5034:710;5130:5;5155:81;5171:64;5228:6;5171:64;:::i;:::-;5155:81;:::i;:::-;5146:90;;5256:5;5285:6;5278:5;5271:21;5319:4;5312:5;5308:16;5301:23;;5372:4;5364:6;5360:17;5352:6;5348:30;5401:3;5393:6;5390:15;5387:122;;;5420:79;;:::i;:::-;5387:122;5535:6;5518:220;5552:6;5547:3;5544:15;5518:220;;;5627:3;5656:37;5689:3;5677:10;5656:37;:::i;:::-;5651:3;5644:50;5723:4;5718:3;5714:14;5707:21;;5594:144;5578:4;5573:3;5569:14;5562:21;;5518:220;;;5522:21;5136:608;;5034:710;;;;;:::o;5767:370::-;5838:5;5887:3;5880:4;5872:6;5868:17;5864:27;5854:122;;5895:79;;:::i;:::-;5854:122;6012:6;5999:20;6037:94;6127:3;6119:6;6112:4;6104:6;6100:17;6037:94;:::i;:::-;6028:103;;5844:293;5767:370;;;;:::o;6143:116::-;6213:21;6228:5;6213:21;:::i;:::-;6206:5;6203:32;6193:60;;6249:1;6246;6239:12;6193:60;6143:116;:::o;6265:133::-;6308:5;6346:6;6333:20;6324:29;;6362:30;6386:5;6362:30;:::i;:::-;6265:133;;;;:::o;6404:678::-;6494:6;6502;6551:2;6539:9;6530:7;6526:23;6522:32;6519:119;;;6557:79;;:::i;:::-;6519:119;6705:1;6694:9;6690:17;6677:31;6735:18;6727:6;6724:30;6721:117;;;6757:79;;:::i;:::-;6721:117;6862:78;6932:7;6923:6;6912:9;6908:22;6862:78;:::i;:::-;6852:88;;6648:302;6989:2;7015:50;7057:7;7048:6;7037:9;7033:22;7015:50;:::i;:::-;7005:60;;6960:115;6404:678;;;;;:::o;7088:118::-;7175:24;7193:5;7175:24;:::i;:::-;7170:3;7163:37;7088:118;;:::o;7212:222::-;7305:4;7343:2;7332:9;7328:18;7320:26;;7356:71;7424:1;7413:9;7409:17;7400:6;7356:71;:::i;:::-;7212:222;;;;:::o;7440:619::-;7517:6;7525;7533;7582:2;7570:9;7561:7;7557:23;7553:32;7550:119;;;7588:79;;:::i;:::-;7550:119;7708:1;7733:53;7778:7;7769:6;7758:9;7754:22;7733:53;:::i;:::-;7723:63;;7679:117;7835:2;7861:53;7906:7;7897:6;7886:9;7882:22;7861:53;:::i;:::-;7851:63;;7806:118;7963:2;7989:53;8034:7;8025:6;8014:9;8010:22;7989:53;:::i;:::-;7979:63;;7934:118;7440:619;;;;;:::o;8065:329::-;8124:6;8173:2;8161:9;8152:7;8148:23;8144:32;8141:119;;;8179:79;;:::i;:::-;8141:119;8299:1;8324:53;8369:7;8360:6;8349:9;8345:22;8324:53;:::i;:::-;8314:63;;8270:117;8065:329;;;;:::o;8400:::-;8459:6;8508:2;8496:9;8487:7;8483:23;8479:32;8476:119;;;8514:79;;:::i;:::-;8476:119;8634:1;8659:53;8704:7;8695:6;8684:9;8680:22;8659:53;:::i;:::-;8649:63;;8605:117;8400:329;;;;:::o;8735:86::-;8770:7;8810:4;8803:5;8799:16;8788:27;;8735:86;;;:::o;8827:112::-;8910:22;8926:5;8910:22;:::i;:::-;8905:3;8898:35;8827:112;;:::o;8945:214::-;9034:4;9072:2;9061:9;9057:18;9049:26;;9085:67;9149:1;9138:9;9134:17;9125:6;9085:67;:::i;:::-;8945:214;;;;:::o;9165:911::-;9260:6;9268;9276;9284;9292;9341:3;9329:9;9320:7;9316:23;9312:33;9309:120;;;9348:79;;:::i;:::-;9309:120;9468:1;9493:53;9538:7;9529:6;9518:9;9514:22;9493:53;:::i;:::-;9483:63;;9439:117;9595:2;9621:53;9666:7;9657:6;9646:9;9642:22;9621:53;:::i;:::-;9611:63;;9566:118;9723:2;9749:53;9794:7;9785:6;9774:9;9770:22;9749:53;:::i;:::-;9739:63;;9694:118;9851:2;9877:53;9922:7;9913:6;9902:9;9898:22;9877:53;:::i;:::-;9867:63;;9822:118;9979:3;10006:53;10051:7;10042:6;10031:9;10027:22;10006:53;:::i;:::-;9996:63;;9950:119;9165:911;;;;;;;;:::o;10082:468::-;10147:6;10155;10204:2;10192:9;10183:7;10179:23;10175:32;10172:119;;;10210:79;;:::i;:::-;10172:119;10330:1;10355:53;10400:7;10391:6;10380:9;10376:22;10355:53;:::i;:::-;10345:63;;10301:117;10457:2;10483:50;10525:7;10516:6;10505:9;10501:22;10483:50;:::i;:::-;10473:60;;10428:115;10082:468;;;;;:::o;10556:323::-;10612:6;10661:2;10649:9;10640:7;10636:23;10632:32;10629:119;;;10667:79;;:::i;:::-;10629:119;10787:1;10812:50;10854:7;10845:6;10834:9;10830:22;10812:50;:::i;:::-;10802:60;;10758:114;10556:323;;;;:::o;10885:619::-;10962:6;10970;10978;11027:2;11015:9;11006:7;11002:23;10998:32;10995:119;;;11033:79;;:::i;:::-;10995:119;11153:1;11178:53;11223:7;11214:6;11203:9;11199:22;11178:53;:::i;:::-;11168:63;;11124:117;11280:2;11306:53;11351:7;11342:6;11331:9;11327:22;11306:53;:::i;:::-;11296:63;;11251:118;11408:2;11434:53;11479:7;11470:6;11459:9;11455:22;11434:53;:::i;:::-;11424:63;;11379:118;10885:619;;;;;:::o;11510:474::-;11578:6;11586;11635:2;11623:9;11614:7;11610:23;11606:32;11603:119;;;11641:79;;:::i;:::-;11603:119;11761:1;11786:53;11831:7;11822:6;11811:9;11807:22;11786:53;:::i;:::-;11776:63;;11732:117;11888:2;11914:53;11959:7;11950:6;11939:9;11935:22;11914:53;:::i;:::-;11904:63;;11859:118;11510:474;;;;;:::o;11990:468::-;12055:6;12063;12112:2;12100:9;12091:7;12087:23;12083:32;12080:119;;;12118:79;;:::i;:::-;12080:119;12238:1;12263:50;12305:7;12296:6;12285:9;12281:22;12263:50;:::i;:::-;12253:60;;12209:114;12362:2;12388:53;12433:7;12424:6;12413:9;12409:22;12388:53;:::i;:::-;12378:63;;12333:118;11990:468;;;;;:::o;12464:104::-;12509:7;12538:24;12556:5;12538:24;:::i;:::-;12527:35;;12464:104;;;:::o;12574:138::-;12655:32;12681:5;12655:32;:::i;:::-;12648:5;12645:43;12635:71;;12702:1;12699;12692:12;12635:71;12574:138;:::o;12718:155::-;12772:5;12810:6;12797:20;12788:29;;12826:41;12861:5;12826:41;:::i;:::-;12718:155;;;;:::o;12879:345::-;12946:6;12995:2;12983:9;12974:7;12970:23;12966:32;12963:119;;;13001:79;;:::i;:::-;12963:119;13121:1;13146:61;13199:7;13190:6;13179:9;13175:22;13146:61;:::i;:::-;13136:71;;13092:125;12879:345;;;;:::o;13230:60::-;13258:3;13279:5;13272:12;;13230:60;;;:::o;13296:142::-;13346:9;13379:53;13397:34;13406:24;13424:5;13406:24;:::i;:::-;13397:34;:::i;:::-;13379:53;:::i;:::-;13366:66;;13296:142;;;:::o;13444:126::-;13494:9;13527:37;13558:5;13527:37;:::i;:::-;13514:50;;13444:126;;;:::o;13576:144::-;13644:9;13677:37;13708:5;13677:37;:::i;:::-;13664:50;;13576:144;;;:::o;13726:167::-;13831:55;13880:5;13831:55;:::i;:::-;13826:3;13819:68;13726:167;;:::o;13899:258::-;14010:4;14048:2;14037:9;14033:18;14025:26;;14061:89;14147:1;14136:9;14132:17;14123:6;14061:89;:::i;:::-;13899:258;;;;:::o;14163:156::-;14303:8;14299:1;14291:6;14287:14;14280:32;14163:156;:::o;14325:365::-;14467:3;14488:66;14552:1;14547:3;14488:66;:::i;:::-;14481:73;;14563:93;14652:3;14563:93;:::i;:::-;14681:2;14676:3;14672:12;14665:19;;14325:365;;;:::o;14696:419::-;14862:4;14900:2;14889:9;14885:18;14877:26;;14949:9;14943:4;14939:20;14935:1;14924:9;14920:17;14913:47;14977:131;15103:4;14977:131;:::i;:::-;14969:139;;14696:419;;;:::o;15121:180::-;15169:77;15166:1;15159:88;15266:4;15263:1;15256:15;15290:4;15287:1;15280:15;15307:170;15447:22;15443:1;15435:6;15431:14;15424:46;15307:170;:::o;15483:366::-;15625:3;15646:67;15710:2;15705:3;15646:67;:::i;:::-;15639:74;;15722:93;15811:3;15722:93;:::i;:::-;15840:2;15835:3;15831:12;15824:19;;15483:366;;;:::o;15855:419::-;16021:4;16059:2;16048:9;16044:18;16036:26;;16108:9;16102:4;16098:20;16094:1;16083:9;16079:17;16072:47;16136:131;16262:4;16136:131;:::i;:::-;16128:139;;15855:419;;;:::o;16280:180::-;16328:77;16325:1;16318:88;16425:4;16422:1;16415:15;16449:4;16446:1;16439:15;16466:233;16505:3;16528:24;16546:5;16528:24;:::i;:::-;16519:33;;16574:66;16567:5;16564:77;16561:103;;;16644:18;;:::i;:::-;16561:103;16691:1;16684:5;16680:13;16673:20;;16466:233;;;:::o;16705:102::-;16747:8;16794:5;16791:1;16787:13;16766:34;;16705:102;;;:::o;16813:848::-;16874:5;16881:4;16905:6;16896:15;;16929:5;16920:14;;16943:712;16964:1;16954:8;16951:15;16943:712;;;17059:4;17054:3;17050:14;17044:4;17041:24;17038:50;;;17068:18;;:::i;:::-;17038:50;17118:1;17108:8;17104:16;17101:451;;;17533:4;17526:5;17522:16;17513:25;;17101:451;17583:4;17577;17573:15;17565:23;;17613:32;17636:8;17613:32;:::i;:::-;17601:44;;16943:712;;;16813:848;;;;;;;:::o;17667:1073::-;17721:5;17912:8;17902:40;;17933:1;17924:10;;17935:5;;17902:40;17961:4;17951:36;;17978:1;17969:10;;17980:5;;17951:36;18047:4;18095:1;18090:27;;;;18131:1;18126:191;;;;18040:277;;18090:27;18108:1;18099:10;;18110:5;;;18126:191;18171:3;18161:8;18158:17;18155:43;;;18178:18;;:::i;:::-;18155:43;18227:8;18224:1;18220:16;18211:25;;18262:3;18255:5;18252:14;18249:40;;;18269:18;;:::i;:::-;18249:40;18302:5;;;18040:277;;18426:2;18416:8;18413:16;18407:3;18401:4;18398:13;18394:36;18376:2;18366:8;18363:16;18358:2;18352:4;18349:12;18345:35;18329:111;18326:246;;;18482:8;18476:4;18472:19;18463:28;;18517:3;18510:5;18507:14;18504:40;;;18524:18;;:::i;:::-;18504:40;18557:5;;18326:246;18597:42;18635:3;18625:8;18619:4;18616:1;18597:42;:::i;:::-;18582:57;;;;18671:4;18666:3;18662:14;18655:5;18652:25;18649:51;;;18680:18;;:::i;:::-;18649:51;18729:4;18722:5;18718:16;18709:25;;17667:1073;;;;;;:::o;18746:281::-;18804:5;18828:23;18846:4;18828:23;:::i;:::-;18820:31;;18872:25;18888:8;18872:25;:::i;:::-;18860:37;;18916:104;18953:66;18943:8;18937:4;18916:104;:::i;:::-;18907:113;;18746:281;;;;:::o;19033:348::-;19073:7;19096:20;19114:1;19096:20;:::i;:::-;19091:25;;19130:20;19148:1;19130:20;:::i;:::-;19125:25;;19318:1;19250:66;19246:74;19243:1;19240:81;19235:1;19228:9;19221:17;19217:105;19214:131;;;19325:18;;:::i;:::-;19214:131;19373:1;19370;19366:9;19355:20;;19033:348;;;;:::o;19387:165::-;19527:17;19523:1;19515:6;19511:14;19504:41;19387:165;:::o;19558:366::-;19700:3;19721:67;19785:2;19780:3;19721:67;:::i;:::-;19714:74;;19797:93;19886:3;19797:93;:::i;:::-;19915:2;19910:3;19906:12;19899:19;;19558:366;;;:::o;19930:419::-;20096:4;20134:2;20123:9;20119:18;20111:26;;20183:9;20177:4;20173:20;20169:1;20158:9;20154:17;20147:47;20211:131;20337:4;20211:131;:::i;:::-;20203:139;;19930:419;;;:::o;20355:134::-;20413:9;20446:37;20477:5;20446:37;:::i;:::-;20433:50;;20355:134;;;:::o;20495:147::-;20590:45;20629:5;20590:45;:::i;:::-;20585:3;20578:58;20495:147;;:::o;20648:238::-;20749:4;20787:2;20776:9;20772:18;20764:26;;20800:79;20876:1;20865:9;20861:17;20852:6;20800:79;:::i;:::-;20648:238;;;;:::o;20892:162::-;21032:14;21028:1;21020:6;21016:14;21009:38;20892:162;:::o;21060:366::-;21202:3;21223:67;21287:2;21282:3;21223:67;:::i;:::-;21216:74;;21299:93;21388:3;21299:93;:::i;:::-;21417:2;21412:3;21408:12;21401:19;;21060:366;;;:::o;21432:419::-;21598:4;21636:2;21625:9;21621:18;21613:26;;21685:9;21679:4;21675:20;21671:1;21660:9;21656:17;21649:47;21713:131;21839:4;21713:131;:::i;:::-;21705:139;;21432:419;;;:::o;21857:167::-;21997:19;21993:1;21985:6;21981:14;21974:43;21857:167;:::o;22030:366::-;22172:3;22193:67;22257:2;22252:3;22193:67;:::i;:::-;22186:74;;22269:93;22358:3;22269:93;:::i;:::-;22387:2;22382:3;22378:12;22371:19;;22030:366;;;:::o;22402:419::-;22568:4;22606:2;22595:9;22591:18;22583:26;;22655:9;22649:4;22645:20;22641:1;22630:9;22626:17;22619:47;22683:131;22809:4;22683:131;:::i;:::-;22675:139;;22402:419;;;:::o;22827:169::-;22967:21;22963:1;22955:6;22951:14;22944:45;22827:169;:::o;23002:366::-;23144:3;23165:67;23229:2;23224:3;23165:67;:::i;:::-;23158:74;;23241:93;23330:3;23241:93;:::i;:::-;23359:2;23354:3;23350:12;23343:19;;23002:366;;;:::o;23374:419::-;23540:4;23578:2;23567:9;23563:18;23555:26;;23627:9;23621:4;23617:20;23613:1;23602:9;23598:17;23591:47;23655:131;23781:4;23655:131;:::i;:::-;23647:139;;23374:419;;;:::o;23799:174::-;23939:26;23935:1;23927:6;23923:14;23916:50;23799:174;:::o;23979:366::-;24121:3;24142:67;24206:2;24201:3;24142:67;:::i;:::-;24135:74;;24218:93;24307:3;24218:93;:::i;:::-;24336:2;24331:3;24327:12;24320:19;;23979:366;;;:::o;24351:419::-;24517:4;24555:2;24544:9;24540:18;24532:26;;24604:9;24598:4;24594:20;24590:1;24579:9;24575:17;24568:47;24632:131;24758:4;24632:131;:::i;:::-;24624:139;;24351:419;;;:::o;24776:305::-;24816:3;24835:20;24853:1;24835:20;:::i;:::-;24830:25;;24869:20;24887:1;24869:20;:::i;:::-;24864:25;;25023:1;24955:66;24951:74;24948:1;24945:81;24942:107;;;25029:18;;:::i;:::-;24942:107;25073:1;25070;25066:9;25059:16;;24776:305;;;;:::o;25087:143::-;25144:5;25175:6;25169:13;25160:22;;25191:33;25218:5;25191:33;:::i;:::-;25087:143;;;;:::o;25236:351::-;25306:6;25355:2;25343:9;25334:7;25330:23;25326:32;25323:119;;;25361:79;;:::i;:::-;25323:119;25481:1;25506:64;25562:7;25553:6;25542:9;25538:22;25506:64;:::i;:::-;25496:74;;25452:128;25236:351;;;;:::o;25593:85::-;25638:7;25667:5;25656:16;;25593:85;;;:::o;25684:158::-;25742:9;25775:61;25793:42;25802:32;25828:5;25802:32;:::i;:::-;25793:42;:::i;:::-;25775:61;:::i;:::-;25762:74;;25684:158;;;:::o;25848:147::-;25943:45;25982:5;25943:45;:::i;:::-;25938:3;25931:58;25848:147;;:::o;26001:114::-;26068:6;26102:5;26096:12;26086:22;;26001:114;;;:::o;26121:184::-;26220:11;26254:6;26249:3;26242:19;26294:4;26289:3;26285:14;26270:29;;26121:184;;;;:::o;26311:132::-;26378:4;26401:3;26393:11;;26431:4;26426:3;26422:14;26414:22;;26311:132;;;:::o;26449:108::-;26526:24;26544:5;26526:24;:::i;:::-;26521:3;26514:37;26449:108;;:::o;26563:179::-;26632:10;26653:46;26695:3;26687:6;26653:46;:::i;:::-;26731:4;26726:3;26722:14;26708:28;;26563:179;;;;:::o;26748:113::-;26818:4;26850;26845:3;26841:14;26833:22;;26748:113;;;:::o;26897:732::-;27016:3;27045:54;27093:5;27045:54;:::i;:::-;27115:86;27194:6;27189:3;27115:86;:::i;:::-;27108:93;;27225:56;27275:5;27225:56;:::i;:::-;27304:7;27335:1;27320:284;27345:6;27342:1;27339:13;27320:284;;;27421:6;27415:13;27448:63;27507:3;27492:13;27448:63;:::i;:::-;27441:70;;27534:60;27587:6;27534:60;:::i;:::-;27524:70;;27380:224;27367:1;27364;27360:9;27355:14;;27320:284;;;27324:14;27620:3;27613:10;;27021:608;;;26897:732;;;;:::o;27635:831::-;27898:4;27936:3;27925:9;27921:19;27913:27;;27950:71;28018:1;28007:9;28003:17;27994:6;27950:71;:::i;:::-;28031:80;28107:2;28096:9;28092:18;28083:6;28031:80;:::i;:::-;28158:9;28152:4;28148:20;28143:2;28132:9;28128:18;28121:48;28186:108;28289:4;28280:6;28186:108;:::i;:::-;28178:116;;28304:72;28372:2;28361:9;28357:18;28348:6;28304:72;:::i;:::-;28386:73;28454:3;28443:9;28439:19;28430:6;28386:73;:::i;:::-;27635:831;;;;;;;;:::o;28472:807::-;28721:4;28759:3;28748:9;28744:19;28736:27;;28773:71;28841:1;28830:9;28826:17;28817:6;28773:71;:::i;:::-;28854:72;28922:2;28911:9;28907:18;28898:6;28854:72;:::i;:::-;28936:80;29012:2;29001:9;28997:18;28988:6;28936:80;:::i;:::-;29026;29102:2;29091:9;29087:18;29078:6;29026:80;:::i;:::-;29116:73;29184:3;29173:9;29169:19;29160:6;29116:73;:::i;:::-;29199;29267:3;29256:9;29252:19;29243:6;29199:73;:::i;:::-;28472:807;;;;;;;;;:::o;29285:143::-;29342:5;29373:6;29367:13;29358:22;;29389:33;29416:5;29389:33;:::i;:::-;29285:143;;;;:::o;29434:663::-;29522:6;29530;29538;29587:2;29575:9;29566:7;29562:23;29558:32;29555:119;;;29593:79;;:::i;:::-;29555:119;29713:1;29738:64;29794:7;29785:6;29774:9;29770:22;29738:64;:::i;:::-;29728:74;;29684:128;29851:2;29877:64;29933:7;29924:6;29913:9;29909:22;29877:64;:::i;:::-;29867:74;;29822:129;29990:2;30016:64;30072:7;30063:6;30052:9;30048:22;30016:64;:::i;:::-;30006:74;;29961:129;29434:663;;;;;:::o;30103:332::-;30224:4;30262:2;30251:9;30247:18;30239:26;;30275:71;30343:1;30332:9;30328:17;30319:6;30275:71;:::i;:::-;30356:72;30424:2;30413:9;30409:18;30400:6;30356:72;:::i;:::-;30103:332;;;;;:::o;30441:720::-;30676:4;30714:3;30703:9;30699:19;30691:27;;30728:79;30804:1;30793:9;30789:17;30780:6;30728:79;:::i;:::-;30854:9;30848:4;30844:20;30839:2;30828:9;30824:18;30817:48;30882:108;30985:4;30976:6;30882:108;:::i;:::-;30874:116;;31000:72;31068:2;31057:9;31053:18;31044:6;31000:72;:::i;:::-;31082;31150:2;31139:9;31135:18;31126:6;31082:72;:::i;:::-;30441:720;;;;;;;:::o;31167:180::-;31215:77;31212:1;31205:88;31312:4;31309:1;31302:15;31336:4;31333:1;31326:15;31353:185;31393:1;31410:20;31428:1;31410:20;:::i;:::-;31405:25;;31444:20;31462:1;31444:20;:::i;:::-;31439:25;;31483:1;31473:35;;31488:18;;:::i;:::-;31473:35;31530:1;31527;31523:9;31518:14;;31353:185;;;;:::o;31544:191::-;31584:4;31604:20;31622:1;31604:20;:::i;:::-;31599:25;;31638:20;31656:1;31638:20;:::i;:::-;31633:25;;31677:1;31674;31671:8;31668:34;;;31682:18;;:::i;:::-;31668:34;31727:1;31724;31720:9;31712:17;;31544:191;;;;:::o;31741:171::-;31780:3;31803:24;31821:5;31803:24;:::i;:::-;31794:33;;31849:4;31842:5;31839:15;31836:41;;;31857:18;;:::i;:::-;31836:41;31904:1;31897:5;31893:13;31886:20;;31741:171;;;:::o
Swarm Source
ipfs://49049bc16ff87addec1fecfd89078b80bb2557302223918b4243754967e2e3c9
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.