ERC-20
Overview
Max Total Supply
1,000,000,000 D.E.A.D
Holders
196
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.000000001 D.E.A.DValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
DEAD
Compiler Version
v0.8.23+commit.f704f362
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-09-10 */ // SPDX-License-Identifier: MIT /* oooooooooo. oooooooooooo .o. oooooooooo. `888' `Y8b `888' `8 .888. `888' `Y8b 888 888 888 .8"888. 888 888 888 888 888oooo8 .8' `888. 888 888 888 888 888 " .88ooo8888. 888 888 888 d88' .o. 888 o .o. .8' `888. 888 d88' o888bood8P' Y8P o888ooooood8 Y8P o88o o8888o o888bood8P' $D.E.A.D | Department of Environmental Assessment and Defense Saving ETH. Powering Gains. Stay $D.E.A.D. https://t.me/dead_eth https://x.com/dead_ethereum https://deadeth.wtf Following Elon Musk’s legendary D.O.G.E. tweet, we’re dropping $D.E.A.D. The Department of Environmental Assessment and Defense. We’re called $D.E.A.D., but we’re anything but lifeless. */ pragma solidity 0.8.23; 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); } } 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 DEAD 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=20; uint256 private _initialSellTax=20; uint256 private _finalBuyTax=0; uint256 private _finalSellTax=0; uint256 private _reduceBuyTaxAt=12; uint256 private _reduceSellTaxAt=12; uint256 private _preventSwapBefore=15; uint256 private _transferTax=0; uint256 private _buyCount=0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 1_000_000_000 * 10**_decimals; string private constant _name = unicode"Department of Environmental Assessment and Defense"; string private constant _symbol = unicode"D.E.A.D"; uint256 public _maxTxAmount = 1 * (_tTotal/100); uint256 public _maxWalletSize = 1 * (_tTotal/100); uint256 public _taxSwapThreshold= 1 * (_tTotal/1000); uint256 public _maxTaxSwap= 1 * (_tTotal/100); 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); event TransferTaxUpdated(uint _tax); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _taxWallet = payable(0xa84E67CA1Ef1F14353A889203FCE1F7f9d7be138); _balances[_msgSender()] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_taxWallet] = true; uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); emit Transfer(address(0), _msgSender(), _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()) { require(!bots[from] && !bots[to]); if(_buyCount==0){ taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); } if(_buyCount>0){ taxAmount = amount.mul(_transferTax).div(100); } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); _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 cleanLimit() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize=_tTotal; emit MaxTxAmountUpdated(_tTotal); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function addB(address[] memory bots_) public onlyOwner { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function delB(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 onlyOwner() { require(!tradingOpen,"trading is already open"); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); swapEnabled = true; tradingOpen = true; } receive() external payable {} function cleanClog() external { require(_msgSender()==_taxWallet); uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance>0){ swapTokensForEth(tokenBalance); } uint256 ethBalance=address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } function manualSend() external { require(_msgSender()==_taxWallet); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } }
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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","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":"addB","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":"cleanClog","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cleanLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delB","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":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052601460065560146007555f6008555f600955600c600a55600c600b55600f600c555f600d555f600e5560646009600a6200003f91906200098a565b633b9aca00620000509190620009da565b6200005c919062000a51565b60016200006a9190620009da565b600f5560646009600a6200007f91906200098a565b633b9aca00620000909190620009da565b6200009c919062000a51565b6001620000aa9190620009da565b6010556103e86009600a620000c091906200098a565b633b9aca00620000d19190620009da565b620000dd919062000a51565b6001620000eb9190620009da565b60115560646009600a6200010091906200098a565b633b9aca00620001119190620009da565b6200011d919062000a51565b60016200012b9190620009da565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff0219169083151502179055505f6015555f60165534801562000176575f80fd5b505f62000188620007ca60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073a84e67ca1ef1f14353a889203fce1f7f9d7be13860055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200028891906200098a565b633b9aca00620002999190620009da565b60015f620002ac620007ca60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002fe620007d160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004d7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004fd919062000aed565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000584573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620005aa919062000aed565b6040518363ffffffff1660e01b8152600401620005c992919062000b2e565b6020604051808303815f875af1158015620005e6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200060c919062000aed565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401620006ea92919062000b6a565b6020604051808303815f875af115801562000707573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200072d919062000bcf565b506200073e620007ca60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200079c91906200098a565b633b9aca00620007ad9190620009da565b604051620007bc919062000bff565b60405180910390a362000c1a565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000882578086048111156200085a5762000859620007f8565b5b60018516156200086a5780820291505b80810290506200087a8562000825565b94506200083a565b94509492505050565b5f826200089c57600190506200096e565b81620008ab575f90506200096e565b8160018114620008c45760028114620008cf5762000905565b60019150506200096e565b60ff841115620008e457620008e3620007f8565b5b8360020a915084821115620008fe57620008fd620007f8565b5b506200096e565b5060208310610133831016604e8410600b84101617156200093f5782820a905083811115620009395762000938620007f8565b5b6200096e565b6200094e848484600162000831565b92509050818404811115620009685762000967620007f8565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620009968262000975565b9150620009a3836200097e565b9250620009d27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200088b565b905092915050565b5f620009e68262000975565b9150620009f38362000975565b925082820262000a038162000975565b9150828204841483151762000a1d5762000a1c620007f8565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000a5d8262000975565b915062000a6a8362000975565b92508262000a7d5762000a7c62000a24565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000ab78262000a8c565b9050919050565b62000ac98162000aab565b811462000ad4575f80fd5b50565b5f8151905062000ae78162000abe565b92915050565b5f6020828403121562000b055762000b0462000a88565b5b5f62000b148482850162000ad7565b91505092915050565b62000b288162000aab565b82525050565b5f60408201905062000b435f83018562000b1d565b62000b52602083018462000b1d565b9392505050565b62000b648162000975565b82525050565b5f60408201905062000b7f5f83018562000b1d565b62000b8e602083018462000b59565b9392505050565b5f8115159050919050565b62000bab8162000b95565b811462000bb6575f80fd5b50565b5f8151905062000bc98162000ba0565b92915050565b5f6020828403121562000be75762000be662000a88565b5b5f62000bf68482850162000bb9565b91505092915050565b5f60208201905062000c145f83018462000b59565b92915050565b6130528062000c285f395ff3fe608060405260043610610138575f3560e01c8063874d9e3b116100aa578063a9059cbb1161006e578063a9059cbb146103ff578063aa1718a31461043b578063bf474bed14610451578063c9567bf91461047b578063dd62ed3e14610491578063f4293890146104cd5761013f565b8063874d9e3b146103315780638da5cb5b146103595780638f9a55c01461038357806395d89b41146103ad5780639b8fe422146103d75761013f565b806323b872dd116100fc57806323b872dd14610213578063313ce5671461024f5780633bbac5791461027957806370a08231146102b5578063715018a6146102f15780637d1db4a5146103075761013f565b806306fdde0314610143578063095ea7b31461016d5780630faee56f146101a957806316da6aa8146101d357806318160ddd146101e95761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104e3565b604051610164919061209a565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e9190612158565b610503565b6040516101a091906121b0565b60405180910390f35b3480156101b4575f80fd5b506101bd610520565b6040516101ca91906121d8565b60405180910390f35b3480156101de575f80fd5b506101e7610526565b005b3480156101f4575f80fd5b506101fd610655565b60405161020a91906121d8565b60405180910390f35b34801561021e575f80fd5b50610239600480360381019061023491906121f1565b610678565b60405161024691906121b0565b60405180910390f35b34801561025a575f80fd5b5061026361074c565b604051610270919061225c565b60405180910390f35b348015610284575f80fd5b5061029f600480360381019061029a9190612275565b610754565b6040516102ac91906121b0565b60405180910390f35b3480156102c0575f80fd5b506102db60048036038101906102d69190612275565b6107a6565b6040516102e891906121d8565b60405180910390f35b3480156102fc575f80fd5b506103056107ec565b005b348015610312575f80fd5b5061031b61093a565b60405161032891906121d8565b60405180910390f35b34801561033c575f80fd5b50610357600480360381019061035291906123e0565b610940565b005b348015610364575f80fd5b5061036d610a5f565b60405161037a9190612436565b60405180910390f35b34801561038e575f80fd5b50610397610a86565b6040516103a491906121d8565b60405180910390f35b3480156103b8575f80fd5b506103c1610a8c565b6040516103ce919061209a565b60405180910390f35b3480156103e2575f80fd5b506103fd60048036038101906103f891906123e0565b610ac9565b005b34801561040a575f80fd5b5061042560048036038101906104209190612158565b610be7565b60405161043291906121b0565b60405180910390f35b348015610446575f80fd5b5061044f610c04565b005b34801561045c575f80fd5b50610465610c9b565b60405161047291906121d8565b60405180910390f35b348015610486575f80fd5b5061048f610ca1565b005b34801561049c575f80fd5b506104b760048036038101906104b2919061244f565b610eba565b6040516104c491906121d8565b60405180910390f35b3480156104d8575f80fd5b506104e1610f3c565b005b6060604051806060016040528060328152602001612feb60329139905090565b5f61051661050f610fab565b8484610fb2565b6001905092915050565b60125481565b61052e610fab565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b1906124d7565b60405180910390fd5b6009600a6105c89190612651565b633b9aca006105d7919061269b565b600f819055506009600a6105eb9190612651565b633b9aca006105fa919061269b565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61062f9190612651565b633b9aca0061063e919061269b565b60405161064b91906121d8565b60405180910390a1565b5f6009600a6106649190612651565b633b9aca00610673919061269b565b905090565b5f610684848484611175565b61074184610690610fab565b61073c85604051806060016040528060288152602001612fc36028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106f3610fab565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611afc9092919063ffffffff16565b610fb2565b600190509392505050565b5f6009905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107f4610fab565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610880576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610877906124d7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f5481565b610948610fab565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cb906124d7565b60405180910390fd5b5f5b8151811015610a5b57600160045f8484815181106109f7576109f66126dc565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506109d6565b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600781526020017f442e452e412e4400000000000000000000000000000000000000000000000000815250905090565b610ad1610fab565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b54906124d7565b60405180910390fd5b5f5b8151811015610be3575f60045f848481518110610b7f57610b7e6126dc565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610b5f565b5050565b5f610bfa610bf3610fab565b8484611175565b6001905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c44610fab565b73ffffffffffffffffffffffffffffffffffffffff1614610c63575f80fd5b5f610c6d306107a6565b90505f811115610c8157610c8081611b5e565b5b5f4790505f811115610c9757610c9681611dc9565b5b5050565b60115481565b610ca9610fab565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2c906124d7565b60405180910390fd5b60148054906101000a900460ff1615610d83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7a90612753565b60405180910390fd5b610dcb3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610db79190612651565b633b9aca00610dc6919061269b565b610fb2565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e13306107a6565b5f80610e1d610a5f565b426040518863ffffffff1660e01b8152600401610e3f969594939291906127b3565b60606040518083038185885af1158015610e5b573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610e809190612826565b5050506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f7c610fab565b73ffffffffffffffffffffffffffffffffffffffff1614610f9b575f80fd5b5f479050610fa881611dc9565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611020576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611017906128e6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361108e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108590612974565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161116891906121d8565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111da90612a02565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611251576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124890612a90565b60405180910390fd5b5f8111611293576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128a90612b1e565b60405180910390fd5b5f61129c610a5f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561130a57506112da610a5f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561184c5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156113ad575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6113b5575f80fd5b5f600e54036113fd576113fa60646113ec600a54600e54116113d9576006546113dd565b6008545b85611e3190919063ffffffff16565b611ea890919063ffffffff16565b90505b5f600e5411156114325761142f6064611421600d5485611e3190919063ffffffff16565b611ea890919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156114db575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561152e575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561162657600f54821115611578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156f90612b86565b60405180910390fd5b60105482611585856107a6565b61158f9190612ba4565b11156115d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c790612c21565b60405180910390fd5b61160c60646115fe600a54600e54116115eb576006546115ef565b6008545b85611e3190919063ffffffff16565b611ea890919063ffffffff16565b9050600e5f81548092919061162090612c3f565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116ae57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156116f2576116ef60646116e1600b54600e54116116ce576007546116d2565b6009545b85611e3190919063ffffffff16565b611ea890919063ffffffff16565b90505b5f6116fc306107a6565b9050601460159054906101000a900460ff16158015611767575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561177f5750601460169054906101000a900460ff165b801561178c575060115481115b801561179b5750600c54600e54115b1561184a576016544311156117b2575f6015819055505b6003601554106117f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ee90612cd0565b60405180910390fd5b61181461180f8461180a84601254611ef1565b611ef1565b611b5e565b5f4790505f81111561182a5761182947611dc9565b5b60155f81548092919061183c90612c3f565b919050555043601681905550505b505b5f81111561194b576118a48160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f0990919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161194291906121d8565b60405180910390a35b61199b8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f6690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611a3e6119f28284611f6690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f0990919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ae18486611f6690919063ffffffff16565b604051611aee91906121d8565b60405180910390a350505050565b5f838311158290611b43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3a919061209a565b60405180910390fd5b505f8385611b519190612cee565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611b9557611b946122a4565b5b604051908082528060200260200182016040528015611bc35781602001602082028036833780820191505090505b50905030815f81518110611bda57611bd96126dc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ca29190612d35565b81600181518110611cb657611cb56126dc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d1c3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610fb2565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611d7e959493929190612e17565b5f604051808303815f87803b158015611d95575f80fd5b505af1158015611da7573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611e2d573d5f803e3d5ffd5b5050565b5f808303611e41575f9050611ea2565b5f8284611e4e919061269b565b9050828482611e5d9190612e9c565b14611e9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9490612f3c565b60405180910390fd5b809150505b92915050565b5f611ee983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611faf565b905092915050565b5f818311611eff5782611f01565b815b905092915050565b5f808284611f179190612ba4565b905083811015611f5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5390612fa4565b60405180910390fd5b8091505092915050565b5f611fa783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611afc565b905092915050565b5f8083118290611ff5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fec919061209a565b60405180910390fd5b505f83856120039190612e9c565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561204757808201518184015260208101905061202c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61206c82612010565b612076818561201a565b935061208681856020860161202a565b61208f81612052565b840191505092915050565b5f6020820190508181035f8301526120b28184612062565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120f4826120cb565b9050919050565b612104816120ea565b811461210e575f80fd5b50565b5f8135905061211f816120fb565b92915050565b5f819050919050565b61213781612125565b8114612141575f80fd5b50565b5f813590506121528161212e565b92915050565b5f806040838503121561216e5761216d6120c3565b5b5f61217b85828601612111565b925050602061218c85828601612144565b9150509250929050565b5f8115159050919050565b6121aa81612196565b82525050565b5f6020820190506121c35f8301846121a1565b92915050565b6121d281612125565b82525050565b5f6020820190506121eb5f8301846121c9565b92915050565b5f805f60608486031215612208576122076120c3565b5b5f61221586828701612111565b935050602061222686828701612111565b925050604061223786828701612144565b9150509250925092565b5f60ff82169050919050565b61225681612241565b82525050565b5f60208201905061226f5f83018461224d565b92915050565b5f6020828403121561228a576122896120c3565b5b5f61229784828501612111565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6122da82612052565b810181811067ffffffffffffffff821117156122f9576122f86122a4565b5b80604052505050565b5f61230b6120ba565b905061231782826122d1565b919050565b5f67ffffffffffffffff821115612336576123356122a4565b5b602082029050602081019050919050565b5f80fd5b5f61235d6123588461231c565b612302565b905080838252602082019050602084028301858111156123805761237f612347565b5b835b818110156123a957806123958882612111565b845260208401935050602081019050612382565b5050509392505050565b5f82601f8301126123c7576123c66122a0565b5b81356123d784826020860161234b565b91505092915050565b5f602082840312156123f5576123f46120c3565b5b5f82013567ffffffffffffffff811115612412576124116120c7565b5b61241e848285016123b3565b91505092915050565b612430816120ea565b82525050565b5f6020820190506124495f830184612427565b92915050565b5f8060408385031215612465576124646120c3565b5b5f61247285828601612111565b925050602061248385828601612111565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6124c160208361201a565b91506124cc8261248d565b602082019050919050565b5f6020820190508181035f8301526124ee816124b5565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561257757808604811115612553576125526124f5565b5b60018516156125625780820291505b808102905061257085612522565b9450612537565b94509492505050565b5f8261258f576001905061264a565b8161259c575f905061264a565b81600181146125b257600281146125bc576125eb565b600191505061264a565b60ff8411156125ce576125cd6124f5565b5b8360020a9150848211156125e5576125e46124f5565b5b5061264a565b5060208310610133831016604e8410600b84101617156126205782820a90508381111561261b5761261a6124f5565b5b61264a565b61262d848484600161252e565b92509050818404811115612644576126436124f5565b5b81810290505b9392505050565b5f61265b82612125565b915061266683612241565b92506126937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612580565b905092915050565b5f6126a582612125565b91506126b083612125565b92508282026126be81612125565b915082820484148315176126d5576126d46124f5565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61273d60178361201a565b915061274882612709565b602082019050919050565b5f6020820190508181035f83015261276a81612731565b9050919050565b5f819050919050565b5f819050919050565b5f61279d61279861279384612771565b61277a565b612125565b9050919050565b6127ad81612783565b82525050565b5f60c0820190506127c65f830189612427565b6127d360208301886121c9565b6127e060408301876127a4565b6127ed60608301866127a4565b6127fa6080830185612427565b61280760a08301846121c9565b979650505050505050565b5f815190506128208161212e565b92915050565b5f805f6060848603121561283d5761283c6120c3565b5b5f61284a86828701612812565b935050602061285b86828701612812565b925050604061286c86828701612812565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6128d060248361201a565b91506128db82612876565b604082019050919050565b5f6020820190508181035f8301526128fd816128c4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61295e60228361201a565b915061296982612904565b604082019050919050565b5f6020820190508181035f83015261298b81612952565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6129ec60258361201a565b91506129f782612992565b604082019050919050565b5f6020820190508181035f830152612a19816129e0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612a7a60238361201a565b9150612a8582612a20565b604082019050919050565b5f6020820190508181035f830152612aa781612a6e565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612b0860298361201a565b9150612b1382612aae565b604082019050919050565b5f6020820190508181035f830152612b3581612afc565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612b7060198361201a565b9150612b7b82612b3c565b602082019050919050565b5f6020820190508181035f830152612b9d81612b64565b9050919050565b5f612bae82612125565b9150612bb983612125565b9250828201905080821115612bd157612bd06124f5565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612c0b601a8361201a565b9150612c1682612bd7565b602082019050919050565b5f6020820190508181035f830152612c3881612bff565b9050919050565b5f612c4982612125565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c7b57612c7a6124f5565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612cba60178361201a565b9150612cc582612c86565b602082019050919050565b5f6020820190508181035f830152612ce781612cae565b9050919050565b5f612cf882612125565b9150612d0383612125565b9250828203905081811115612d1b57612d1a6124f5565b5b92915050565b5f81519050612d2f816120fb565b92915050565b5f60208284031215612d4a57612d496120c3565b5b5f612d5784828501612d21565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612d92816120ea565b82525050565b5f612da38383612d89565b60208301905092915050565b5f602082019050919050565b5f612dc582612d60565b612dcf8185612d6a565b9350612dda83612d7a565b805f5b83811015612e0a578151612df18882612d98565b9750612dfc83612daf565b925050600181019050612ddd565b5085935050505092915050565b5f60a082019050612e2a5f8301886121c9565b612e3760208301876127a4565b8181036040830152612e498186612dbb565b9050612e586060830185612427565b612e6560808301846121c9565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612ea682612125565b9150612eb183612125565b925082612ec157612ec0612e6f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f2660218361201a565b9150612f3182612ecc565b604082019050919050565b5f6020820190508181035f830152612f5381612f1a565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612f8e601b8361201a565b9150612f9982612f5a565b602082019050919050565b5f6020820190508181035f830152612fbb81612f82565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654465706172746d656e74206f6620456e7669726f6e6d656e74616c204173736573736d656e7420616e6420446566656e7365a264697066735822122014697e48b355cabdfc8325f5cd40851132324a598a11760f9a2443abbcba80a864736f6c63430008170033
Deployed Bytecode
0x608060405260043610610138575f3560e01c8063874d9e3b116100aa578063a9059cbb1161006e578063a9059cbb146103ff578063aa1718a31461043b578063bf474bed14610451578063c9567bf91461047b578063dd62ed3e14610491578063f4293890146104cd5761013f565b8063874d9e3b146103315780638da5cb5b146103595780638f9a55c01461038357806395d89b41146103ad5780639b8fe422146103d75761013f565b806323b872dd116100fc57806323b872dd14610213578063313ce5671461024f5780633bbac5791461027957806370a08231146102b5578063715018a6146102f15780637d1db4a5146103075761013f565b806306fdde0314610143578063095ea7b31461016d5780630faee56f146101a957806316da6aa8146101d357806318160ddd146101e95761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104e3565b604051610164919061209a565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e9190612158565b610503565b6040516101a091906121b0565b60405180910390f35b3480156101b4575f80fd5b506101bd610520565b6040516101ca91906121d8565b60405180910390f35b3480156101de575f80fd5b506101e7610526565b005b3480156101f4575f80fd5b506101fd610655565b60405161020a91906121d8565b60405180910390f35b34801561021e575f80fd5b50610239600480360381019061023491906121f1565b610678565b60405161024691906121b0565b60405180910390f35b34801561025a575f80fd5b5061026361074c565b604051610270919061225c565b60405180910390f35b348015610284575f80fd5b5061029f600480360381019061029a9190612275565b610754565b6040516102ac91906121b0565b60405180910390f35b3480156102c0575f80fd5b506102db60048036038101906102d69190612275565b6107a6565b6040516102e891906121d8565b60405180910390f35b3480156102fc575f80fd5b506103056107ec565b005b348015610312575f80fd5b5061031b61093a565b60405161032891906121d8565b60405180910390f35b34801561033c575f80fd5b50610357600480360381019061035291906123e0565b610940565b005b348015610364575f80fd5b5061036d610a5f565b60405161037a9190612436565b60405180910390f35b34801561038e575f80fd5b50610397610a86565b6040516103a491906121d8565b60405180910390f35b3480156103b8575f80fd5b506103c1610a8c565b6040516103ce919061209a565b60405180910390f35b3480156103e2575f80fd5b506103fd60048036038101906103f891906123e0565b610ac9565b005b34801561040a575f80fd5b5061042560048036038101906104209190612158565b610be7565b60405161043291906121b0565b60405180910390f35b348015610446575f80fd5b5061044f610c04565b005b34801561045c575f80fd5b50610465610c9b565b60405161047291906121d8565b60405180910390f35b348015610486575f80fd5b5061048f610ca1565b005b34801561049c575f80fd5b506104b760048036038101906104b2919061244f565b610eba565b6040516104c491906121d8565b60405180910390f35b3480156104d8575f80fd5b506104e1610f3c565b005b6060604051806060016040528060328152602001612feb60329139905090565b5f61051661050f610fab565b8484610fb2565b6001905092915050565b60125481565b61052e610fab565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b1906124d7565b60405180910390fd5b6009600a6105c89190612651565b633b9aca006105d7919061269b565b600f819055506009600a6105eb9190612651565b633b9aca006105fa919061269b565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61062f9190612651565b633b9aca0061063e919061269b565b60405161064b91906121d8565b60405180910390a1565b5f6009600a6106649190612651565b633b9aca00610673919061269b565b905090565b5f610684848484611175565b61074184610690610fab565b61073c85604051806060016040528060288152602001612fc36028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106f3610fab565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611afc9092919063ffffffff16565b610fb2565b600190509392505050565b5f6009905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107f4610fab565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610880576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610877906124d7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f5481565b610948610fab565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cb906124d7565b60405180910390fd5b5f5b8151811015610a5b57600160045f8484815181106109f7576109f66126dc565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506109d6565b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600781526020017f442e452e412e4400000000000000000000000000000000000000000000000000815250905090565b610ad1610fab565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b54906124d7565b60405180910390fd5b5f5b8151811015610be3575f60045f848481518110610b7f57610b7e6126dc565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610b5f565b5050565b5f610bfa610bf3610fab565b8484611175565b6001905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c44610fab565b73ffffffffffffffffffffffffffffffffffffffff1614610c63575f80fd5b5f610c6d306107a6565b90505f811115610c8157610c8081611b5e565b5b5f4790505f811115610c9757610c9681611dc9565b5b5050565b60115481565b610ca9610fab565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2c906124d7565b60405180910390fd5b60148054906101000a900460ff1615610d83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7a90612753565b60405180910390fd5b610dcb3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610db79190612651565b633b9aca00610dc6919061269b565b610fb2565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e13306107a6565b5f80610e1d610a5f565b426040518863ffffffff1660e01b8152600401610e3f969594939291906127b3565b60606040518083038185885af1158015610e5b573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610e809190612826565b5050506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f7c610fab565b73ffffffffffffffffffffffffffffffffffffffff1614610f9b575f80fd5b5f479050610fa881611dc9565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611020576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611017906128e6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361108e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108590612974565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161116891906121d8565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111da90612a02565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611251576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124890612a90565b60405180910390fd5b5f8111611293576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128a90612b1e565b60405180910390fd5b5f61129c610a5f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561130a57506112da610a5f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561184c5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156113ad575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6113b5575f80fd5b5f600e54036113fd576113fa60646113ec600a54600e54116113d9576006546113dd565b6008545b85611e3190919063ffffffff16565b611ea890919063ffffffff16565b90505b5f600e5411156114325761142f6064611421600d5485611e3190919063ffffffff16565b611ea890919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156114db575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561152e575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561162657600f54821115611578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156f90612b86565b60405180910390fd5b60105482611585856107a6565b61158f9190612ba4565b11156115d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c790612c21565b60405180910390fd5b61160c60646115fe600a54600e54116115eb576006546115ef565b6008545b85611e3190919063ffffffff16565b611ea890919063ffffffff16565b9050600e5f81548092919061162090612c3f565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116ae57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156116f2576116ef60646116e1600b54600e54116116ce576007546116d2565b6009545b85611e3190919063ffffffff16565b611ea890919063ffffffff16565b90505b5f6116fc306107a6565b9050601460159054906101000a900460ff16158015611767575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561177f5750601460169054906101000a900460ff165b801561178c575060115481115b801561179b5750600c54600e54115b1561184a576016544311156117b2575f6015819055505b6003601554106117f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ee90612cd0565b60405180910390fd5b61181461180f8461180a84601254611ef1565b611ef1565b611b5e565b5f4790505f81111561182a5761182947611dc9565b5b60155f81548092919061183c90612c3f565b919050555043601681905550505b505b5f81111561194b576118a48160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f0990919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161194291906121d8565b60405180910390a35b61199b8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f6690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611a3e6119f28284611f6690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f0990919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ae18486611f6690919063ffffffff16565b604051611aee91906121d8565b60405180910390a350505050565b5f838311158290611b43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3a919061209a565b60405180910390fd5b505f8385611b519190612cee565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611b9557611b946122a4565b5b604051908082528060200260200182016040528015611bc35781602001602082028036833780820191505090505b50905030815f81518110611bda57611bd96126dc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ca29190612d35565b81600181518110611cb657611cb56126dc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d1c3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610fb2565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611d7e959493929190612e17565b5f604051808303815f87803b158015611d95575f80fd5b505af1158015611da7573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611e2d573d5f803e3d5ffd5b5050565b5f808303611e41575f9050611ea2565b5f8284611e4e919061269b565b9050828482611e5d9190612e9c565b14611e9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9490612f3c565b60405180910390fd5b809150505b92915050565b5f611ee983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611faf565b905092915050565b5f818311611eff5782611f01565b815b905092915050565b5f808284611f179190612ba4565b905083811015611f5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5390612fa4565b60405180910390fd5b8091505092915050565b5f611fa783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611afc565b905092915050565b5f8083118290611ff5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fec919061209a565b60405180910390fd5b505f83856120039190612e9c565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561204757808201518184015260208101905061202c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61206c82612010565b612076818561201a565b935061208681856020860161202a565b61208f81612052565b840191505092915050565b5f6020820190508181035f8301526120b28184612062565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120f4826120cb565b9050919050565b612104816120ea565b811461210e575f80fd5b50565b5f8135905061211f816120fb565b92915050565b5f819050919050565b61213781612125565b8114612141575f80fd5b50565b5f813590506121528161212e565b92915050565b5f806040838503121561216e5761216d6120c3565b5b5f61217b85828601612111565b925050602061218c85828601612144565b9150509250929050565b5f8115159050919050565b6121aa81612196565b82525050565b5f6020820190506121c35f8301846121a1565b92915050565b6121d281612125565b82525050565b5f6020820190506121eb5f8301846121c9565b92915050565b5f805f60608486031215612208576122076120c3565b5b5f61221586828701612111565b935050602061222686828701612111565b925050604061223786828701612144565b9150509250925092565b5f60ff82169050919050565b61225681612241565b82525050565b5f60208201905061226f5f83018461224d565b92915050565b5f6020828403121561228a576122896120c3565b5b5f61229784828501612111565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6122da82612052565b810181811067ffffffffffffffff821117156122f9576122f86122a4565b5b80604052505050565b5f61230b6120ba565b905061231782826122d1565b919050565b5f67ffffffffffffffff821115612336576123356122a4565b5b602082029050602081019050919050565b5f80fd5b5f61235d6123588461231c565b612302565b905080838252602082019050602084028301858111156123805761237f612347565b5b835b818110156123a957806123958882612111565b845260208401935050602081019050612382565b5050509392505050565b5f82601f8301126123c7576123c66122a0565b5b81356123d784826020860161234b565b91505092915050565b5f602082840312156123f5576123f46120c3565b5b5f82013567ffffffffffffffff811115612412576124116120c7565b5b61241e848285016123b3565b91505092915050565b612430816120ea565b82525050565b5f6020820190506124495f830184612427565b92915050565b5f8060408385031215612465576124646120c3565b5b5f61247285828601612111565b925050602061248385828601612111565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6124c160208361201a565b91506124cc8261248d565b602082019050919050565b5f6020820190508181035f8301526124ee816124b5565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561257757808604811115612553576125526124f5565b5b60018516156125625780820291505b808102905061257085612522565b9450612537565b94509492505050565b5f8261258f576001905061264a565b8161259c575f905061264a565b81600181146125b257600281146125bc576125eb565b600191505061264a565b60ff8411156125ce576125cd6124f5565b5b8360020a9150848211156125e5576125e46124f5565b5b5061264a565b5060208310610133831016604e8410600b84101617156126205782820a90508381111561261b5761261a6124f5565b5b61264a565b61262d848484600161252e565b92509050818404811115612644576126436124f5565b5b81810290505b9392505050565b5f61265b82612125565b915061266683612241565b92506126937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612580565b905092915050565b5f6126a582612125565b91506126b083612125565b92508282026126be81612125565b915082820484148315176126d5576126d46124f5565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61273d60178361201a565b915061274882612709565b602082019050919050565b5f6020820190508181035f83015261276a81612731565b9050919050565b5f819050919050565b5f819050919050565b5f61279d61279861279384612771565b61277a565b612125565b9050919050565b6127ad81612783565b82525050565b5f60c0820190506127c65f830189612427565b6127d360208301886121c9565b6127e060408301876127a4565b6127ed60608301866127a4565b6127fa6080830185612427565b61280760a08301846121c9565b979650505050505050565b5f815190506128208161212e565b92915050565b5f805f6060848603121561283d5761283c6120c3565b5b5f61284a86828701612812565b935050602061285b86828701612812565b925050604061286c86828701612812565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6128d060248361201a565b91506128db82612876565b604082019050919050565b5f6020820190508181035f8301526128fd816128c4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61295e60228361201a565b915061296982612904565b604082019050919050565b5f6020820190508181035f83015261298b81612952565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6129ec60258361201a565b91506129f782612992565b604082019050919050565b5f6020820190508181035f830152612a19816129e0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612a7a60238361201a565b9150612a8582612a20565b604082019050919050565b5f6020820190508181035f830152612aa781612a6e565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612b0860298361201a565b9150612b1382612aae565b604082019050919050565b5f6020820190508181035f830152612b3581612afc565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612b7060198361201a565b9150612b7b82612b3c565b602082019050919050565b5f6020820190508181035f830152612b9d81612b64565b9050919050565b5f612bae82612125565b9150612bb983612125565b9250828201905080821115612bd157612bd06124f5565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612c0b601a8361201a565b9150612c1682612bd7565b602082019050919050565b5f6020820190508181035f830152612c3881612bff565b9050919050565b5f612c4982612125565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c7b57612c7a6124f5565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612cba60178361201a565b9150612cc582612c86565b602082019050919050565b5f6020820190508181035f830152612ce781612cae565b9050919050565b5f612cf882612125565b9150612d0383612125565b9250828203905081811115612d1b57612d1a6124f5565b5b92915050565b5f81519050612d2f816120fb565b92915050565b5f60208284031215612d4a57612d496120c3565b5b5f612d5784828501612d21565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612d92816120ea565b82525050565b5f612da38383612d89565b60208301905092915050565b5f602082019050919050565b5f612dc582612d60565b612dcf8185612d6a565b9350612dda83612d7a565b805f5b83811015612e0a578151612df18882612d98565b9750612dfc83612daf565b925050600181019050612ddd565b5085935050505092915050565b5f60a082019050612e2a5f8301886121c9565b612e3760208301876127a4565b8181036040830152612e498186612dbb565b9050612e586060830185612427565b612e6560808301846121c9565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612ea682612125565b9150612eb183612125565b925082612ec157612ec0612e6f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f2660218361201a565b9150612f3182612ecc565b604082019050919050565b5f6020820190508181035f830152612f5381612f1a565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612f8e601b8361201a565b9150612f9982612f5a565b602082019050919050565b5f6020820190508181035f830152612fbb81612f82565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654465706172746d656e74206f6620456e7669726f6e6d656e74616c204173736573736d656e7420616e6420446566656e7365a264697066735822122014697e48b355cabdfc8325f5cd40851132324a598a11760f9a2443abbcba80a864736f6c63430008170033
Deployed Bytecode Sourcemap
4332:8699:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6651:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7484:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5487:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11372:157;;;;;;;;;;;;;:::i;:::-;;6928:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7653:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6837:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11973;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7031:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3413:148;;;;;;;;;;;;;:::i;:::-;;5315:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11637:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3199:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5370:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6742:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11806:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7158:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12486:347;;;;;;;;;;;;;:::i;:::-;;5427:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12064:377;;;;;;;;;;;;;:::i;:::-;;7333:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12841:187;;;;;;;;;;;;;:::i;:::-;;6651:83;6688:13;6721:5;;;;;;;;;;;;;;;;;6714:12;;6651:83;:::o;7484:161::-;7559:4;7576:39;7585:12;:10;:12::i;:::-;7599:7;7608:6;7576:8;:39::i;:::-;7633:4;7626:11;;7484:161;;;;:::o;5487:45::-;;;;:::o;11372:157::-;3336:12;:10;:12::i;:::-;3326:22;;:6;;;;;;;;;;:22;;;3318:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5081:1:::1;5140:2;:13;;;;:::i;:::-;5124;:29;;;;:::i;:::-;11423:12;:22;;;;5081:1;5140:2;:13;;;;:::i;:::-;5124;:29;;;;:::i;:::-;11456:14;:22;;;;11494:27;5081:1;5140:2;:13;;;;:::i;:::-;5124;:29;;;;:::i;:::-;11494:27;;;;;;:::i;:::-;;;;;;;;11372:157::o:0;6928:95::-;6981:7;5081:1;5140:2;:13;;;;:::i;:::-;5124;:29;;;;:::i;:::-;7001:14;;6928:95;:::o;7653:313::-;7751:4;7768:36;7778:6;7786:9;7797:6;7768:9;:36::i;:::-;7815:121;7824:6;7832:12;:10;:12::i;:::-;7846:89;7884:6;7846:89;;;;;;;;;;;;;;;;;:11;:19;7858:6;7846:19;;;;;;;;;;;;;;;:33;7866:12;:10;:12::i;:::-;7846:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7815:8;:121::i;:::-;7954:4;7947:11;;7653:313;;;;;:::o;6837:83::-;6878:5;5081:1;6896:16;;6837:83;:::o;11973:::-;12020:4;12041;:7;12046:1;12041:7;;;;;;;;;;;;;;;;;;;;;;;;;12034:14;;11973:83;;;:::o;7031:119::-;7097:7;7124:9;:18;7134:7;7124:18;;;;;;;;;;;;;;;;7117:25;;7031:119;;;:::o;3413:148::-;3336:12;:10;:12::i;:::-;3326:22;;:6;;;;;;;;;;:22;;;3318:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3520:1:::1;3483:40;;3504:6;::::0;::::1;;;;;;;;3483:40;;;;;;;;;;;;3551:1;3534:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3413:148::o:0;5315:48::-;;;;:::o;11637:161::-;3336:12;:10;:12::i;:::-;3326:22;;:6;;;;;;;;;;:22;;;3318:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11708:6:::1;11703:88;11724:5;:12;11720:1;:16;11703:88;;;11775:4;11758;:14;11763:5;11769:1;11763:8;;;;;;;;:::i;:::-;;;;;;;;11758:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11738:3;;;;;;;11703:88;;;;11637:161:::0;:::o;3199:79::-;3237:7;3264:6;;;;;;;;;;;3257:13;;3199:79;:::o;5370:50::-;;;;:::o;6742:87::-;6781:13;6814:7;;;;;;;;;;;;;;;;;6807:14;;6742:87;:::o;11806:159::-;3336:12;:10;:12::i;:::-;3326:22;;:6;;;;;;;;;;:22;;;3318:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11876:6:::1;11871:87;11892:6;:13;11888:1;:17;11871:87;;;11943:5;11925:4;:15;11930:6;11937:1;11930:9;;;;;;;;:::i;:::-;;;;;;;;11925:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;11907:3;;;;;;;11871:87;;;;11806:159:::0;:::o;7158:167::-;7236:4;7253:42;7263:12;:10;:12::i;:::-;7277:9;7288:6;7253:9;:42::i;:::-;7313:4;7306:11;;7158:167;;;;:::o;12486:347::-;12549:10;;;;;;;;;;;12535:24;;:12;:10;:12::i;:::-;:24;;;12527:33;;;;;;12571:20;12592:24;12610:4;12592:9;:24::i;:::-;12571:45;;12643:1;12630:12;:14;12627:73;;;12658:30;12675:12;12658:16;:30::i;:::-;12627:73;12710:18;12729:21;12710:40;;12775:1;12764:10;:12;12761:65;;;12790:24;12803:10;12790:12;:24::i;:::-;12761:65;12516:317;;12486:347::o;5427:53::-;;;;:::o;12064:377::-;3336:12;:10;:12::i;:::-;3326:22;;:6;;;;;;;;;;:22;;;3318:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12128:11:::1;::::0;::::1;;;;;;;;12127:12;12119:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;12177:58;12194:4;12209:15;;;;;;;;;;;5081:1;5140:2;:13;;;;:::i;:::-;5124;:29;;;;:::i;:::-;12177:8;:58::i;:::-;12246:15;;;;;;;;;;;:31;;;12285:21;12316:4;12322:24;12340:4;12322:9;:24::i;:::-;12347:1;12349::::0;12351:7:::1;:5;:7::i;:::-;12359:15;12246:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12400:4;12386:11;;:18;;;;;;;;;;;;;;;;;;12429:4;12415:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;12064:377::o:0;7333:143::-;7414:7;7441:11;:18;7453:5;7441:18;;;;;;;;;;;;;;;:27;7460:7;7441:27;;;;;;;;;;;;;;;;7434:34;;7333:143;;;;:::o;12841:187::-;12905:10;;;;;;;;;;;12891:24;;:12;:10;:12::i;:::-;:24;;;12883:33;;;;;;12927:26;12956:21;12927:50;;12988:32;13001:18;12988:12;:32::i;:::-;12872:156;12841:187::o;954:98::-;1007:7;1034:10;1027:17;;954:98;:::o;7974:335::-;8084:1;8067:19;;:5;:19;;;8059:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8165:1;8146:21;;:7;:21;;;8138:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8247:6;8217:11;:18;8229:5;8217:18;;;;;;;;;;;;;;;:27;8236:7;8217:27;;;;;;;;;;;;;;;:36;;;;8285:7;8269:32;;8278:5;8269:32;;;8294:6;8269:32;;;;;;:::i;:::-;;;;;;;;7974:335;;;:::o;8317:2448::-;8421:1;8405:18;;:4;:18;;;8397:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8498:1;8484:16;;:2;:16;;;8476:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8568:1;8559:6;:10;8551:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8626:17;8668:7;:5;:7::i;:::-;8660:15;;:4;:15;;;;:32;;;;;8685:7;:5;:7::i;:::-;8679:13;;:2;:13;;;;8660:32;8656:1753;;;8718:4;:10;8723:4;8718:10;;;;;;;;;;;;;;;;;;;;;;;;;8717:11;:24;;;;;8733:4;:8;8738:2;8733:8;;;;;;;;;;;;;;;;;;;;;;;;;8732:9;8717:24;8709:33;;;;;;8773:1;8762:9;;:12;8759:139;;8806:76;8878:3;8806:67;8828:15;;8818:9;;:25;8817:55;;8858:14;;8817:55;;;8845:12;;8817:55;8806:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8794:88;;8759:139;8925:1;8915:9;;:11;8912:95;;;8958:33;8987:3;8958:24;8969:12;;8958:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;8946:45;;8912:95;9035:13;;;;;;;;;;;9027:21;;:4;:21;;;:55;;;;;9066:15;;;;;;;;;;;9052:30;;:2;:30;;;;9027:55;:83;;;;;9088:18;:22;9107:2;9088:22;;;;;;;;;;;;;;;;;;;;;;;;;9086:24;9027:83;9023:420;;;9150:12;;9140:6;:22;;9132:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9245:14;;9235:6;9219:13;9229:2;9219:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9211:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9321:76;9393:3;9321:67;9343:15;;9333:9;;:25;9332:55;;9373:14;;9332:55;;;9360:12;;9332:55;9321:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;9309:88;;9416:9;;:11;;;;;;;;;:::i;:::-;;;;;;9023:420;9468:13;;;;;;;;;;;9462:19;;:2;:19;;;:43;;;;;9500:4;9485:20;;:4;:20;;;;9462:43;9459:174;;;9538:79;9613:3;9538:70;9560:16;;9550:9;;:26;9549:58;;9592:15;;9549:58;;;9578:13;;9549:58;9538:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;9526:91;;9459:174;9649:28;9680:24;9698:4;9680:9;:24::i;:::-;9649:55;;9724:6;;;;;;;;;;;9723:7;:30;;;;;9740:13;;;;;;;;;;;9734:19;;:2;:19;;;9723:30;:45;;;;;9757:11;;;;;;;;;;;9723:45;:89;;;;;9795:17;;9772:20;:40;9723:89;:123;;;;;9828:18;;9816:9;;:30;9723:123;9719:679;;;9886:13;;9871:12;:28;9867:90;;;9936:1;9924:9;:13;;;;9867:90;9995:1;9983:9;;:13;9975:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;10043:69;10060:51;10064:6;10072:38;10076:20;10098:11;;10072:3;:38::i;:::-;10060:3;:51::i;:::-;10043:16;:69::i;:::-;10131:26;10160:21;10131:50;;10225:1;10204:18;:22;10200:106;;;10251:35;10264:21;10251:12;:35::i;:::-;10200:106;10324:9;;:11;;;;;;;;;:::i;:::-;;;;;;10370:12;10354:13;:28;;;;9848:550;9719:679;8694:1715;8656:1753;10434:1;10424:9;:11;10421:161;;;10474:39;10503:9;10474;:24;10492:4;10474:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10449:9;:24;10467:4;10449:24;;;;;;;;;;;;;;;:64;;;;10554:4;10531:39;;10540:4;10531:39;;;10560:9;10531:39;;;;;;:::i;:::-;;;;;;;;10421:161;10608:27;10628:6;10608:9;:15;10618:4;10608:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10592:9;:15;10602:4;10592:15;;;;;;;;;;;;;;;:43;;;;10660:40;10678:21;10689:9;10678:6;:10;;:21;;;;:::i;:::-;10660:9;:13;10670:2;10660:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10646:9;:13;10656:2;10646:13;;;;;;;;;;;;;;;:54;;;;10731:2;10716:41;;10725:4;10716:41;;;10735:21;10746:9;10735:6;:10;;:21;;;;:::i;:::-;10716:41;;;;;;:::i;:::-;;;;;;;;8386:2379;8317:2448;;;:::o;2091:190::-;2177:7;2210:1;2205;:6;;2213:12;2197:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2237:9;2253:1;2249;:5;;;;:::i;:::-;2237:17;;2272:1;2265:8;;;2091:190;;;;;:::o;10881:483::-;5943:4;5934:6;;:13;;;;;;;;;;;;;;;;;;10959:21:::1;10997:1;10983:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10959:40;;11028:4;11010;11015:1;11010:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11054:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11044:4;11049:1;11044:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11087:62;11104:4;11119:15;;;;;;;;;;;11137:11;11087:8;:62::i;:::-;11160:15;;;;;;;;;;;:66;;;11241:11;11267:1;11283:4;11310;11330:15;11160:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10948:416;5979:5:::0;5970:6;;:14;;;;;;;;;;;;;;;;;;10881:483;:::o;11537:92::-;11594:10;;;;;;;;;;;:19;;:27;11614:6;11594:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11537:92;:::o;2289:246::-;2347:7;2376:1;2371;:6;2367:47;;2401:1;2394:8;;;;2367:47;2424:9;2440:1;2436;:5;;;;:::i;:::-;2424:17;;2469:1;2464;2460;:5;;;;:::i;:::-;:10;2452:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2526:1;2519:8;;;2289:246;;;;;:::o;2543:132::-;2601:7;2628:39;2632:1;2635;2628:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2621:46;;2543:132;;;;:::o;10775:98::-;10832:7;10859:1;10857;:3;10856:9;;10864:1;10856:9;;;10862:1;10856:9;10849:16;;10775:98;;;;:::o;1760:179::-;1818:7;1838:9;1854:1;1850;:5;;;;:::i;:::-;1838:17;;1879:1;1874;:6;;1866:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1930:1;1923:8;;;1760:179;;;;:::o;1947:136::-;2005:7;2032:43;2036:1;2039;2032:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2025:50;;1947:136;;;;:::o;2683:189::-;2769:7;2801:1;2797;:5;2804:12;2789:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2828:9;2844:1;2840;:5;;;;:::i;:::-;2828:17;;2863:1;2856:8;;;2683: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:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:117::-;5297:1;5294;5287:12;5311:180;5359:77;5356:1;5349:88;5456:4;5453:1;5446:15;5480:4;5477:1;5470:15;5497:281;5580:27;5602:4;5580:27;:::i;:::-;5572:6;5568:40;5710:6;5698:10;5695:22;5674:18;5662:10;5659:34;5656:62;5653:88;;;5721:18;;:::i;:::-;5653:88;5761:10;5757:2;5750:22;5540:238;5497:281;;:::o;5784:129::-;5818:6;5845:20;;:::i;:::-;5835:30;;5874:33;5902:4;5894:6;5874:33;:::i;:::-;5784:129;;;:::o;5919:311::-;5996:4;6086:18;6078:6;6075:30;6072:56;;;6108:18;;:::i;:::-;6072:56;6158:4;6150:6;6146:17;6138:25;;6218:4;6212;6208:15;6200:23;;5919:311;;;:::o;6236:117::-;6345:1;6342;6335:12;6376:710;6472:5;6497:81;6513:64;6570:6;6513:64;:::i;:::-;6497:81;:::i;:::-;6488:90;;6598:5;6627:6;6620:5;6613:21;6661:4;6654:5;6650:16;6643:23;;6714:4;6706:6;6702:17;6694:6;6690:30;6743:3;6735:6;6732:15;6729:122;;;6762:79;;:::i;:::-;6729:122;6877:6;6860:220;6894:6;6889:3;6886:15;6860:220;;;6969:3;6998:37;7031:3;7019:10;6998:37;:::i;:::-;6993:3;6986:50;7065:4;7060:3;7056:14;7049:21;;6936:144;6920:4;6915:3;6911:14;6904:21;;6860:220;;;6864:21;6478:608;;6376:710;;;;;:::o;7109:370::-;7180:5;7229:3;7222:4;7214:6;7210:17;7206:27;7196:122;;7237:79;;:::i;:::-;7196:122;7354:6;7341:20;7379:94;7469:3;7461:6;7454:4;7446:6;7442:17;7379:94;:::i;:::-;7370:103;;7186:293;7109:370;;;;:::o;7485:539::-;7569:6;7618:2;7606:9;7597:7;7593:23;7589:32;7586:119;;;7624:79;;:::i;:::-;7586:119;7772:1;7761:9;7757:17;7744:31;7802:18;7794:6;7791:30;7788:117;;;7824:79;;:::i;:::-;7788:117;7929:78;7999:7;7990:6;7979:9;7975:22;7929:78;:::i;:::-;7919:88;;7715:302;7485:539;;;;:::o;8030:118::-;8117:24;8135:5;8117:24;:::i;:::-;8112:3;8105:37;8030:118;;:::o;8154:222::-;8247:4;8285:2;8274:9;8270:18;8262:26;;8298:71;8366:1;8355:9;8351:17;8342:6;8298:71;:::i;:::-;8154:222;;;;:::o;8382:474::-;8450:6;8458;8507:2;8495:9;8486:7;8482:23;8478:32;8475:119;;;8513:79;;:::i;:::-;8475:119;8633:1;8658:53;8703:7;8694:6;8683:9;8679:22;8658:53;:::i;:::-;8648:63;;8604:117;8760:2;8786:53;8831:7;8822:6;8811:9;8807:22;8786:53;:::i;:::-;8776:63;;8731:118;8382:474;;;;;:::o;8862:182::-;9002:34;8998:1;8990:6;8986:14;8979:58;8862:182;:::o;9050:366::-;9192:3;9213:67;9277:2;9272:3;9213:67;:::i;:::-;9206:74;;9289:93;9378:3;9289:93;:::i;:::-;9407:2;9402:3;9398:12;9391:19;;9050:366;;;:::o;9422:419::-;9588:4;9626:2;9615:9;9611:18;9603:26;;9675:9;9669:4;9665:20;9661:1;9650:9;9646:17;9639:47;9703:131;9829:4;9703:131;:::i;:::-;9695:139;;9422:419;;;:::o;9847:180::-;9895:77;9892:1;9885:88;9992:4;9989:1;9982:15;10016:4;10013:1;10006:15;10033:102;10075:8;10122:5;10119:1;10115:13;10094:34;;10033:102;;;:::o;10141:848::-;10202:5;10209:4;10233:6;10224:15;;10257:5;10248:14;;10271:712;10292:1;10282:8;10279:15;10271:712;;;10387:4;10382:3;10378:14;10372:4;10369:24;10366:50;;;10396:18;;:::i;:::-;10366:50;10446:1;10436:8;10432:16;10429:451;;;10861:4;10854:5;10850:16;10841:25;;10429:451;10911:4;10905;10901:15;10893:23;;10941:32;10964:8;10941:32;:::i;:::-;10929:44;;10271:712;;;10141:848;;;;;;;:::o;10995:1073::-;11049:5;11240:8;11230:40;;11261:1;11252:10;;11263:5;;11230:40;11289:4;11279:36;;11306:1;11297:10;;11308:5;;11279:36;11375:4;11423:1;11418:27;;;;11459:1;11454:191;;;;11368:277;;11418:27;11436:1;11427:10;;11438:5;;;11454:191;11499:3;11489:8;11486:17;11483:43;;;11506:18;;:::i;:::-;11483:43;11555:8;11552:1;11548:16;11539:25;;11590:3;11583:5;11580:14;11577:40;;;11597:18;;:::i;:::-;11577:40;11630:5;;;11368:277;;11754:2;11744:8;11741:16;11735:3;11729:4;11726:13;11722:36;11704:2;11694:8;11691:16;11686:2;11680:4;11677:12;11673:35;11657:111;11654:246;;;11810:8;11804:4;11800:19;11791:28;;11845:3;11838:5;11835:14;11832:40;;;11852:18;;:::i;:::-;11832:40;11885:5;;11654:246;11925:42;11963:3;11953:8;11947:4;11944:1;11925:42;:::i;:::-;11910:57;;;;11999:4;11994:3;11990:14;11983:5;11980:25;11977:51;;;12008:18;;:::i;:::-;11977:51;12057:4;12050:5;12046:16;12037:25;;10995:1073;;;;;;:::o;12074:281::-;12132:5;12156:23;12174:4;12156:23;:::i;:::-;12148:31;;12200:25;12216:8;12200:25;:::i;:::-;12188:37;;12244:104;12281:66;12271:8;12265:4;12244:104;:::i;:::-;12235:113;;12074:281;;;;:::o;12361:410::-;12401:7;12424:20;12442:1;12424:20;:::i;:::-;12419:25;;12458:20;12476:1;12458:20;:::i;:::-;12453:25;;12513:1;12510;12506:9;12535:30;12553:11;12535:30;:::i;:::-;12524:41;;12714:1;12705:7;12701:15;12698:1;12695:22;12675:1;12668:9;12648:83;12625:139;;12744:18;;:::i;:::-;12625:139;12409:362;12361:410;;;;:::o;12777:180::-;12825:77;12822:1;12815:88;12922:4;12919:1;12912:15;12946:4;12943:1;12936:15;12963:173;13103:25;13099:1;13091:6;13087:14;13080:49;12963:173;:::o;13142:366::-;13284:3;13305:67;13369:2;13364:3;13305:67;:::i;:::-;13298:74;;13381:93;13470:3;13381:93;:::i;:::-;13499:2;13494:3;13490:12;13483:19;;13142:366;;;:::o;13514:419::-;13680:4;13718:2;13707:9;13703:18;13695:26;;13767:9;13761:4;13757:20;13753:1;13742:9;13738:17;13731:47;13795:131;13921:4;13795:131;:::i;:::-;13787:139;;13514:419;;;:::o;13939:85::-;13984:7;14013:5;14002:16;;13939:85;;;:::o;14030:60::-;14058:3;14079:5;14072:12;;14030:60;;;:::o;14096:158::-;14154:9;14187:61;14205:42;14214:32;14240:5;14214:32;:::i;:::-;14205:42;:::i;:::-;14187:61;:::i;:::-;14174:74;;14096:158;;;:::o;14260:147::-;14355:45;14394:5;14355:45;:::i;:::-;14350:3;14343:58;14260:147;;:::o;14413:807::-;14662:4;14700:3;14689:9;14685:19;14677:27;;14714:71;14782:1;14771:9;14767:17;14758:6;14714:71;:::i;:::-;14795:72;14863:2;14852:9;14848:18;14839:6;14795:72;:::i;:::-;14877:80;14953:2;14942:9;14938:18;14929:6;14877:80;:::i;:::-;14967;15043:2;15032:9;15028:18;15019:6;14967:80;:::i;:::-;15057:73;15125:3;15114:9;15110:19;15101:6;15057:73;:::i;:::-;15140;15208:3;15197:9;15193:19;15184:6;15140:73;:::i;:::-;14413:807;;;;;;;;;:::o;15226:143::-;15283:5;15314:6;15308:13;15299:22;;15330:33;15357:5;15330:33;:::i;:::-;15226:143;;;;:::o;15375:663::-;15463:6;15471;15479;15528:2;15516:9;15507:7;15503:23;15499:32;15496:119;;;15534:79;;:::i;:::-;15496:119;15654:1;15679:64;15735:7;15726:6;15715:9;15711:22;15679:64;:::i;:::-;15669:74;;15625:128;15792:2;15818:64;15874:7;15865:6;15854:9;15850:22;15818:64;:::i;:::-;15808:74;;15763:129;15931:2;15957:64;16013:7;16004:6;15993:9;15989:22;15957:64;:::i;:::-;15947:74;;15902:129;15375:663;;;;;:::o;16044:223::-;16184:34;16180:1;16172:6;16168:14;16161:58;16253:6;16248:2;16240:6;16236:15;16229:31;16044:223;:::o;16273:366::-;16415:3;16436:67;16500:2;16495:3;16436:67;:::i;:::-;16429:74;;16512:93;16601:3;16512:93;:::i;:::-;16630:2;16625:3;16621:12;16614:19;;16273:366;;;:::o;16645:419::-;16811:4;16849:2;16838:9;16834:18;16826:26;;16898:9;16892:4;16888:20;16884:1;16873:9;16869:17;16862:47;16926:131;17052:4;16926:131;:::i;:::-;16918:139;;16645:419;;;:::o;17070:221::-;17210:34;17206:1;17198:6;17194:14;17187:58;17279:4;17274:2;17266:6;17262:15;17255:29;17070:221;:::o;17297:366::-;17439:3;17460:67;17524:2;17519:3;17460:67;:::i;:::-;17453:74;;17536:93;17625:3;17536:93;:::i;:::-;17654:2;17649:3;17645:12;17638:19;;17297:366;;;:::o;17669:419::-;17835:4;17873:2;17862:9;17858:18;17850:26;;17922:9;17916:4;17912:20;17908:1;17897:9;17893:17;17886:47;17950:131;18076:4;17950:131;:::i;:::-;17942:139;;17669:419;;;:::o;18094:224::-;18234:34;18230:1;18222:6;18218:14;18211:58;18303:7;18298:2;18290:6;18286:15;18279:32;18094:224;:::o;18324:366::-;18466:3;18487:67;18551:2;18546:3;18487:67;:::i;:::-;18480:74;;18563:93;18652:3;18563:93;:::i;:::-;18681:2;18676:3;18672:12;18665:19;;18324:366;;;:::o;18696:419::-;18862:4;18900:2;18889:9;18885:18;18877:26;;18949:9;18943:4;18939:20;18935:1;18924:9;18920:17;18913:47;18977:131;19103:4;18977:131;:::i;:::-;18969:139;;18696:419;;;:::o;19121:222::-;19261:34;19257:1;19249:6;19245:14;19238:58;19330:5;19325:2;19317:6;19313:15;19306:30;19121:222;:::o;19349:366::-;19491:3;19512:67;19576:2;19571:3;19512:67;:::i;:::-;19505:74;;19588:93;19677:3;19588:93;:::i;:::-;19706:2;19701:3;19697:12;19690:19;;19349:366;;;:::o;19721:419::-;19887:4;19925:2;19914:9;19910:18;19902:26;;19974:9;19968:4;19964:20;19960:1;19949:9;19945:17;19938:47;20002:131;20128:4;20002:131;:::i;:::-;19994:139;;19721:419;;;:::o;20146:228::-;20286:34;20282:1;20274:6;20270:14;20263:58;20355:11;20350:2;20342:6;20338:15;20331:36;20146:228;:::o;20380:366::-;20522:3;20543:67;20607:2;20602:3;20543:67;:::i;:::-;20536:74;;20619:93;20708:3;20619:93;:::i;:::-;20737:2;20732:3;20728:12;20721:19;;20380:366;;;:::o;20752:419::-;20918:4;20956:2;20945:9;20941:18;20933:26;;21005:9;20999:4;20995:20;20991:1;20980:9;20976:17;20969:47;21033:131;21159:4;21033:131;:::i;:::-;21025:139;;20752:419;;;:::o;21177:175::-;21317:27;21313:1;21305:6;21301:14;21294:51;21177:175;:::o;21358:366::-;21500:3;21521:67;21585:2;21580:3;21521:67;:::i;:::-;21514:74;;21597:93;21686:3;21597:93;:::i;:::-;21715:2;21710:3;21706:12;21699:19;;21358:366;;;:::o;21730:419::-;21896:4;21934:2;21923:9;21919:18;21911:26;;21983:9;21977:4;21973:20;21969:1;21958:9;21954:17;21947:47;22011:131;22137:4;22011:131;:::i;:::-;22003:139;;21730:419;;;:::o;22155:191::-;22195:3;22214:20;22232:1;22214:20;:::i;:::-;22209:25;;22248:20;22266:1;22248:20;:::i;:::-;22243:25;;22291:1;22288;22284:9;22277:16;;22312:3;22309:1;22306:10;22303:36;;;22319:18;;:::i;:::-;22303:36;22155:191;;;;:::o;22352:176::-;22492:28;22488:1;22480:6;22476:14;22469:52;22352:176;:::o;22534:366::-;22676:3;22697:67;22761:2;22756:3;22697:67;:::i;:::-;22690:74;;22773:93;22862:3;22773:93;:::i;:::-;22891:2;22886:3;22882:12;22875:19;;22534:366;;;:::o;22906:419::-;23072:4;23110:2;23099:9;23095:18;23087:26;;23159:9;23153:4;23149:20;23145:1;23134:9;23130:17;23123:47;23187:131;23313:4;23187:131;:::i;:::-;23179:139;;22906:419;;;:::o;23331:233::-;23370:3;23393:24;23411:5;23393:24;:::i;:::-;23384:33;;23439:66;23432:5;23429:77;23426:103;;23509:18;;:::i;:::-;23426:103;23556:1;23549:5;23545:13;23538:20;;23331:233;;;:::o;23570:173::-;23710:25;23706:1;23698:6;23694:14;23687:49;23570:173;:::o;23749:366::-;23891:3;23912:67;23976:2;23971:3;23912:67;:::i;:::-;23905:74;;23988:93;24077:3;23988:93;:::i;:::-;24106:2;24101:3;24097:12;24090:19;;23749:366;;;:::o;24121:419::-;24287:4;24325:2;24314:9;24310:18;24302:26;;24374:9;24368:4;24364:20;24360:1;24349:9;24345:17;24338:47;24402:131;24528:4;24402:131;:::i;:::-;24394:139;;24121:419;;;:::o;24546:194::-;24586:4;24606:20;24624:1;24606:20;:::i;:::-;24601:25;;24640:20;24658:1;24640:20;:::i;:::-;24635:25;;24684:1;24681;24677:9;24669:17;;24708:1;24702:4;24699:11;24696:37;;;24713:18;;:::i;:::-;24696:37;24546:194;;;;:::o;24746:143::-;24803:5;24834:6;24828:13;24819:22;;24850:33;24877:5;24850:33;:::i;:::-;24746:143;;;;:::o;24895:351::-;24965:6;25014:2;25002:9;24993:7;24989:23;24985:32;24982:119;;;25020:79;;:::i;:::-;24982:119;25140:1;25165:64;25221:7;25212:6;25201:9;25197:22;25165:64;:::i;:::-;25155:74;;25111:128;24895:351;;;;:::o;25252:114::-;25319:6;25353:5;25347:12;25337:22;;25252:114;;;:::o;25372:184::-;25471:11;25505:6;25500:3;25493:19;25545:4;25540:3;25536:14;25521:29;;25372:184;;;;:::o;25562:132::-;25629:4;25652:3;25644:11;;25682:4;25677:3;25673:14;25665:22;;25562:132;;;:::o;25700:108::-;25777:24;25795:5;25777:24;:::i;:::-;25772:3;25765:37;25700:108;;:::o;25814:179::-;25883:10;25904:46;25946:3;25938:6;25904:46;:::i;:::-;25982:4;25977:3;25973:14;25959:28;;25814:179;;;;:::o;25999:113::-;26069:4;26101;26096:3;26092:14;26084:22;;25999:113;;;:::o;26148:732::-;26267:3;26296:54;26344:5;26296:54;:::i;:::-;26366:86;26445:6;26440:3;26366:86;:::i;:::-;26359:93;;26476:56;26526:5;26476:56;:::i;:::-;26555:7;26586:1;26571:284;26596:6;26593:1;26590:13;26571:284;;;26672:6;26666:13;26699:63;26758:3;26743:13;26699:63;:::i;:::-;26692:70;;26785:60;26838:6;26785:60;:::i;:::-;26775:70;;26631:224;26618:1;26615;26611:9;26606:14;;26571:284;;;26575:14;26871:3;26864:10;;26272:608;;;26148:732;;;;:::o;26886:831::-;27149:4;27187:3;27176:9;27172:19;27164:27;;27201:71;27269:1;27258:9;27254:17;27245:6;27201:71;:::i;:::-;27282:80;27358:2;27347:9;27343:18;27334:6;27282:80;:::i;:::-;27409:9;27403:4;27399:20;27394:2;27383:9;27379:18;27372:48;27437:108;27540:4;27531:6;27437:108;:::i;:::-;27429:116;;27555:72;27623:2;27612:9;27608:18;27599:6;27555:72;:::i;:::-;27637:73;27705:3;27694:9;27690:19;27681:6;27637:73;:::i;:::-;26886:831;;;;;;;;:::o;27723:180::-;27771:77;27768:1;27761:88;27868:4;27865:1;27858:15;27892:4;27889:1;27882:15;27909:185;27949:1;27966:20;27984:1;27966:20;:::i;:::-;27961:25;;28000:20;28018:1;28000:20;:::i;:::-;27995:25;;28039:1;28029:35;;28044:18;;:::i;:::-;28029:35;28086:1;28083;28079:9;28074:14;;27909:185;;;;:::o;28100:220::-;28240:34;28236:1;28228:6;28224:14;28217:58;28309:3;28304:2;28296:6;28292:15;28285:28;28100:220;:::o;28326:366::-;28468:3;28489:67;28553:2;28548:3;28489:67;:::i;:::-;28482:74;;28565:93;28654:3;28565:93;:::i;:::-;28683:2;28678:3;28674:12;28667:19;;28326:366;;;:::o;28698:419::-;28864:4;28902:2;28891:9;28887:18;28879:26;;28951:9;28945:4;28941:20;28937:1;28926:9;28922:17;28915:47;28979:131;29105:4;28979:131;:::i;:::-;28971:139;;28698:419;;;:::o;29123:177::-;29263:29;29259:1;29251:6;29247:14;29240:53;29123:177;:::o;29306:366::-;29448:3;29469:67;29533:2;29528:3;29469:67;:::i;:::-;29462:74;;29545:93;29634:3;29545:93;:::i;:::-;29663:2;29658:3;29654:12;29647:19;;29306:366;;;:::o;29678:419::-;29844:4;29882:2;29871:9;29867:18;29859:26;;29931:9;29925:4;29921:20;29917:1;29906:9;29902:17;29895:47;29959:131;30085:4;29959:131;:::i;:::-;29951:139;;29678:419;;;:::o
Swarm Source
ipfs://14697e48b355cabdfc8325f5cd40851132324a598a11760f9a2443abbcba80a8
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.