ERC-20
Overview
Max Total Supply
299,792,458 SOL
Holders
70
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
575,657.397206347 SOLValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
SpeedOfLight
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-08-21 */ /* 299792458 - $SOL (Speed of light) Vitalik registered 299792458.eth in 2021. 299792458 is the number for "Speed of Light". Hence the ticker $SOL. This is 1 of 2 ENS' he has registered that isn't related to his name. The other being dacc.eth. Website: https://299792458sol.com/ Twitter: https://x.com/299792458sol Memes: https://t.me/+7jBcqxvxXxFjNGY0 ENS ownership: https://etherscan.io/nft/0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85/56561615073116465547982110100544646083496655839147107209354168185688149064639 */ // SPDX-License-Identifier: UNLICENSE pragma solidity ^0.8.0; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } 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; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract SpeedOfLight is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private bots; address payable private _taxWallet; uint256 private _initialBuyTax=21; uint256 private _initialSellTax=21; uint256 private _finalBuyTax=0; uint256 private _finalSellTax=0; uint256 private _reduceBuyTaxAt=21; uint256 private _reduceSellTaxAt=21; uint256 private _preventSwapBefore=21; uint256 private _buyCount=0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 299792458 * 10**_decimals; string private constant _name = unicode"299792458"; string private constant _symbol = unicode"SOL"; uint256 public _maxTxAmount = _tTotal; uint256 public _maxWalletSize = _tTotal; uint256 private _initMaxWalletAndTx = 5995850 * 10**_decimals; uint256 public _taxSwapThreshold= 1498962 * 10**_decimals; uint256 public _maxTaxSwap= 2997925 * 10**_decimals; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; uint256 private sellCount = 0; uint256 private lastSellBlock = 0; event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _taxWallet = payable(_msgSender()); _balances[address(this)] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_taxWallet] = true; emit Transfer(address(0), address(this), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 taxAmount=0; if (from != owner() && to != owner() && to != _taxWallet) { require(!bots[from] && !bots[to]); taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); _buyCount++; } if(to == uniswapV2Pair && from!= address(this) ){ taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) { if (block.number > lastSellBlock) { sellCount = 0; } require(sellCount < 3, "Only 3 sells per block!"); swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } sellCount++; lastSellBlock = block.number; } } if(taxAmount>0){ _balances[address(this)]=_balances[address(this)].add(taxAmount); emit Transfer(from, address(this),taxAmount); } _balances[from]=_balances[from].sub(amount); _balances[to]=_balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function removeLimitp() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize = _tTotal; emit MaxTxAmountUpdated(_tTotal); } function addLimit() external onlyOwner{ _maxTxAmount = _initMaxWalletAndTx; _maxWalletSize = _initMaxWalletAndTx; emit MaxTxAmountUpdated(_initMaxWalletAndTx); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function addBotp(address[] memory bots_) public onlyOwner { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function delBotp(address[] memory notbot) public onlyOwner { for (uint i = 0; i < notbot.length; i++) { bots[notbot[i]] = false; } } function isBot(address a) public view returns (bool){ return bots[a]; } function openTrading() external payable onlyOwner() { require(!tradingOpen,"trading is already open"); uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); uniswapV2Router.addLiquidityETH{value: msg.value}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); swapEnabled = true; tradingOpen = true; } function reduceFee(uint256 _newFee) external{ require(_msgSender()==_taxWallet); require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax); _finalBuyTax=_newFee; _finalSellTax=_newFee; } receive() external payable {} function rescueERC20(address _address, uint256 percent) external { require(_msgSender()==_taxWallet); uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100); IERC20(_address).transfer(_taxWallet, _amount); } function manualSwap() external { require(_msgSender()==_taxWallet); uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance>0 && swapEnabled){ swapTokensForEth(tokenBalance); } uint256 ethBalance=address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } }
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":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBotp","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBotp","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimitp","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052601560065560156007555f6008555f6009556015600a556015600b556015600c555f600d556009600a61003791906105b6565b6311de784a6100469190610600565b600e556009600a61005791906105b6565b6311de784a6100669190610600565b600f556009600a61007791906105b6565b625b7d4a6100859190610600565b6010556009600a61009691906105b6565b6216df526100a49190610600565b6011556009600a6100b591906105b6565b622dbea56100c39190610600565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff0219169083151502179055505f6015555f60165534801561010d575f80fd5b505f61011d61041760201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506101c761041760201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a61021491906105b6565b6311de784a6102239190610600565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61027761041e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6103ee91906105b6565b6311de784a6103fd9190610600565b60405161040a9190610650565b60405180910390a3610669565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156104c7578086048111156104a3576104a2610445565b5b60018516156104b25780820291505b80810290506104c085610472565b9450610487565b94509492505050565b5f826104df576001905061059a565b816104ec575f905061059a565b8160018114610502576002811461050c5761053b565b600191505061059a565b60ff84111561051e5761051d610445565b5b8360020a91508482111561053557610534610445565b5b5061059a565b5060208310610133831016604e8410600b84101617156105705782820a90508381111561056b5761056a610445565b5b61059a565b61057d848484600161047e565b9250905081840481111561059457610593610445565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6105c0826105a1565b91506105cb836105aa565b92506105f87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104d0565b905092915050565b5f61060a826105a1565b9150610615836105a1565b9250828202610623816105a1565b9150828204841483151761063a57610639610445565b5b5092915050565b61064a816105a1565b82525050565b5f6020820190506106635f830184610641565b92915050565b61391a806106765f395ff3fe608060405260043610610169575f3560e01c80637d1db4a5116100d0578063a9059cbb11610089578063dd62ed3e11610063578063dd62ed3e146104cc578063dfa2f6f114610508578063ec1f3f6314610530578063f2fde38b1461055857610170565b8063a9059cbb1461045c578063bf474bed14610498578063c9567bf9146104c257610170565b80637d1db4a5146103645780638cd4426d1461038e5780638da5cb5b146103b65780638f9a55c0146103e0578063914137001461040a57806395d89b411461043257610170565b8063313ce56711610122578063313ce567146102805780633a9e962a146102aa5780633bbac579146102c057806351bc3c85146102fc57806370a0823114610312578063715018a61461034e57610170565b806306fdde0314610174578063095ea7b31461019e5780630faee56f146101da57806318160ddd146102045780632241bdc41461022e57806323b872dd1461024457610170565b3661017057005b5f80fd5b34801561017f575f80fd5b50610188610580565b6040516101959190612822565b60405180910390f35b3480156101a9575f80fd5b506101c460048036038101906101bf91906128e0565b6105bd565b6040516101d19190612938565b60405180910390f35b3480156101e5575f80fd5b506101ee6105da565b6040516101fb9190612960565b60405180910390f35b34801561020f575f80fd5b506102186105e0565b6040516102259190612960565b60405180910390f35b348015610239575f80fd5b50610242610603565b005b34801561024f575f80fd5b5061026a60048036038101906102659190612979565b610732565b6040516102779190612938565b60405180910390f35b34801561028b575f80fd5b50610294610806565b6040516102a191906129e4565b60405180910390f35b3480156102b5575f80fd5b506102be61080e565b005b3480156102cb575f80fd5b506102e660048036038101906102e191906129fd565b6108ef565b6040516102f39190612938565b60405180910390f35b348015610307575f80fd5b50610310610941565b005b34801561031d575f80fd5b50610338600480360381019061033391906129fd565b6109f0565b6040516103459190612960565b60405180910390f35b348015610359575f80fd5b50610362610a36565b005b34801561036f575f80fd5b50610378610b84565b6040516103859190612960565b60405180910390f35b348015610399575f80fd5b506103b460048036038101906103af91906128e0565b610b8a565b005b3480156103c1575f80fd5b506103ca610d2b565b6040516103d79190612a37565b60405180910390f35b3480156103eb575f80fd5b506103f4610d52565b6040516104019190612960565b60405180910390f35b348015610415575f80fd5b50610430600480360381019061042b9190612b90565b610d58565b005b34801561043d575f80fd5b50610446610e76565b6040516104539190612822565b60405180910390f35b348015610467575f80fd5b50610482600480360381019061047d91906128e0565b610eb3565b60405161048f9190612938565b60405180910390f35b3480156104a3575f80fd5b506104ac610ed0565b6040516104b99190612960565b60405180910390f35b6104ca610ed6565b005b3480156104d7575f80fd5b506104f260048036038101906104ed9190612bd7565b6113f5565b6040516104ff9190612960565b60405180910390f35b348015610513575f80fd5b5061052e60048036038101906105299190612b90565b611477565b005b34801561053b575f80fd5b5061055660048036038101906105519190612c15565b611596565b005b348015610563575f80fd5b5061057e600480360381019061057991906129fd565b611622565b005b60606040518060400160405280600981526020017f3239393739323435380000000000000000000000000000000000000000000000815250905090565b5f6105d06105c9611771565b8484611778565b6001905092915050565b60125481565b5f6009600a6105ef9190612d9c565b6311de784a6105fe9190612de6565b905090565b61060b611771565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610697576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068e90612e71565b60405180910390fd5b6009600a6106a59190612d9c565b6311de784a6106b49190612de6565b600e819055506009600a6106c89190612d9c565b6311de784a6106d79190612de6565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61070c9190612d9c565b6311de784a61071b9190612de6565b6040516107289190612960565b60405180910390a1565b5f61073e84848461193b565b6107fb8461074a611771565b6107f6856040518060600160405280602881526020016138bd6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107ad611771565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461229e9092919063ffffffff16565b611778565b600190509392505050565b5f6009905090565b610816611771565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089990612e71565b60405180910390fd5b601054600e81905550601054600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6010546040516108e59190612960565b60405180910390a1565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610981611771565b73ffffffffffffffffffffffffffffffffffffffff16146109a0575f80fd5b5f6109aa306109f0565b90505f811180156109c75750601460169054906101000a900460ff165b156109d6576109d581612300565b5b5f4790505f8111156109ec576109eb8161256b565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a3e611771565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac190612e71565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e5481565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bca611771565b73ffffffffffffffffffffffffffffffffffffffff1614610be9575f80fd5b5f610c876064610c79848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c2c9190612a37565b602060405180830381865afa158015610c47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6b9190612ea3565b6125d390919063ffffffff16565b61264a90919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610ce5929190612f29565b6020604051808303815f875af1158015610d01573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d259190612f7a565b50505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b610d60611771565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de390612e71565b60405180910390fd5b5f5b8151811015610e72575f60045f848481518110610e0e57610e0d612fa5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610dee565b5050565b60606040518060400160405280600381526020017f534f4c0000000000000000000000000000000000000000000000000000000000815250905090565b5f610ec6610ebf611771565b848461193b565b6001905092915050565b60115481565b610ede611771565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6190612e71565b60405180910390fd5b60148054906101000a900460ff1615610fb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610faf9061301c565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506110543060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6110409190612d9c565b6311de784a61104f9190612de6565b611778565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110be573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110e2919061304e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611168573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061118c919061304e565b6040518363ffffffff1660e01b81526004016111a9929190613079565b6020604051808303815f875af11580156111c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111e9919061304e565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430611270306109f0565b5f8061127a610d2b565b426040518863ffffffff1660e01b815260040161129c969594939291906130d9565b60606040518083038185885af11580156112b8573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906112dd9190613138565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161137d929190613188565b6020604051808303815f875af1158015611399573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113bd9190612f7a565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61147f611771565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461150b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150290612e71565b60405180910390fd5b5f5b815181101561159257600160045f84848151811061152e5761152d612fa5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061150d565b5050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115d6611771565b73ffffffffffffffffffffffffffffffffffffffff16146115f5575f80fd5b600854811115801561160957506009548111155b611611575f80fd5b806008819055508060098190555050565b61162a611771565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ad90612e71565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117dd9061321f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611854576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184b906132ad565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161192e9190612960565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a09061333b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0e906133c9565b60405180910390fd5b5f8111611a59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5090613457565b60405180910390fd5b5f611a62610d2b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ad05750611aa0610d2b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b29575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fee5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611bcc575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611bd4575f80fd5b611c106064611c02600a54600d5411611bef57600654611bf3565b6008545b856125d390919063ffffffff16565b61264a90919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611cbb575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d0e575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611dc857600e54821115611d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4f906134bf565b60405180910390fd5b600f5482611d65856109f0565b611d6f91906134dd565b1115611db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da79061355a565b60405180910390fd5b600d5f815480929190611dc290613578565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e5057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611e9457611e916064611e83600b54600d5411611e7057600754611e74565b6009545b856125d390919063ffffffff16565b61264a90919063ffffffff16565b90505b5f611e9e306109f0565b9050601460159054906101000a900460ff16158015611f09575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611f215750601460169054906101000a900460ff165b8015611f2e575060115481115b8015611f3d5750600c54600d54115b15611fec57601654431115611f54575f6015819055505b600360155410611f99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9090613609565b60405180910390fd5b611fb6611fb184611fac84601254612693565b612693565b612300565b5f4790505f811115611fcc57611fcb4761256b565b5b60155f815480929190611fde90613578565b919050555043601681905550505b505b5f8111156120ed576120468160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126ab90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120e49190612960565b60405180910390a35b61213d8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461270890919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506121e0612194828461270890919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126ab90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612283848661270890919063ffffffff16565b6040516122909190612960565b60405180910390a350505050565b5f8383111582906122e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122dc9190612822565b60405180910390fd5b505f83856122f39190613627565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561233757612336612a54565b5b6040519080825280602002602001820160405280156123655781602001602082028036833780820191505090505b50905030815f8151811061237c5761237b612fa5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612420573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612444919061304e565b8160018151811061245857612457612fa5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124be3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611778565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612520959493929190613711565b5f604051808303815f87803b158015612537575f80fd5b505af1158015612549573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156125cf573d5f803e3d5ffd5b5050565b5f8083036125e3575f9050612644565b5f82846125f09190612de6565b90508284826125ff9190613796565b1461263f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263690613836565b60405180910390fd5b809150505b92915050565b5f61268b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612751565b905092915050565b5f8183116126a157826126a3565b815b905092915050565b5f8082846126b991906134dd565b9050838110156126fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f59061389e565b60405180910390fd5b8091505092915050565b5f61274983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061229e565b905092915050565b5f8083118290612797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278e9190612822565b60405180910390fd5b505f83856127a59190613796565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6127f4826127b2565b6127fe81856127bc565b935061280e8185602086016127cc565b612817816127da565b840191505092915050565b5f6020820190508181035f83015261283a81846127ea565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61287c82612853565b9050919050565b61288c81612872565b8114612896575f80fd5b50565b5f813590506128a781612883565b92915050565b5f819050919050565b6128bf816128ad565b81146128c9575f80fd5b50565b5f813590506128da816128b6565b92915050565b5f80604083850312156128f6576128f561284b565b5b5f61290385828601612899565b9250506020612914858286016128cc565b9150509250929050565b5f8115159050919050565b6129328161291e565b82525050565b5f60208201905061294b5f830184612929565b92915050565b61295a816128ad565b82525050565b5f6020820190506129735f830184612951565b92915050565b5f805f606084860312156129905761298f61284b565b5b5f61299d86828701612899565b93505060206129ae86828701612899565b92505060406129bf868287016128cc565b9150509250925092565b5f60ff82169050919050565b6129de816129c9565b82525050565b5f6020820190506129f75f8301846129d5565b92915050565b5f60208284031215612a1257612a1161284b565b5b5f612a1f84828501612899565b91505092915050565b612a3181612872565b82525050565b5f602082019050612a4a5f830184612a28565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612a8a826127da565b810181811067ffffffffffffffff82111715612aa957612aa8612a54565b5b80604052505050565b5f612abb612842565b9050612ac78282612a81565b919050565b5f67ffffffffffffffff821115612ae657612ae5612a54565b5b602082029050602081019050919050565b5f80fd5b5f612b0d612b0884612acc565b612ab2565b90508083825260208201905060208402830185811115612b3057612b2f612af7565b5b835b81811015612b595780612b458882612899565b845260208401935050602081019050612b32565b5050509392505050565b5f82601f830112612b7757612b76612a50565b5b8135612b87848260208601612afb565b91505092915050565b5f60208284031215612ba557612ba461284b565b5b5f82013567ffffffffffffffff811115612bc257612bc161284f565b5b612bce84828501612b63565b91505092915050565b5f8060408385031215612bed57612bec61284b565b5b5f612bfa85828601612899565b9250506020612c0b85828601612899565b9150509250929050565b5f60208284031215612c2a57612c2961284b565b5b5f612c37848285016128cc565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612cc257808604811115612c9e57612c9d612c40565b5b6001851615612cad5780820291505b8081029050612cbb85612c6d565b9450612c82565b94509492505050565b5f82612cda5760019050612d95565b81612ce7575f9050612d95565b8160018114612cfd5760028114612d0757612d36565b6001915050612d95565b60ff841115612d1957612d18612c40565b5b8360020a915084821115612d3057612d2f612c40565b5b50612d95565b5060208310610133831016604e8410600b8410161715612d6b5782820a905083811115612d6657612d65612c40565b5b612d95565b612d788484846001612c79565b92509050818404811115612d8f57612d8e612c40565b5b81810290505b9392505050565b5f612da6826128ad565b9150612db1836129c9565b9250612dde7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612ccb565b905092915050565b5f612df0826128ad565b9150612dfb836128ad565b9250828202612e09816128ad565b91508282048414831517612e2057612e1f612c40565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612e5b6020836127bc565b9150612e6682612e27565b602082019050919050565b5f6020820190508181035f830152612e8881612e4f565b9050919050565b5f81519050612e9d816128b6565b92915050565b5f60208284031215612eb857612eb761284b565b5b5f612ec584828501612e8f565b91505092915050565b5f819050919050565b5f612ef1612eec612ee784612853565b612ece565b612853565b9050919050565b5f612f0282612ed7565b9050919050565b5f612f1382612ef8565b9050919050565b612f2381612f09565b82525050565b5f604082019050612f3c5f830185612f1a565b612f496020830184612951565b9392505050565b612f598161291e565b8114612f63575f80fd5b50565b5f81519050612f7481612f50565b92915050565b5f60208284031215612f8f57612f8e61284b565b5b5f612f9c84828501612f66565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6130066017836127bc565b915061301182612fd2565b602082019050919050565b5f6020820190508181035f83015261303381612ffa565b9050919050565b5f8151905061304881612883565b92915050565b5f602082840312156130635761306261284b565b5b5f6130708482850161303a565b91505092915050565b5f60408201905061308c5f830185612a28565b6130996020830184612a28565b9392505050565b5f819050919050565b5f6130c36130be6130b9846130a0565b612ece565b6128ad565b9050919050565b6130d3816130a9565b82525050565b5f60c0820190506130ec5f830189612a28565b6130f96020830188612951565b61310660408301876130ca565b61311360608301866130ca565b6131206080830185612a28565b61312d60a0830184612951565b979650505050505050565b5f805f6060848603121561314f5761314e61284b565b5b5f61315c86828701612e8f565b935050602061316d86828701612e8f565b925050604061317e86828701612e8f565b9150509250925092565b5f60408201905061319b5f830185612a28565b6131a86020830184612951565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6132096024836127bc565b9150613214826131af565b604082019050919050565b5f6020820190508181035f830152613236816131fd565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132976022836127bc565b91506132a28261323d565b604082019050919050565b5f6020820190508181035f8301526132c48161328b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6133256025836127bc565b9150613330826132cb565b604082019050919050565b5f6020820190508181035f83015261335281613319565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6133b36023836127bc565b91506133be82613359565b604082019050919050565b5f6020820190508181035f8301526133e0816133a7565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6134416029836127bc565b915061344c826133e7565b604082019050919050565b5f6020820190508181035f83015261346e81613435565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6134a96019836127bc565b91506134b482613475565b602082019050919050565b5f6020820190508181035f8301526134d68161349d565b9050919050565b5f6134e7826128ad565b91506134f2836128ad565b925082820190508082111561350a57613509612c40565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613544601a836127bc565b915061354f82613510565b602082019050919050565b5f6020820190508181035f83015261357181613538565b9050919050565b5f613582826128ad565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036135b4576135b3612c40565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6135f36017836127bc565b91506135fe826135bf565b602082019050919050565b5f6020820190508181035f830152613620816135e7565b9050919050565b5f613631826128ad565b915061363c836128ad565b925082820390508181111561365457613653612c40565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61368c81612872565b82525050565b5f61369d8383613683565b60208301905092915050565b5f602082019050919050565b5f6136bf8261365a565b6136c98185613664565b93506136d483613674565b805f5b838110156137045781516136eb8882613692565b97506136f6836136a9565b9250506001810190506136d7565b5085935050505092915050565b5f60a0820190506137245f830188612951565b61373160208301876130ca565b818103604083015261374381866136b5565b90506137526060830185612a28565b61375f6080830184612951565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6137a0826128ad565b91506137ab836128ad565b9250826137bb576137ba613769565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6138206021836127bc565b915061382b826137c6565b604082019050919050565b5f6020820190508181035f83015261384d81613814565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613888601b836127bc565b915061389382613854565b602082019050919050565b5f6020820190508181035f8301526138b58161387c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203d033169d02f2ffe6cbd1df1b10200b70a21b24fdc07942b7b9daaa1dcfcb1f364736f6c634300081a0033
Deployed Bytecode
0x608060405260043610610169575f3560e01c80637d1db4a5116100d0578063a9059cbb11610089578063dd62ed3e11610063578063dd62ed3e146104cc578063dfa2f6f114610508578063ec1f3f6314610530578063f2fde38b1461055857610170565b8063a9059cbb1461045c578063bf474bed14610498578063c9567bf9146104c257610170565b80637d1db4a5146103645780638cd4426d1461038e5780638da5cb5b146103b65780638f9a55c0146103e0578063914137001461040a57806395d89b411461043257610170565b8063313ce56711610122578063313ce567146102805780633a9e962a146102aa5780633bbac579146102c057806351bc3c85146102fc57806370a0823114610312578063715018a61461034e57610170565b806306fdde0314610174578063095ea7b31461019e5780630faee56f146101da57806318160ddd146102045780632241bdc41461022e57806323b872dd1461024457610170565b3661017057005b5f80fd5b34801561017f575f80fd5b50610188610580565b6040516101959190612822565b60405180910390f35b3480156101a9575f80fd5b506101c460048036038101906101bf91906128e0565b6105bd565b6040516101d19190612938565b60405180910390f35b3480156101e5575f80fd5b506101ee6105da565b6040516101fb9190612960565b60405180910390f35b34801561020f575f80fd5b506102186105e0565b6040516102259190612960565b60405180910390f35b348015610239575f80fd5b50610242610603565b005b34801561024f575f80fd5b5061026a60048036038101906102659190612979565b610732565b6040516102779190612938565b60405180910390f35b34801561028b575f80fd5b50610294610806565b6040516102a191906129e4565b60405180910390f35b3480156102b5575f80fd5b506102be61080e565b005b3480156102cb575f80fd5b506102e660048036038101906102e191906129fd565b6108ef565b6040516102f39190612938565b60405180910390f35b348015610307575f80fd5b50610310610941565b005b34801561031d575f80fd5b50610338600480360381019061033391906129fd565b6109f0565b6040516103459190612960565b60405180910390f35b348015610359575f80fd5b50610362610a36565b005b34801561036f575f80fd5b50610378610b84565b6040516103859190612960565b60405180910390f35b348015610399575f80fd5b506103b460048036038101906103af91906128e0565b610b8a565b005b3480156103c1575f80fd5b506103ca610d2b565b6040516103d79190612a37565b60405180910390f35b3480156103eb575f80fd5b506103f4610d52565b6040516104019190612960565b60405180910390f35b348015610415575f80fd5b50610430600480360381019061042b9190612b90565b610d58565b005b34801561043d575f80fd5b50610446610e76565b6040516104539190612822565b60405180910390f35b348015610467575f80fd5b50610482600480360381019061047d91906128e0565b610eb3565b60405161048f9190612938565b60405180910390f35b3480156104a3575f80fd5b506104ac610ed0565b6040516104b99190612960565b60405180910390f35b6104ca610ed6565b005b3480156104d7575f80fd5b506104f260048036038101906104ed9190612bd7565b6113f5565b6040516104ff9190612960565b60405180910390f35b348015610513575f80fd5b5061052e60048036038101906105299190612b90565b611477565b005b34801561053b575f80fd5b5061055660048036038101906105519190612c15565b611596565b005b348015610563575f80fd5b5061057e600480360381019061057991906129fd565b611622565b005b60606040518060400160405280600981526020017f3239393739323435380000000000000000000000000000000000000000000000815250905090565b5f6105d06105c9611771565b8484611778565b6001905092915050565b60125481565b5f6009600a6105ef9190612d9c565b6311de784a6105fe9190612de6565b905090565b61060b611771565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610697576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068e90612e71565b60405180910390fd5b6009600a6106a59190612d9c565b6311de784a6106b49190612de6565b600e819055506009600a6106c89190612d9c565b6311de784a6106d79190612de6565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61070c9190612d9c565b6311de784a61071b9190612de6565b6040516107289190612960565b60405180910390a1565b5f61073e84848461193b565b6107fb8461074a611771565b6107f6856040518060600160405280602881526020016138bd6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107ad611771565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461229e9092919063ffffffff16565b611778565b600190509392505050565b5f6009905090565b610816611771565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089990612e71565b60405180910390fd5b601054600e81905550601054600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6010546040516108e59190612960565b60405180910390a1565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610981611771565b73ffffffffffffffffffffffffffffffffffffffff16146109a0575f80fd5b5f6109aa306109f0565b90505f811180156109c75750601460169054906101000a900460ff165b156109d6576109d581612300565b5b5f4790505f8111156109ec576109eb8161256b565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a3e611771565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac190612e71565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e5481565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bca611771565b73ffffffffffffffffffffffffffffffffffffffff1614610be9575f80fd5b5f610c876064610c79848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c2c9190612a37565b602060405180830381865afa158015610c47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6b9190612ea3565b6125d390919063ffffffff16565b61264a90919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610ce5929190612f29565b6020604051808303815f875af1158015610d01573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d259190612f7a565b50505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b610d60611771565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de390612e71565b60405180910390fd5b5f5b8151811015610e72575f60045f848481518110610e0e57610e0d612fa5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610dee565b5050565b60606040518060400160405280600381526020017f534f4c0000000000000000000000000000000000000000000000000000000000815250905090565b5f610ec6610ebf611771565b848461193b565b6001905092915050565b60115481565b610ede611771565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6190612e71565b60405180910390fd5b60148054906101000a900460ff1615610fb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610faf9061301c565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506110543060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6110409190612d9c565b6311de784a61104f9190612de6565b611778565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110be573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110e2919061304e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611168573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061118c919061304e565b6040518363ffffffff1660e01b81526004016111a9929190613079565b6020604051808303815f875af11580156111c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111e9919061304e565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430611270306109f0565b5f8061127a610d2b565b426040518863ffffffff1660e01b815260040161129c969594939291906130d9565b60606040518083038185885af11580156112b8573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906112dd9190613138565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161137d929190613188565b6020604051808303815f875af1158015611399573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113bd9190612f7a565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61147f611771565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461150b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150290612e71565b60405180910390fd5b5f5b815181101561159257600160045f84848151811061152e5761152d612fa5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061150d565b5050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115d6611771565b73ffffffffffffffffffffffffffffffffffffffff16146115f5575f80fd5b600854811115801561160957506009548111155b611611575f80fd5b806008819055508060098190555050565b61162a611771565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ad90612e71565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117dd9061321f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611854576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184b906132ad565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161192e9190612960565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a09061333b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0e906133c9565b60405180910390fd5b5f8111611a59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5090613457565b60405180910390fd5b5f611a62610d2b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ad05750611aa0610d2b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b29575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fee5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611bcc575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611bd4575f80fd5b611c106064611c02600a54600d5411611bef57600654611bf3565b6008545b856125d390919063ffffffff16565b61264a90919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611cbb575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d0e575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611dc857600e54821115611d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4f906134bf565b60405180910390fd5b600f5482611d65856109f0565b611d6f91906134dd565b1115611db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da79061355a565b60405180910390fd5b600d5f815480929190611dc290613578565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e5057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611e9457611e916064611e83600b54600d5411611e7057600754611e74565b6009545b856125d390919063ffffffff16565b61264a90919063ffffffff16565b90505b5f611e9e306109f0565b9050601460159054906101000a900460ff16158015611f09575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611f215750601460169054906101000a900460ff165b8015611f2e575060115481115b8015611f3d5750600c54600d54115b15611fec57601654431115611f54575f6015819055505b600360155410611f99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9090613609565b60405180910390fd5b611fb6611fb184611fac84601254612693565b612693565b612300565b5f4790505f811115611fcc57611fcb4761256b565b5b60155f815480929190611fde90613578565b919050555043601681905550505b505b5f8111156120ed576120468160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126ab90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120e49190612960565b60405180910390a35b61213d8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461270890919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506121e0612194828461270890919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126ab90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612283848661270890919063ffffffff16565b6040516122909190612960565b60405180910390a350505050565b5f8383111582906122e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122dc9190612822565b60405180910390fd5b505f83856122f39190613627565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561233757612336612a54565b5b6040519080825280602002602001820160405280156123655781602001602082028036833780820191505090505b50905030815f8151811061237c5761237b612fa5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612420573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612444919061304e565b8160018151811061245857612457612fa5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124be3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611778565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612520959493929190613711565b5f604051808303815f87803b158015612537575f80fd5b505af1158015612549573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156125cf573d5f803e3d5ffd5b5050565b5f8083036125e3575f9050612644565b5f82846125f09190612de6565b90508284826125ff9190613796565b1461263f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263690613836565b60405180910390fd5b809150505b92915050565b5f61268b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612751565b905092915050565b5f8183116126a157826126a3565b815b905092915050565b5f8082846126b991906134dd565b9050838110156126fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f59061389e565b60405180910390fd5b8091505092915050565b5f61274983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061229e565b905092915050565b5f8083118290612797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278e9190612822565b60405180910390fd5b505f83856127a59190613796565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6127f4826127b2565b6127fe81856127bc565b935061280e8185602086016127cc565b612817816127da565b840191505092915050565b5f6020820190508181035f83015261283a81846127ea565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61287c82612853565b9050919050565b61288c81612872565b8114612896575f80fd5b50565b5f813590506128a781612883565b92915050565b5f819050919050565b6128bf816128ad565b81146128c9575f80fd5b50565b5f813590506128da816128b6565b92915050565b5f80604083850312156128f6576128f561284b565b5b5f61290385828601612899565b9250506020612914858286016128cc565b9150509250929050565b5f8115159050919050565b6129328161291e565b82525050565b5f60208201905061294b5f830184612929565b92915050565b61295a816128ad565b82525050565b5f6020820190506129735f830184612951565b92915050565b5f805f606084860312156129905761298f61284b565b5b5f61299d86828701612899565b93505060206129ae86828701612899565b92505060406129bf868287016128cc565b9150509250925092565b5f60ff82169050919050565b6129de816129c9565b82525050565b5f6020820190506129f75f8301846129d5565b92915050565b5f60208284031215612a1257612a1161284b565b5b5f612a1f84828501612899565b91505092915050565b612a3181612872565b82525050565b5f602082019050612a4a5f830184612a28565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612a8a826127da565b810181811067ffffffffffffffff82111715612aa957612aa8612a54565b5b80604052505050565b5f612abb612842565b9050612ac78282612a81565b919050565b5f67ffffffffffffffff821115612ae657612ae5612a54565b5b602082029050602081019050919050565b5f80fd5b5f612b0d612b0884612acc565b612ab2565b90508083825260208201905060208402830185811115612b3057612b2f612af7565b5b835b81811015612b595780612b458882612899565b845260208401935050602081019050612b32565b5050509392505050565b5f82601f830112612b7757612b76612a50565b5b8135612b87848260208601612afb565b91505092915050565b5f60208284031215612ba557612ba461284b565b5b5f82013567ffffffffffffffff811115612bc257612bc161284f565b5b612bce84828501612b63565b91505092915050565b5f8060408385031215612bed57612bec61284b565b5b5f612bfa85828601612899565b9250506020612c0b85828601612899565b9150509250929050565b5f60208284031215612c2a57612c2961284b565b5b5f612c37848285016128cc565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612cc257808604811115612c9e57612c9d612c40565b5b6001851615612cad5780820291505b8081029050612cbb85612c6d565b9450612c82565b94509492505050565b5f82612cda5760019050612d95565b81612ce7575f9050612d95565b8160018114612cfd5760028114612d0757612d36565b6001915050612d95565b60ff841115612d1957612d18612c40565b5b8360020a915084821115612d3057612d2f612c40565b5b50612d95565b5060208310610133831016604e8410600b8410161715612d6b5782820a905083811115612d6657612d65612c40565b5b612d95565b612d788484846001612c79565b92509050818404811115612d8f57612d8e612c40565b5b81810290505b9392505050565b5f612da6826128ad565b9150612db1836129c9565b9250612dde7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612ccb565b905092915050565b5f612df0826128ad565b9150612dfb836128ad565b9250828202612e09816128ad565b91508282048414831517612e2057612e1f612c40565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612e5b6020836127bc565b9150612e6682612e27565b602082019050919050565b5f6020820190508181035f830152612e8881612e4f565b9050919050565b5f81519050612e9d816128b6565b92915050565b5f60208284031215612eb857612eb761284b565b5b5f612ec584828501612e8f565b91505092915050565b5f819050919050565b5f612ef1612eec612ee784612853565b612ece565b612853565b9050919050565b5f612f0282612ed7565b9050919050565b5f612f1382612ef8565b9050919050565b612f2381612f09565b82525050565b5f604082019050612f3c5f830185612f1a565b612f496020830184612951565b9392505050565b612f598161291e565b8114612f63575f80fd5b50565b5f81519050612f7481612f50565b92915050565b5f60208284031215612f8f57612f8e61284b565b5b5f612f9c84828501612f66565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6130066017836127bc565b915061301182612fd2565b602082019050919050565b5f6020820190508181035f83015261303381612ffa565b9050919050565b5f8151905061304881612883565b92915050565b5f602082840312156130635761306261284b565b5b5f6130708482850161303a565b91505092915050565b5f60408201905061308c5f830185612a28565b6130996020830184612a28565b9392505050565b5f819050919050565b5f6130c36130be6130b9846130a0565b612ece565b6128ad565b9050919050565b6130d3816130a9565b82525050565b5f60c0820190506130ec5f830189612a28565b6130f96020830188612951565b61310660408301876130ca565b61311360608301866130ca565b6131206080830185612a28565b61312d60a0830184612951565b979650505050505050565b5f805f6060848603121561314f5761314e61284b565b5b5f61315c86828701612e8f565b935050602061316d86828701612e8f565b925050604061317e86828701612e8f565b9150509250925092565b5f60408201905061319b5f830185612a28565b6131a86020830184612951565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6132096024836127bc565b9150613214826131af565b604082019050919050565b5f6020820190508181035f830152613236816131fd565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132976022836127bc565b91506132a28261323d565b604082019050919050565b5f6020820190508181035f8301526132c48161328b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6133256025836127bc565b9150613330826132cb565b604082019050919050565b5f6020820190508181035f83015261335281613319565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6133b36023836127bc565b91506133be82613359565b604082019050919050565b5f6020820190508181035f8301526133e0816133a7565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6134416029836127bc565b915061344c826133e7565b604082019050919050565b5f6020820190508181035f83015261346e81613435565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6134a96019836127bc565b91506134b482613475565b602082019050919050565b5f6020820190508181035f8301526134d68161349d565b9050919050565b5f6134e7826128ad565b91506134f2836128ad565b925082820190508082111561350a57613509612c40565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613544601a836127bc565b915061354f82613510565b602082019050919050565b5f6020820190508181035f83015261357181613538565b9050919050565b5f613582826128ad565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036135b4576135b3612c40565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6135f36017836127bc565b91506135fe826135bf565b602082019050919050565b5f6020820190508181035f830152613620816135e7565b9050919050565b5f613631826128ad565b915061363c836128ad565b925082820390508181111561365457613653612c40565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61368c81612872565b82525050565b5f61369d8383613683565b60208301905092915050565b5f602082019050919050565b5f6136bf8261365a565b6136c98185613664565b93506136d483613674565b805f5b838110156137045781516136eb8882613692565b97506136f6836136a9565b9250506001810190506136d7565b5085935050505092915050565b5f60a0820190506137245f830188612951565b61373160208301876130ca565b818103604083015261374381866136b5565b90506137526060830185612a28565b61375f6080830184612951565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6137a0826128ad565b91506137ab836128ad565b9250826137bb576137ba613769565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6138206021836127bc565b915061382b826137c6565b604082019050919050565b5f6020820190508181035f83015261384d81613814565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613888601b836127bc565b915061389382613854565b602082019050919050565b5f6020820190508181035f8301526138b58161387c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203d033169d02f2ffe6cbd1df1b10200b70a21b24fdc07942b7b9daaa1dcfcb1f364736f6c634300081a0033
Deployed Bytecode Sourcemap
4194:8893:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6127:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6960:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5321:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6404:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10602:161;;;;;;;;;;;;;:::i;:::-;;7129:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6313:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10771:193;;;;;;;;;;;;;:::i;:::-;;11414:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12721:363;;;;;;;;;;;;;:::i;:::-;;6507:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3109:148;;;;;;;;;;;;;:::i;:::-;;5099:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12447:266;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2895:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5143:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11244:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6218:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6634:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5257:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11505:667;;;:::i;:::-;;6809:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11072:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12184:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3265:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6127:83;6164:13;6197:5;;;;;;;;;;;;;;;;;6190:12;;6127:83;:::o;6960:161::-;7035:4;7052:39;7061:12;:10;:12::i;:::-;7075:7;7084:6;7052:8;:39::i;:::-;7109:4;7102:11;;6960:161;;;;:::o;5321:51::-;;;;:::o;6404:95::-;6457:7;4914:1;4969:2;:13;;;;:::i;:::-;4957:9;:25;;;;:::i;:::-;6477:14;;6404:95;:::o;10602:161::-;3032:12;:10;:12::i;:::-;3022:22;;:6;;;;;;;;;;:22;;;3014:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4914:1:::1;4969:2;:13;;;;:::i;:::-;4957:9;:25;;;;:::i;:::-;10655:12;:22;;;;4914:1;4969:2;:13;;;;:::i;:::-;4957:9;:25;;;;:::i;:::-;10688:14;:24;;;;10728:27;4914:1;4969:2;:13;;;;:::i;:::-;4957:9;:25;;;;:::i;:::-;10728:27;;;;;;:::i;:::-;;;;;;;;10602:161::o:0;7129:313::-;7227:4;7244:36;7254:6;7262:9;7273:6;7244:9;:36::i;:::-;7291:121;7300:6;7308:12;:10;:12::i;:::-;7322:89;7360:6;7322:89;;;;;;;;;;;;;;;;;:11;:19;7334:6;7322:19;;;;;;;;;;;;;;;:33;7342:12;:10;:12::i;:::-;7322:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7291:8;:121::i;:::-;7430:4;7423:11;;7129:313;;;;;:::o;6313:83::-;6354:5;4914:1;6372:16;;6313:83;:::o;10771:193::-;3032:12;:10;:12::i;:::-;3022:22;;:6;;;;;;;;;;:22;;;3014:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10835:19:::1;;10820:12;:34;;;;10882:19;;10865:14;:36;;;;10917:39;10936:19;;10917:39;;;;;;:::i;:::-;;;;;;;;10771:193::o:0;11414:83::-;11461:4;11482;:7;11487:1;11482:7;;;;;;;;;;;;;;;;;;;;;;;;;11475:14;;11414:83;;;:::o;12721:363::-;12785:10;;;;;;;;;;;12771:24;;:12;:10;:12::i;:::-;:24;;;12763:33;;;;;;12807:20;12828:24;12846:4;12828:9;:24::i;:::-;12807:45;;12879:1;12866:12;:14;:29;;;;;12884:11;;;;;;;;;;;12866:29;12863:88;;;12909:30;12926:12;12909:16;:30::i;:::-;12863:88;12961:18;12980:21;12961:40;;13026:1;13015:10;:12;13012:65;;;13041:24;13054:10;13041:12;:24::i;:::-;13012:65;12752:332;;12721:363::o;6507:119::-;6573:7;6600:9;:18;6610:7;6600:18;;;;;;;;;;;;;;;;6593:25;;6507:119;;;:::o;3109:148::-;3032:12;:10;:12::i;:::-;3022:22;;:6;;;;;;;;;;:22;;;3014:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3216:1:::1;3179:40;;3200:6;::::0;::::1;;;;;;;;3179:40;;;;;;;;;;;;3247:1;3230:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3109:148::o:0;5099:37::-;;;;:::o;12447:266::-;12545:10;;;;;;;;;;;12531:24;;:12;:10;:12::i;:::-;:24;;;12523:33;;;;;;12567:15;12585:63;12644:3;12585:54;12631:7;12592:8;12585:26;;;12620:4;12585:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;:54;;;;:::i;:::-;:58;;:63;;;;:::i;:::-;12567:81;;12666:8;12659:25;;;12685:10;;;;;;;;;;;12697:7;12659:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12512:201;12447:266;;:::o;2895:79::-;2933:7;2960:6;;;;;;;;;;;2953:13;;2895:79;:::o;5143:39::-;;;;:::o;11244:162::-;3032:12;:10;:12::i;:::-;3022:22;;:6;;;;;;;;;;:22;;;3014:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11317:6:::1;11312:87;11333:6;:13;11329:1;:17;11312:87;;;11384:5;11366:4;:15;11371:6;11378:1;11371:9;;;;;;;;:::i;:::-;;;;;;;;11366:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;11348:3;;;;;;;11312:87;;;;11244:162:::0;:::o;6218:87::-;6257:13;6290:7;;;;;;;;;;;;;;;;;6283:14;;6218:87;:::o;6634:167::-;6712:4;6729:42;6739:12;:10;:12::i;:::-;6753:9;6764:6;6729:9;:42::i;:::-;6789:4;6782:11;;6634:167;;;;:::o;5257:57::-;;;;:::o;11505:667::-;3032:12;:10;:12::i;:::-;3022:22;;:6;;;;;;;;;;:22;;;3014:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11577:11:::1;::::0;::::1;;;;;;;;11576:12;11568:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11663:42;11626:15;;:80;;;;;;;;;;;;;;;;;;11717:58;11734:4;11749:15;;;;;;;;;;;4914:1;4969:2;:13;;;;:::i;:::-;4957:9;:25;;;;:::i;:::-;11717:8;:58::i;:::-;11820:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11802:55;;;11866:4;11873:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11802:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11786:13;;:110;;;;;;;;;;;;;;;;;;11907:15;;;;;;;;;;;:31;;;11946:9;11965:4;11971:24;11989:4;11971:9;:24::i;:::-;11996:1;11998::::0;12000:7:::1;:5;:7::i;:::-;12008:15;11907:117;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12042:13;;;;;;;;;;;12035:29;;;12073:15;;;;;;;;;;;12091:14;12035:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12131:4;12117:11;;:18;;;;;;;;;;;;;;;;;;12160:4;12146:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11505:667::o:0;6809:143::-;6890:7;6917:11;:18;6929:5;6917:18;;;;;;;;;;;;;;;:27;6936:7;6917:27;;;;;;;;;;;;;;;;6910:34;;6809:143;;;;:::o;11072:164::-;3032:12;:10;:12::i;:::-;3022:22;;:6;;;;;;;;;;:22;;;3014:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11146:6:::1;11141:88;11162:5;:12;11158:1;:16;11141:88;;;11213:4;11196;:14;11201:5;11207:1;11201:8;;;;;;;;:::i;:::-;;;;;;;;11196:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11176:3;;;;;;;11141:88;;;;11072:164:::0;:::o;12184:218::-;12259:10;;;;;;;;;;;12245:24;;:12;:10;:12::i;:::-;:24;;;12237:33;;;;;;12296:12;;12287:7;:21;;:47;;;;;12321:13;;12312:7;:22;;12287:47;12279:56;;;;;;12357:7;12344:12;:20;;;;12387:7;12373:13;:21;;;;12184:218;:::o;3265:160::-;3032:12;:10;:12::i;:::-;3022:22;;:6;;;;;;;;;;:22;;;3014:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3380:8:::1;3351:38;;3372:6;::::0;::::1;;;;;;;;3351:38;;;;;;;;;;;;3409:8;3400:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3265:160:::0;:::o;650:98::-;703:7;730:10;723:17;;650:98;:::o;7450:335::-;7560:1;7543:19;;:5;:19;;;7535:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7641:1;7622:21;;:7;:21;;;7614:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7723:6;7693:11;:18;7705:5;7693:18;;;;;;;;;;;;;;;:27;7712:7;7693:27;;;;;;;;;;;;;;;:36;;;;7761:7;7745:32;;7754:5;7745:32;;;7770:6;7745:32;;;;;;:::i;:::-;;;;;;;;7450:335;;;:::o;7793:2202::-;7897:1;7881:18;;:4;:18;;;7873:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7974:1;7960:16;;:2;:16;;;7952:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8044:1;8035:6;:10;8027:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8102:17;8144:7;:5;:7::i;:::-;8136:15;;:4;:15;;;;:32;;;;;8161:7;:5;:7::i;:::-;8155:13;;:2;:13;;;;8136:32;:52;;;;;8178:10;;;;;;;;;;;8172:16;;:2;:16;;;;8136:52;8132:1507;;;8214:4;:10;8219:4;8214:10;;;;;;;;;;;;;;;;;;;;;;;;;8213:11;:24;;;;;8229:4;:8;8234:2;8229:8;;;;;;;;;;;;;;;;;;;;;;;;;8228:9;8213:24;8205:33;;;;;;8267:76;8339:3;8267:67;8289:15;;8279:9;;:25;8278:55;;8319:14;;8278:55;;;8306:12;;8278:55;8267:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8255:88;;8372:13;;;;;;;;;;;8364:21;;:4;:21;;;:55;;;;;8403:15;;;;;;;;;;;8389:30;;:2;:30;;;;8364:55;:83;;;;;8425:18;:22;8444:2;8425:22;;;;;;;;;;;;;;;;;;;;;;;;;8423:24;8364:83;8360:313;;;8487:12;;8477:6;:22;;8469:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8582:14;;8572:6;8556:13;8566:2;8556:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8548:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8646:9;;:11;;;;;;;;;:::i;:::-;;;;;;8360:313;8698:13;;;;;;;;;;;8692:19;;:2;:19;;;:43;;;;;8730:4;8715:20;;:4;:20;;;;8692:43;8689:174;;;8768:79;8843:3;8768:70;8790:16;;8780:9;;:26;8779:58;;8822:15;;8779:58;;;8808:13;;8779:58;8768:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8756:91;;8689:174;8879:28;8910:24;8928:4;8910:9;:24::i;:::-;8879:55;;8954:6;;;;;;;;;;;8953:7;:30;;;;;8970:13;;;;;;;;;;;8964:19;;:2;:19;;;8953:30;:45;;;;;8987:11;;;;;;;;;;;8953:45;:89;;;;;9025:17;;9002:20;:40;8953:89;:123;;;;;9058:18;;9046:9;;:30;8953:123;8949:679;;;9116:13;;9101:12;:28;9097:90;;;9166:1;9154:9;:13;;;;9097:90;9225:1;9213:9;;:13;9205:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;9273:69;9290:51;9294:6;9302:38;9306:20;9328:11;;9302:3;:38::i;:::-;9290:3;:51::i;:::-;9273:16;:69::i;:::-;9361:26;9390:21;9361:50;;9455:1;9434:18;:22;9430:106;;;9481:35;9494:21;9481:12;:35::i;:::-;9430:106;9554:9;;:11;;;;;;;;;:::i;:::-;;;;;;9600:12;9584:13;:28;;;;9078:550;8949:679;8190:1449;8132:1507;9664:1;9654:9;:11;9651:161;;;9704:39;9733:9;9704;:24;9722:4;9704:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9679:9;:24;9697:4;9679:24;;;;;;;;;;;;;;;:64;;;;9784:4;9761:39;;9770:4;9761:39;;;9790:9;9761:39;;;;;;:::i;:::-;;;;;;;;9651:161;9838:27;9858:6;9838:9;:15;9848:4;9838:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9822:9;:15;9832:4;9822:15;;;;;;;;;;;;;;;:43;;;;9890:40;9908:21;9919:9;9908:6;:10;;:21;;;;:::i;:::-;9890:9;:13;9900:2;9890:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9876:9;:13;9886:2;9876:13;;;;;;;;;;;;;;;:54;;;;9961:2;9946:41;;9955:4;9946:41;;;9965:21;9976:9;9965:6;:10;;:21;;;;:::i;:::-;9946:41;;;;;;:::i;:::-;;;;;;;;7862:2133;7793:2202;;;:::o;1787:190::-;1873:7;1906:1;1901;:6;;1909:12;1893:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1933:9;1949:1;1945;:5;;;;:::i;:::-;1933:17;;1968:1;1961:8;;;1787:190;;;;;:::o;10111:483::-;5743:4;5734:6;;:13;;;;;;;;;;;;;;;;;;10189:21:::1;10227:1;10213:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10189:40;;10258:4;10240;10245:1;10240:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10284:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10274:4;10279:1;10274:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10317:62;10334:4;10349:15;;;;;;;;;;;10367:11;10317:8;:62::i;:::-;10390:15;;;;;;;;;;;:66;;;10471:11;10497:1;10513:4;10540;10560:15;10390:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10178:416;5779:5:::0;5770:6;;:14;;;;;;;;;;;;;;;;;;10111:483;:::o;10972:92::-;11029:10;;;;;;;;;;;:19;;:27;11049:6;11029:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10972:92;:::o;1985:246::-;2043:7;2072:1;2067;:6;2063:47;;2097:1;2090:8;;;;2063:47;2120:9;2136:1;2132;:5;;;;:::i;:::-;2120:17;;2165:1;2160;2156;:5;;;;:::i;:::-;:10;2148:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2222:1;2215:8;;;1985:246;;;;;:::o;2239:132::-;2297:7;2324:39;2328:1;2331;2324:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2317:46;;2239:132;;;;:::o;10005:98::-;10062:7;10089:1;10087;:3;10086:9;;10094:1;10086:9;;;10092:1;10086:9;10079:16;;10005:98;;;;:::o;1456:179::-;1514:7;1534:9;1550:1;1546;:5;;;;:::i;:::-;1534:17;;1575:1;1570;:6;;1562:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1626:1;1619:8;;;1456:179;;;;:::o;1643:136::-;1701:7;1728:43;1732:1;1735;1728:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1721:50;;1643:136;;;;:::o;2379:189::-;2465:7;2497:1;2493;:5;2500:12;2485:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2524:9;2540:1;2536;:5;;;;:::i;:::-;2524:17;;2559:1;2552:8;;;2379:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1242:75::-;1275:6;1308:2;1302:9;1292:19;;1242:75;:::o;1323:117::-;1432:1;1429;1422:12;1446:117;1555:1;1552;1545:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:118::-;5168:24;5186:5;5168:24;:::i;:::-;5163:3;5156:37;5081:118;;:::o;5205:222::-;5298:4;5336:2;5325:9;5321:18;5313:26;;5349:71;5417:1;5406:9;5402:17;5393:6;5349:71;:::i;:::-;5205:222;;;;:::o;5433:117::-;5542:1;5539;5532:12;5556:180;5604:77;5601:1;5594:88;5701:4;5698:1;5691:15;5725:4;5722:1;5715:15;5742:281;5825:27;5847:4;5825:27;:::i;:::-;5817:6;5813:40;5955:6;5943:10;5940:22;5919:18;5907:10;5904:34;5901:62;5898:88;;;5966:18;;:::i;:::-;5898:88;6006:10;6002:2;5995:22;5785:238;5742:281;;:::o;6029:129::-;6063:6;6090:20;;:::i;:::-;6080:30;;6119:33;6147:4;6139:6;6119:33;:::i;:::-;6029:129;;;:::o;6164:311::-;6241:4;6331:18;6323:6;6320:30;6317:56;;;6353:18;;:::i;:::-;6317:56;6403:4;6395:6;6391:17;6383:25;;6463:4;6457;6453:15;6445:23;;6164:311;;;:::o;6481:117::-;6590:1;6587;6580:12;6621:710;6717:5;6742:81;6758:64;6815:6;6758:64;:::i;:::-;6742:81;:::i;:::-;6733:90;;6843:5;6872:6;6865:5;6858:21;6906:4;6899:5;6895:16;6888:23;;6959:4;6951:6;6947:17;6939:6;6935:30;6988:3;6980:6;6977:15;6974:122;;;7007:79;;:::i;:::-;6974:122;7122:6;7105:220;7139:6;7134:3;7131:15;7105:220;;;7214:3;7243:37;7276:3;7264:10;7243:37;:::i;:::-;7238:3;7231:50;7310:4;7305:3;7301:14;7294:21;;7181:144;7165:4;7160:3;7156:14;7149:21;;7105:220;;;7109:21;6723:608;;6621:710;;;;;:::o;7354:370::-;7425:5;7474:3;7467:4;7459:6;7455:17;7451:27;7441:122;;7482:79;;:::i;:::-;7441:122;7599:6;7586:20;7624:94;7714:3;7706:6;7699:4;7691:6;7687:17;7624:94;:::i;:::-;7615:103;;7431:293;7354:370;;;;:::o;7730:539::-;7814:6;7863:2;7851:9;7842:7;7838:23;7834:32;7831:119;;;7869:79;;:::i;:::-;7831:119;8017:1;8006:9;8002:17;7989:31;8047:18;8039:6;8036:30;8033:117;;;8069:79;;:::i;:::-;8033:117;8174:78;8244:7;8235:6;8224:9;8220:22;8174:78;:::i;:::-;8164:88;;7960:302;7730:539;;;;:::o;8275:474::-;8343:6;8351;8400:2;8388:9;8379:7;8375:23;8371:32;8368:119;;;8406:79;;:::i;:::-;8368:119;8526:1;8551:53;8596:7;8587:6;8576:9;8572:22;8551:53;:::i;:::-;8541:63;;8497:117;8653:2;8679:53;8724:7;8715:6;8704:9;8700:22;8679:53;:::i;:::-;8669:63;;8624:118;8275:474;;;;;:::o;8755:329::-;8814:6;8863:2;8851:9;8842:7;8838:23;8834:32;8831:119;;;8869:79;;:::i;:::-;8831:119;8989:1;9014:53;9059:7;9050:6;9039:9;9035:22;9014:53;:::i;:::-;9004:63;;8960:117;8755:329;;;;:::o;9090:180::-;9138:77;9135:1;9128:88;9235:4;9232:1;9225:15;9259:4;9256:1;9249:15;9276:102;9318:8;9365:5;9362:1;9358:13;9337:34;;9276:102;;;:::o;9384:848::-;9445:5;9452:4;9476:6;9467:15;;9500:5;9491:14;;9514:712;9535:1;9525:8;9522:15;9514:712;;;9630:4;9625:3;9621:14;9615:4;9612:24;9609:50;;;9639:18;;:::i;:::-;9609:50;9689:1;9679:8;9675:16;9672:451;;;10104:4;10097:5;10093:16;10084:25;;9672:451;10154:4;10148;10144:15;10136:23;;10184:32;10207:8;10184:32;:::i;:::-;10172:44;;9514:712;;;9384:848;;;;;;;:::o;10238:1073::-;10292:5;10483:8;10473:40;;10504:1;10495:10;;10506:5;;10473:40;10532:4;10522:36;;10549:1;10540:10;;10551:5;;10522:36;10618:4;10666:1;10661:27;;;;10702:1;10697:191;;;;10611:277;;10661:27;10679:1;10670:10;;10681:5;;;10697:191;10742:3;10732:8;10729:17;10726:43;;;10749:18;;:::i;:::-;10726:43;10798:8;10795:1;10791:16;10782:25;;10833:3;10826:5;10823:14;10820:40;;;10840:18;;:::i;:::-;10820:40;10873:5;;;10611:277;;10997:2;10987:8;10984:16;10978:3;10972:4;10969:13;10965:36;10947:2;10937:8;10934:16;10929:2;10923:4;10920:12;10916:35;10900:111;10897:246;;;11053:8;11047:4;11043:19;11034:28;;11088:3;11081:5;11078:14;11075:40;;;11095:18;;:::i;:::-;11075:40;11128:5;;10897:246;11168:42;11206:3;11196:8;11190:4;11187:1;11168:42;:::i;:::-;11153:57;;;;11242:4;11237:3;11233:14;11226:5;11223:25;11220:51;;;11251:18;;:::i;:::-;11220:51;11300:4;11293:5;11289:16;11280:25;;10238:1073;;;;;;:::o;11317:281::-;11375:5;11399:23;11417:4;11399:23;:::i;:::-;11391:31;;11443:25;11459:8;11443:25;:::i;:::-;11431:37;;11487:104;11524:66;11514:8;11508:4;11487:104;:::i;:::-;11478:113;;11317:281;;;;:::o;11604:410::-;11644:7;11667:20;11685:1;11667:20;:::i;:::-;11662:25;;11701:20;11719:1;11701:20;:::i;:::-;11696:25;;11756:1;11753;11749:9;11778:30;11796:11;11778:30;:::i;:::-;11767:41;;11957:1;11948:7;11944:15;11941:1;11938:22;11918:1;11911:9;11891:83;11868:139;;11987:18;;:::i;:::-;11868:139;11652:362;11604:410;;;;:::o;12020:182::-;12160:34;12156:1;12148:6;12144:14;12137:58;12020:182;:::o;12208:366::-;12350:3;12371:67;12435:2;12430:3;12371:67;:::i;:::-;12364:74;;12447:93;12536:3;12447:93;:::i;:::-;12565:2;12560:3;12556:12;12549:19;;12208:366;;;:::o;12580:419::-;12746:4;12784:2;12773:9;12769:18;12761:26;;12833:9;12827:4;12823:20;12819:1;12808:9;12804:17;12797:47;12861:131;12987:4;12861:131;:::i;:::-;12853:139;;12580:419;;;:::o;13005:143::-;13062:5;13093:6;13087:13;13078:22;;13109:33;13136:5;13109:33;:::i;:::-;13005:143;;;;:::o;13154:351::-;13224:6;13273:2;13261:9;13252:7;13248:23;13244:32;13241:119;;;13279:79;;:::i;:::-;13241:119;13399:1;13424:64;13480:7;13471:6;13460:9;13456:22;13424:64;:::i;:::-;13414:74;;13370:128;13154:351;;;;:::o;13511:60::-;13539:3;13560:5;13553:12;;13511:60;;;:::o;13577:142::-;13627:9;13660:53;13678:34;13687:24;13705:5;13687:24;:::i;:::-;13678:34;:::i;:::-;13660:53;:::i;:::-;13647:66;;13577:142;;;:::o;13725:126::-;13775:9;13808:37;13839:5;13808:37;:::i;:::-;13795:50;;13725:126;;;:::o;13857:134::-;13915:9;13948:37;13979:5;13948:37;:::i;:::-;13935:50;;13857:134;;;:::o;13997:147::-;14092:45;14131:5;14092:45;:::i;:::-;14087:3;14080:58;13997:147;;:::o;14150:348::-;14279:4;14317:2;14306:9;14302:18;14294:26;;14330:79;14406:1;14395:9;14391:17;14382:6;14330:79;:::i;:::-;14419:72;14487:2;14476:9;14472:18;14463:6;14419:72;:::i;:::-;14150:348;;;;;:::o;14504:116::-;14574:21;14589:5;14574:21;:::i;:::-;14567:5;14564:32;14554:60;;14610:1;14607;14600:12;14554:60;14504:116;:::o;14626:137::-;14680:5;14711:6;14705:13;14696:22;;14727:30;14751:5;14727:30;:::i;:::-;14626:137;;;;:::o;14769:345::-;14836:6;14885:2;14873:9;14864:7;14860:23;14856:32;14853:119;;;14891:79;;:::i;:::-;14853:119;15011:1;15036:61;15089:7;15080:6;15069:9;15065:22;15036:61;:::i;:::-;15026:71;;14982:125;14769:345;;;;:::o;15120:180::-;15168:77;15165:1;15158:88;15265:4;15262:1;15255:15;15289:4;15286:1;15279:15;15306:173;15446:25;15442:1;15434:6;15430:14;15423:49;15306:173;:::o;15485:366::-;15627:3;15648:67;15712:2;15707:3;15648:67;:::i;:::-;15641:74;;15724:93;15813:3;15724:93;:::i;:::-;15842:2;15837:3;15833:12;15826:19;;15485:366;;;:::o;15857:419::-;16023:4;16061:2;16050:9;16046:18;16038:26;;16110:9;16104:4;16100:20;16096:1;16085:9;16081:17;16074:47;16138:131;16264:4;16138:131;:::i;:::-;16130:139;;15857:419;;;:::o;16282:143::-;16339:5;16370:6;16364:13;16355:22;;16386:33;16413:5;16386:33;:::i;:::-;16282:143;;;;:::o;16431:351::-;16501:6;16550:2;16538:9;16529:7;16525:23;16521:32;16518:119;;;16556:79;;:::i;:::-;16518:119;16676:1;16701:64;16757:7;16748:6;16737:9;16733:22;16701:64;:::i;:::-;16691:74;;16647:128;16431:351;;;;:::o;16788:332::-;16909:4;16947:2;16936:9;16932:18;16924:26;;16960:71;17028:1;17017:9;17013:17;17004:6;16960:71;:::i;:::-;17041:72;17109:2;17098:9;17094:18;17085:6;17041:72;:::i;:::-;16788:332;;;;;:::o;17126:85::-;17171:7;17200:5;17189:16;;17126:85;;;:::o;17217:158::-;17275:9;17308:61;17326:42;17335:32;17361:5;17335:32;:::i;:::-;17326:42;:::i;:::-;17308:61;:::i;:::-;17295:74;;17217:158;;;:::o;17381:147::-;17476:45;17515:5;17476:45;:::i;:::-;17471:3;17464:58;17381:147;;:::o;17534:807::-;17783:4;17821:3;17810:9;17806:19;17798:27;;17835:71;17903:1;17892:9;17888:17;17879:6;17835:71;:::i;:::-;17916:72;17984:2;17973:9;17969:18;17960:6;17916:72;:::i;:::-;17998:80;18074:2;18063:9;18059:18;18050:6;17998:80;:::i;:::-;18088;18164:2;18153:9;18149:18;18140:6;18088:80;:::i;:::-;18178:73;18246:3;18235:9;18231:19;18222:6;18178:73;:::i;:::-;18261;18329:3;18318:9;18314:19;18305:6;18261:73;:::i;:::-;17534:807;;;;;;;;;:::o;18347:663::-;18435:6;18443;18451;18500:2;18488:9;18479:7;18475:23;18471:32;18468:119;;;18506:79;;:::i;:::-;18468:119;18626:1;18651:64;18707:7;18698:6;18687:9;18683:22;18651:64;:::i;:::-;18641:74;;18597:128;18764:2;18790:64;18846:7;18837:6;18826:9;18822:22;18790:64;:::i;:::-;18780:74;;18735:129;18903:2;18929:64;18985:7;18976:6;18965:9;18961:22;18929:64;:::i;:::-;18919:74;;18874:129;18347:663;;;;;:::o;19016:332::-;19137:4;19175:2;19164:9;19160:18;19152:26;;19188:71;19256:1;19245:9;19241:17;19232:6;19188:71;:::i;:::-;19269:72;19337:2;19326:9;19322:18;19313:6;19269:72;:::i;:::-;19016:332;;;;;:::o;19354:223::-;19494:34;19490:1;19482:6;19478:14;19471:58;19563:6;19558:2;19550:6;19546:15;19539:31;19354:223;:::o;19583:366::-;19725:3;19746:67;19810:2;19805:3;19746:67;:::i;:::-;19739:74;;19822:93;19911:3;19822:93;:::i;:::-;19940:2;19935:3;19931:12;19924:19;;19583:366;;;:::o;19955:419::-;20121:4;20159:2;20148:9;20144:18;20136:26;;20208:9;20202:4;20198:20;20194:1;20183:9;20179:17;20172:47;20236:131;20362:4;20236:131;:::i;:::-;20228:139;;19955:419;;;:::o;20380:221::-;20520:34;20516:1;20508:6;20504:14;20497:58;20589:4;20584:2;20576:6;20572:15;20565:29;20380:221;:::o;20607:366::-;20749:3;20770:67;20834:2;20829:3;20770:67;:::i;:::-;20763:74;;20846:93;20935:3;20846:93;:::i;:::-;20964:2;20959:3;20955:12;20948:19;;20607:366;;;:::o;20979:419::-;21145:4;21183:2;21172:9;21168:18;21160:26;;21232:9;21226:4;21222:20;21218:1;21207:9;21203:17;21196:47;21260:131;21386:4;21260:131;:::i;:::-;21252:139;;20979:419;;;:::o;21404:224::-;21544:34;21540:1;21532:6;21528:14;21521:58;21613:7;21608:2;21600:6;21596:15;21589:32;21404:224;:::o;21634:366::-;21776:3;21797:67;21861:2;21856:3;21797:67;:::i;:::-;21790:74;;21873:93;21962:3;21873:93;:::i;:::-;21991:2;21986:3;21982:12;21975:19;;21634:366;;;:::o;22006:419::-;22172:4;22210:2;22199:9;22195:18;22187:26;;22259:9;22253:4;22249:20;22245:1;22234:9;22230:17;22223:47;22287:131;22413:4;22287:131;:::i;:::-;22279:139;;22006:419;;;:::o;22431:222::-;22571:34;22567:1;22559:6;22555:14;22548:58;22640:5;22635:2;22627:6;22623:15;22616:30;22431:222;:::o;22659:366::-;22801:3;22822:67;22886:2;22881:3;22822:67;:::i;:::-;22815:74;;22898:93;22987:3;22898:93;:::i;:::-;23016:2;23011:3;23007:12;23000:19;;22659:366;;;:::o;23031:419::-;23197:4;23235:2;23224:9;23220:18;23212:26;;23284:9;23278:4;23274:20;23270:1;23259:9;23255:17;23248:47;23312:131;23438:4;23312:131;:::i;:::-;23304:139;;23031:419;;;:::o;23456:228::-;23596:34;23592:1;23584:6;23580:14;23573:58;23665:11;23660:2;23652:6;23648:15;23641:36;23456:228;:::o;23690:366::-;23832:3;23853:67;23917:2;23912:3;23853:67;:::i;:::-;23846:74;;23929:93;24018:3;23929:93;:::i;:::-;24047:2;24042:3;24038:12;24031:19;;23690:366;;;:::o;24062:419::-;24228:4;24266:2;24255:9;24251:18;24243:26;;24315:9;24309:4;24305:20;24301:1;24290:9;24286:17;24279:47;24343:131;24469:4;24343:131;:::i;:::-;24335:139;;24062:419;;;:::o;24487:175::-;24627:27;24623:1;24615:6;24611:14;24604:51;24487:175;:::o;24668:366::-;24810:3;24831:67;24895:2;24890:3;24831:67;:::i;:::-;24824:74;;24907:93;24996:3;24907:93;:::i;:::-;25025:2;25020:3;25016:12;25009:19;;24668:366;;;:::o;25040:419::-;25206:4;25244:2;25233:9;25229:18;25221:26;;25293:9;25287:4;25283:20;25279:1;25268:9;25264:17;25257:47;25321:131;25447:4;25321:131;:::i;:::-;25313:139;;25040:419;;;:::o;25465:191::-;25505:3;25524:20;25542:1;25524:20;:::i;:::-;25519:25;;25558:20;25576:1;25558:20;:::i;:::-;25553:25;;25601:1;25598;25594:9;25587:16;;25622:3;25619:1;25616:10;25613:36;;;25629:18;;:::i;:::-;25613:36;25465:191;;;;:::o;25662:176::-;25802:28;25798:1;25790:6;25786:14;25779:52;25662:176;:::o;25844:366::-;25986:3;26007:67;26071:2;26066:3;26007:67;:::i;:::-;26000:74;;26083:93;26172:3;26083:93;:::i;:::-;26201:2;26196:3;26192:12;26185:19;;25844:366;;;:::o;26216:419::-;26382:4;26420:2;26409:9;26405:18;26397:26;;26469:9;26463:4;26459:20;26455:1;26444:9;26440:17;26433:47;26497:131;26623:4;26497:131;:::i;:::-;26489:139;;26216:419;;;:::o;26641:233::-;26680:3;26703:24;26721:5;26703:24;:::i;:::-;26694:33;;26749:66;26742:5;26739:77;26736:103;;26819:18;;:::i;:::-;26736:103;26866:1;26859:5;26855:13;26848:20;;26641:233;;;:::o;26880:173::-;27020:25;27016:1;27008:6;27004:14;26997:49;26880:173;:::o;27059:366::-;27201:3;27222:67;27286:2;27281:3;27222:67;:::i;:::-;27215:74;;27298:93;27387:3;27298:93;:::i;:::-;27416:2;27411:3;27407:12;27400:19;;27059:366;;;:::o;27431:419::-;27597:4;27635:2;27624:9;27620:18;27612:26;;27684:9;27678:4;27674:20;27670:1;27659:9;27655:17;27648:47;27712:131;27838:4;27712:131;:::i;:::-;27704:139;;27431:419;;;:::o;27856:194::-;27896:4;27916:20;27934:1;27916:20;:::i;:::-;27911:25;;27950:20;27968:1;27950:20;:::i;:::-;27945:25;;27994:1;27991;27987:9;27979:17;;28018:1;28012:4;28009:11;28006:37;;;28023:18;;:::i;:::-;28006:37;27856:194;;;;:::o;28056:114::-;28123:6;28157:5;28151:12;28141:22;;28056:114;;;:::o;28176:184::-;28275:11;28309:6;28304:3;28297:19;28349:4;28344:3;28340:14;28325:29;;28176:184;;;;:::o;28366:132::-;28433:4;28456:3;28448:11;;28486:4;28481:3;28477:14;28469:22;;28366:132;;;:::o;28504:108::-;28581:24;28599:5;28581:24;:::i;:::-;28576:3;28569:37;28504:108;;:::o;28618:179::-;28687:10;28708:46;28750:3;28742:6;28708:46;:::i;:::-;28786:4;28781:3;28777:14;28763:28;;28618:179;;;;:::o;28803:113::-;28873:4;28905;28900:3;28896:14;28888:22;;28803:113;;;:::o;28952:732::-;29071:3;29100:54;29148:5;29100:54;:::i;:::-;29170:86;29249:6;29244:3;29170:86;:::i;:::-;29163:93;;29280:56;29330:5;29280:56;:::i;:::-;29359:7;29390:1;29375:284;29400:6;29397:1;29394:13;29375:284;;;29476:6;29470:13;29503:63;29562:3;29547:13;29503:63;:::i;:::-;29496:70;;29589:60;29642:6;29589:60;:::i;:::-;29579:70;;29435:224;29422:1;29419;29415:9;29410:14;;29375:284;;;29379:14;29675:3;29668:10;;29076:608;;;28952:732;;;;:::o;29690:831::-;29953:4;29991:3;29980:9;29976:19;29968:27;;30005:71;30073:1;30062:9;30058:17;30049:6;30005:71;:::i;:::-;30086:80;30162:2;30151:9;30147:18;30138:6;30086:80;:::i;:::-;30213:9;30207:4;30203:20;30198:2;30187:9;30183:18;30176:48;30241:108;30344:4;30335:6;30241:108;:::i;:::-;30233:116;;30359:72;30427:2;30416:9;30412:18;30403:6;30359:72;:::i;:::-;30441:73;30509:3;30498:9;30494:19;30485:6;30441:73;:::i;:::-;29690:831;;;;;;;;:::o;30527:180::-;30575:77;30572:1;30565:88;30672:4;30669:1;30662:15;30696:4;30693:1;30686:15;30713:185;30753:1;30770:20;30788:1;30770:20;:::i;:::-;30765:25;;30804:20;30822:1;30804:20;:::i;:::-;30799:25;;30843:1;30833:35;;30848:18;;:::i;:::-;30833:35;30890:1;30887;30883:9;30878:14;;30713:185;;;;:::o;30904:220::-;31044:34;31040:1;31032:6;31028:14;31021:58;31113:3;31108:2;31100:6;31096:15;31089:28;30904:220;:::o;31130:366::-;31272:3;31293:67;31357:2;31352:3;31293:67;:::i;:::-;31286:74;;31369:93;31458:3;31369:93;:::i;:::-;31487:2;31482:3;31478:12;31471:19;;31130:366;;;:::o;31502:419::-;31668:4;31706:2;31695:9;31691:18;31683:26;;31755:9;31749:4;31745:20;31741:1;31730:9;31726:17;31719:47;31783:131;31909:4;31783:131;:::i;:::-;31775:139;;31502:419;;;:::o;31927:177::-;32067:29;32063:1;32055:6;32051:14;32044:53;31927:177;:::o;32110:366::-;32252:3;32273:67;32337:2;32332:3;32273:67;:::i;:::-;32266:74;;32349:93;32438:3;32349:93;:::i;:::-;32467:2;32462:3;32458:12;32451:19;;32110:366;;;:::o;32482:419::-;32648:4;32686:2;32675:9;32671:18;32663:26;;32735:9;32729:4;32725:20;32721:1;32710:9;32706:17;32699:47;32763:131;32889:4;32763:131;:::i;:::-;32755:139;;32482:419;;;:::o
Swarm Source
ipfs://3d033169d02f2ffe6cbd1df1b10200b70a21b24fdc07942b7b9daaa1dcfcb1f3
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.