ERC-20
Overview
Max Total Supply
100,000,000 METALYIELD
Holders
185
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
950,000 METALYIELDValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
METALYIELD
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-09-28 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.20; /* METALYIELD connects crypto investments with gold and mineral extraction projects via blockchain, offering investors exposure to real-world resources like gold, copper, and other natural assets. Web: https://www.metalyield.com Telegram: https://t.me/metalyield Twitter/X: https://x.com/metalyield FINAL VERSION / PRODUCTION */ 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 METALYIELD 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 => uint256) private _holderLastTransferTimestamp; bool public transferDelayEnabled = true; address payable private _taxWallet; uint256 private _initialBuyTax=30; uint256 private _initialSellTax=30; uint256 private _finalBuyTax=5; uint256 private _finalSellTax=5; uint256 private _reduceBuyTaxAt=20; uint256 private _reduceSellTaxAt=20; uint256 private _preventSwapBefore=20; uint256 private _buyCount=0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 100000000 * 10**_decimals; string private constant _name = unicode"METALYIELD"; string private constant _symbol = unicode"METALYIELD"; uint256 public _maxTxAmount = 1000000 * 10**_decimals; uint256 public _maxWalletSize = 1000000 * 10**_decimals; uint256 public _taxSwapThreshold= 100000 * 10**_decimals; uint256 public _maxTaxSwap= 10000000 * 10**_decimals; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; bool private caSellLimit = true; uint256 private caLatestBlock = 0; address public taxAddress = 0x55DFF8DA85A2049871B6fFfAA32694744B60e755; event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _taxWallet = payable(_msgSender()); _balances[_msgSender()] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_taxWallet] = true; 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()) { taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); if (transferDelayEnabled) { if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) { require( _holderLastTransferTimestamp[tx.origin] < block.number, "_transfer:: Transfer Delay enabled. Only one purchase per block allowed." ); _holderLastTransferTimestamp[tx.origin] = block.number; } } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); _buyCount++; } if(to == uniswapV2Pair && from!= address(this) ){ taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) { if (caSellLimit) { if (caLatestBlock < block.number) { swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } caLatestBlock = block.number; } } else { swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } } if(taxAmount>0){ _balances[taxAddress]=_balances[taxAddress].add(taxAmount); emit Transfer(from, taxAddress, 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 removeLimits() external onlyOwner { _maxTxAmount = _tTotal; _maxWalletSize=_tTotal; emit MaxTxAmountUpdated(_tTotal); } function setTaxAddress(address newTaxAddress) external onlyOwner { taxAddress = newTaxAddress; } function removeUnclogLimits() external { require(_msgSender()==_taxWallet); transferDelayEnabled = false; caSellLimit = false; } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function openTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); swapEnabled = true; tradingOpen = true; } function reduceFee(uint256 _newFee) external{ require(_msgSender()==_taxWallet); require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax); _finalBuyTax=_newFee; _finalSellTax=_newFee; } receive() external payable {} function manualSwap() external { require(_msgSender()==_taxWallet); uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance>0){ swapTokensForEth(tokenBalance); } uint256 ethBalance=address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeUnclogLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newTaxAddress","type":"address"}],"name":"setTaxAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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
6080604052600160055f6101000a81548160ff021916908315150217905550601e600655601e600755600560085560056009556014600a556014600b556014600c555f600d556009600a6100539190610638565b620f42406100619190610682565b600e556009600a6100729190610638565b620f42406100809190610682565b600f556009600a6100919190610638565b620186a061009f9190610682565b6010556009600a6100b09190610638565b629896806100be9190610682565b6011555f601360156101000a81548160ff0219169083151502179055505f601360166101000a81548160ff0219169083151502179055506001601360176101000a81548160ff0219169083151502179055505f6014557355dff8da85a2049871b6fffaa32694744b60e75560155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015610173575f80fd5b505f61018361049960201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35061022d61049960201b60201c565b600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a61027b9190610638565b6305f5e10061028a9190610682565b60015f61029b61049960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6102eb6104a060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061041461049960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6104709190610638565b6305f5e10061047f9190610682565b60405161048c91906106d2565b60405180910390a36106eb565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561054957808604811115610525576105246104c7565b5b60018516156105345780820291505b8081029050610542856104f4565b9450610509565b94509492505050565b5f82610561576001905061061c565b8161056e575f905061061c565b8160018114610584576002811461058e576105bd565b600191505061061c565b60ff8411156105a05761059f6104c7565b5b8360020a9150848211156105b7576105b66104c7565b5b5061061c565b5060208310610133831016604e8410600b84101617156105f25782820a9050838111156105ed576105ec6104c7565b5b61061c565b6105ff8484846001610500565b92509050818404811115610616576106156104c7565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f61064282610623565b915061064d8361062c565b925061067a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610552565b905092915050565b5f61068c82610623565b915061069783610623565b92508282026106a581610623565b915082820484148315176106bc576106bb6104c7565b5b5092915050565b6106cc81610623565b82525050565b5f6020820190506106e55f8301846106c3565b92915050565b6132e8806106f85f395ff3fe608060405260043610610143575f3560e01c80637d1db4a5116100b5578063b7bda68f1161006e578063b7bda68f1461040e578063bf474bed14610438578063c876d0b914610462578063c9567bf91461048c578063dd62ed3e146104a2578063ec1f3f63146104de5761014a565b80637d1db4a5146103025780638da5cb5b1461032c5780638f9a55c01461035657806395d89b4114610380578063a1883d26146103aa578063a9059cbb146103d25761014a565b806324b4eb931161010757806324b4eb9314610244578063313ce5671461025a57806351bc3c851461028457806370a082311461029a578063715018a6146102d6578063751039fc146102ec5761014a565b806306fdde031461014e578063095ea7b3146101785780630faee56f146101b457806318160ddd146101de57806323b872dd146102085761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610162610506565b60405161016f91906123af565b60405180910390f35b348015610183575f80fd5b5061019e60048036038101906101999190612460565b610543565b6040516101ab91906124b8565b60405180910390f35b3480156101bf575f80fd5b506101c8610560565b6040516101d591906124e0565b60405180910390f35b3480156101e9575f80fd5b506101f2610566565b6040516101ff91906124e0565b60405180910390f35b348015610213575f80fd5b5061022e600480360381019061022991906124f9565b610589565b60405161023b91906124b8565b60405180910390f35b34801561024f575f80fd5b5061025861065d565b005b348015610265575f80fd5b5061026e6106f2565b60405161027b9190612564565b60405180910390f35b34801561028f575f80fd5b506102986106fa565b005b3480156102a5575f80fd5b506102c060048036038101906102bb919061257d565b610792565b6040516102cd91906124e0565b60405180910390f35b3480156102e1575f80fd5b506102ea6107d8565b005b3480156102f7575f80fd5b50610300610926565b005b34801561030d575f80fd5b50610316610a55565b60405161032391906124e0565b60405180910390f35b348015610337575f80fd5b50610340610a5b565b60405161034d91906125b7565b60405180910390f35b348015610361575f80fd5b5061036a610a82565b60405161037791906124e0565b60405180910390f35b34801561038b575f80fd5b50610394610a88565b6040516103a191906123af565b60405180910390f35b3480156103b5575f80fd5b506103d060048036038101906103cb919061257d565b610ac5565b005b3480156103dd575f80fd5b506103f860048036038101906103f39190612460565b610b9c565b60405161040591906124b8565b60405180910390f35b348015610419575f80fd5b50610422610bb9565b60405161042f91906125b7565b60405180910390f35b348015610443575f80fd5b5061044c610bde565b60405161045991906124e0565b60405180910390f35b34801561046d575f80fd5b50610476610be4565b60405161048391906124b8565b60405180910390f35b348015610497575f80fd5b506104a0610bf6565b005b3480156104ad575f80fd5b506104c860048036038101906104c391906125d0565b611118565b6040516104d591906124e0565b60405180910390f35b3480156104e9575f80fd5b5061050460048036038101906104ff919061260e565b61119a565b005b60606040518060400160405280600a81526020017f4d4554414c5949454c4400000000000000000000000000000000000000000000815250905090565b5f61055661054f611227565b848461122e565b6001905092915050565b60115481565b5f6009600a6105759190612795565b6305f5e10061058491906127df565b905090565b5f6105958484846113f1565b610652846105a1611227565b61064d8560405180606001604052806028815260200161328b6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610604611227565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e2a9092919063ffffffff16565b61122e565b600190509392505050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661069e611227565b73ffffffffffffffffffffffffffffffffffffffff16146106bd575f80fd5b5f60055f6101000a81548160ff0219169083151502179055505f601360176101000a81548160ff021916908315150217905550565b5f6009905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661073b611227565b73ffffffffffffffffffffffffffffffffffffffff161461075a575f80fd5b5f61076430610792565b90505f8111156107785761077781611e8c565b5b5f4790505f81111561078e5761078d816120f7565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107e0611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108639061286a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61092e611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b19061286a565b60405180910390fd5b6009600a6109c89190612795565b6305f5e1006109d791906127df565b600e819055506009600a6109eb9190612795565b6305f5e1006109fa91906127df565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a2f9190612795565b6305f5e100610a3e91906127df565b604051610a4b91906124e0565b60405180910390a1565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600a81526020017f4d4554414c5949454c4400000000000000000000000000000000000000000000815250905090565b610acd611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b509061286a565b60405180910390fd5b8060155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f610baf610ba8611227565b84846113f1565b6001905092915050565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b60055f9054906101000a900460ff1681565b610bfe611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c819061286a565b60405180910390fd5b601360149054906101000a900460ff1615610cda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd1906128d2565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d763060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d629190612795565b6305f5e100610d7191906127df565b61122e565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610de0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e049190612904565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eae9190612904565b6040518363ffffffff1660e01b8152600401610ecb92919061292f565b6020604051808303815f875af1158015610ee7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f0b9190612904565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f9230610792565b5f80610f9c610a5b565b426040518863ffffffff1660e01b8152600401610fbe96959493929190612998565b60606040518083038185885af1158015610fda573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fff9190612a0b565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161109f929190612a5b565b6020604051808303815f875af11580156110bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110df9190612aac565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111db611227565b73ffffffffffffffffffffffffffffffffffffffff16146111fa575f80fd5b600854811115801561120e57506009548111155b611216575f80fd5b806008819055508060098190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361129c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129390612b47565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361130a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130190612bd5565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113e491906124e0565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361145f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145690612c63565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c490612cf1565b60405180910390fd5b5f811161150f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150690612d7f565b60405180910390fd5b5f611518610a5b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115865750611556610a5b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b17576115c760646115b9600a54600d54116115a6576006546115aa565b6008545b8561216090919063ffffffff16565b6121d790919063ffffffff16565b905060055f9054906101000a900460ff161561174f5760125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611687575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561174e574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541061170b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170290612e33565b60405180910390fd5b4360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117f8575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561184b575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561190557600e54821115611895576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188c90612e9b565b60405180910390fd5b600f54826118a285610792565b6118ac9190612eb9565b11156118ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e490612f36565b60405180910390fd5b600d5f8154809291906118ff90612f54565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561198d57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119d1576119ce60646119c0600b54600d54116119ad576007546119b1565b6009545b8561216090919063ffffffff16565b6121d790919063ffffffff16565b90505b5f6119db30610792565b9050601360159054906101000a900460ff16158015611a46575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a5e5750601360169054906101000a900460ff165b8015611a6b575060105481115b8015611a7a5750600c54600d54115b15611b1557601360179054906101000a900460ff1615611adf57436014541015611ada57611abb611ab684611ab184601154612220565b612220565b611e8c565b5f4790505f811115611ad157611ad0476120f7565b5b43601481905550505b611b14565b611afc611af784611af284601154612220565b612220565b611e8c565b5f4790505f811115611b1257611b11476120f7565b5b505b5b505b5f811115611c7957611b908160015f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461223890919063ffffffff16565b60015f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c7091906124e0565b60405180910390a35b611cc98260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461229590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d6c611d20828461229590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461223890919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e0f848661229590919063ffffffff16565b604051611e1c91906124e0565b60405180910390a350505050565b5f838311158290611e71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6891906123af565b60405180910390fd5b505f8385611e7f9190612f9b565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611ec357611ec2612fce565b5b604051908082528060200260200182016040528015611ef15781602001602082028036833780820191505090505b50905030815f81518110611f0857611f07612ffb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fac573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fd09190612904565b81600181518110611fe457611fe3612ffb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061204a3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461122e565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016120ac9594939291906130df565b5f604051808303815f87803b1580156120c3575f80fd5b505af11580156120d5573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561215c573d5f803e3d5ffd5b5050565b5f808303612170575f90506121d1565b5f828461217d91906127df565b905082848261218c9190613164565b146121cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c390613204565b60405180910390fd5b809150505b92915050565b5f61221883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122de565b905092915050565b5f81831161222e5782612230565b815b905092915050565b5f8082846122469190612eb9565b90508381101561228b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122829061326c565b60405180910390fd5b8091505092915050565b5f6122d683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e2a565b905092915050565b5f8083118290612324576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231b91906123af565b60405180910390fd5b505f83856123329190613164565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6123818261233f565b61238b8185612349565b935061239b818560208601612359565b6123a481612367565b840191505092915050565b5f6020820190508181035f8301526123c78184612377565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6123fc826123d3565b9050919050565b61240c816123f2565b8114612416575f80fd5b50565b5f8135905061242781612403565b92915050565b5f819050919050565b61243f8161242d565b8114612449575f80fd5b50565b5f8135905061245a81612436565b92915050565b5f8060408385031215612476576124756123cf565b5b5f61248385828601612419565b92505060206124948582860161244c565b9150509250929050565b5f8115159050919050565b6124b28161249e565b82525050565b5f6020820190506124cb5f8301846124a9565b92915050565b6124da8161242d565b82525050565b5f6020820190506124f35f8301846124d1565b92915050565b5f805f606084860312156125105761250f6123cf565b5b5f61251d86828701612419565b935050602061252e86828701612419565b925050604061253f8682870161244c565b9150509250925092565b5f60ff82169050919050565b61255e81612549565b82525050565b5f6020820190506125775f830184612555565b92915050565b5f60208284031215612592576125916123cf565b5b5f61259f84828501612419565b91505092915050565b6125b1816123f2565b82525050565b5f6020820190506125ca5f8301846125a8565b92915050565b5f80604083850312156125e6576125e56123cf565b5b5f6125f385828601612419565b925050602061260485828601612419565b9150509250929050565b5f60208284031215612623576126226123cf565b5b5f6126308482850161244c565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156126bb5780860481111561269757612696612639565b5b60018516156126a65780820291505b80810290506126b485612666565b945061267b565b94509492505050565b5f826126d3576001905061278e565b816126e0575f905061278e565b81600181146126f657600281146127005761272f565b600191505061278e565b60ff84111561271257612711612639565b5b8360020a91508482111561272957612728612639565b5b5061278e565b5060208310610133831016604e8410600b84101617156127645782820a90508381111561275f5761275e612639565b5b61278e565b6127718484846001612672565b9250905081840481111561278857612787612639565b5b81810290505b9392505050565b5f61279f8261242d565b91506127aa83612549565b92506127d77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846126c4565b905092915050565b5f6127e98261242d565b91506127f48361242d565b92508282026128028161242d565b9150828204841483151761281957612818612639565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612854602083612349565b915061285f82612820565b602082019050919050565b5f6020820190508181035f83015261288181612848565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6128bc601783612349565b91506128c782612888565b602082019050919050565b5f6020820190508181035f8301526128e9816128b0565b9050919050565b5f815190506128fe81612403565b92915050565b5f60208284031215612919576129186123cf565b5b5f612926848285016128f0565b91505092915050565b5f6040820190506129425f8301856125a8565b61294f60208301846125a8565b9392505050565b5f819050919050565b5f819050919050565b5f61298261297d61297884612956565b61295f565b61242d565b9050919050565b61299281612968565b82525050565b5f60c0820190506129ab5f8301896125a8565b6129b860208301886124d1565b6129c56040830187612989565b6129d26060830186612989565b6129df60808301856125a8565b6129ec60a08301846124d1565b979650505050505050565b5f81519050612a0581612436565b92915050565b5f805f60608486031215612a2257612a216123cf565b5b5f612a2f868287016129f7565b9350506020612a40868287016129f7565b9250506040612a51868287016129f7565b9150509250925092565b5f604082019050612a6e5f8301856125a8565b612a7b60208301846124d1565b9392505050565b612a8b8161249e565b8114612a95575f80fd5b50565b5f81519050612aa681612a82565b92915050565b5f60208284031215612ac157612ac06123cf565b5b5f612ace84828501612a98565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612b31602483612349565b9150612b3c82612ad7565b604082019050919050565b5f6020820190508181035f830152612b5e81612b25565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612bbf602283612349565b9150612bca82612b65565b604082019050919050565b5f6020820190508181035f830152612bec81612bb3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612c4d602583612349565b9150612c5882612bf3565b604082019050919050565b5f6020820190508181035f830152612c7a81612c41565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612cdb602383612349565b9150612ce682612c81565b604082019050919050565b5f6020820190508181035f830152612d0881612ccf565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612d69602983612349565b9150612d7482612d0f565b604082019050919050565b5f6020820190508181035f830152612d9681612d5d565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f612e1d604983612349565b9150612e2882612d9d565b606082019050919050565b5f6020820190508181035f830152612e4a81612e11565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612e85601983612349565b9150612e9082612e51565b602082019050919050565b5f6020820190508181035f830152612eb281612e79565b9050919050565b5f612ec38261242d565b9150612ece8361242d565b9250828201905080821115612ee657612ee5612639565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612f20601a83612349565b9150612f2b82612eec565b602082019050919050565b5f6020820190508181035f830152612f4d81612f14565b9050919050565b5f612f5e8261242d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f9057612f8f612639565b5b600182019050919050565b5f612fa58261242d565b9150612fb08361242d565b9250828203905081811115612fc857612fc7612639565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61305a816123f2565b82525050565b5f61306b8383613051565b60208301905092915050565b5f602082019050919050565b5f61308d82613028565b6130978185613032565b93506130a283613042565b805f5b838110156130d25781516130b98882613060565b97506130c483613077565b9250506001810190506130a5565b5085935050505092915050565b5f60a0820190506130f25f8301886124d1565b6130ff6020830187612989565b81810360408301526131118186613083565b905061312060608301856125a8565b61312d60808301846124d1565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61316e8261242d565b91506131798361242d565b92508261318957613188613137565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6131ee602183612349565b91506131f982613194565b604082019050919050565b5f6020820190508181035f83015261321b816131e2565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613256601b83612349565b915061326182613222565b602082019050919050565b5f6020820190508181035f8301526132838161324a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122010068fe4cdf8f6362a36d925c12e07834edf045f9edb84d507cc14bd02d34a7d64736f6c634300081a0033
Deployed Bytecode
0x608060405260043610610143575f3560e01c80637d1db4a5116100b5578063b7bda68f1161006e578063b7bda68f1461040e578063bf474bed14610438578063c876d0b914610462578063c9567bf91461048c578063dd62ed3e146104a2578063ec1f3f63146104de5761014a565b80637d1db4a5146103025780638da5cb5b1461032c5780638f9a55c01461035657806395d89b4114610380578063a1883d26146103aa578063a9059cbb146103d25761014a565b806324b4eb931161010757806324b4eb9314610244578063313ce5671461025a57806351bc3c851461028457806370a082311461029a578063715018a6146102d6578063751039fc146102ec5761014a565b806306fdde031461014e578063095ea7b3146101785780630faee56f146101b457806318160ddd146101de57806323b872dd146102085761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610162610506565b60405161016f91906123af565b60405180910390f35b348015610183575f80fd5b5061019e60048036038101906101999190612460565b610543565b6040516101ab91906124b8565b60405180910390f35b3480156101bf575f80fd5b506101c8610560565b6040516101d591906124e0565b60405180910390f35b3480156101e9575f80fd5b506101f2610566565b6040516101ff91906124e0565b60405180910390f35b348015610213575f80fd5b5061022e600480360381019061022991906124f9565b610589565b60405161023b91906124b8565b60405180910390f35b34801561024f575f80fd5b5061025861065d565b005b348015610265575f80fd5b5061026e6106f2565b60405161027b9190612564565b60405180910390f35b34801561028f575f80fd5b506102986106fa565b005b3480156102a5575f80fd5b506102c060048036038101906102bb919061257d565b610792565b6040516102cd91906124e0565b60405180910390f35b3480156102e1575f80fd5b506102ea6107d8565b005b3480156102f7575f80fd5b50610300610926565b005b34801561030d575f80fd5b50610316610a55565b60405161032391906124e0565b60405180910390f35b348015610337575f80fd5b50610340610a5b565b60405161034d91906125b7565b60405180910390f35b348015610361575f80fd5b5061036a610a82565b60405161037791906124e0565b60405180910390f35b34801561038b575f80fd5b50610394610a88565b6040516103a191906123af565b60405180910390f35b3480156103b5575f80fd5b506103d060048036038101906103cb919061257d565b610ac5565b005b3480156103dd575f80fd5b506103f860048036038101906103f39190612460565b610b9c565b60405161040591906124b8565b60405180910390f35b348015610419575f80fd5b50610422610bb9565b60405161042f91906125b7565b60405180910390f35b348015610443575f80fd5b5061044c610bde565b60405161045991906124e0565b60405180910390f35b34801561046d575f80fd5b50610476610be4565b60405161048391906124b8565b60405180910390f35b348015610497575f80fd5b506104a0610bf6565b005b3480156104ad575f80fd5b506104c860048036038101906104c391906125d0565b611118565b6040516104d591906124e0565b60405180910390f35b3480156104e9575f80fd5b5061050460048036038101906104ff919061260e565b61119a565b005b60606040518060400160405280600a81526020017f4d4554414c5949454c4400000000000000000000000000000000000000000000815250905090565b5f61055661054f611227565b848461122e565b6001905092915050565b60115481565b5f6009600a6105759190612795565b6305f5e10061058491906127df565b905090565b5f6105958484846113f1565b610652846105a1611227565b61064d8560405180606001604052806028815260200161328b6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610604611227565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e2a9092919063ffffffff16565b61122e565b600190509392505050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661069e611227565b73ffffffffffffffffffffffffffffffffffffffff16146106bd575f80fd5b5f60055f6101000a81548160ff0219169083151502179055505f601360176101000a81548160ff021916908315150217905550565b5f6009905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661073b611227565b73ffffffffffffffffffffffffffffffffffffffff161461075a575f80fd5b5f61076430610792565b90505f8111156107785761077781611e8c565b5b5f4790505f81111561078e5761078d816120f7565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107e0611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108639061286a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61092e611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b19061286a565b60405180910390fd5b6009600a6109c89190612795565b6305f5e1006109d791906127df565b600e819055506009600a6109eb9190612795565b6305f5e1006109fa91906127df565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a2f9190612795565b6305f5e100610a3e91906127df565b604051610a4b91906124e0565b60405180910390a1565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600a81526020017f4d4554414c5949454c4400000000000000000000000000000000000000000000815250905090565b610acd611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b509061286a565b60405180910390fd5b8060155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f610baf610ba8611227565b84846113f1565b6001905092915050565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b60055f9054906101000a900460ff1681565b610bfe611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c819061286a565b60405180910390fd5b601360149054906101000a900460ff1615610cda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd1906128d2565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d763060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d629190612795565b6305f5e100610d7191906127df565b61122e565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610de0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e049190612904565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eae9190612904565b6040518363ffffffff1660e01b8152600401610ecb92919061292f565b6020604051808303815f875af1158015610ee7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f0b9190612904565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f9230610792565b5f80610f9c610a5b565b426040518863ffffffff1660e01b8152600401610fbe96959493929190612998565b60606040518083038185885af1158015610fda573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fff9190612a0b565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161109f929190612a5b565b6020604051808303815f875af11580156110bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110df9190612aac565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111db611227565b73ffffffffffffffffffffffffffffffffffffffff16146111fa575f80fd5b600854811115801561120e57506009548111155b611216575f80fd5b806008819055508060098190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361129c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129390612b47565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361130a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130190612bd5565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113e491906124e0565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361145f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145690612c63565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c490612cf1565b60405180910390fd5b5f811161150f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150690612d7f565b60405180910390fd5b5f611518610a5b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115865750611556610a5b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b17576115c760646115b9600a54600d54116115a6576006546115aa565b6008545b8561216090919063ffffffff16565b6121d790919063ffffffff16565b905060055f9054906101000a900460ff161561174f5760125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611687575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561174e574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541061170b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170290612e33565b60405180910390fd5b4360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117f8575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561184b575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561190557600e54821115611895576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188c90612e9b565b60405180910390fd5b600f54826118a285610792565b6118ac9190612eb9565b11156118ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e490612f36565b60405180910390fd5b600d5f8154809291906118ff90612f54565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561198d57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119d1576119ce60646119c0600b54600d54116119ad576007546119b1565b6009545b8561216090919063ffffffff16565b6121d790919063ffffffff16565b90505b5f6119db30610792565b9050601360159054906101000a900460ff16158015611a46575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a5e5750601360169054906101000a900460ff165b8015611a6b575060105481115b8015611a7a5750600c54600d54115b15611b1557601360179054906101000a900460ff1615611adf57436014541015611ada57611abb611ab684611ab184601154612220565b612220565b611e8c565b5f4790505f811115611ad157611ad0476120f7565b5b43601481905550505b611b14565b611afc611af784611af284601154612220565b612220565b611e8c565b5f4790505f811115611b1257611b11476120f7565b5b505b5b505b5f811115611c7957611b908160015f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461223890919063ffffffff16565b60015f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c7091906124e0565b60405180910390a35b611cc98260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461229590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d6c611d20828461229590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461223890919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e0f848661229590919063ffffffff16565b604051611e1c91906124e0565b60405180910390a350505050565b5f838311158290611e71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6891906123af565b60405180910390fd5b505f8385611e7f9190612f9b565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611ec357611ec2612fce565b5b604051908082528060200260200182016040528015611ef15781602001602082028036833780820191505090505b50905030815f81518110611f0857611f07612ffb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fac573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fd09190612904565b81600181518110611fe457611fe3612ffb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061204a3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461122e565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016120ac9594939291906130df565b5f604051808303815f87803b1580156120c3575f80fd5b505af11580156120d5573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561215c573d5f803e3d5ffd5b5050565b5f808303612170575f90506121d1565b5f828461217d91906127df565b905082848261218c9190613164565b146121cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c390613204565b60405180910390fd5b809150505b92915050565b5f61221883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122de565b905092915050565b5f81831161222e5782612230565b815b905092915050565b5f8082846122469190612eb9565b90508381101561228b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122829061326c565b60405180910390fd5b8091505092915050565b5f6122d683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e2a565b905092915050565b5f8083118290612324576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231b91906123af565b60405180910390fd5b505f83856123329190613164565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6123818261233f565b61238b8185612349565b935061239b818560208601612359565b6123a481612367565b840191505092915050565b5f6020820190508181035f8301526123c78184612377565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6123fc826123d3565b9050919050565b61240c816123f2565b8114612416575f80fd5b50565b5f8135905061242781612403565b92915050565b5f819050919050565b61243f8161242d565b8114612449575f80fd5b50565b5f8135905061245a81612436565b92915050565b5f8060408385031215612476576124756123cf565b5b5f61248385828601612419565b92505060206124948582860161244c565b9150509250929050565b5f8115159050919050565b6124b28161249e565b82525050565b5f6020820190506124cb5f8301846124a9565b92915050565b6124da8161242d565b82525050565b5f6020820190506124f35f8301846124d1565b92915050565b5f805f606084860312156125105761250f6123cf565b5b5f61251d86828701612419565b935050602061252e86828701612419565b925050604061253f8682870161244c565b9150509250925092565b5f60ff82169050919050565b61255e81612549565b82525050565b5f6020820190506125775f830184612555565b92915050565b5f60208284031215612592576125916123cf565b5b5f61259f84828501612419565b91505092915050565b6125b1816123f2565b82525050565b5f6020820190506125ca5f8301846125a8565b92915050565b5f80604083850312156125e6576125e56123cf565b5b5f6125f385828601612419565b925050602061260485828601612419565b9150509250929050565b5f60208284031215612623576126226123cf565b5b5f6126308482850161244c565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156126bb5780860481111561269757612696612639565b5b60018516156126a65780820291505b80810290506126b485612666565b945061267b565b94509492505050565b5f826126d3576001905061278e565b816126e0575f905061278e565b81600181146126f657600281146127005761272f565b600191505061278e565b60ff84111561271257612711612639565b5b8360020a91508482111561272957612728612639565b5b5061278e565b5060208310610133831016604e8410600b84101617156127645782820a90508381111561275f5761275e612639565b5b61278e565b6127718484846001612672565b9250905081840481111561278857612787612639565b5b81810290505b9392505050565b5f61279f8261242d565b91506127aa83612549565b92506127d77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846126c4565b905092915050565b5f6127e98261242d565b91506127f48361242d565b92508282026128028161242d565b9150828204841483151761281957612818612639565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612854602083612349565b915061285f82612820565b602082019050919050565b5f6020820190508181035f83015261288181612848565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6128bc601783612349565b91506128c782612888565b602082019050919050565b5f6020820190508181035f8301526128e9816128b0565b9050919050565b5f815190506128fe81612403565b92915050565b5f60208284031215612919576129186123cf565b5b5f612926848285016128f0565b91505092915050565b5f6040820190506129425f8301856125a8565b61294f60208301846125a8565b9392505050565b5f819050919050565b5f819050919050565b5f61298261297d61297884612956565b61295f565b61242d565b9050919050565b61299281612968565b82525050565b5f60c0820190506129ab5f8301896125a8565b6129b860208301886124d1565b6129c56040830187612989565b6129d26060830186612989565b6129df60808301856125a8565b6129ec60a08301846124d1565b979650505050505050565b5f81519050612a0581612436565b92915050565b5f805f60608486031215612a2257612a216123cf565b5b5f612a2f868287016129f7565b9350506020612a40868287016129f7565b9250506040612a51868287016129f7565b9150509250925092565b5f604082019050612a6e5f8301856125a8565b612a7b60208301846124d1565b9392505050565b612a8b8161249e565b8114612a95575f80fd5b50565b5f81519050612aa681612a82565b92915050565b5f60208284031215612ac157612ac06123cf565b5b5f612ace84828501612a98565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612b31602483612349565b9150612b3c82612ad7565b604082019050919050565b5f6020820190508181035f830152612b5e81612b25565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612bbf602283612349565b9150612bca82612b65565b604082019050919050565b5f6020820190508181035f830152612bec81612bb3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612c4d602583612349565b9150612c5882612bf3565b604082019050919050565b5f6020820190508181035f830152612c7a81612c41565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612cdb602383612349565b9150612ce682612c81565b604082019050919050565b5f6020820190508181035f830152612d0881612ccf565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612d69602983612349565b9150612d7482612d0f565b604082019050919050565b5f6020820190508181035f830152612d9681612d5d565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f612e1d604983612349565b9150612e2882612d9d565b606082019050919050565b5f6020820190508181035f830152612e4a81612e11565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612e85601983612349565b9150612e9082612e51565b602082019050919050565b5f6020820190508181035f830152612eb281612e79565b9050919050565b5f612ec38261242d565b9150612ece8361242d565b9250828201905080821115612ee657612ee5612639565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612f20601a83612349565b9150612f2b82612eec565b602082019050919050565b5f6020820190508181035f830152612f4d81612f14565b9050919050565b5f612f5e8261242d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f9057612f8f612639565b5b600182019050919050565b5f612fa58261242d565b9150612fb08361242d565b9250828203905081811115612fc857612fc7612639565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61305a816123f2565b82525050565b5f61306b8383613051565b60208301905092915050565b5f602082019050919050565b5f61308d82613028565b6130978185613032565b93506130a283613042565b805f5b838110156130d25781516130b98882613060565b97506130c483613077565b9250506001810190506130a5565b5085935050505092915050565b5f60a0820190506130f25f8301886124d1565b6130ff6020830187612989565b81810360408301526131118186613083565b905061312060608301856125a8565b61312d60808301846124d1565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61316e8261242d565b91506131798361242d565b92508261318957613188613137565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6131ee602183612349565b91506131f982613194565b604082019050919050565b5f6020820190508181035f83015261321b816131e2565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613256601b83612349565b915061326182613222565b602082019050919050565b5f6020820190508181035f8301526132838161324a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122010068fe4cdf8f6362a36d925c12e07834edf045f9edb84d507cc14bd02d34a7d64736f6c634300081a0033
Deployed Bytecode Sourcemap
3819:9130:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5879:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6712:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4995:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6156:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6881:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11382:160;;;;;;;;;;;;;:::i;:::-;;6065:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12598:348;;;;;;;;;;;;;:::i;:::-;;6259:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2900:148;;;;;;;;;;;;;:::i;:::-;;11096:160;;;;;;;;;;;;;:::i;:::-;;4810:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2686:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4870:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5970:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11264:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6386:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5327:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4932:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4166:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11650:671;;;;;;;;;;;;;:::i;:::-;;6561:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12335:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5879:83;5916:13;5949:5;;;;;;;;;;;;;;;;;5942:12;;5879:83;:::o;6712:161::-;6787:4;6804:39;6813:12;:10;:12::i;:::-;6827:7;6836:6;6804:8;:39::i;:::-;6861:4;6854:11;;6712:161;;;;:::o;4995:52::-;;;;:::o;6156:95::-;6209:7;4617:1;4672:2;:13;;;;:::i;:::-;4660:9;:25;;;;:::i;:::-;6229:14;;6156:95;:::o;6881:313::-;6979:4;6996:36;7006:6;7014:9;7025:6;6996:9;:36::i;:::-;7043:121;7052:6;7060:12;:10;:12::i;:::-;7074:89;7112:6;7074:89;;;;;;;;;;;;;;;;;:11;:19;7086:6;7074:19;;;;;;;;;;;;;;;:33;7094:12;:10;:12::i;:::-;7074:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7043:8;:121::i;:::-;7182:4;7175:11;;6881:313;;;;;:::o;11382:160::-;11454:10;;;;;;;;;;;11440:24;;:12;:10;:12::i;:::-;:24;;;11432:33;;;;;;11499:5;11476:20;;:28;;;;;;;;;;;;;;;;;;11529:5;11515:11;;:19;;;;;;;;;;;;;;;;;;11382:160::o;6065:83::-;6106:5;4617:1;6124:16;;6065:83;:::o;12598:348::-;12662:10;;;;;;;;;;;12648:24;;:12;:10;:12::i;:::-;:24;;;12640:33;;;;;;12684:20;12705:24;12723:4;12705:9;:24::i;:::-;12684:45;;12756:1;12743:12;:14;12740:73;;;12771:30;12788:12;12771:16;:30::i;:::-;12740:73;12823:18;12842:21;12823:40;;12888:1;12877:10;:12;12874:65;;;12903:24;12916:10;12903:12;:24::i;:::-;12874:65;12629:317;;12598:348::o;6259:119::-;6325:7;6352:9;:18;6362:7;6352:18;;;;;;;;;;;;;;;;6345:25;;6259:119;;;:::o;2900:148::-;2823:12;:10;:12::i;:::-;2813:22;;:6;;;;;;;;;;:22;;;2805:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3007:1:::1;2970:40;;2991:6;::::0;::::1;;;;;;;;2970:40;;;;;;;;;;;;3038:1;3021:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2900:148::o:0;11096:160::-;2823:12;:10;:12::i;:::-;2813:22;;:6;;;;;;;;;;:22;;;2805:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4617:1:::1;4672:2;:13;;;;:::i;:::-;4660:9;:25;;;;:::i;:::-;11150:12;:22;;;;4617:1;4672:2;:13;;;;:::i;:::-;4660:9;:25;;;;:::i;:::-;11183:14;:22;;;;11221:27;4617:1;4672:2;:13;;;;:::i;:::-;4660:9;:25;;;;:::i;:::-;11221:27;;;;;;:::i;:::-;;;;;;;;11096:160::o:0;4810:53::-;;;;:::o;2686:79::-;2724:7;2751:6;;;;;;;;;;;2744:13;;2686:79;:::o;4870:55::-;;;;:::o;5970:87::-;6009:13;6042:7;;;;;;;;;;;;;;;;;6035:14;;5970:87;:::o;11264:110::-;2823:12;:10;:12::i;:::-;2813:22;;:6;;;;;;;;;;:22;;;2805:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11353:13:::1;11340:10;;:26;;;;;;;;;;;;;;;;;;11264:110:::0;:::o;6386:167::-;6464:4;6481:42;6491:12;:10;:12::i;:::-;6505:9;6516:6;6481:9;:42::i;:::-;6541:4;6534:11;;6386:167;;;;:::o;5327:70::-;;;;;;;;;;;;;:::o;4932:56::-;;;;:::o;4166:39::-;;;;;;;;;;;;;:::o;11650:671::-;2823:12;:10;:12::i;:::-;2813:22;;:6;;;;;;;;;;:22;;;2805:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11714:11:::1;;;;;;;;;;;11713:12;11705:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11800:42;11763:15;;:80;;;;;;;;;;;;;;;;;;11854:58;11871:4;11886:15;;;;;;;;;;;4617:1;4672:2;:13;;;;:::i;:::-;4660:9;:25;;;;:::i;:::-;11854:8;:58::i;:::-;11957:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11939:55;;;12003:4;12010:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11939:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11923:13;;:110;;;;;;;;;;;;;;;;;;12044:15;;;;;;;;;;;:31;;;12083:21;12114:4;12120:24;12138:4;12120:9;:24::i;:::-;12145:1;12147::::0;12149:7:::1;:5;:7::i;:::-;12157:15;12044:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12191:13;;;;;;;;;;;12184:29;;;12222:15;;;;;;;;;;;12240:14;12184:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12280:4;12266:11;;:18;;;;;;;;;;;;;;;;;;12309:4;12295:11;;:18;;;;;;;;;;;;;;;;;;11650:671::o:0;6561:143::-;6642:7;6669:11;:18;6681:5;6669:18;;;;;;;;;;;;;;;:27;6688:7;6669:27;;;;;;;;;;;;;;;;6662:34;;6561:143;;;;:::o;12335:218::-;12410:10;;;;;;;;;;;12396:24;;:12;:10;:12::i;:::-;:24;;;12388:33;;;;;;12447:12;;12438:7;:21;;:47;;;;;12472:13;;12463:7;:22;;12438:47;12430:56;;;;;;12508:7;12495:12;:20;;;;12538:7;12524:13;:21;;;;12335:218;:::o;443:98::-;496:7;523:10;516:17;;443:98;:::o;7202:335::-;7312:1;7295:19;;:5;:19;;;7287:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7393:1;7374:21;;:7;:21;;;7366:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7475:6;7445:11;:18;7457:5;7445:18;;;;;;;;;;;;;;;:27;7464:7;7445:27;;;;;;;;;;;;;;;:36;;;;7513:7;7497:32;;7506:5;7497:32;;;7522:6;7497:32;;;;;;:::i;:::-;;;;;;;;7202:335;;;:::o;7545:2944::-;7649:1;7633:18;;:4;:18;;;7625:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7726:1;7712:16;;:2;:16;;;7704:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7796:1;7787:6;:10;7779:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7854:17;7896:7;:5;:7::i;:::-;7888:15;;:4;:15;;;;:32;;;;;7913:7;:5;:7::i;:::-;7907:13;;:2;:13;;;;7888:32;7884:2257;;;7949:76;8021:3;7949:67;7971:15;;7961:9;;:25;7960:55;;8001:14;;7960:55;;;7988:12;;7960:55;7949:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7937:88;;8046:20;;;;;;;;;;;8042:508;;;8107:15;;;;;;;;;;;8093:30;;:2;:30;;;;:62;;;;;8141:13;;;;;;;;;;;8127:28;;:2;:28;;;;8093:62;8089:444;;;8291:12;8218:28;:39;8247:9;8218:39;;;;;;;;;;;;;;;;:85;8182:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;8499:12;8457:28;:39;8486:9;8457:39;;;;;;;;;;;;;;;:54;;;;8089:444;8042:508;8578:13;;;;;;;;;;;8570:21;;:4;:21;;;:55;;;;;8609:15;;;;;;;;;;;8595:30;;:2;:30;;;;8570:55;:83;;;;;8631:18;:22;8650:2;8631:22;;;;;;;;;;;;;;;;;;;;;;;;;8629:24;8570:83;8566:313;;;8693:12;;8683:6;:22;;8675:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8788:14;;8778:6;8762:13;8772:2;8762:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8754:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8852:9;;:11;;;;;;;;;:::i;:::-;;;;;;8566:313;8904:13;;;;;;;;;;;8898:19;;:2;:19;;;:43;;;;;8936:4;8921:20;;:4;:20;;;;8898:43;8895:174;;;8974:79;9049:3;8974:70;8996:16;;8986:9;;:26;8985:58;;9028:15;;8985:58;;;9014:13;;8985:58;8974:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8962:91;;8895:174;9085:28;9116:24;9134:4;9116:9;:24::i;:::-;9085:55;;9160:6;;;;;;;;;;;9159:7;:32;;;;;9178:13;;;;;;;;;;;9170:21;;:2;:21;;;9159:32;:47;;;;;9195:11;;;;;;;;;;;9159:47;:89;;;;;9231:17;;9210:20;:38;9159:89;:121;;;;;9262:18;;9252:9;;:28;9159:121;9155:975;;;9305:11;;;;;;;;;;;9301:814;;;9361:12;9345:13;;:28;9341:431;;;9402:67;9419:49;9423:6;9430:37;9434:20;9455:11;;9430:3;:37::i;:::-;9419:3;:49::i;:::-;9402:16;:67::i;:::-;9496:26;9525:21;9496:50;;9597:1;9576:18;:22;9573:121;;;9631:35;9644:21;9631:12;:35::i;:::-;9573:121;9736:12;9720:13;:28;;;;9375:397;9341:431;9301:814;;;9820:67;9837:49;9841:6;9848:37;9852:20;9873:11;;9848:3;:37::i;:::-;9837:3;:49::i;:::-;9820:16;:67::i;:::-;9910:26;9939:21;9910:50;;10007:1;9986:18;:22;9983:113;;;10037:35;10050:21;10037:12;:35::i;:::-;9983:113;9797:318;9301:814;9155:975;7922:2219;7884:2257;10166:1;10156:9;:11;10153:153;;;10203:36;10229:9;10203;:21;10213:10;;;;;;;;;;;10203:21;;;;;;;;;;;;;;;;:25;;:36;;;;:::i;:::-;10181:9;:21;10191:10;;;;;;;;;;;10181:21;;;;;;;;;;;;;;;:58;;;;10272:10;;;;;;;;;;;10257:37;;10266:4;10257:37;;;10284:9;10257:37;;;;;;:::i;:::-;;;;;;;;10153:153;10332:27;10352:6;10332:9;:15;10342:4;10332:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10316:9;:15;10326:4;10316:15;;;;;;;;;;;;;;;:43;;;;10384:40;10402:21;10413:9;10402:6;:10;;:21;;;;:::i;:::-;10384:9;:13;10394:2;10384:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10370:9;:13;10380:2;10370:13;;;;;;;;;;;;;;;:54;;;;10455:2;10440:41;;10449:4;10440:41;;;10459:21;10470:9;10459:6;:10;;:21;;;;:::i;:::-;10440:41;;;;;;:::i;:::-;;;;;;;;7614:2875;7545:2944;;;:::o;1580:190::-;1666:7;1699:1;1694;:6;;1702:12;1686:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1726:9;1742:1;1738;:5;;;;:::i;:::-;1726:17;;1761:1;1754:8;;;1580:190;;;;;:::o;10605:483::-;5497:4;5488:6;;:13;;;;;;;;;;;;;;;;;;10683:21:::1;10721:1;10707:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10683:40;;10752:4;10734;10739:1;10734:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10778:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10768:4;10773:1;10768:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10811:62;10828:4;10843:15;;;;;;;;;;;10861:11;10811:8;:62::i;:::-;10884:15;;;;;;;;;;;:66;;;10965:11;10991:1;11007:4;11034;11054:15;10884:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10672:416;5533:5:::0;5524:6;;:14;;;;;;;;;;;;;;;;;;10605:483;:::o;11550:92::-;11607:10;;;;;;;;;;;:19;;:27;11627:6;11607:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11550:92;:::o;1778:246::-;1836:7;1865:1;1860;:6;1856:47;;1890:1;1883:8;;;;1856:47;1913:9;1929:1;1925;:5;;;;:::i;:::-;1913:17;;1958:1;1953;1949;:5;;;;:::i;:::-;:10;1941:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2015:1;2008:8;;;1778:246;;;;;:::o;2032:132::-;2090:7;2117:39;2121:1;2124;2117:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2110:46;;2032:132;;;;:::o;10499:98::-;10556:7;10583:1;10581;:3;10580:9;;10588:1;10580:9;;;10586:1;10580:9;10573:16;;10499:98;;;;:::o;1249:179::-;1307:7;1327:9;1343:1;1339;:5;;;;:::i;:::-;1327:17;;1368:1;1363;:6;;1355:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1419:1;1412:8;;;1249:179;;;;:::o;1436:136::-;1494:7;1521:43;1525:1;1528;1521:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1514:50;;1436:136;;;;:::o;2172:189::-;2258:7;2290:1;2286;:5;2293:12;2278:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2317:9;2333:1;2329;:5;;;;:::i;:::-;2317:17;;2352:1;2345:8;;;2172:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:118::-;5168:24;5186:5;5168:24;:::i;:::-;5163:3;5156:37;5081:118;;:::o;5205:222::-;5298:4;5336:2;5325:9;5321:18;5313:26;;5349:71;5417:1;5406:9;5402:17;5393:6;5349:71;:::i;:::-;5205:222;;;;:::o;5433:474::-;5501:6;5509;5558:2;5546:9;5537:7;5533:23;5529:32;5526:119;;;5564:79;;:::i;:::-;5526:119;5684:1;5709:53;5754:7;5745:6;5734:9;5730:22;5709:53;:::i;:::-;5699:63;;5655:117;5811:2;5837:53;5882:7;5873:6;5862:9;5858:22;5837:53;:::i;:::-;5827:63;;5782:118;5433:474;;;;;:::o;5913:329::-;5972:6;6021:2;6009:9;6000:7;5996:23;5992:32;5989:119;;;6027:79;;:::i;:::-;5989:119;6147:1;6172:53;6217:7;6208:6;6197:9;6193:22;6172:53;:::i;:::-;6162:63;;6118:117;5913:329;;;;:::o;6248:180::-;6296:77;6293:1;6286:88;6393:4;6390:1;6383:15;6417:4;6414:1;6407:15;6434:102;6476:8;6523:5;6520:1;6516:13;6495:34;;6434:102;;;:::o;6542:848::-;6603:5;6610:4;6634:6;6625:15;;6658:5;6649:14;;6672:712;6693:1;6683:8;6680:15;6672:712;;;6788:4;6783:3;6779:14;6773:4;6770:24;6767:50;;;6797:18;;:::i;:::-;6767:50;6847:1;6837:8;6833:16;6830:451;;;7262:4;7255:5;7251:16;7242:25;;6830:451;7312:4;7306;7302:15;7294:23;;7342:32;7365:8;7342:32;:::i;:::-;7330:44;;6672:712;;;6542:848;;;;;;;:::o;7396:1073::-;7450:5;7641:8;7631:40;;7662:1;7653:10;;7664:5;;7631:40;7690:4;7680:36;;7707:1;7698:10;;7709:5;;7680:36;7776:4;7824:1;7819:27;;;;7860:1;7855:191;;;;7769:277;;7819:27;7837:1;7828:10;;7839:5;;;7855:191;7900:3;7890:8;7887:17;7884:43;;;7907:18;;:::i;:::-;7884:43;7956:8;7953:1;7949:16;7940:25;;7991:3;7984:5;7981:14;7978:40;;;7998:18;;:::i;:::-;7978:40;8031:5;;;7769:277;;8155:2;8145:8;8142:16;8136:3;8130:4;8127:13;8123:36;8105:2;8095:8;8092:16;8087:2;8081:4;8078:12;8074:35;8058:111;8055:246;;;8211:8;8205:4;8201:19;8192:28;;8246:3;8239:5;8236:14;8233:40;;;8253:18;;:::i;:::-;8233:40;8286:5;;8055:246;8326:42;8364:3;8354:8;8348:4;8345:1;8326:42;:::i;:::-;8311:57;;;;8400:4;8395:3;8391:14;8384:5;8381:25;8378:51;;;8409:18;;:::i;:::-;8378:51;8458:4;8451:5;8447:16;8438:25;;7396:1073;;;;;;:::o;8475:281::-;8533:5;8557:23;8575:4;8557:23;:::i;:::-;8549:31;;8601:25;8617:8;8601:25;:::i;:::-;8589:37;;8645:104;8682:66;8672:8;8666:4;8645:104;:::i;:::-;8636:113;;8475:281;;;;:::o;8762:410::-;8802:7;8825:20;8843:1;8825:20;:::i;:::-;8820:25;;8859:20;8877:1;8859:20;:::i;:::-;8854:25;;8914:1;8911;8907:9;8936:30;8954:11;8936:30;:::i;:::-;8925:41;;9115:1;9106:7;9102:15;9099:1;9096:22;9076:1;9069:9;9049:83;9026:139;;9145:18;;:::i;:::-;9026:139;8810:362;8762:410;;;;:::o;9178:182::-;9318:34;9314:1;9306:6;9302:14;9295:58;9178:182;:::o;9366:366::-;9508:3;9529:67;9593:2;9588:3;9529:67;:::i;:::-;9522:74;;9605:93;9694:3;9605:93;:::i;:::-;9723:2;9718:3;9714:12;9707:19;;9366:366;;;:::o;9738:419::-;9904:4;9942:2;9931:9;9927:18;9919:26;;9991:9;9985:4;9981:20;9977:1;9966:9;9962:17;9955:47;10019:131;10145:4;10019:131;:::i;:::-;10011:139;;9738:419;;;:::o;10163:173::-;10303:25;10299:1;10291:6;10287:14;10280:49;10163:173;:::o;10342:366::-;10484:3;10505:67;10569:2;10564:3;10505:67;:::i;:::-;10498:74;;10581:93;10670:3;10581:93;:::i;:::-;10699:2;10694:3;10690:12;10683:19;;10342:366;;;:::o;10714:419::-;10880:4;10918:2;10907:9;10903:18;10895:26;;10967:9;10961:4;10957:20;10953:1;10942:9;10938:17;10931:47;10995:131;11121:4;10995:131;:::i;:::-;10987:139;;10714:419;;;:::o;11139:143::-;11196:5;11227:6;11221:13;11212:22;;11243:33;11270:5;11243:33;:::i;:::-;11139:143;;;;:::o;11288:351::-;11358:6;11407:2;11395:9;11386:7;11382:23;11378:32;11375:119;;;11413:79;;:::i;:::-;11375:119;11533:1;11558:64;11614:7;11605:6;11594:9;11590:22;11558:64;:::i;:::-;11548:74;;11504:128;11288:351;;;;:::o;11645:332::-;11766:4;11804:2;11793:9;11789:18;11781:26;;11817:71;11885:1;11874:9;11870:17;11861:6;11817:71;:::i;:::-;11898:72;11966:2;11955:9;11951:18;11942:6;11898:72;:::i;:::-;11645:332;;;;;:::o;11983:85::-;12028:7;12057:5;12046:16;;11983:85;;;:::o;12074:60::-;12102:3;12123:5;12116:12;;12074:60;;;:::o;12140:158::-;12198:9;12231:61;12249:42;12258:32;12284:5;12258:32;:::i;:::-;12249:42;:::i;:::-;12231:61;:::i;:::-;12218:74;;12140:158;;;:::o;12304:147::-;12399:45;12438:5;12399:45;:::i;:::-;12394:3;12387:58;12304:147;;:::o;12457:807::-;12706:4;12744:3;12733:9;12729:19;12721:27;;12758:71;12826:1;12815:9;12811:17;12802:6;12758:71;:::i;:::-;12839:72;12907:2;12896:9;12892:18;12883:6;12839:72;:::i;:::-;12921:80;12997:2;12986:9;12982:18;12973:6;12921:80;:::i;:::-;13011;13087:2;13076:9;13072:18;13063:6;13011:80;:::i;:::-;13101:73;13169:3;13158:9;13154:19;13145:6;13101:73;:::i;:::-;13184;13252:3;13241:9;13237:19;13228:6;13184:73;:::i;:::-;12457:807;;;;;;;;;:::o;13270:143::-;13327:5;13358:6;13352:13;13343:22;;13374:33;13401:5;13374:33;:::i;:::-;13270:143;;;;:::o;13419:663::-;13507:6;13515;13523;13572:2;13560:9;13551:7;13547:23;13543:32;13540:119;;;13578:79;;:::i;:::-;13540:119;13698:1;13723:64;13779:7;13770:6;13759:9;13755:22;13723:64;:::i;:::-;13713:74;;13669:128;13836:2;13862:64;13918:7;13909:6;13898:9;13894:22;13862:64;:::i;:::-;13852:74;;13807:129;13975:2;14001:64;14057:7;14048:6;14037:9;14033:22;14001:64;:::i;:::-;13991:74;;13946:129;13419:663;;;;;:::o;14088:332::-;14209:4;14247:2;14236:9;14232:18;14224:26;;14260:71;14328:1;14317:9;14313:17;14304:6;14260:71;:::i;:::-;14341:72;14409:2;14398:9;14394:18;14385:6;14341:72;:::i;:::-;14088:332;;;;;:::o;14426:116::-;14496:21;14511:5;14496:21;:::i;:::-;14489:5;14486:32;14476:60;;14532:1;14529;14522:12;14476:60;14426:116;:::o;14548:137::-;14602:5;14633:6;14627:13;14618:22;;14649:30;14673:5;14649:30;:::i;:::-;14548:137;;;;:::o;14691:345::-;14758:6;14807:2;14795:9;14786:7;14782:23;14778:32;14775:119;;;14813:79;;:::i;:::-;14775:119;14933:1;14958:61;15011:7;15002:6;14991:9;14987:22;14958:61;:::i;:::-;14948:71;;14904:125;14691:345;;;;:::o;15042:223::-;15182:34;15178:1;15170:6;15166:14;15159:58;15251:6;15246:2;15238:6;15234:15;15227:31;15042:223;:::o;15271:366::-;15413:3;15434:67;15498:2;15493:3;15434:67;:::i;:::-;15427:74;;15510:93;15599:3;15510:93;:::i;:::-;15628:2;15623:3;15619:12;15612:19;;15271:366;;;:::o;15643:419::-;15809:4;15847:2;15836:9;15832:18;15824:26;;15896:9;15890:4;15886:20;15882:1;15871:9;15867:17;15860:47;15924:131;16050:4;15924:131;:::i;:::-;15916:139;;15643:419;;;:::o;16068:221::-;16208:34;16204:1;16196:6;16192:14;16185:58;16277:4;16272:2;16264:6;16260:15;16253:29;16068:221;:::o;16295:366::-;16437:3;16458:67;16522:2;16517:3;16458:67;:::i;:::-;16451:74;;16534:93;16623:3;16534:93;:::i;:::-;16652:2;16647:3;16643:12;16636:19;;16295:366;;;:::o;16667:419::-;16833:4;16871:2;16860:9;16856:18;16848:26;;16920:9;16914:4;16910:20;16906:1;16895:9;16891:17;16884:47;16948:131;17074:4;16948:131;:::i;:::-;16940:139;;16667:419;;;:::o;17092:224::-;17232:34;17228:1;17220:6;17216:14;17209:58;17301:7;17296:2;17288:6;17284:15;17277:32;17092:224;:::o;17322:366::-;17464:3;17485:67;17549:2;17544:3;17485:67;:::i;:::-;17478:74;;17561:93;17650:3;17561:93;:::i;:::-;17679:2;17674:3;17670:12;17663:19;;17322:366;;;:::o;17694:419::-;17860:4;17898:2;17887:9;17883:18;17875:26;;17947:9;17941:4;17937:20;17933:1;17922:9;17918:17;17911:47;17975:131;18101:4;17975:131;:::i;:::-;17967:139;;17694:419;;;:::o;18119:222::-;18259:34;18255:1;18247:6;18243:14;18236:58;18328:5;18323:2;18315:6;18311:15;18304:30;18119:222;:::o;18347:366::-;18489:3;18510:67;18574:2;18569:3;18510:67;:::i;:::-;18503:74;;18586:93;18675:3;18586:93;:::i;:::-;18704:2;18699:3;18695:12;18688:19;;18347:366;;;:::o;18719:419::-;18885:4;18923:2;18912:9;18908:18;18900:26;;18972:9;18966:4;18962:20;18958:1;18947:9;18943:17;18936:47;19000:131;19126:4;19000:131;:::i;:::-;18992:139;;18719:419;;;:::o;19144:228::-;19284:34;19280:1;19272:6;19268:14;19261:58;19353:11;19348:2;19340:6;19336:15;19329:36;19144:228;:::o;19378:366::-;19520:3;19541:67;19605:2;19600:3;19541:67;:::i;:::-;19534:74;;19617:93;19706:3;19617:93;:::i;:::-;19735:2;19730:3;19726:12;19719:19;;19378:366;;;:::o;19750:419::-;19916:4;19954:2;19943:9;19939:18;19931:26;;20003:9;19997:4;19993:20;19989:1;19978:9;19974:17;19967:47;20031:131;20157:4;20031:131;:::i;:::-;20023:139;;19750:419;;;:::o;20175:297::-;20315:34;20311:1;20303:6;20299:14;20292:58;20384:34;20379:2;20371:6;20367:15;20360:59;20453:11;20448:2;20440:6;20436:15;20429:36;20175:297;:::o;20478:366::-;20620:3;20641:67;20705:2;20700:3;20641:67;:::i;:::-;20634:74;;20717:93;20806:3;20717:93;:::i;:::-;20835:2;20830:3;20826:12;20819:19;;20478:366;;;:::o;20850:419::-;21016:4;21054:2;21043:9;21039:18;21031:26;;21103:9;21097:4;21093:20;21089:1;21078:9;21074:17;21067:47;21131:131;21257:4;21131:131;:::i;:::-;21123:139;;20850:419;;;:::o;21275:175::-;21415:27;21411:1;21403:6;21399:14;21392:51;21275:175;:::o;21456:366::-;21598:3;21619:67;21683:2;21678:3;21619:67;:::i;:::-;21612:74;;21695:93;21784:3;21695:93;:::i;:::-;21813:2;21808:3;21804:12;21797:19;;21456:366;;;:::o;21828:419::-;21994:4;22032:2;22021:9;22017:18;22009:26;;22081:9;22075:4;22071:20;22067:1;22056:9;22052:17;22045:47;22109:131;22235:4;22109:131;:::i;:::-;22101:139;;21828:419;;;:::o;22253:191::-;22293:3;22312:20;22330:1;22312:20;:::i;:::-;22307:25;;22346:20;22364:1;22346:20;:::i;:::-;22341:25;;22389:1;22386;22382:9;22375:16;;22410:3;22407:1;22404:10;22401:36;;;22417:18;;:::i;:::-;22401:36;22253:191;;;;:::o;22450:176::-;22590:28;22586:1;22578:6;22574:14;22567:52;22450:176;:::o;22632:366::-;22774:3;22795:67;22859:2;22854:3;22795:67;:::i;:::-;22788:74;;22871:93;22960:3;22871:93;:::i;:::-;22989:2;22984:3;22980:12;22973:19;;22632:366;;;:::o;23004:419::-;23170:4;23208:2;23197:9;23193:18;23185:26;;23257:9;23251:4;23247:20;23243:1;23232:9;23228:17;23221:47;23285:131;23411:4;23285:131;:::i;:::-;23277:139;;23004:419;;;:::o;23429:233::-;23468:3;23491:24;23509:5;23491:24;:::i;:::-;23482:33;;23537:66;23530:5;23527:77;23524:103;;23607:18;;:::i;:::-;23524:103;23654:1;23647:5;23643:13;23636:20;;23429:233;;;:::o;23668:194::-;23708:4;23728:20;23746:1;23728:20;:::i;:::-;23723:25;;23762:20;23780:1;23762:20;:::i;:::-;23757:25;;23806:1;23803;23799:9;23791:17;;23830:1;23824:4;23821:11;23818:37;;;23835:18;;:::i;:::-;23818:37;23668:194;;;;:::o;23868:180::-;23916:77;23913:1;23906:88;24013:4;24010:1;24003:15;24037:4;24034:1;24027:15;24054:180;24102:77;24099:1;24092:88;24199:4;24196:1;24189:15;24223:4;24220:1;24213:15;24240:114;24307:6;24341:5;24335:12;24325:22;;24240:114;;;:::o;24360:184::-;24459:11;24493:6;24488:3;24481:19;24533:4;24528:3;24524:14;24509:29;;24360:184;;;;:::o;24550:132::-;24617:4;24640:3;24632:11;;24670:4;24665:3;24661:14;24653:22;;24550:132;;;:::o;24688:108::-;24765:24;24783:5;24765:24;:::i;:::-;24760:3;24753:37;24688:108;;:::o;24802:179::-;24871:10;24892:46;24934:3;24926:6;24892:46;:::i;:::-;24970:4;24965:3;24961:14;24947:28;;24802:179;;;;:::o;24987:113::-;25057:4;25089;25084:3;25080:14;25072:22;;24987:113;;;:::o;25136:732::-;25255:3;25284:54;25332:5;25284:54;:::i;:::-;25354:86;25433:6;25428:3;25354:86;:::i;:::-;25347:93;;25464:56;25514:5;25464:56;:::i;:::-;25543:7;25574:1;25559:284;25584:6;25581:1;25578:13;25559:284;;;25660:6;25654:13;25687:63;25746:3;25731:13;25687:63;:::i;:::-;25680:70;;25773:60;25826:6;25773:60;:::i;:::-;25763:70;;25619:224;25606:1;25603;25599:9;25594:14;;25559:284;;;25563:14;25859:3;25852:10;;25260:608;;;25136:732;;;;:::o;25874:831::-;26137:4;26175:3;26164:9;26160:19;26152:27;;26189:71;26257:1;26246:9;26242:17;26233:6;26189:71;:::i;:::-;26270:80;26346:2;26335:9;26331:18;26322:6;26270:80;:::i;:::-;26397:9;26391:4;26387:20;26382:2;26371:9;26367:18;26360:48;26425:108;26528:4;26519:6;26425:108;:::i;:::-;26417:116;;26543:72;26611:2;26600:9;26596:18;26587:6;26543:72;:::i;:::-;26625:73;26693:3;26682:9;26678:19;26669:6;26625:73;:::i;:::-;25874:831;;;;;;;;:::o;26711:180::-;26759:77;26756:1;26749:88;26856:4;26853:1;26846:15;26880:4;26877:1;26870:15;26897:185;26937:1;26954:20;26972:1;26954:20;:::i;:::-;26949:25;;26988:20;27006:1;26988:20;:::i;:::-;26983:25;;27027:1;27017:35;;27032:18;;:::i;:::-;27017:35;27074:1;27071;27067:9;27062:14;;26897:185;;;;:::o;27088:220::-;27228:34;27224:1;27216:6;27212:14;27205:58;27297:3;27292:2;27284:6;27280:15;27273:28;27088:220;:::o;27314:366::-;27456:3;27477:67;27541:2;27536:3;27477:67;:::i;:::-;27470:74;;27553:93;27642:3;27553:93;:::i;:::-;27671:2;27666:3;27662:12;27655:19;;27314:366;;;:::o;27686:419::-;27852:4;27890:2;27879:9;27875:18;27867:26;;27939:9;27933:4;27929:20;27925:1;27914:9;27910:17;27903:47;27967:131;28093:4;27967:131;:::i;:::-;27959:139;;27686:419;;;:::o;28111:177::-;28251:29;28247:1;28239:6;28235:14;28228:53;28111:177;:::o;28294:366::-;28436:3;28457:67;28521:2;28516:3;28457:67;:::i;:::-;28450:74;;28533:93;28622:3;28533:93;:::i;:::-;28651:2;28646:3;28642:12;28635:19;;28294:366;;;:::o;28666:419::-;28832:4;28870:2;28859:9;28855:18;28847:26;;28919:9;28913:4;28909:20;28905:1;28894:9;28890:17;28883:47;28947:131;29073:4;28947:131;:::i;:::-;28939:139;;28666:419;;;:::o
Swarm Source
ipfs://10068fe4cdf8f6362a36d925c12e07834edf045f9edb84d507cc14bd02d34a7d
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.