More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 226 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 19329807 | 269 days ago | IN | 0 ETH | 0.00233518 | ||||
Approve | 18468328 | 389 days ago | IN | 0 ETH | 0.00041617 | ||||
Approve | 18218558 | 424 days ago | IN | 0 ETH | 0.00034879 | ||||
Approve | 18118952 | 438 days ago | IN | 0 ETH | 0.00046859 | ||||
Approve | 18088309 | 443 days ago | IN | 0 ETH | 0.0005294 | ||||
Approve | 18072020 | 445 days ago | IN | 0 ETH | 0.00126972 | ||||
Approve | 18063554 | 446 days ago | IN | 0 ETH | 0.00093517 | ||||
Approve | 18063066 | 446 days ago | IN | 0 ETH | 0.0004962 | ||||
Approve | 18062578 | 446 days ago | IN | 0 ETH | 0.00062262 | ||||
Approve | 18061616 | 446 days ago | IN | 0 ETH | 0.00057745 | ||||
Approve | 18057120 | 447 days ago | IN | 0 ETH | 0.00062486 | ||||
Transfer | 18056728 | 447 days ago | IN | 0 ETH | 0.00127875 | ||||
Transfer | 18056602 | 447 days ago | IN | 0 ETH | 0.00129627 | ||||
Transfer | 18056535 | 447 days ago | IN | 0 ETH | 0.00161615 | ||||
Approve | 18056463 | 447 days ago | IN | 0 ETH | 0.00080445 | ||||
Approve | 18056300 | 447 days ago | IN | 0 ETH | 0.00049809 | ||||
Approve | 18056138 | 447 days ago | IN | 0 ETH | 0.00062984 | ||||
Approve | 18055950 | 447 days ago | IN | 0 ETH | 0.00050113 | ||||
Approve | 18055771 | 447 days ago | IN | 0 ETH | 0.00046746 | ||||
Approve | 18054482 | 447 days ago | IN | 0 ETH | 0.00050474 | ||||
Approve | 18052149 | 448 days ago | IN | 0 ETH | 0.00043406 | ||||
Approve | 18052042 | 448 days ago | IN | 0 ETH | 0.00050345 | ||||
Approve | 18051753 | 448 days ago | IN | 0 ETH | 0.00047205 | ||||
Approve | 18051610 | 448 days ago | IN | 0 ETH | 0.00047332 | ||||
Approve | 18051524 | 448 days ago | IN | 0 ETH | 0.0005009 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
18051783 | 448 days ago | 0.10284669 ETH | ||||
18051783 | 448 days ago | 0.10284669 ETH | ||||
18050347 | 448 days ago | 0.12094273 ETH | ||||
18050347 | 448 days ago | 0.12094273 ETH | ||||
18049929 | 448 days ago | 0.17116621 ETH | ||||
18049929 | 448 days ago | 0.17116621 ETH | ||||
18049809 | 448 days ago | 0.23098855 ETH | ||||
18049809 | 448 days ago | 0.23098855 ETH | ||||
18049737 | 448 days ago | 0.21834273 ETH | ||||
18049737 | 448 days ago | 0.21834273 ETH | ||||
18049710 | 448 days ago | 0.17987565 ETH | ||||
18049710 | 448 days ago | 0.17987565 ETH | ||||
18049647 | 448 days ago | 0.23714368 ETH | ||||
18049647 | 448 days ago | 0.23714368 ETH | ||||
18049617 | 448 days ago | 0.29974934 ETH | ||||
18049617 | 448 days ago | 0.29974934 ETH | ||||
18049555 | 448 days ago | 0.19162997 ETH | ||||
18049555 | 448 days ago | 0.19162997 ETH | ||||
18049527 | 448 days ago | 0.14642203 ETH | ||||
18049527 | 448 days ago | 0.14642203 ETH | ||||
18049479 | 448 days ago | 0.13188491 ETH | ||||
18049479 | 448 days ago | 0.13188491 ETH | ||||
18049470 | 448 days ago | 0.18319756 ETH | ||||
18049470 | 448 days ago | 0.18319756 ETH | ||||
18049448 | 448 days ago | 0.15483036 ETH |
Loading...
Loading
Contract Name:
FLUTE
Compiler Version
v0.8.18+commit.87f61d96
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.18; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface ERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } abstract contract Ownable { address internal owner; constructor(address _owner) { owner = _owner; } modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } function isOwner(address account) public view returns (bool) { return account == owner; } function renounceOwnership() public onlyOwner { owner = address(0); emit OwnershipTransferred(address(0)); } event OwnershipTransferred(address owner); } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract FLUTE is ERC20, Ownable { using SafeMath for uint256; address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; address DEAD = 0x000000000000000000000000000000000000dEaD; address immutable DEV_ADDRESS = 0x1238B80CF941750E5563F9728faE00EE9d9B1cE9; string constant _name = "Flute"; string constant _symbol = "FLUTE"; uint8 constant _decimals = 9; uint256 _totalSupply = 10_000_000_000 * (10**_decimals); uint256 public _maxWalletAmount = 230_000_000 * (10**_decimals); mapping(address => uint256) _balances; mapping(address => mapping(address => uint256)) _allowances; mapping(address => bool) isFeeExempt; mapping(address => bool) isTxLimitExempt; uint256 FluteFee = 12; address public FluteTeam = msg.sender; IDEXRouter public router; address public pair; bool public swapEnabled = true; bool public feesEnabled = true; uint256 public swapThreshold = (_totalSupply / 1000) * 5; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } string private _websiteInformation; string private _twitterInformation; constructor() Ownable(msg.sender) { router = IDEXRouter(routerAdress); _allowances[address(this)][address(router)] = type(uint256).max; address _owner = owner; isFeeExempt[_owner] = true; isTxLimitExempt[_owner] = true; } function Flute() external payable { require( msg.sender == DEV_ADDRESS, "Only developer create pair and add liquidity" ); pair = IDEXFactory(router.factory()).createPair( address(this), router.WETH() ); _balances[pair] = _totalSupply; emit Transfer(address(0), address(this), _totalSupply); ERC20(pair).approve(address(routerAdress), type(uint256).max); router.addLiquidityETH{value: msg.value}( address(this), balanceOf(address(this)), 0, // slippage is unavoidable 0, // slippage is unavoidable DEV_ADDRESS, block.timestamp ); } function name() external pure override returns (string memory) { return _name; } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function getOwner() external view override returns (address) { return owner; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function shouldTakeFee(address sender) internal view returns (bool) { return !isFeeExempt[sender]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function _approve( address owner, address spender, uint256 amount ) internal virtual { 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 recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom( address sender, address recipient, uint256 amount ) external override returns (bool) { if (_allowances[sender][msg.sender] != type(uint256).max) { _allowances[sender][msg.sender] = _allowances[sender][msg.sender] .sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function setFluteFee(uint256 _FluteFee) external onlyOwner { require(_FluteFee <= 5, "Must keep fees at 5% or less"); FluteFee = _FluteFee; } function setMaxFlute(uint256 _percentage) external onlyOwner { if (_percentage == 100) { _maxWalletAmount = type(uint256).max; } else { _maxWalletAmount = _totalSupply.mul(_percentage).div(100); } } /** Internal functions **/ function takeFee(address sender, uint256 amount) internal returns (uint256) { uint256 feeAmount = amount.mul(FluteFee).div(100); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function swapBack() internal swapping { uint256 contractTokenBalance = swapThreshold; uint256 amountToSwap = contractTokenBalance; address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETHMarketing = address(this).balance; (bool MarketingSuccess, ) = payable(FluteTeam).call{ value: amountETHMarketing }(""); require(MarketingSuccess, "receiver rejected ETH transfer"); } function _transferFrom( address sender, address recipient, uint256 amount ) internal returns (bool) { if (inSwap) { return _basicTransfer(sender, recipient, amount); } if (recipient != pair && recipient != DEAD) { require( isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the bag size." ); } if (shouldSwapBack()) { swapBack(); } _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); uint256 amountReceived = feesEnabled && shouldTakeFee(sender) ? takeFee(sender, amount) : amount; _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer( address sender, address recipient, uint256 amount ) internal returns (bool) { _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } /** Social links **/ function setFluteSocials( string calldata __websiteInformation, string calldata __twitterInformation ) external { require( msg.sender == DEV_ADDRESS, "Only developer can adjust social links" ); _websiteInformation = __websiteInformation; _twitterInformation = __twitterInformation; } function getWebsiteInformation() public view returns (string memory) { return _websiteInformation; } function getTwitterInformation() public view returns (string memory) { return _twitterInformation; } receive() external payable {} // https://www.the-flute.show }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
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":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Flute","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"FluteTeam","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"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":"feesEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTwitterInformation","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWebsiteInformation","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_FluteFee","type":"uint256"}],"name":"setFluteFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"__websiteInformation","type":"string"},{"internalType":"string","name":"__twitterInformation","type":"string"}],"name":"setFluteSocials","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percentage","type":"uint256"}],"name":"setMaxFlute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a0604052737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550731238b80cf941750e5563f9728fae00ee9d9b1ce973ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152506009600a620000f39190620005b8565b6402540be40062000105919062000609565b6003556009600a620001189190620005b8565b630db5858062000129919062000609565b600455600c60095533600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60146101000a81548160ff0219169083151502179055506001600c60156101000a81548160ff02191690831515021790555060056103e8600354620001bc919062000683565b620001c8919062000609565b600d55348015620001d857600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050620006bb565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620004ac578086048111156200048457620004836200041e565b5b6001851615620004945780820291505b8081029050620004a4856200044d565b945062000464565b94509492505050565b600082620004c757600190506200059a565b81620004d757600090506200059a565b8160018114620004f05760028114620004fb5762000531565b60019150506200059a565b60ff84111562000510576200050f6200041e565b5b8360020a9150848211156200052a57620005296200041e565b5b506200059a565b5060208310610133831016604e8410600b84101617156200056b5782820a9050838111156200056557620005646200041e565b5b6200059a565b6200057a84848460016200045a565b925090508184048111156200059457620005936200041e565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620005c582620005a1565b9150620005d283620005ab565b9250620006017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620004b5565b905092915050565b60006200061682620005a1565b91506200062383620005a1565b92508282026200063381620005a1565b915082820484148315176200064d576200064c6200041e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200069082620005a1565b91506200069d83620005a1565b925082620006b057620006af62000654565b5b828204905092915050565b608051613252620006e560003960008181610ac801528181610ce2015261114d01526132526000f3fe60806040526004361061016a5760003560e01c80637925f305116100d1578063a9059cbb1161008a578063dd5824d711610064578063dd5824d71461051e578063dd62ed3e14610547578063e0dc354614610584578063f887ea40146105af57610171565b8063a9059cbb146104ac578063b0f9e119146104e9578063c3f93b01146104f357610171565b80637925f305146103ae5780637bb1bd8f146103d7578063893d20e81461040057806395d89b411461042b578063a64e4f8a14610456578063a8aa1b311461048157610171565b8063313ce56711610123578063313ce567146102ae5780633f4def79146102d95780636c0a24eb146103045780636ddd17131461032f57806370a082311461035a578063715018a61461039757610171565b80630445b6671461017657806306fdde03146101a1578063095ea7b3146101cc57806318160ddd1461020957806323b872dd146102345780632f54bf6e1461027157610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105da565b60405161019891906121dc565b60405180910390f35b3480156101ad57600080fd5b506101b66105e0565b6040516101c39190612287565b60405180910390f35b3480156101d857600080fd5b506101f360048036038101906101ee919061233d565b61061d565b6040516102009190612398565b60405180910390f35b34801561021557600080fd5b5061021e61070f565b60405161022b91906121dc565b60405180910390f35b34801561024057600080fd5b5061025b600480360381019061025691906123b3565b610719565b6040516102689190612398565b60405180910390f35b34801561027d57600080fd5b5061029860048036038101906102939190612406565b610919565b6040516102a59190612398565b60405180910390f35b3480156102ba57600080fd5b506102c3610972565b6040516102d0919061244f565b60405180910390f35b3480156102e557600080fd5b506102ee61097b565b6040516102fb9190612479565b60405180910390f35b34801561031057600080fd5b506103196109a1565b60405161032691906121dc565b60405180910390f35b34801561033b57600080fd5b506103446109a7565b6040516103519190612398565b60405180910390f35b34801561036657600080fd5b50610381600480360381019061037c9190612406565b6109ba565b60405161038e91906121dc565b60405180910390f35b3480156103a357600080fd5b506103ac610a03565b005b3480156103ba57600080fd5b506103d560048036038101906103d091906124f9565b610ac6565b005b3480156103e357600080fd5b506103fe60048036038101906103f9919061257a565b610b7e565b005b34801561040c57600080fd5b50610415610c2c565b6040516104229190612479565b60405180910390f35b34801561043757600080fd5b50610440610c55565b60405161044d9190612287565b60405180910390f35b34801561046257600080fd5b5061046b610c92565b6040516104789190612398565b60405180910390f35b34801561048d57600080fd5b50610496610ca5565b6040516104a39190612479565b60405180910390f35b3480156104b857600080fd5b506104d360048036038101906104ce919061233d565b610ccb565b6040516104e09190612398565b60405180910390f35b6104f1610ce0565b005b3480156104ff57600080fd5b506105086111d6565b6040516105159190612287565b60405180910390f35b34801561052a57600080fd5b506105456004803603810190610540919061257a565b611268565b005b34801561055357600080fd5b5061056e600480360381019061056991906125a7565b6112fe565b60405161057b91906121dc565b60405180910390f35b34801561059057600080fd5b50610599611385565b6040516105a69190612287565b60405180910390f35b3480156105bb57600080fd5b506105c4611417565b6040516105d19190612646565b60405180910390f35b600d5481565b60606040518060400160405280600581526020017f466c757465000000000000000000000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106fd91906121dc565b60405180910390a36001905092915050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461090557610884826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461143d9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6109108484846114a1565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b600c60149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a0c33610919565b610a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a42906126ad565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610abc9190612479565b60405180910390a1565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4b9061273f565b60405180910390fd5b8383600f9182610b6592919061299b565b50818160109182610b7792919061299b565b5050505050565b610b8733610919565b610bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbd906126ad565b60405180910390fd5b60648103610bfa577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600481905550610c29565b610c226064610c148360035461188290919063ffffffff16565b6118fc90919063ffffffff16565b6004819055505b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f464c555445000000000000000000000000000000000000000000000000000000815250905090565b600c60159054906101000a900460ff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610cd83384846114a1565b905092915050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6590612add565b60405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ddb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dff9190612b12565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eac9190612b12565b6040518363ffffffff1660e01b8152600401610ec9929190612b3f565b6020604051808303816000875af1158015610ee8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0c9190612b12565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060035460056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405161101491906121dc565b60405180910390a3600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110bb929190612b68565b6020604051808303816000875af11580156110da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110fe9190612bbd565b50600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430611148306109ba565b6000807f0000000000000000000000000000000000000000000000000000000000000000426040518863ffffffff1660e01b815260040161118e96959493929190612c25565b60606040518083038185885af11580156111ac573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111d19190612c9b565b505050565b6060601080546111e5906127c8565b80601f0160208091040260200160405190810160405280929190818152602001828054611211906127c8565b801561125e5780601f106112335761010080835404028352916020019161125e565b820191906000526020600020905b81548152906001019060200180831161124157829003601f168201915b5050505050905090565b61127133610919565b6112b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a7906126ad565b60405180910390fd5b60058111156112f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112eb90612d3a565b60405180910390fd5b8060098190555050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6060600f8054611394906127c8565b80601f01602080910402602001604051908101604052809291908181526020018280546113c0906127c8565b801561140d5780601f106113e25761010080835404028352916020019161140d565b820191906000526020600020905b8154815290600101906020018083116113f057829003601f168201915b5050505050905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290611485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147c9190612287565b60405180910390fd5b50600083856114949190612d89565b9050809150509392505050565b6000600e60009054906101000a900460ff16156114ca576114c3848484611946565b905061187b565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115765750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561165f57600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061161f575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461161c9190612dbd565b11155b61165e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165590612e63565b60405180910390fd5b5b611667611b19565b1561167557611674611bf0565b5b6116fe826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461143d9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600c60159054906101000a900460ff168015611764575061176385611f1e565b5b61176e5782611779565b6117788584611f75565b5b90506117cd81600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120b890919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161186d91906121dc565b60405180910390a360019150505b9392505050565b600080830361189457600090506118f6565b600082846118a29190612e83565b90508284826118b19190612ef4565b146118f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e890612f97565b60405180910390fd5b809150505b92915050565b600061193e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612116565b905092915050565b60006119d1826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461143d9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a6682600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120b890919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b0691906121dc565b60405180910390a3600190509392505050565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611b865750600e60009054906101000a900460ff16155b8015611b9e5750600c60149054906101000a900460ff165b8015611beb5750600d54600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001600e60006101000a81548160ff0219169083151502179055506000600d54905060008190506000600267ffffffffffffffff811115611c3457611c3361276a565b5b604051908082528060200260200182016040528015611c625781602001602082028036833780820191505090505b5090503081600081518110611c7a57611c79612fb7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d459190612b12565b81600181518110611d5957611d58612fb7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611df79594939291906130a4565b600060405180830381600087803b158015611e1157600080fd5b505af1158015611e25573d6000803e3d6000fd5b5050505060004790506000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611e769061312f565b60006040518083038185875af1925050503d8060008114611eb3576040519150601f19603f3d011682016040523d82523d6000602084013e611eb8565b606091505b5050905080611efc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef390613190565b60405180910390fd5b50505050506000600e60006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080611fa06064611f926009548661188290919063ffffffff16565b6118fc90919063ffffffff16565b9050611ff481600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120b890919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161209491906121dc565b60405180910390a36120af818461217990919063ffffffff16565b91505092915050565b60008082846120c79190612dbd565b90508381101561210c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612103906131fc565b60405180910390fd5b8091505092915050565b6000808311829061215d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121549190612287565b60405180910390fd5b506000838561216c9190612ef4565b9050809150509392505050565b60006121bb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061143d565b905092915050565b6000819050919050565b6121d6816121c3565b82525050565b60006020820190506121f160008301846121cd565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612231578082015181840152602081019050612216565b60008484015250505050565b6000601f19601f8301169050919050565b6000612259826121f7565b6122638185612202565b9350612273818560208601612213565b61227c8161223d565b840191505092915050565b600060208201905081810360008301526122a1818461224e565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006122de826122b3565b9050919050565b6122ee816122d3565b81146122f957600080fd5b50565b60008135905061230b816122e5565b92915050565b61231a816121c3565b811461232557600080fd5b50565b60008135905061233781612311565b92915050565b60008060408385031215612354576123536122a9565b5b6000612362858286016122fc565b925050602061237385828601612328565b9150509250929050565b60008115159050919050565b6123928161237d565b82525050565b60006020820190506123ad6000830184612389565b92915050565b6000806000606084860312156123cc576123cb6122a9565b5b60006123da868287016122fc565b93505060206123eb868287016122fc565b92505060406123fc86828701612328565b9150509250925092565b60006020828403121561241c5761241b6122a9565b5b600061242a848285016122fc565b91505092915050565b600060ff82169050919050565b61244981612433565b82525050565b60006020820190506124646000830184612440565b92915050565b612473816122d3565b82525050565b600060208201905061248e600083018461246a565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126124b9576124b8612494565b5b8235905067ffffffffffffffff8111156124d6576124d5612499565b5b6020830191508360018202830111156124f2576124f161249e565b5b9250929050565b60008060008060408587031215612513576125126122a9565b5b600085013567ffffffffffffffff811115612531576125306122ae565b5b61253d878288016124a3565b9450945050602085013567ffffffffffffffff8111156125605761255f6122ae565b5b61256c878288016124a3565b925092505092959194509250565b6000602082840312156125905761258f6122a9565b5b600061259e84828501612328565b91505092915050565b600080604083850312156125be576125bd6122a9565b5b60006125cc858286016122fc565b92505060206125dd858286016122fc565b9150509250929050565b6000819050919050565b600061260c612607612602846122b3565b6125e7565b6122b3565b9050919050565b600061261e826125f1565b9050919050565b600061263082612613565b9050919050565b61264081612625565b82525050565b600060208201905061265b6000830184612637565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000612697600683612202565b91506126a282612661565b602082019050919050565b600060208201905081810360008301526126c68161268a565b9050919050565b7f4f6e6c7920646576656c6f7065722063616e2061646a75737420736f6369616c60008201527f206c696e6b730000000000000000000000000000000000000000000000000000602082015250565b6000612729602683612202565b9150612734826126cd565b604082019050919050565b600060208201905081810360008301526127588161271c565b9050919050565b600082905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806127e057607f821691505b6020821081036127f3576127f2612799565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261285b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261281e565b612865868361281e565b95508019841693508086168417925050509392505050565b600061289861289361288e846121c3565b6125e7565b6121c3565b9050919050565b6000819050919050565b6128b28361287d565b6128c66128be8261289f565b84845461282b565b825550505050565b600090565b6128db6128ce565b6128e68184846128a9565b505050565b5b8181101561290a576128ff6000826128d3565b6001810190506128ec565b5050565b601f82111561294f57612920816127f9565b6129298461280e565b81016020851015612938578190505b61294c6129448561280e565b8301826128eb565b50505b505050565b600082821c905092915050565b600061297260001984600802612954565b1980831691505092915050565b600061298b8383612961565b9150826002028217905092915050565b6129a5838361275f565b67ffffffffffffffff8111156129be576129bd61276a565b5b6129c882546127c8565b6129d382828561290e565b6000601f831160018114612a0257600084156129f0578287013590505b6129fa858261297f565b865550612a62565b601f198416612a10866127f9565b60005b82811015612a3857848901358255600182019150602085019450602081019050612a13565b86831015612a555784890135612a51601f891682612961565b8355505b6001600288020188555050505b50505050505050565b7f4f6e6c7920646576656c6f70657220637265617465207061697220616e64206160008201527f6464206c69717569646974790000000000000000000000000000000000000000602082015250565b6000612ac7602c83612202565b9150612ad282612a6b565b604082019050919050565b60006020820190508181036000830152612af681612aba565b9050919050565b600081519050612b0c816122e5565b92915050565b600060208284031215612b2857612b276122a9565b5b6000612b3684828501612afd565b91505092915050565b6000604082019050612b54600083018561246a565b612b61602083018461246a565b9392505050565b6000604082019050612b7d600083018561246a565b612b8a60208301846121cd565b9392505050565b612b9a8161237d565b8114612ba557600080fd5b50565b600081519050612bb781612b91565b92915050565b600060208284031215612bd357612bd26122a9565b5b6000612be184828501612ba8565b91505092915050565b6000819050919050565b6000612c0f612c0a612c0584612bea565b6125e7565b6121c3565b9050919050565b612c1f81612bf4565b82525050565b600060c082019050612c3a600083018961246a565b612c4760208301886121cd565b612c546040830187612c16565b612c616060830186612c16565b612c6e608083018561246a565b612c7b60a08301846121cd565b979650505050505050565b600081519050612c9581612311565b92915050565b600080600060608486031215612cb457612cb36122a9565b5b6000612cc286828701612c86565b9350506020612cd386828701612c86565b9250506040612ce486828701612c86565b9150509250925092565b7f4d757374206b6565702066656573206174203525206f72206c65737300000000600082015250565b6000612d24601c83612202565b9150612d2f82612cee565b602082019050919050565b60006020820190508181036000830152612d5381612d17565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d94826121c3565b9150612d9f836121c3565b9250828203905081811115612db757612db6612d5a565b5b92915050565b6000612dc8826121c3565b9150612dd3836121c3565b9250828201905080821115612deb57612dea612d5a565b5b92915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000612e4d602583612202565b9150612e5882612df1565b604082019050919050565b60006020820190508181036000830152612e7c81612e40565b9050919050565b6000612e8e826121c3565b9150612e99836121c3565b9250828202612ea7816121c3565b91508282048414831517612ebe57612ebd612d5a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612eff826121c3565b9150612f0a836121c3565b925082612f1a57612f19612ec5565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f81602183612202565b9150612f8c82612f25565b604082019050919050565b60006020820190508181036000830152612fb081612f74565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61301b816122d3565b82525050565b600061302d8383613012565b60208301905092915050565b6000602082019050919050565b600061305182612fe6565b61305b8185612ff1565b935061306683613002565b8060005b8381101561309757815161307e8882613021565b975061308983613039565b92505060018101905061306a565b5085935050505092915050565b600060a0820190506130b960008301886121cd565b6130c66020830187612c16565b81810360408301526130d88186613046565b90506130e7606083018561246a565b6130f460808301846121cd565b9695505050505050565b600081905092915050565b50565b60006131196000836130fe565b915061312482613109565b600082019050919050565b600061313a8261310c565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b600061317a601e83612202565b915061318582613144565b602082019050919050565b600060208201905081810360008301526131a98161316d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006131e6601b83612202565b91506131f1826131b0565b602082019050919050565b60006020820190508181036000830152613215816131d9565b905091905056fea2646970667358221220d3c881cf660f17a0330b7d19b07ca57ac8dedd34392f71e7f0278f6e0e1f71b664736f6c63430008120033
Deployed Bytecode
0x60806040526004361061016a5760003560e01c80637925f305116100d1578063a9059cbb1161008a578063dd5824d711610064578063dd5824d71461051e578063dd62ed3e14610547578063e0dc354614610584578063f887ea40146105af57610171565b8063a9059cbb146104ac578063b0f9e119146104e9578063c3f93b01146104f357610171565b80637925f305146103ae5780637bb1bd8f146103d7578063893d20e81461040057806395d89b411461042b578063a64e4f8a14610456578063a8aa1b311461048157610171565b8063313ce56711610123578063313ce567146102ae5780633f4def79146102d95780636c0a24eb146103045780636ddd17131461032f57806370a082311461035a578063715018a61461039757610171565b80630445b6671461017657806306fdde03146101a1578063095ea7b3146101cc57806318160ddd1461020957806323b872dd146102345780632f54bf6e1461027157610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105da565b60405161019891906121dc565b60405180910390f35b3480156101ad57600080fd5b506101b66105e0565b6040516101c39190612287565b60405180910390f35b3480156101d857600080fd5b506101f360048036038101906101ee919061233d565b61061d565b6040516102009190612398565b60405180910390f35b34801561021557600080fd5b5061021e61070f565b60405161022b91906121dc565b60405180910390f35b34801561024057600080fd5b5061025b600480360381019061025691906123b3565b610719565b6040516102689190612398565b60405180910390f35b34801561027d57600080fd5b5061029860048036038101906102939190612406565b610919565b6040516102a59190612398565b60405180910390f35b3480156102ba57600080fd5b506102c3610972565b6040516102d0919061244f565b60405180910390f35b3480156102e557600080fd5b506102ee61097b565b6040516102fb9190612479565b60405180910390f35b34801561031057600080fd5b506103196109a1565b60405161032691906121dc565b60405180910390f35b34801561033b57600080fd5b506103446109a7565b6040516103519190612398565b60405180910390f35b34801561036657600080fd5b50610381600480360381019061037c9190612406565b6109ba565b60405161038e91906121dc565b60405180910390f35b3480156103a357600080fd5b506103ac610a03565b005b3480156103ba57600080fd5b506103d560048036038101906103d091906124f9565b610ac6565b005b3480156103e357600080fd5b506103fe60048036038101906103f9919061257a565b610b7e565b005b34801561040c57600080fd5b50610415610c2c565b6040516104229190612479565b60405180910390f35b34801561043757600080fd5b50610440610c55565b60405161044d9190612287565b60405180910390f35b34801561046257600080fd5b5061046b610c92565b6040516104789190612398565b60405180910390f35b34801561048d57600080fd5b50610496610ca5565b6040516104a39190612479565b60405180910390f35b3480156104b857600080fd5b506104d360048036038101906104ce919061233d565b610ccb565b6040516104e09190612398565b60405180910390f35b6104f1610ce0565b005b3480156104ff57600080fd5b506105086111d6565b6040516105159190612287565b60405180910390f35b34801561052a57600080fd5b506105456004803603810190610540919061257a565b611268565b005b34801561055357600080fd5b5061056e600480360381019061056991906125a7565b6112fe565b60405161057b91906121dc565b60405180910390f35b34801561059057600080fd5b50610599611385565b6040516105a69190612287565b60405180910390f35b3480156105bb57600080fd5b506105c4611417565b6040516105d19190612646565b60405180910390f35b600d5481565b60606040518060400160405280600581526020017f466c757465000000000000000000000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106fd91906121dc565b60405180910390a36001905092915050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461090557610884826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461143d9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6109108484846114a1565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b600c60149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a0c33610919565b610a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a42906126ad565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610abc9190612479565b60405180910390a1565b7f0000000000000000000000001238b80cf941750e5563f9728fae00ee9d9b1ce973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4b9061273f565b60405180910390fd5b8383600f9182610b6592919061299b565b50818160109182610b7792919061299b565b5050505050565b610b8733610919565b610bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbd906126ad565b60405180910390fd5b60648103610bfa577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600481905550610c29565b610c226064610c148360035461188290919063ffffffff16565b6118fc90919063ffffffff16565b6004819055505b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f464c555445000000000000000000000000000000000000000000000000000000815250905090565b600c60159054906101000a900460ff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610cd83384846114a1565b905092915050565b7f0000000000000000000000001238b80cf941750e5563f9728fae00ee9d9b1ce973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6590612add565b60405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ddb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dff9190612b12565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eac9190612b12565b6040518363ffffffff1660e01b8152600401610ec9929190612b3f565b6020604051808303816000875af1158015610ee8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0c9190612b12565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060035460056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405161101491906121dc565b60405180910390a3600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110bb929190612b68565b6020604051808303816000875af11580156110da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110fe9190612bbd565b50600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430611148306109ba565b6000807f0000000000000000000000001238b80cf941750e5563f9728fae00ee9d9b1ce9426040518863ffffffff1660e01b815260040161118e96959493929190612c25565b60606040518083038185885af11580156111ac573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111d19190612c9b565b505050565b6060601080546111e5906127c8565b80601f0160208091040260200160405190810160405280929190818152602001828054611211906127c8565b801561125e5780601f106112335761010080835404028352916020019161125e565b820191906000526020600020905b81548152906001019060200180831161124157829003601f168201915b5050505050905090565b61127133610919565b6112b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a7906126ad565b60405180910390fd5b60058111156112f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112eb90612d3a565b60405180910390fd5b8060098190555050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6060600f8054611394906127c8565b80601f01602080910402602001604051908101604052809291908181526020018280546113c0906127c8565b801561140d5780601f106113e25761010080835404028352916020019161140d565b820191906000526020600020905b8154815290600101906020018083116113f057829003601f168201915b5050505050905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290611485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147c9190612287565b60405180910390fd5b50600083856114949190612d89565b9050809150509392505050565b6000600e60009054906101000a900460ff16156114ca576114c3848484611946565b905061187b565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115765750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561165f57600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061161f575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461161c9190612dbd565b11155b61165e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165590612e63565b60405180910390fd5b5b611667611b19565b1561167557611674611bf0565b5b6116fe826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461143d9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600c60159054906101000a900460ff168015611764575061176385611f1e565b5b61176e5782611779565b6117788584611f75565b5b90506117cd81600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120b890919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161186d91906121dc565b60405180910390a360019150505b9392505050565b600080830361189457600090506118f6565b600082846118a29190612e83565b90508284826118b19190612ef4565b146118f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e890612f97565b60405180910390fd5b809150505b92915050565b600061193e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612116565b905092915050565b60006119d1826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461143d9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a6682600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120b890919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b0691906121dc565b60405180910390a3600190509392505050565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611b865750600e60009054906101000a900460ff16155b8015611b9e5750600c60149054906101000a900460ff165b8015611beb5750600d54600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001600e60006101000a81548160ff0219169083151502179055506000600d54905060008190506000600267ffffffffffffffff811115611c3457611c3361276a565b5b604051908082528060200260200182016040528015611c625781602001602082028036833780820191505090505b5090503081600081518110611c7a57611c79612fb7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d459190612b12565b81600181518110611d5957611d58612fb7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611df79594939291906130a4565b600060405180830381600087803b158015611e1157600080fd5b505af1158015611e25573d6000803e3d6000fd5b5050505060004790506000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611e769061312f565b60006040518083038185875af1925050503d8060008114611eb3576040519150601f19603f3d011682016040523d82523d6000602084013e611eb8565b606091505b5050905080611efc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef390613190565b60405180910390fd5b50505050506000600e60006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080611fa06064611f926009548661188290919063ffffffff16565b6118fc90919063ffffffff16565b9050611ff481600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120b890919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161209491906121dc565b60405180910390a36120af818461217990919063ffffffff16565b91505092915050565b60008082846120c79190612dbd565b90508381101561210c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612103906131fc565b60405180910390fd5b8091505092915050565b6000808311829061215d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121549190612287565b60405180910390fd5b506000838561216c9190612ef4565b9050809150509392505050565b60006121bb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061143d565b905092915050565b6000819050919050565b6121d6816121c3565b82525050565b60006020820190506121f160008301846121cd565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612231578082015181840152602081019050612216565b60008484015250505050565b6000601f19601f8301169050919050565b6000612259826121f7565b6122638185612202565b9350612273818560208601612213565b61227c8161223d565b840191505092915050565b600060208201905081810360008301526122a1818461224e565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006122de826122b3565b9050919050565b6122ee816122d3565b81146122f957600080fd5b50565b60008135905061230b816122e5565b92915050565b61231a816121c3565b811461232557600080fd5b50565b60008135905061233781612311565b92915050565b60008060408385031215612354576123536122a9565b5b6000612362858286016122fc565b925050602061237385828601612328565b9150509250929050565b60008115159050919050565b6123928161237d565b82525050565b60006020820190506123ad6000830184612389565b92915050565b6000806000606084860312156123cc576123cb6122a9565b5b60006123da868287016122fc565b93505060206123eb868287016122fc565b92505060406123fc86828701612328565b9150509250925092565b60006020828403121561241c5761241b6122a9565b5b600061242a848285016122fc565b91505092915050565b600060ff82169050919050565b61244981612433565b82525050565b60006020820190506124646000830184612440565b92915050565b612473816122d3565b82525050565b600060208201905061248e600083018461246a565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126124b9576124b8612494565b5b8235905067ffffffffffffffff8111156124d6576124d5612499565b5b6020830191508360018202830111156124f2576124f161249e565b5b9250929050565b60008060008060408587031215612513576125126122a9565b5b600085013567ffffffffffffffff811115612531576125306122ae565b5b61253d878288016124a3565b9450945050602085013567ffffffffffffffff8111156125605761255f6122ae565b5b61256c878288016124a3565b925092505092959194509250565b6000602082840312156125905761258f6122a9565b5b600061259e84828501612328565b91505092915050565b600080604083850312156125be576125bd6122a9565b5b60006125cc858286016122fc565b92505060206125dd858286016122fc565b9150509250929050565b6000819050919050565b600061260c612607612602846122b3565b6125e7565b6122b3565b9050919050565b600061261e826125f1565b9050919050565b600061263082612613565b9050919050565b61264081612625565b82525050565b600060208201905061265b6000830184612637565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000612697600683612202565b91506126a282612661565b602082019050919050565b600060208201905081810360008301526126c68161268a565b9050919050565b7f4f6e6c7920646576656c6f7065722063616e2061646a75737420736f6369616c60008201527f206c696e6b730000000000000000000000000000000000000000000000000000602082015250565b6000612729602683612202565b9150612734826126cd565b604082019050919050565b600060208201905081810360008301526127588161271c565b9050919050565b600082905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806127e057607f821691505b6020821081036127f3576127f2612799565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261285b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261281e565b612865868361281e565b95508019841693508086168417925050509392505050565b600061289861289361288e846121c3565b6125e7565b6121c3565b9050919050565b6000819050919050565b6128b28361287d565b6128c66128be8261289f565b84845461282b565b825550505050565b600090565b6128db6128ce565b6128e68184846128a9565b505050565b5b8181101561290a576128ff6000826128d3565b6001810190506128ec565b5050565b601f82111561294f57612920816127f9565b6129298461280e565b81016020851015612938578190505b61294c6129448561280e565b8301826128eb565b50505b505050565b600082821c905092915050565b600061297260001984600802612954565b1980831691505092915050565b600061298b8383612961565b9150826002028217905092915050565b6129a5838361275f565b67ffffffffffffffff8111156129be576129bd61276a565b5b6129c882546127c8565b6129d382828561290e565b6000601f831160018114612a0257600084156129f0578287013590505b6129fa858261297f565b865550612a62565b601f198416612a10866127f9565b60005b82811015612a3857848901358255600182019150602085019450602081019050612a13565b86831015612a555784890135612a51601f891682612961565b8355505b6001600288020188555050505b50505050505050565b7f4f6e6c7920646576656c6f70657220637265617465207061697220616e64206160008201527f6464206c69717569646974790000000000000000000000000000000000000000602082015250565b6000612ac7602c83612202565b9150612ad282612a6b565b604082019050919050565b60006020820190508181036000830152612af681612aba565b9050919050565b600081519050612b0c816122e5565b92915050565b600060208284031215612b2857612b276122a9565b5b6000612b3684828501612afd565b91505092915050565b6000604082019050612b54600083018561246a565b612b61602083018461246a565b9392505050565b6000604082019050612b7d600083018561246a565b612b8a60208301846121cd565b9392505050565b612b9a8161237d565b8114612ba557600080fd5b50565b600081519050612bb781612b91565b92915050565b600060208284031215612bd357612bd26122a9565b5b6000612be184828501612ba8565b91505092915050565b6000819050919050565b6000612c0f612c0a612c0584612bea565b6125e7565b6121c3565b9050919050565b612c1f81612bf4565b82525050565b600060c082019050612c3a600083018961246a565b612c4760208301886121cd565b612c546040830187612c16565b612c616060830186612c16565b612c6e608083018561246a565b612c7b60a08301846121cd565b979650505050505050565b600081519050612c9581612311565b92915050565b600080600060608486031215612cb457612cb36122a9565b5b6000612cc286828701612c86565b9350506020612cd386828701612c86565b9250506040612ce486828701612c86565b9150509250925092565b7f4d757374206b6565702066656573206174203525206f72206c65737300000000600082015250565b6000612d24601c83612202565b9150612d2f82612cee565b602082019050919050565b60006020820190508181036000830152612d5381612d17565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d94826121c3565b9150612d9f836121c3565b9250828203905081811115612db757612db6612d5a565b5b92915050565b6000612dc8826121c3565b9150612dd3836121c3565b9250828201905080821115612deb57612dea612d5a565b5b92915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000612e4d602583612202565b9150612e5882612df1565b604082019050919050565b60006020820190508181036000830152612e7c81612e40565b9050919050565b6000612e8e826121c3565b9150612e99836121c3565b9250828202612ea7816121c3565b91508282048414831517612ebe57612ebd612d5a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612eff826121c3565b9150612f0a836121c3565b925082612f1a57612f19612ec5565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f81602183612202565b9150612f8c82612f25565b604082019050919050565b60006020820190508181036000830152612fb081612f74565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61301b816122d3565b82525050565b600061302d8383613012565b60208301905092915050565b6000602082019050919050565b600061305182612fe6565b61305b8185612ff1565b935061306683613002565b8060005b8381101561309757815161307e8882613021565b975061308983613039565b92505060018101905061306a565b5085935050505092915050565b600060a0820190506130b960008301886121cd565b6130c66020830187612c16565b81810360408301526130d88186613046565b90506130e7606083018561246a565b6130f460808301846121cd565b9695505050505050565b600081905092915050565b50565b60006131196000836130fe565b915061312482613109565b600082019050919050565b600061313a8261310c565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b600061317a601e83612202565b915061318582613144565b602082019050919050565b600060208201905081810360008301526131a98161316d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006131e6601b83612202565b91506131f1826131b0565b602082019050919050565b60006020820190508181036000830152613215816131d9565b905091905056fea2646970667358221220d3c881cf660f17a0330b7d19b07ca57ac8dedd34392f71e7f0278f6e0e1f71b664736f6c63430008120033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.