Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 ALERTIFY
Holders
133
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.477693281 ALERTIFYValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ALERTIFY
Compiler Version
v0.8.15+commit.e14f2714
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-10-02 */ // https://alertifyeth.com/ // https://twitter.com/AlertifyETH // https://t.me/AlertifyETH // SPDX-License-Identifier: MIT pragma solidity ^0.8.15; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface ERC20 { 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 getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } abstract contract Ownable { address internal 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 renounceOwnership() public onlyOwner { owner = address(0); emit OwnershipTransferred(address(0)); } event OwnershipTransferred(address owner); } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract ALERTIFY is ERC20, Ownable { using SafeMath for uint256; address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; address DEAD = 0x000000000000000000000000000000000000dEaD; string constant _name = "ALERTIFY"; string constant _symbol = "ALERTIFY"; uint8 constant _decimals = 9; uint256 _totalSupply = 1_000_000_000 * (10 ** _decimals); uint256 public _maxWalletAmount = _totalSupply; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) isFeeExempt; mapping (address => bool) isTxLimitExempt; mapping(address => bool) public isBot; uint256 liquidityFee = 1; uint256 marketingFee = 3; uint256 totalFee = liquidityFee + marketingFee; uint256 feeDenominator = 100; address public marketingFeeReceiver = msg.sender; IDEXRouter public router; address public pair; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply / 1000 * 5; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () Ownable(msg.sender) { router = IDEXRouter(routerAdress); pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this)); _allowances[address(this)][address(router)] = type(uint256).max; address _owner = owner; isFeeExempt[_owner] = true; isTxLimitExempt[_owner] = true; isTxLimitExempt[DEAD] = true; _balances[_owner] = _totalSupply; emit Transfer(address(0), _owner, _totalSupply); } receive() external payable { } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return owner; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { require(!isBot[sender], "Bot Address"); if(inSwap){ return _basicTransfer(sender, recipient, amount); } if (recipient != pair && recipient != DEAD) { require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the bag size."); } if(shouldSwapBack()){ swapBack(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, amount) : amount; _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 shouldTakeFee(address sender) internal view returns (bool) { return !isFeeExempt[sender]; } function takeFee(address sender, uint256 amount) internal returns (uint256) { uint256 feeAmount = amount.mul(totalFee).div(feeDenominator); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function swapBack() internal swapping { uint256 contractTokenBalance = _balances[address(this)]; if (contractTokenBalance >= swapThreshold*2) contractTokenBalance = swapThreshold*2; uint256 amountToLiquify = contractTokenBalance.mul(liquidityFee).div(totalFee).div(2); uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify); 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 amountETH = address(this).balance.sub(balanceBefore); uint256 totalETHFee = totalFee.sub(liquidityFee.div(2)); uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2); uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee); (bool MarketingSuccess, /* bytes memory data */) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}(""); require(MarketingSuccess, "receiver rejected ETH transfer"); if(amountToLiquify > 0){ router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, marketingFeeReceiver, block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } } function buyTokens(uint256 amount, address to) internal swapping { address[] memory path = new address[](2); path[0] = router.WETH(); path[1] = address(this); router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}( 0, path, to, block.timestamp ); } function clearStuckBalance() external { payable(marketingFeeReceiver).transfer(address(this).balance); } function setWalletLimit(uint256 amountPercent) external onlyOwner { _maxWalletAmount = (_totalSupply * amountPercent ) / 100; } function swapStatus (bool status) external onlyOwner { swapEnabled = status; } function isBots(address botAddress, bool status) external onlyOwner { isBot[botAddress] = status; } function areBots(address[] memory bots_, bool status) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { isBot[bots_[i]] = status; } } function setFees(uint256 _MarketingFee, uint256 _liquidityFee) external onlyOwner { marketingFee = _MarketingFee; liquidityFee = _liquidityFee; totalFee = liquidityFee + marketingFee; require(totalFee <= 90, "Must keep fees at 90% or less"); } function setThreshold(uint256 _treshold) external onlyOwner { swapThreshold = _treshold; } function setFeeReceivers(address _marketingFeeReceiver) external onlyOwner { marketingFeeReceiver = _marketingFeeReceiver; } function Lifttax() external { require (address(this).balance >= 5000000000000000000); marketingFee = 0; liquidityFee = 0; totalFee = liquidityFee + marketingFee; } event AutoLiquify(uint256 amountETH, uint256 amountBOG); }
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":"amountETH","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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Lifttax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"areBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","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":"botAddress","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"isBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_MarketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_treshold","type":"uint256"}],"name":"setThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"swapStatus","outputs":[],"stateMutability":"nonpayable","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620000ac919062000869565b633b9aca00620000bd9190620008ba565b6003556003546004556001600a556003600b55600b54600a54620000e291906200091b565b600c556064600d5533600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060146101000a81548160ff02191690831515021790555060056103e86003546200015a9190620009a7565b620001669190620008ba565b6011553480156200017657600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200028a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b0919062000a49565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000339573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035f919062000a49565b306040518363ffffffff1660e01b81526004016200037f92919062000a8c565b6020604051808303816000875af11580156200039f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c5919062000a49565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600354600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600354604051620006c0919062000aca565b60405180910390a35062000ae7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200075d57808604811115620007355762000734620006cf565b5b6001851615620007455780820291505b80810290506200075585620006fe565b945062000715565b94509492505050565b6000826200077857600190506200084b565b816200078857600090506200084b565b8160018114620007a15760028114620007ac57620007e2565b60019150506200084b565b60ff841115620007c157620007c0620006cf565b5b8360020a915084821115620007db57620007da620006cf565b5b506200084b565b5060208310610133831016604e8410600b84101617156200081c5782820a905083811115620008165762000815620006cf565b5b6200084b565b6200082b84848460016200070b565b92509050818404811115620008455762000844620006cf565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620008768262000852565b915062000883836200085c565b9250620008b27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000766565b905092915050565b6000620008c78262000852565b9150620008d48362000852565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000910576200090f620006cf565b5b828202905092915050565b6000620009288262000852565b9150620009358362000852565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200096d576200096c620006cf565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620009b48262000852565b9150620009c18362000852565b925082620009d457620009d362000978565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a1182620009e4565b9050919050565b62000a238162000a04565b811462000a2f57600080fd5b50565b60008151905062000a438162000a18565b92915050565b60006020828403121562000a625762000a61620009df565b5b600062000a728482850162000a32565b91505092915050565b62000a868162000a04565b82525050565b600060408201905062000aa3600083018562000a7b565b62000ab2602083018462000a7b565b9392505050565b62000ac48162000852565b82525050565b600060208201905062000ae1600083018462000ab9565b92915050565b6131018062000af76000396000f3fe6080604052600436106101c65760003560e01c806370a08231116100f7578063a8aa1b3111610095578063e01bb68811610064578063e01bb6881461064f578063e96fada214610678578063f1d5f517146106a3578063f887ea40146106cc576101cd565b8063a8aa1b3114610581578063a9059cbb146105ac578063d05b5a00146105e9578063dd62ed3e14610612576101cd565b8063893d20e8116100d1578063893d20e8146104eb57806395d89b4114610516578063960bfe0414610541578063a890d2e81461056a576101cd565b806370a082311461046e578063715018a6146104ab5780637e26d19f146104c2576101cd565b80632f54bf6e116101645780633bbac5791161013e5780633bbac5791461039e578063571ac8b0146103db5780636c0a24eb146104185780636ddd171314610443576101cd565b80632f54bf6e1461031f578063313ce5671461035c578063364333f414610387576101cd565b80630b78f9c0116101a05780630b78f9c014610265578063144eef071461028e57806318160ddd146102b757806323b872dd146102e2576101cd565b80630445b667146101d257806306fdde03146101fd578063095ea7b314610228576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106f7565b6040516101f491906122a5565b60405180910390f35b34801561020957600080fd5b506102126106fd565b60405161021f9190612359565b60405180910390f35b34801561023457600080fd5b5061024f600480360381019061024a9190612419565b61073a565b60405161025c9190612474565b60405180910390f35b34801561027157600080fd5b5061028c6004803603810190610287919061248f565b61082c565b005b34801561029a57600080fd5b506102b560048036038101906102b09190612643565b6108e2565b005b3480156102c357600080fd5b506102cc6109bf565b6040516102d991906122a5565b60405180910390f35b3480156102ee57600080fd5b506103096004803603810190610304919061269f565b6109c9565b6040516103169190612474565b60405180910390f35b34801561032b57600080fd5b50610346600480360381019061034191906126f2565b610bc9565b6040516103539190612474565b60405180910390f35b34801561036857600080fd5b50610371610c22565b60405161037e919061273b565b60405180910390f35b34801561039357600080fd5b5061039c610c2b565b005b3480156103aa57600080fd5b506103c560048036038101906103c091906126f2565b610c96565b6040516103d29190612474565b60405180910390f35b3480156103e757600080fd5b5061040260048036038101906103fd91906126f2565b610cb6565b60405161040f9190612474565b60405180910390f35b34801561042457600080fd5b5061042d610ce9565b60405161043a91906122a5565b60405180910390f35b34801561044f57600080fd5b50610458610cef565b6040516104659190612474565b60405180910390f35b34801561047a57600080fd5b50610495600480360381019061049091906126f2565b610d02565b6040516104a291906122a5565b60405180910390f35b3480156104b757600080fd5b506104c0610d4b565b005b3480156104ce57600080fd5b506104e960048036038101906104e49190612756565b610e0e565b005b3480156104f757600080fd5b50610500610e73565b60405161050d9190612792565b60405180910390f35b34801561052257600080fd5b5061052b610e9c565b6040516105389190612359565b60405180910390f35b34801561054d57600080fd5b50610568600480360381019061056391906127ad565b610ed9565b005b34801561057657600080fd5b5061057f610f2b565b005b34801561058d57600080fd5b50610596610f68565b6040516105a39190612792565b60405180910390f35b3480156105b857600080fd5b506105d360048036038101906105ce9190612419565b610f8e565b6040516105e09190612474565b60405180910390f35b3480156105f557600080fd5b50610610600480360381019061060b91906127da565b610fa3565b005b34801561061e57600080fd5b506106396004803603810190610634919061281a565b611046565b60405161064691906122a5565b60405180910390f35b34801561065b57600080fd5b50610676600480360381019061067191906126f2565b6110cd565b005b34801561068457600080fd5b5061068d611159565b60405161069a9190612792565b60405180910390f35b3480156106af57600080fd5b506106ca60048036038101906106c591906127ad565b61117f565b005b3480156106d857600080fd5b506106e16111ea565b6040516106ee91906128b9565b60405180910390f35b60115481565b60606040518060400160405280600881526020017f414c455254494659000000000000000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161081a91906122a5565b60405180910390a36001905092915050565b61083533610bc9565b610874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086b90612920565b60405180910390fd5b81600b8190555080600a81905550600b54600a54610892919061296f565b600c81905550605a600c5411156108de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d590612a11565b60405180910390fd5b5050565b6108eb33610bc9565b61092a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092190612920565b60405180910390fd5b60005b82518110156109ba57816009600085848151811061094e5761094d612a31565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806109b290612a60565b91505061092d565b505050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610bb557610b34826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112109092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610bc0848484611274565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610c93573d6000803e3d6000fd5b50565b60096020528060005260406000206000915054906101000a900460ff1681565b6000610ce2827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61073a565b9050919050565b60045481565b601060149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d5433610bc9565b610d93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8a90612920565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610e049190612792565b60405180910390a1565b610e1733610bc9565b610e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4d90612920565b60405180910390fd5b80601060146101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f414c455254494659000000000000000000000000000000000000000000000000815250905090565b610ee233610bc9565b610f21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1890612920565b60405180910390fd5b8060118190555050565b674563918244f40000471015610f4057600080fd5b6000600b819055506000600a81905550600b54600a54610f60919061296f565b600c81905550565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610f9b338484611274565b905092915050565b610fac33610bc9565b610feb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe290612920565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110d633610bc9565b611115576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110c90612920565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61118833610bc9565b6111c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111be90612920565b60405180910390fd5b6064816003546111d79190612aa8565b6111e19190612b31565b60048190555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290611258576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124f9190612359565b60405180910390fd5b50600083856112679190612b62565b9050809150509392505050565b6000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611303576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fa90612be2565b60405180910390fd5b601260009054906101000a900460ff161561132a576113238484846116ca565b90506116c3565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113d65750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156114bf57600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061147f575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147c919061296f565b11155b6114be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b590612c74565b60405180910390fd5b5b6114c761189d565b156114d5576114d4611974565b5b61155e826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112109092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006115ac85611f22565b6115b657826115c1565b6115c08584611f79565b5b905061161581600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120bd90919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116b591906122a5565b60405180910390a360019150505b9392505050565b6000611755826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112109092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117ea82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120bd90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161188a91906122a5565b60405180910390a3600190509392505050565b6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561190a5750601260009054906101000a900460ff16155b80156119225750601060149054906101000a900460ff165b801561196f5750601154600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601260006101000a81548160ff0219169083151502179055506000600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060026011546119e29190612aa8565b81106119fa5760026011546119f79190612aa8565b90505b6000611a386002611a2a600c54611a1c600a548761211b90919063ffffffff16565b61219590919063ffffffff16565b61219590919063ffffffff16565b90506000611a4f82846121df90919063ffffffff16565b90506000600267ffffffffffffffff811115611a6e57611a6d6124d4565b5b604051908082528060200260200182016040528015611a9c5781602001602082028036833780820191505090505b5090503081600081518110611ab457611ab3612a31565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7f9190612ca9565b81600181518110611b9357611b92612a31565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401611c36959493929190612dcf565b600060405180830381600087803b158015611c5057600080fd5b505af1158015611c64573d6000803e3d6000fd5b505050506000611c7d82476121df90919063ffffffff16565b90506000611cab611c9a6002600a5461219590919063ffffffff16565b600c546121df90919063ffffffff16565b90506000611ce96002611cdb84611ccd600a548861211b90919063ffffffff16565b61219590919063ffffffff16565b61219590919063ffffffff16565b90506000611d1483611d06600b548761211b90919063ffffffff16565b61219590919063ffffffff16565b90506000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051611d6290612e5a565b600060405180830381858888f193505050503d8060008114611da0576040519150601f19603f3d011682016040523d82523d6000602084013e611da5565b606091505b5050905080611de9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de090612ebb565b60405180910390fd5b6000891115611efb57600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401611e7b96959493929190612edb565b60606040518083038185885af1158015611e99573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ebe9190612f51565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a604051611ef2929190612fa4565b60405180910390a15b505050505050505050506000601260006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080611fa5600d54611f97600c548661211b90919063ffffffff16565b61219590919063ffffffff16565b9050611ff981600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120bd90919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161209991906122a5565b60405180910390a36120b481846121df90919063ffffffff16565b91505092915050565b60008082846120cc919061296f565b905083811015612111576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210890613019565b60405180910390fd5b8091505092915050565b600080830361212d576000905061218f565b6000828461213b9190612aa8565b905082848261214a9190612b31565b1461218a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612181906130ab565b60405180910390fd5b809150505b92915050565b60006121d783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612229565b905092915050565b600061222183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611210565b905092915050565b60008083118290612270576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122679190612359565b60405180910390fd5b506000838561227f9190612b31565b9050809150509392505050565b6000819050919050565b61229f8161228c565b82525050565b60006020820190506122ba6000830184612296565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156122fa5780820151818401526020810190506122df565b83811115612309576000848401525b50505050565b6000601f19601f8301169050919050565b600061232b826122c0565b61233581856122cb565b93506123458185602086016122dc565b61234e8161230f565b840191505092915050565b600060208201905081810360008301526123738184612320565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123ba8261238f565b9050919050565b6123ca816123af565b81146123d557600080fd5b50565b6000813590506123e7816123c1565b92915050565b6123f68161228c565b811461240157600080fd5b50565b600081359050612413816123ed565b92915050565b600080604083850312156124305761242f612385565b5b600061243e858286016123d8565b925050602061244f85828601612404565b9150509250929050565b60008115159050919050565b61246e81612459565b82525050565b60006020820190506124896000830184612465565b92915050565b600080604083850312156124a6576124a5612385565b5b60006124b485828601612404565b92505060206124c585828601612404565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61250c8261230f565b810181811067ffffffffffffffff8211171561252b5761252a6124d4565b5b80604052505050565b600061253e61237b565b905061254a8282612503565b919050565b600067ffffffffffffffff82111561256a576125696124d4565b5b602082029050602081019050919050565b600080fd5b600061259361258e8461254f565b612534565b905080838252602082019050602084028301858111156125b6576125b561257b565b5b835b818110156125df57806125cb88826123d8565b8452602084019350506020810190506125b8565b5050509392505050565b600082601f8301126125fe576125fd6124cf565b5b813561260e848260208601612580565b91505092915050565b61262081612459565b811461262b57600080fd5b50565b60008135905061263d81612617565b92915050565b6000806040838503121561265a57612659612385565b5b600083013567ffffffffffffffff8111156126785761267761238a565b5b612684858286016125e9565b92505060206126958582860161262e565b9150509250929050565b6000806000606084860312156126b8576126b7612385565b5b60006126c6868287016123d8565b93505060206126d7868287016123d8565b92505060406126e886828701612404565b9150509250925092565b60006020828403121561270857612707612385565b5b6000612716848285016123d8565b91505092915050565b600060ff82169050919050565b6127358161271f565b82525050565b6000602082019050612750600083018461272c565b92915050565b60006020828403121561276c5761276b612385565b5b600061277a8482850161262e565b91505092915050565b61278c816123af565b82525050565b60006020820190506127a76000830184612783565b92915050565b6000602082840312156127c3576127c2612385565b5b60006127d184828501612404565b91505092915050565b600080604083850312156127f1576127f0612385565b5b60006127ff858286016123d8565b92505060206128108582860161262e565b9150509250929050565b6000806040838503121561283157612830612385565b5b600061283f858286016123d8565b9250506020612850858286016123d8565b9150509250929050565b6000819050919050565b600061287f61287a6128758461238f565b61285a565b61238f565b9050919050565b600061289182612864565b9050919050565b60006128a382612886565b9050919050565b6128b381612898565b82525050565b60006020820190506128ce60008301846128aa565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b600061290a6006836122cb565b9150612915826128d4565b602082019050919050565b60006020820190508181036000830152612939816128fd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061297a8261228c565b91506129858361228c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156129ba576129b9612940565b5b828201905092915050565b7f4d757374206b656570206665657320617420393025206f72206c657373000000600082015250565b60006129fb601d836122cb565b9150612a06826129c5565b602082019050919050565b60006020820190508181036000830152612a2a816129ee565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612a6b8261228c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a9d57612a9c612940565b5b600182019050919050565b6000612ab38261228c565b9150612abe8361228c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612af757612af6612940565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612b3c8261228c565b9150612b478361228c565b925082612b5757612b56612b02565b5b828204905092915050565b6000612b6d8261228c565b9150612b788361228c565b925082821015612b8b57612b8a612940565b5b828203905092915050565b7f426f742041646472657373000000000000000000000000000000000000000000600082015250565b6000612bcc600b836122cb565b9150612bd782612b96565b602082019050919050565b60006020820190508181036000830152612bfb81612bbf565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000612c5e6025836122cb565b9150612c6982612c02565b604082019050919050565b60006020820190508181036000830152612c8d81612c51565b9050919050565b600081519050612ca3816123c1565b92915050565b600060208284031215612cbf57612cbe612385565b5b6000612ccd84828501612c94565b91505092915050565b6000819050919050565b6000612cfb612cf6612cf184612cd6565b61285a565b61228c565b9050919050565b612d0b81612ce0565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612d46816123af565b82525050565b6000612d588383612d3d565b60208301905092915050565b6000602082019050919050565b6000612d7c82612d11565b612d868185612d1c565b9350612d9183612d2d565b8060005b83811015612dc2578151612da98882612d4c565b9750612db483612d64565b925050600181019050612d95565b5085935050505092915050565b600060a082019050612de46000830188612296565b612df16020830187612d02565b8181036040830152612e038186612d71565b9050612e126060830185612783565b612e1f6080830184612296565b9695505050505050565b600081905092915050565b50565b6000612e44600083612e29565b9150612e4f82612e34565b600082019050919050565b6000612e6582612e37565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b6000612ea5601e836122cb565b9150612eb082612e6f565b602082019050919050565b60006020820190508181036000830152612ed481612e98565b9050919050565b600060c082019050612ef06000830189612783565b612efd6020830188612296565b612f0a6040830187612d02565b612f176060830186612d02565b612f246080830185612783565b612f3160a0830184612296565b979650505050505050565b600081519050612f4b816123ed565b92915050565b600080600060608486031215612f6a57612f69612385565b5b6000612f7886828701612f3c565b9350506020612f8986828701612f3c565b9250506040612f9a86828701612f3c565b9150509250925092565b6000604082019050612fb96000830185612296565b612fc66020830184612296565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613003601b836122cb565b915061300e82612fcd565b602082019050919050565b6000602082019050818103600083015261303281612ff6565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006130956021836122cb565b91506130a082613039565b604082019050919050565b600060208201905081810360008301526130c481613088565b905091905056fea2646970667358221220670cbf864d7521cc79edbccd0fe3be3e2434ef98b44d767ec2a766b9848158a364736f6c634300080f0033
Deployed Bytecode
0x6080604052600436106101c65760003560e01c806370a08231116100f7578063a8aa1b3111610095578063e01bb68811610064578063e01bb6881461064f578063e96fada214610678578063f1d5f517146106a3578063f887ea40146106cc576101cd565b8063a8aa1b3114610581578063a9059cbb146105ac578063d05b5a00146105e9578063dd62ed3e14610612576101cd565b8063893d20e8116100d1578063893d20e8146104eb57806395d89b4114610516578063960bfe0414610541578063a890d2e81461056a576101cd565b806370a082311461046e578063715018a6146104ab5780637e26d19f146104c2576101cd565b80632f54bf6e116101645780633bbac5791161013e5780633bbac5791461039e578063571ac8b0146103db5780636c0a24eb146104185780636ddd171314610443576101cd565b80632f54bf6e1461031f578063313ce5671461035c578063364333f414610387576101cd565b80630b78f9c0116101a05780630b78f9c014610265578063144eef071461028e57806318160ddd146102b757806323b872dd146102e2576101cd565b80630445b667146101d257806306fdde03146101fd578063095ea7b314610228576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106f7565b6040516101f491906122a5565b60405180910390f35b34801561020957600080fd5b506102126106fd565b60405161021f9190612359565b60405180910390f35b34801561023457600080fd5b5061024f600480360381019061024a9190612419565b61073a565b60405161025c9190612474565b60405180910390f35b34801561027157600080fd5b5061028c6004803603810190610287919061248f565b61082c565b005b34801561029a57600080fd5b506102b560048036038101906102b09190612643565b6108e2565b005b3480156102c357600080fd5b506102cc6109bf565b6040516102d991906122a5565b60405180910390f35b3480156102ee57600080fd5b506103096004803603810190610304919061269f565b6109c9565b6040516103169190612474565b60405180910390f35b34801561032b57600080fd5b50610346600480360381019061034191906126f2565b610bc9565b6040516103539190612474565b60405180910390f35b34801561036857600080fd5b50610371610c22565b60405161037e919061273b565b60405180910390f35b34801561039357600080fd5b5061039c610c2b565b005b3480156103aa57600080fd5b506103c560048036038101906103c091906126f2565b610c96565b6040516103d29190612474565b60405180910390f35b3480156103e757600080fd5b5061040260048036038101906103fd91906126f2565b610cb6565b60405161040f9190612474565b60405180910390f35b34801561042457600080fd5b5061042d610ce9565b60405161043a91906122a5565b60405180910390f35b34801561044f57600080fd5b50610458610cef565b6040516104659190612474565b60405180910390f35b34801561047a57600080fd5b50610495600480360381019061049091906126f2565b610d02565b6040516104a291906122a5565b60405180910390f35b3480156104b757600080fd5b506104c0610d4b565b005b3480156104ce57600080fd5b506104e960048036038101906104e49190612756565b610e0e565b005b3480156104f757600080fd5b50610500610e73565b60405161050d9190612792565b60405180910390f35b34801561052257600080fd5b5061052b610e9c565b6040516105389190612359565b60405180910390f35b34801561054d57600080fd5b50610568600480360381019061056391906127ad565b610ed9565b005b34801561057657600080fd5b5061057f610f2b565b005b34801561058d57600080fd5b50610596610f68565b6040516105a39190612792565b60405180910390f35b3480156105b857600080fd5b506105d360048036038101906105ce9190612419565b610f8e565b6040516105e09190612474565b60405180910390f35b3480156105f557600080fd5b50610610600480360381019061060b91906127da565b610fa3565b005b34801561061e57600080fd5b506106396004803603810190610634919061281a565b611046565b60405161064691906122a5565b60405180910390f35b34801561065b57600080fd5b50610676600480360381019061067191906126f2565b6110cd565b005b34801561068457600080fd5b5061068d611159565b60405161069a9190612792565b60405180910390f35b3480156106af57600080fd5b506106ca60048036038101906106c591906127ad565b61117f565b005b3480156106d857600080fd5b506106e16111ea565b6040516106ee91906128b9565b60405180910390f35b60115481565b60606040518060400160405280600881526020017f414c455254494659000000000000000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161081a91906122a5565b60405180910390a36001905092915050565b61083533610bc9565b610874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086b90612920565b60405180910390fd5b81600b8190555080600a81905550600b54600a54610892919061296f565b600c81905550605a600c5411156108de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d590612a11565b60405180910390fd5b5050565b6108eb33610bc9565b61092a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092190612920565b60405180910390fd5b60005b82518110156109ba57816009600085848151811061094e5761094d612a31565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806109b290612a60565b91505061092d565b505050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610bb557610b34826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112109092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610bc0848484611274565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610c93573d6000803e3d6000fd5b50565b60096020528060005260406000206000915054906101000a900460ff1681565b6000610ce2827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61073a565b9050919050565b60045481565b601060149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d5433610bc9565b610d93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8a90612920565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610e049190612792565b60405180910390a1565b610e1733610bc9565b610e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4d90612920565b60405180910390fd5b80601060146101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f414c455254494659000000000000000000000000000000000000000000000000815250905090565b610ee233610bc9565b610f21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1890612920565b60405180910390fd5b8060118190555050565b674563918244f40000471015610f4057600080fd5b6000600b819055506000600a81905550600b54600a54610f60919061296f565b600c81905550565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610f9b338484611274565b905092915050565b610fac33610bc9565b610feb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe290612920565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110d633610bc9565b611115576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110c90612920565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61118833610bc9565b6111c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111be90612920565b60405180910390fd5b6064816003546111d79190612aa8565b6111e19190612b31565b60048190555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290611258576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124f9190612359565b60405180910390fd5b50600083856112679190612b62565b9050809150509392505050565b6000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611303576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fa90612be2565b60405180910390fd5b601260009054906101000a900460ff161561132a576113238484846116ca565b90506116c3565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113d65750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156114bf57600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061147f575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147c919061296f565b11155b6114be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b590612c74565b60405180910390fd5b5b6114c761189d565b156114d5576114d4611974565b5b61155e826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112109092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006115ac85611f22565b6115b657826115c1565b6115c08584611f79565b5b905061161581600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120bd90919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116b591906122a5565b60405180910390a360019150505b9392505050565b6000611755826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112109092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117ea82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120bd90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161188a91906122a5565b60405180910390a3600190509392505050565b6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561190a5750601260009054906101000a900460ff16155b80156119225750601060149054906101000a900460ff165b801561196f5750601154600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601260006101000a81548160ff0219169083151502179055506000600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060026011546119e29190612aa8565b81106119fa5760026011546119f79190612aa8565b90505b6000611a386002611a2a600c54611a1c600a548761211b90919063ffffffff16565b61219590919063ffffffff16565b61219590919063ffffffff16565b90506000611a4f82846121df90919063ffffffff16565b90506000600267ffffffffffffffff811115611a6e57611a6d6124d4565b5b604051908082528060200260200182016040528015611a9c5781602001602082028036833780820191505090505b5090503081600081518110611ab457611ab3612a31565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7f9190612ca9565b81600181518110611b9357611b92612a31565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401611c36959493929190612dcf565b600060405180830381600087803b158015611c5057600080fd5b505af1158015611c64573d6000803e3d6000fd5b505050506000611c7d82476121df90919063ffffffff16565b90506000611cab611c9a6002600a5461219590919063ffffffff16565b600c546121df90919063ffffffff16565b90506000611ce96002611cdb84611ccd600a548861211b90919063ffffffff16565b61219590919063ffffffff16565b61219590919063ffffffff16565b90506000611d1483611d06600b548761211b90919063ffffffff16565b61219590919063ffffffff16565b90506000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051611d6290612e5a565b600060405180830381858888f193505050503d8060008114611da0576040519150601f19603f3d011682016040523d82523d6000602084013e611da5565b606091505b5050905080611de9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de090612ebb565b60405180910390fd5b6000891115611efb57600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401611e7b96959493929190612edb565b60606040518083038185885af1158015611e99573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ebe9190612f51565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a604051611ef2929190612fa4565b60405180910390a15b505050505050505050506000601260006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080611fa5600d54611f97600c548661211b90919063ffffffff16565b61219590919063ffffffff16565b9050611ff981600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120bd90919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161209991906122a5565b60405180910390a36120b481846121df90919063ffffffff16565b91505092915050565b60008082846120cc919061296f565b905083811015612111576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210890613019565b60405180910390fd5b8091505092915050565b600080830361212d576000905061218f565b6000828461213b9190612aa8565b905082848261214a9190612b31565b1461218a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612181906130ab565b60405180910390fd5b809150505b92915050565b60006121d783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612229565b905092915050565b600061222183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611210565b905092915050565b60008083118290612270576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122679190612359565b60405180910390fd5b506000838561227f9190612b31565b9050809150509392505050565b6000819050919050565b61229f8161228c565b82525050565b60006020820190506122ba6000830184612296565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156122fa5780820151818401526020810190506122df565b83811115612309576000848401525b50505050565b6000601f19601f8301169050919050565b600061232b826122c0565b61233581856122cb565b93506123458185602086016122dc565b61234e8161230f565b840191505092915050565b600060208201905081810360008301526123738184612320565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123ba8261238f565b9050919050565b6123ca816123af565b81146123d557600080fd5b50565b6000813590506123e7816123c1565b92915050565b6123f68161228c565b811461240157600080fd5b50565b600081359050612413816123ed565b92915050565b600080604083850312156124305761242f612385565b5b600061243e858286016123d8565b925050602061244f85828601612404565b9150509250929050565b60008115159050919050565b61246e81612459565b82525050565b60006020820190506124896000830184612465565b92915050565b600080604083850312156124a6576124a5612385565b5b60006124b485828601612404565b92505060206124c585828601612404565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61250c8261230f565b810181811067ffffffffffffffff8211171561252b5761252a6124d4565b5b80604052505050565b600061253e61237b565b905061254a8282612503565b919050565b600067ffffffffffffffff82111561256a576125696124d4565b5b602082029050602081019050919050565b600080fd5b600061259361258e8461254f565b612534565b905080838252602082019050602084028301858111156125b6576125b561257b565b5b835b818110156125df57806125cb88826123d8565b8452602084019350506020810190506125b8565b5050509392505050565b600082601f8301126125fe576125fd6124cf565b5b813561260e848260208601612580565b91505092915050565b61262081612459565b811461262b57600080fd5b50565b60008135905061263d81612617565b92915050565b6000806040838503121561265a57612659612385565b5b600083013567ffffffffffffffff8111156126785761267761238a565b5b612684858286016125e9565b92505060206126958582860161262e565b9150509250929050565b6000806000606084860312156126b8576126b7612385565b5b60006126c6868287016123d8565b93505060206126d7868287016123d8565b92505060406126e886828701612404565b9150509250925092565b60006020828403121561270857612707612385565b5b6000612716848285016123d8565b91505092915050565b600060ff82169050919050565b6127358161271f565b82525050565b6000602082019050612750600083018461272c565b92915050565b60006020828403121561276c5761276b612385565b5b600061277a8482850161262e565b91505092915050565b61278c816123af565b82525050565b60006020820190506127a76000830184612783565b92915050565b6000602082840312156127c3576127c2612385565b5b60006127d184828501612404565b91505092915050565b600080604083850312156127f1576127f0612385565b5b60006127ff858286016123d8565b92505060206128108582860161262e565b9150509250929050565b6000806040838503121561283157612830612385565b5b600061283f858286016123d8565b9250506020612850858286016123d8565b9150509250929050565b6000819050919050565b600061287f61287a6128758461238f565b61285a565b61238f565b9050919050565b600061289182612864565b9050919050565b60006128a382612886565b9050919050565b6128b381612898565b82525050565b60006020820190506128ce60008301846128aa565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b600061290a6006836122cb565b9150612915826128d4565b602082019050919050565b60006020820190508181036000830152612939816128fd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061297a8261228c565b91506129858361228c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156129ba576129b9612940565b5b828201905092915050565b7f4d757374206b656570206665657320617420393025206f72206c657373000000600082015250565b60006129fb601d836122cb565b9150612a06826129c5565b602082019050919050565b60006020820190508181036000830152612a2a816129ee565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612a6b8261228c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a9d57612a9c612940565b5b600182019050919050565b6000612ab38261228c565b9150612abe8361228c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612af757612af6612940565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612b3c8261228c565b9150612b478361228c565b925082612b5757612b56612b02565b5b828204905092915050565b6000612b6d8261228c565b9150612b788361228c565b925082821015612b8b57612b8a612940565b5b828203905092915050565b7f426f742041646472657373000000000000000000000000000000000000000000600082015250565b6000612bcc600b836122cb565b9150612bd782612b96565b602082019050919050565b60006020820190508181036000830152612bfb81612bbf565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000612c5e6025836122cb565b9150612c6982612c02565b604082019050919050565b60006020820190508181036000830152612c8d81612c51565b9050919050565b600081519050612ca3816123c1565b92915050565b600060208284031215612cbf57612cbe612385565b5b6000612ccd84828501612c94565b91505092915050565b6000819050919050565b6000612cfb612cf6612cf184612cd6565b61285a565b61228c565b9050919050565b612d0b81612ce0565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612d46816123af565b82525050565b6000612d588383612d3d565b60208301905092915050565b6000602082019050919050565b6000612d7c82612d11565b612d868185612d1c565b9350612d9183612d2d565b8060005b83811015612dc2578151612da98882612d4c565b9750612db483612d64565b925050600181019050612d95565b5085935050505092915050565b600060a082019050612de46000830188612296565b612df16020830187612d02565b8181036040830152612e038186612d71565b9050612e126060830185612783565b612e1f6080830184612296565b9695505050505050565b600081905092915050565b50565b6000612e44600083612e29565b9150612e4f82612e34565b600082019050919050565b6000612e6582612e37565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b6000612ea5601e836122cb565b9150612eb082612e6f565b602082019050919050565b60006020820190508181036000830152612ed481612e98565b9050919050565b600060c082019050612ef06000830189612783565b612efd6020830188612296565b612f0a6040830187612d02565b612f176060830186612d02565b612f246080830185612783565b612f3160a0830184612296565b979650505050505050565b600081519050612f4b816123ed565b92915050565b600080600060608486031215612f6a57612f69612385565b5b6000612f7886828701612f3c565b9350506020612f8986828701612f3c565b9250506040612f9a86828701612f3c565b9150509250925092565b6000604082019050612fb96000830185612296565b612fc66020830184612296565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613003601b836122cb565b915061300e82612fcd565b602082019050919050565b6000602082019050818103600083015261303281612ff6565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006130956021836122cb565b91506130a082613039565b604082019050919050565b600060208201905081810360008301526130c481613088565b905091905056fea2646970667358221220670cbf864d7521cc79edbccd0fe3be3e2434ef98b44d767ec2a766b9848158a364736f6c634300080f0033
Deployed Bytecode Sourcemap
4181:8734:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5193:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6158:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6580:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12086:288;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11895:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5888:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7098:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2419:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5982:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11389:118;;;;;;;;;;;;;:::i;:::-;;4841:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6804:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4579:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5156:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6328:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2528:131;;;;;;;;;;;;;:::i;:::-;;11669:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6244:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6068:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12382:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12641:207;;;;;;;;;;;;;:::i;:::-;;5128:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6934:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11769:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6439:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12495:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5040:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11515:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5097:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5193:54;;;;:::o;6158:80::-;6206:13;6230:5;;;;;;;;;;;;;;;;;6223:12;;6158:80;:::o;6580:216::-;6655:4;6707:6;6672:11;:23;6684:10;6672:23;;;;;;;;;;;;;;;:32;6696:7;6672:32;;;;;;;;;;;;;;;:41;;;;6750:7;6729:37;;6738:10;6729:37;;;6759:6;6729:37;;;;;;:::i;:::-;;;;;;;;6784:4;6777:11;;6580:216;;;;:::o;12086:288::-;2372:19;2380:10;2372:7;:19::i;:::-;2364:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12195:13:::1;12180:12;:28;;;;12235:13;12220:12;:28;;;;12286:12;;12271;;:27;;;;:::i;:::-;12260:8;:38;;;;12330:2;12318:8;;:14;;12310:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;12086:288:::0;;:::o;11895:183::-;2372:19;2380:10;2372:7;:19::i;:::-;2364:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11982:9:::1;11977:94;12001:5;:12;11997:1;:16;11977:94;;;12053:6;12035:5;:15;12041:5;12047:1;12041:8;;;;;;;;:::i;:::-;;;;;;;;12035:15;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;12015:3;;;;;:::i;:::-;;;;11977:94;;;;11895:183:::0;;:::o;5888:88::-;5943:7;5961:12;;5954:19;;5888:88;:::o;7098:370::-;7198:4;7253:17;7218:11;:19;7230:6;7218:19;;;;;;;;;;;;;;;:31;7238:10;7218:31;;;;;;;;;;;;;;;;:52;7215:186;;7320:69;7356:6;7320:69;;;;;;;;;;;;;;;;;:11;:19;7332:6;7320:19;;;;;;;;;;;;;;;:31;7340:10;7320:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;7286:11;:19;7298:6;7286:19;;;;;;;;;;;;;;;:31;7306:10;7286:31;;;;;;;;;;;;;;;:103;;;;7215:186;7420:40;7434:6;7442:9;7453:6;7420:13;:40::i;:::-;7413:47;;7098:370;;;;;:::o;2419:103::-;2474:4;2509:5;;;;;;;;;;;2498:16;;:7;:16;;;2491:23;;2419:103;;;:::o;5982:80::-;6034:5;4506:1;6043:16;;5982:80;:::o;11389:118::-;11446:20;;;;;;;;;;;11438:38;;:61;11477:21;11438:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11389:118::o;4841:37::-;;;;;;;;;;;;;;;;;;;;;;:::o;6804:122::-;6859:4;6883:35;6891:7;6900:17;6883:7;:35::i;:::-;6876:42;;6804:122;;;:::o;4579:46::-;;;;:::o;5156:30::-;;;;;;;;;;;;;:::o;6328:105::-;6394:7;6412:9;:18;6422:7;6412:18;;;;;;;;;;;;;;;;6405:25;;6328:105;;;:::o;2528:131::-;2372:19;2380:10;2372:7;:19::i;:::-;2364:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2601:1:::1;2585:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2619:32;2648:1;2619:32;;;;;;:::i;:::-;;;;;;;;2528:131::o:0;11669:92::-;2372:19;2380:10;2372:7;:19::i;:::-;2364:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11747:6:::1;11733:11;;:20;;;;;;;;;;;;;;;;;;11669:92:::0;:::o;6244:78::-;6296:7;6314:5;;;;;;;;;;;6307:12;;6244:78;:::o;6068:84::-;6118:13;6142:7;;;;;;;;;;;;;;;;;6135:14;;6068:84;:::o;12382:105::-;2372:19;2380:10;2372:7;:19::i;:::-;2364:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12470:9:::1;12454:13;:25;;;;12382:105:::0;:::o;12641:207::-;12714:19;12689:21;:44;;12680:54;;;;;;12761:1;12746:12;:16;;;;12789:1;12774:12;:16;;;;12828:12;;12813;;:27;;;;:::i;:::-;12802:8;:38;;;;12641:207::o;5128:19::-;;;;;;;;;;;;;:::o;6934:156::-;7014:4;7038:44;7052:10;7064:9;7075:6;7038:13;:44::i;:::-;7031:51;;6934:156;;;;:::o;11769:119::-;2372:19;2380:10;2372:7;:19::i;:::-;2364:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11874:6:::1;11854:5;:17;11860:10;11854:17;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;11769:119:::0;;:::o;6439:133::-;6523:7;6541:11;:19;6553:6;6541:19;;;;;;;;;;;;;;;:28;6561:7;6541:28;;;;;;;;;;;;;;;;6534:35;;6439:133;;;;:::o;12495:138::-;2372:19;2380:10;2372:7;:19::i;:::-;2364:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12604:21:::1;12581:20;;:44;;;;;;;;;;;;;;;;;;12495:138:::0;:::o;5040:48::-;;;;;;;;;;;;;:::o;11515:141::-;2372:19;2380:10;2372:7;:19::i;:::-;2364:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11645:3:::1;11627:13;11612:12;;:28;;;;:::i;:::-;11611:37;;;;:::i;:::-;11592:16;:56;;;;11515:141:::0;:::o;5097:24::-;;;;;;;;;;;;;:::o;508:190::-;594:7;627:1;622;:6;;630:12;614:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;654:9;670:1;666;:5;;;;:::i;:::-;654:17;;689:1;682:8;;;508:190;;;;;:::o;7476:843::-;7568:4;7594:5;:13;7600:6;7594:13;;;;;;;;;;;;;;;;;;;;;;;;;7593:14;7585:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;7639:6;;;;;;;;;;;7636:63;;;7655:41;7670:6;7678:9;7689:6;7655:14;:41::i;:::-;7648:48;;;;7636:63;7736:4;;;;;;;;;;;7723:17;;:9;:17;;;;:38;;;;;7757:4;;;;;;;;;;;7744:17;;:9;:17;;;;7723:38;7719:200;;;7786:15;:26;7802:9;7786:26;;;;;;;;;;;;;;;;;;;;;;;;;:79;;;;7849:16;;7839:6;7816:9;:20;7826:9;7816:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:49;;7786:79;7778:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;7719:200;7942:16;:14;:16::i;:::-;7939:35;;;7961:10;:8;:10::i;:::-;7939:35;8007:53;8029:6;8007:53;;;;;;;;;;;;;;;;;:9;:17;8017:6;8007:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;7987:9;:17;7997:6;7987:17;;;;;;;;;;;;;;;:73;;;;8073:22;8098:21;8112:6;8098:13;:21::i;:::-;:56;;8148:6;8098:56;;;8122:23;8130:6;8138;8122:7;:23::i;:::-;8098:56;8073:81;;8188:40;8213:14;8188:9;:20;8198:9;8188:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;8165:9;:20;8175:9;8165:20;;;;;;;;;;;;;;;:63;;;;8263:9;8246:43;;8255:6;8246:43;;;8274:14;8246:43;;;;;;:::i;:::-;;;;;;;;8307:4;8300:11;;;7476:843;;;;;;:::o;8331:330::-;8424:4;8461:53;8483:6;8461:53;;;;;;;;;;;;;;;;;:9;:17;8471:6;8461:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;8441:9;:17;8451:6;8441:17;;;;;;;;;;;;;;;:73;;;;8548:32;8573:6;8548:9;:20;8558:9;8548:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;8525:9;:20;8535:9;8525:20;;;;;;;;;;;;;;;:55;;;;8613:9;8596:35;;8605:6;8596:35;;;8624:6;8596:35;;;;;;:::i;:::-;;;;;;;;8649:4;8642:11;;8331:330;;;;;:::o;9128:197::-;9177:4;9215;;;;;;;;;;;9201:18;;:10;:18;;;;:38;;;;;9233:6;;;;;;;;;;;9232:7;9201:38;:62;;;;;9252:11;;;;;;;;;;;9201:62;:116;;;;;9304:13;;9276:9;:24;9294:4;9276:24;;;;;;;;;;;;;;;;:41;;9201:116;9194:123;;9128:197;:::o;9333:1670::-;5304:4;5295:6;;:13;;;;;;;;;;;;;;;;;;9382:28:::1;9413:9;:24;9431:4;9413:24;;;;;;;;;;;;;;;;9382:55;;9490:1;9476:13;;:15;;;;:::i;:::-;9452:20;:39;9448:96;;9543:1;9529:13;;:15;;;;:::i;:::-;9506:38;;9448:96;9555:23;9581:59;9638:1;9581:52;9624:8;;9581:38;9606:12;;9581:20;:24;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;9555:85;;9651:20;9674:41;9699:15;9674:20;:24;;:41;;;;:::i;:::-;9651:64;;9728:21;9766:1;9752:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9728:40;;9797:4;9779;9784:1;9779:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9823:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9813:4;9818:1;9813:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9849:21;9873;9849:45;;9907:6;;;;;;;;;;;:57;;;9979:12;10006:1;10022:4;10049;10069:15;9907:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10108:17;10128:40;10154:13;10128:21;:25;;:40;;;;:::i;:::-;10108:60;;10179:19;10201:33;10214:19;10231:1;10214:12;;:16;;:19;;;;:::i;:::-;10201:8;;:12;;:33;;;;:::i;:::-;10179:55;;10245:26;10274:51;10323:1;10274:44;10306:11;10274:27;10288:12;;10274:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;10245:80;;10336:26;10365:44;10397:11;10365:27;10379:12;;10365:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;10336:73;;10425:21;10483:20;;;;;;;;;;;10475:34;;10517:18;10542:5;10475:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10424:128;;;10571:16;10563:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;10656:1;10638:15;:19;10635:361;;;10673:6;;;;;;;;;;;:22;;;10703:18;10749:4;10773:15;10807:1;10827::::0;10847:20:::1;;;;;;;;;;;10886:15;10673:243;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10936:48;10948:18;10968:15;10936:48;;;;;;;:::i;:::-;;;;;;;;10635:361;9371:1632;;;;;;;;;;5322:5:::0;5313:6;;:14;;;;;;;;;;;;;;;;;;9333:1670::o;8669:114::-;8731:4;8756:11;:19;8768:6;8756:19;;;;;;;;;;;;;;;;;;;;;;;;;8755:20;8748:27;;8669:114;;;:::o;8791:329::-;8858:7;8878:17;8898:40;8923:14;;8898:20;8909:8;;8898:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;8878:60;;8976:39;9005:9;8976;:24;8994:4;8976:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8949:9;:24;8967:4;8949:24;;;;;;;;;;;;;;;:66;;;;9056:4;9031:42;;9040:6;9031:42;;;9063:9;9031:42;;;;;;:::i;:::-;;;;;;;;9091:21;9102:9;9091:6;:10;;:21;;;;:::i;:::-;9084:28;;;8791:329;;;;:::o;181:179::-;239:7;259:9;275:1;271;:5;;;;:::i;:::-;259:17;;300:1;295;:6;;287:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;351:1;344:8;;;181:179;;;;:::o;704:246::-;762:7;791:1;786;:6;782:47;;816:1;809:8;;;;782:47;839:9;855:1;851;:5;;;;:::i;:::-;839:17;;884:1;879;875;:5;;;;:::i;:::-;:10;867:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;941:1;934:8;;;704:246;;;;;:::o;956:132::-;1014:7;1041:39;1045:1;1048;1041:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1034:46;;956:132;;;;:::o;366:136::-;424:7;451:43;455:1;458;451:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;444:50;;366:136;;;;:::o;1094:189::-;1180:7;1212:1;1208;:5;1215:12;1200:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1239:9;1255:1;1251;:5;;;;:::i;:::-;1239:17;;1274:1;1267:8;;;1094:189;;;;;:::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:474::-;3914:6;3922;3971:2;3959:9;3950:7;3946:23;3942:32;3939:119;;;3977:79;;:::i;:::-;3939:119;4097:1;4122:53;4167:7;4158:6;4147:9;4143:22;4122:53;:::i;:::-;4112:63;;4068:117;4224:2;4250:53;4295:7;4286:6;4275:9;4271:22;4250:53;:::i;:::-;4240:63;;4195:118;3846:474;;;;;:::o;4326:117::-;4435:1;4432;4425:12;4449:180;4497:77;4494:1;4487:88;4594:4;4591:1;4584:15;4618:4;4615:1;4608:15;4635:281;4718:27;4740:4;4718:27;:::i;:::-;4710:6;4706:40;4848:6;4836:10;4833:22;4812:18;4800:10;4797:34;4794:62;4791:88;;;4859:18;;:::i;:::-;4791:88;4899:10;4895:2;4888:22;4678:238;4635:281;;:::o;4922:129::-;4956:6;4983:20;;:::i;:::-;4973:30;;5012:33;5040:4;5032:6;5012:33;:::i;:::-;4922:129;;;:::o;5057:311::-;5134:4;5224:18;5216:6;5213:30;5210:56;;;5246:18;;:::i;:::-;5210:56;5296:4;5288:6;5284:17;5276:25;;5356:4;5350;5346:15;5338:23;;5057:311;;;:::o;5374:117::-;5483:1;5480;5473:12;5514:710;5610:5;5635:81;5651:64;5708:6;5651:64;:::i;:::-;5635:81;:::i;:::-;5626:90;;5736:5;5765:6;5758:5;5751:21;5799:4;5792:5;5788:16;5781:23;;5852:4;5844:6;5840:17;5832:6;5828:30;5881:3;5873:6;5870:15;5867:122;;;5900:79;;:::i;:::-;5867:122;6015:6;5998:220;6032:6;6027:3;6024:15;5998:220;;;6107:3;6136:37;6169:3;6157:10;6136:37;:::i;:::-;6131:3;6124:50;6203:4;6198:3;6194:14;6187:21;;6074:144;6058:4;6053:3;6049:14;6042:21;;5998:220;;;6002:21;5616:608;;5514:710;;;;;:::o;6247:370::-;6318:5;6367:3;6360:4;6352:6;6348:17;6344:27;6334:122;;6375:79;;:::i;:::-;6334:122;6492:6;6479:20;6517:94;6607:3;6599:6;6592:4;6584:6;6580:17;6517:94;:::i;:::-;6508:103;;6324:293;6247:370;;;;:::o;6623:116::-;6693:21;6708:5;6693:21;:::i;:::-;6686:5;6683:32;6673:60;;6729:1;6726;6719:12;6673:60;6623:116;:::o;6745:133::-;6788:5;6826:6;6813:20;6804:29;;6842:30;6866:5;6842:30;:::i;:::-;6745:133;;;;:::o;6884:678::-;6974:6;6982;7031:2;7019:9;7010:7;7006:23;7002:32;6999:119;;;7037:79;;:::i;:::-;6999:119;7185:1;7174:9;7170:17;7157:31;7215:18;7207:6;7204:30;7201:117;;;7237:79;;:::i;:::-;7201:117;7342:78;7412:7;7403:6;7392:9;7388:22;7342:78;:::i;:::-;7332:88;;7128:302;7469:2;7495:50;7537:7;7528:6;7517:9;7513:22;7495:50;:::i;:::-;7485:60;;7440:115;6884:678;;;;;:::o;7568:619::-;7645:6;7653;7661;7710:2;7698:9;7689:7;7685:23;7681:32;7678:119;;;7716:79;;:::i;:::-;7678:119;7836:1;7861:53;7906:7;7897:6;7886:9;7882:22;7861:53;:::i;:::-;7851:63;;7807:117;7963:2;7989:53;8034:7;8025:6;8014:9;8010:22;7989:53;:::i;:::-;7979:63;;7934:118;8091:2;8117:53;8162:7;8153:6;8142:9;8138:22;8117:53;:::i;:::-;8107:63;;8062:118;7568:619;;;;;:::o;8193:329::-;8252:6;8301:2;8289:9;8280:7;8276:23;8272:32;8269:119;;;8307:79;;:::i;:::-;8269:119;8427:1;8452:53;8497:7;8488:6;8477:9;8473:22;8452:53;:::i;:::-;8442:63;;8398:117;8193:329;;;;:::o;8528:86::-;8563:7;8603:4;8596:5;8592:16;8581:27;;8528:86;;;:::o;8620:112::-;8703:22;8719:5;8703:22;:::i;:::-;8698:3;8691:35;8620:112;;:::o;8738:214::-;8827:4;8865:2;8854:9;8850:18;8842:26;;8878:67;8942:1;8931:9;8927:17;8918:6;8878:67;:::i;:::-;8738:214;;;;:::o;8958:323::-;9014:6;9063:2;9051:9;9042:7;9038:23;9034:32;9031:119;;;9069:79;;:::i;:::-;9031:119;9189:1;9214:50;9256:7;9247:6;9236:9;9232:22;9214:50;:::i;:::-;9204:60;;9160:114;8958:323;;;;:::o;9287:118::-;9374:24;9392:5;9374:24;:::i;:::-;9369:3;9362:37;9287:118;;:::o;9411:222::-;9504:4;9542:2;9531:9;9527:18;9519:26;;9555:71;9623:1;9612:9;9608:17;9599:6;9555:71;:::i;:::-;9411:222;;;;:::o;9639:329::-;9698:6;9747:2;9735:9;9726:7;9722:23;9718:32;9715:119;;;9753:79;;:::i;:::-;9715:119;9873:1;9898:53;9943:7;9934:6;9923:9;9919:22;9898:53;:::i;:::-;9888:63;;9844:117;9639:329;;;;:::o;9974:468::-;10039:6;10047;10096:2;10084:9;10075:7;10071:23;10067:32;10064:119;;;10102:79;;:::i;:::-;10064:119;10222:1;10247:53;10292:7;10283:6;10272:9;10268:22;10247:53;:::i;:::-;10237:63;;10193:117;10349:2;10375:50;10417:7;10408:6;10397:9;10393:22;10375:50;:::i;:::-;10365:60;;10320:115;9974:468;;;;;:::o;10448:474::-;10516:6;10524;10573:2;10561:9;10552:7;10548:23;10544:32;10541:119;;;10579:79;;:::i;:::-;10541:119;10699:1;10724:53;10769:7;10760:6;10749:9;10745:22;10724:53;:::i;:::-;10714:63;;10670:117;10826:2;10852:53;10897:7;10888:6;10877:9;10873:22;10852:53;:::i;:::-;10842:63;;10797:118;10448:474;;;;;:::o;10928:60::-;10956:3;10977:5;10970:12;;10928:60;;;:::o;10994:142::-;11044:9;11077:53;11095:34;11104:24;11122:5;11104:24;:::i;:::-;11095:34;:::i;:::-;11077:53;:::i;:::-;11064:66;;10994:142;;;:::o;11142:126::-;11192:9;11225:37;11256:5;11225:37;:::i;:::-;11212:50;;11142:126;;;:::o;11274:144::-;11342:9;11375:37;11406:5;11375:37;:::i;:::-;11362:50;;11274:144;;;:::o;11424:167::-;11529:55;11578:5;11529:55;:::i;:::-;11524:3;11517:68;11424:167;;:::o;11597:258::-;11708:4;11746:2;11735:9;11731:18;11723:26;;11759:89;11845:1;11834:9;11830:17;11821:6;11759:89;:::i;:::-;11597:258;;;;:::o;11861:156::-;12001:8;11997:1;11989:6;11985:14;11978:32;11861:156;:::o;12023:365::-;12165:3;12186:66;12250:1;12245:3;12186:66;:::i;:::-;12179:73;;12261:93;12350:3;12261:93;:::i;:::-;12379:2;12374:3;12370:12;12363:19;;12023:365;;;:::o;12394:419::-;12560:4;12598:2;12587:9;12583:18;12575:26;;12647:9;12641:4;12637:20;12633:1;12622:9;12618:17;12611:47;12675:131;12801:4;12675:131;:::i;:::-;12667:139;;12394:419;;;:::o;12819:180::-;12867:77;12864:1;12857:88;12964:4;12961:1;12954:15;12988:4;12985:1;12978:15;13005:305;13045:3;13064:20;13082:1;13064:20;:::i;:::-;13059:25;;13098:20;13116:1;13098:20;:::i;:::-;13093:25;;13252:1;13184:66;13180:74;13177:1;13174:81;13171:107;;;13258:18;;:::i;:::-;13171:107;13302:1;13299;13295:9;13288:16;;13005:305;;;;:::o;13316:179::-;13456:31;13452:1;13444:6;13440:14;13433:55;13316:179;:::o;13501:366::-;13643:3;13664:67;13728:2;13723:3;13664:67;:::i;:::-;13657:74;;13740:93;13829:3;13740:93;:::i;:::-;13858:2;13853:3;13849:12;13842:19;;13501:366;;;:::o;13873:419::-;14039:4;14077:2;14066:9;14062:18;14054:26;;14126:9;14120:4;14116:20;14112:1;14101:9;14097:17;14090:47;14154:131;14280:4;14154:131;:::i;:::-;14146:139;;13873:419;;;:::o;14298:180::-;14346:77;14343:1;14336:88;14443:4;14440:1;14433:15;14467:4;14464:1;14457:15;14484:233;14523:3;14546:24;14564:5;14546:24;:::i;:::-;14537:33;;14592:66;14585:5;14582:77;14579:103;;14662:18;;:::i;:::-;14579:103;14709:1;14702:5;14698:13;14691:20;;14484:233;;;:::o;14723:348::-;14763:7;14786:20;14804:1;14786:20;:::i;:::-;14781:25;;14820:20;14838:1;14820:20;:::i;:::-;14815:25;;15008:1;14940:66;14936:74;14933:1;14930:81;14925:1;14918:9;14911:17;14907:105;14904:131;;;15015:18;;:::i;:::-;14904:131;15063:1;15060;15056:9;15045:20;;14723:348;;;;:::o;15077:180::-;15125:77;15122:1;15115:88;15222:4;15219:1;15212:15;15246:4;15243:1;15236:15;15263:185;15303:1;15320:20;15338:1;15320:20;:::i;:::-;15315:25;;15354:20;15372:1;15354:20;:::i;:::-;15349:25;;15393:1;15383:35;;15398:18;;:::i;:::-;15383:35;15440:1;15437;15433:9;15428:14;;15263:185;;;;:::o;15454:191::-;15494:4;15514:20;15532:1;15514:20;:::i;:::-;15509:25;;15548:20;15566:1;15548:20;:::i;:::-;15543:25;;15587:1;15584;15581:8;15578:34;;;15592:18;;:::i;:::-;15578:34;15637:1;15634;15630:9;15622:17;;15454:191;;;;:::o;15651:161::-;15791:13;15787:1;15779:6;15775:14;15768:37;15651:161;:::o;15818:366::-;15960:3;15981:67;16045:2;16040:3;15981:67;:::i;:::-;15974:74;;16057:93;16146:3;16057:93;:::i;:::-;16175:2;16170:3;16166:12;16159:19;;15818:366;;;:::o;16190:419::-;16356:4;16394:2;16383:9;16379:18;16371:26;;16443:9;16437:4;16433:20;16429:1;16418:9;16414:17;16407:47;16471:131;16597:4;16471:131;:::i;:::-;16463:139;;16190:419;;;:::o;16615:224::-;16755:34;16751:1;16743:6;16739:14;16732:58;16824:7;16819:2;16811:6;16807:15;16800:32;16615:224;:::o;16845:366::-;16987:3;17008:67;17072:2;17067:3;17008:67;:::i;:::-;17001:74;;17084:93;17173:3;17084:93;:::i;:::-;17202:2;17197:3;17193:12;17186:19;;16845:366;;;:::o;17217:419::-;17383:4;17421:2;17410:9;17406:18;17398:26;;17470:9;17464:4;17460:20;17456:1;17445:9;17441:17;17434:47;17498:131;17624:4;17498:131;:::i;:::-;17490:139;;17217:419;;;:::o;17642:143::-;17699:5;17730:6;17724:13;17715:22;;17746:33;17773:5;17746:33;:::i;:::-;17642:143;;;;:::o;17791:351::-;17861:6;17910:2;17898:9;17889:7;17885:23;17881:32;17878:119;;;17916:79;;:::i;:::-;17878:119;18036:1;18061:64;18117:7;18108:6;18097:9;18093:22;18061:64;:::i;:::-;18051:74;;18007:128;17791:351;;;;:::o;18148:85::-;18193:7;18222:5;18211:16;;18148:85;;;:::o;18239:158::-;18297:9;18330:61;18348:42;18357:32;18383:5;18357:32;:::i;:::-;18348:42;:::i;:::-;18330:61;:::i;:::-;18317:74;;18239:158;;;:::o;18403:147::-;18498:45;18537:5;18498:45;:::i;:::-;18493:3;18486:58;18403:147;;:::o;18556:114::-;18623:6;18657:5;18651:12;18641:22;;18556:114;;;:::o;18676:184::-;18775:11;18809:6;18804:3;18797:19;18849:4;18844:3;18840:14;18825:29;;18676:184;;;;:::o;18866:132::-;18933:4;18956:3;18948:11;;18986:4;18981:3;18977:14;18969:22;;18866:132;;;:::o;19004:108::-;19081:24;19099:5;19081:24;:::i;:::-;19076:3;19069:37;19004:108;;:::o;19118:179::-;19187:10;19208:46;19250:3;19242:6;19208:46;:::i;:::-;19286:4;19281:3;19277:14;19263:28;;19118:179;;;;:::o;19303:113::-;19373:4;19405;19400:3;19396:14;19388:22;;19303:113;;;:::o;19452:732::-;19571:3;19600:54;19648:5;19600:54;:::i;:::-;19670:86;19749:6;19744:3;19670:86;:::i;:::-;19663:93;;19780:56;19830:5;19780:56;:::i;:::-;19859:7;19890:1;19875:284;19900:6;19897:1;19894:13;19875:284;;;19976:6;19970:13;20003:63;20062:3;20047:13;20003:63;:::i;:::-;19996:70;;20089:60;20142:6;20089:60;:::i;:::-;20079:70;;19935:224;19922:1;19919;19915:9;19910:14;;19875:284;;;19879:14;20175:3;20168:10;;19576:608;;;19452:732;;;;:::o;20190:831::-;20453:4;20491:3;20480:9;20476:19;20468:27;;20505:71;20573:1;20562:9;20558:17;20549:6;20505:71;:::i;:::-;20586:80;20662:2;20651:9;20647:18;20638:6;20586:80;:::i;:::-;20713:9;20707:4;20703:20;20698:2;20687:9;20683:18;20676:48;20741:108;20844:4;20835:6;20741:108;:::i;:::-;20733:116;;20859:72;20927:2;20916:9;20912:18;20903:6;20859:72;:::i;:::-;20941:73;21009:3;20998:9;20994:19;20985:6;20941:73;:::i;:::-;20190:831;;;;;;;;:::o;21027:147::-;21128:11;21165:3;21150:18;;21027:147;;;;:::o;21180:114::-;;:::o;21300:398::-;21459:3;21480:83;21561:1;21556:3;21480:83;:::i;:::-;21473:90;;21572:93;21661:3;21572:93;:::i;:::-;21690:1;21685:3;21681:11;21674:18;;21300:398;;;:::o;21704:379::-;21888:3;21910:147;22053:3;21910:147;:::i;:::-;21903:154;;22074:3;22067:10;;21704:379;;;:::o;22089:180::-;22229:32;22225:1;22217:6;22213:14;22206:56;22089:180;:::o;22275:366::-;22417:3;22438:67;22502:2;22497:3;22438:67;:::i;:::-;22431:74;;22514:93;22603:3;22514:93;:::i;:::-;22632:2;22627:3;22623:12;22616:19;;22275:366;;;:::o;22647:419::-;22813:4;22851:2;22840:9;22836:18;22828:26;;22900:9;22894:4;22890:20;22886:1;22875:9;22871:17;22864:47;22928:131;23054:4;22928:131;:::i;:::-;22920:139;;22647:419;;;:::o;23072:807::-;23321:4;23359:3;23348:9;23344:19;23336:27;;23373:71;23441:1;23430:9;23426:17;23417:6;23373:71;:::i;:::-;23454:72;23522:2;23511:9;23507:18;23498:6;23454:72;:::i;:::-;23536:80;23612:2;23601:9;23597:18;23588:6;23536:80;:::i;:::-;23626;23702:2;23691:9;23687:18;23678:6;23626:80;:::i;:::-;23716:73;23784:3;23773:9;23769:19;23760:6;23716:73;:::i;:::-;23799;23867:3;23856:9;23852:19;23843:6;23799:73;:::i;:::-;23072:807;;;;;;;;;:::o;23885:143::-;23942:5;23973:6;23967:13;23958:22;;23989:33;24016:5;23989:33;:::i;:::-;23885:143;;;;:::o;24034:663::-;24122:6;24130;24138;24187:2;24175:9;24166:7;24162:23;24158:32;24155:119;;;24193:79;;:::i;:::-;24155:119;24313:1;24338:64;24394:7;24385:6;24374:9;24370:22;24338:64;:::i;:::-;24328:74;;24284:128;24451:2;24477:64;24533:7;24524:6;24513:9;24509:22;24477:64;:::i;:::-;24467:74;;24422:129;24590:2;24616:64;24672:7;24663:6;24652:9;24648:22;24616:64;:::i;:::-;24606:74;;24561:129;24034:663;;;;;:::o;24703:332::-;24824:4;24862:2;24851:9;24847:18;24839:26;;24875:71;24943:1;24932:9;24928:17;24919:6;24875:71;:::i;:::-;24956:72;25024:2;25013:9;25009:18;25000:6;24956:72;:::i;:::-;24703:332;;;;;:::o;25041:177::-;25181:29;25177:1;25169:6;25165:14;25158:53;25041:177;:::o;25224:366::-;25366:3;25387:67;25451:2;25446:3;25387:67;:::i;:::-;25380:74;;25463:93;25552:3;25463:93;:::i;:::-;25581:2;25576:3;25572:12;25565:19;;25224:366;;;:::o;25596:419::-;25762:4;25800:2;25789:9;25785:18;25777:26;;25849:9;25843:4;25839:20;25835:1;25824:9;25820:17;25813:47;25877:131;26003:4;25877:131;:::i;:::-;25869:139;;25596:419;;;:::o;26021:220::-;26161:34;26157:1;26149:6;26145:14;26138:58;26230:3;26225:2;26217:6;26213:15;26206:28;26021:220;:::o;26247:366::-;26389:3;26410:67;26474:2;26469:3;26410:67;:::i;:::-;26403:74;;26486:93;26575:3;26486:93;:::i;:::-;26604:2;26599:3;26595:12;26588:19;;26247:366;;;:::o;26619:419::-;26785:4;26823:2;26812:9;26808:18;26800:26;;26872:9;26866:4;26862:20;26858:1;26847:9;26843:17;26836:47;26900:131;27026:4;26900:131;:::i;:::-;26892:139;;26619:419;;;:::o
Swarm Source
ipfs://670cbf864d7521cc79edbccd0fe3be3e2434ef98b44d767ec2a766b9848158a3
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.