Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 140 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 21126302 | 117 days ago | IN | 0 ETH | 0.00115759 | ||||
Approve | 20933707 | 144 days ago | IN | 0 ETH | 0.00051457 | ||||
Approve | 20877354 | 152 days ago | IN | 0 ETH | 0.00061558 | ||||
Manual Swap | 20873495 | 152 days ago | IN | 0 ETH | 0.00152494 | ||||
Transfer | 20873481 | 152 days ago | IN | 0 ETH | 0.00059636 | ||||
Transfer | 20873467 | 152 days ago | IN | 0 ETH | 0.0004539 | ||||
Transfer | 20873454 | 152 days ago | IN | 0 ETH | 0.00059636 | ||||
Transfer | 20873449 | 152 days ago | IN | 0 ETH | 0.00059636 | ||||
Transfer | 20873443 | 152 days ago | IN | 0 ETH | 0.00059636 | ||||
Transfer | 20873437 | 152 days ago | IN | 0 ETH | 0.00059636 | ||||
Transfer | 20873433 | 152 days ago | IN | 0 ETH | 0.00059636 | ||||
Transfer | 20873426 | 152 days ago | IN | 0 ETH | 0.00048184 | ||||
Transfer | 20873408 | 152 days ago | IN | 0 ETH | 0.00075901 | ||||
Transfer | 20873397 | 152 days ago | IN | 0 ETH | 0.00075901 | ||||
Transfer | 20873383 | 152 days ago | IN | 0 ETH | 0.00065058 | ||||
Transfer | 20873375 | 152 days ago | IN | 0 ETH | 0.00065058 | ||||
Transfer | 20873370 | 152 days ago | IN | 0.02171312 ETH | 0.00025266 | ||||
Transfer | 20873369 | 152 days ago | IN | 0 ETH | 0.00065058 | ||||
Transfer | 20873366 | 152 days ago | IN | 0.02343648 ETH | 0.00025266 | ||||
Transfer | 20873363 | 152 days ago | IN | 0 ETH | 0.00065058 | ||||
Transfer | 20873359 | 152 days ago | IN | 0.02520274 ETH | 0.00025266 | ||||
Transfer | 20873356 | 152 days ago | IN | 0 ETH | 0.00075901 | ||||
Transfer | 20873352 | 152 days ago | IN | 0.02739935 ETH | 0.00029477 | ||||
Transfer | 20873349 | 152 days ago | IN | 0 ETH | 0.00099841 | ||||
Manual Swap | 20873343 | 152 days ago | IN | 0 ETH | 0.00195043 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
20873495 | 152 days ago | 0.47543794 ETH | ||||
20873495 | 152 days ago | 0.37768625 ETH | ||||
20873343 | 152 days ago | 0.35172498 ETH | ||||
20873343 | 152 days ago | 0.1451828 ETH | ||||
20873199 | 152 days ago | 2.12980251 ETH | ||||
20873199 | 152 days ago | 2.12980251 ETH | ||||
20873195 | 152 days ago | 0.103207 ETH | ||||
20873195 | 152 days ago | 0.103207 ETH | ||||
20873195 | 152 days ago | 0.03302798 ETH | ||||
20873195 | 152 days ago | 0.03302798 ETH | ||||
20873187 | 152 days ago | 0.07553087 ETH | ||||
20873187 | 152 days ago | 0.07553087 ETH | ||||
20872516 | 152 days ago | 0.0903986 ETH | ||||
20872516 | 152 days ago | 0.0903986 ETH | ||||
20872516 | 152 days ago | 0.16166809 ETH | ||||
20872516 | 152 days ago | 0.16166809 ETH | ||||
20872514 | 152 days ago | 0.10327127 ETH | ||||
20872514 | 152 days ago | 0.10327127 ETH | ||||
20872514 | 152 days ago | 0.17871705 ETH | ||||
20872514 | 152 days ago | 0.17871705 ETH | ||||
20872514 | 152 days ago | 0.1795308 ETH | ||||
20872514 | 152 days ago | 0.1795308 ETH | ||||
20872156 | 152 days ago | 0.00529294 ETH | ||||
20872156 | 152 days ago | 0.00529294 ETH | ||||
20872154 | 152 days ago | 1.0008076 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
GovernaGame
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-10-01 */ /* SPDX-License-Identifier: MIT ------------------------------------------------------------------------------------------------- 𝕎𝔼𝔹𝟛 𝔾𝔸𝕄𝔼 ------------------------------------------------------------------------------------------------- https://governagame.com/ https://t.me/GovernaGameETH https://x.com/GovernaGameETH ------------------------------------------------------------------------------------------------- ░██████╗░░█████╗░██╗░░░██╗███████╗██████╗░███╗░░██╗░█████╗░ ░██████╗░░█████╗░███╗░░░███╗███████╗ ██╔════╝░██╔══██╗██║░░░██║██╔════╝██╔══██╗████╗░██║██╔══██╗ ██╔════╝░██╔══██╗████╗░████║██╔════╝ ██║░░██╗░██║░░██║╚██╗░██╔╝█████╗░░██████╔╝██╔██╗██║███████║ ██║░░██╗░███████║██╔████╔██║█████╗░░ ██║░░╚██╗██║░░██║░╚████╔╝░██╔══╝░░██╔══██╗██║╚████║██╔══██║ ██║░░╚██╗██╔══██║██║╚██╔╝██║██╔══╝░░ ╚██████╔╝╚█████╔╝░░╚██╔╝░░███████╗██║░░██║██║░╚███║██║░░██║ ╚██████╔╝██║░░██║██║░╚═╝░██║███████╗ ░╚═════╝░░╚════╝░░░░╚═╝░░░╚══════╝╚═╝░░╚═╝╚═╝░░╚══╝╚═╝░░╚═╝ ░╚═════╝░╚═╝░░╚═╝╚═╝░░░░░╚═╝╚══════╝ */ pragma solidity ^0.8.23; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract GovernaGame is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private bots; address payable private _taxWallet; uint256 private _maxTax = 24; uint256 private _initialBuyTax=20; uint256 private _initialSellTax=20; uint256 private _finalBuyTax=5; uint256 private _finalSellTax=5; uint256 private _reduceBuyTaxAt=24; uint256 private _reduceSellTaxAt=32; uint256 private _preventSwapBefore=0; uint256 private _transferTax=0; uint256 private _buyCount=0; uint8 private constant _decimals = 18; uint256 private constant _tTotal = 420690000000 * 10**_decimals; string private constant _name = unicode"GovernaGame"; string private constant _symbol = unicode"GOGA"; uint256 public _maxTxAmount = 2; // percent 1 = 1 % uint256 public _maxWalletSize = 2; // percent 1 = 1 % uint256 public _taxSwapThreshold= (_tTotal/1000)* 10; // percent 10 = 1% uint256 public _maxTaxSwap= (_tTotal/1000) * 15; // percent 10 = 1% IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private startTrade; bool private inSwap = false; bool private swapEnabled = false; uint256 private sellCount = 0; uint256 private lastSellBlock = 0; event MaxTxAmountUpdated(uint _maxTxAmount); event TransferTaxUpdated(uint _tax); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _taxWallet = payable(_msgSender()); _balances[_msgSender()] = _tTotal * 49/1000; // 4.9% supply TEAM & ADVISORS _balances[address(0xc3eE82d5FC4cC111B434Dc775327a4ca2115Adb4)] = _tTotal * 41/1000; // 4.1% supply DEV _balances[address(0x69C28A0A1b296591BD9482d6FB97Fb413BD23BFe)] = _tTotal * 49/1000; // 4.9% supply MARKETING _balances[address(0x9e8E0EA0CA5EA0ff85Bd1396a5Aeeb2A94a7cd47)] = _tTotal * 49/1000; // 4.9% supply GAME REWARDS _balances[address(this)] = _tTotal * 812/1000; // 81.2% supply LIQUIDITY _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 (!startTrade){ require((_isExcludedFromFee[from] || _isExcludedFromFee[to]), "Trading not started!"); } if (from != owner() && to != owner() && to != _taxWallet) { require(!bots[from] && !bots[to]); if(_buyCount==0){ taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); } if(_buyCount>0){ taxAmount = amount.mul(_transferTax).div(100); } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); _buyCount++; } if(to == uniswapV2Pair && from!= address(this) ){ taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) { if (block.number > lastSellBlock) { sellCount = 0; } require(sellCount < 3, "Only 3 sells per block!"); swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } sellCount++; lastSellBlock = block.number; } } if(taxAmount>0){ _balances[address(this)]=_balances[address(this)].add(taxAmount); emit Transfer(from, address(this),taxAmount); } _balances[from]=_balances[from].sub(amount); _balances[to]=_balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function removeLimit2() external onlyOwner{ startTrade = true; _maxTxAmount = _tTotal; _maxWalletSize=_tTotal; emit MaxTxAmountUpdated(_tTotal); } function removeTransferTax() external onlyOwner{ _transferTax = 0; emit TransferTaxUpdated(0); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function openTrading(address[] memory eff) external onlyOwner() { require(!tradingOpen,"trading is already open"); if (block.chainid == 1){ //router ETHMAINNET uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); } for (uint i = 0; i < eff.length; i++) { _isExcludedFromFee[eff[i]] = true; } _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 setBuyTax(uint256 _newFee) external{ require(_msgSender()==_taxWallet); require(_newFee<=_maxTax); _finalBuyTax=_newFee; _initialBuyTax=_newFee; } function setSellTax(uint256 _newFee) external{ require(_msgSender()==_taxWallet); require(_newFee<=_maxTax); _finalSellTax=_newFee; _initialSellTax=_newFee; _transferTax = 0; } function setMakerSwapThreshold(uint256 newPrc) external{ require(_msgSender()==_taxWallet); _taxSwapThreshold= (_tTotal/1000)* newPrc; // percent 10 = 1% } function removeTax() external{ require(_msgSender()==_taxWallet); _maxTax = 0; _finalBuyTax = 0; _initialBuyTax = 0; _finalSellTax = 0; _initialSellTax = 0; } receive() external payable {} function rescueERC20(address _address, uint256 percent) external { require(_msgSender()==_taxWallet); uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100); IERC20(_address).transfer(_taxWallet, _amount); } function manualSwap( uint256 percent ) external { require(_msgSender()==_taxWallet); uint256 tokenBalance=balanceOf(address(this))*percent/100; if(tokenBalance>0 && swapEnabled){ swapTokensForEth(tokenBalance); } uint256 ethBalance=address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"eff","type":"address[]"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimit2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTransferTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"setBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newPrc","type":"uint256"}],"name":"setMakerSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"setSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405260186006556014600755601460085560056009556005600a556018600b556020600c555f600d555f600e555f600f5560026010556002601155600a6103e86012600a61005091906107f3565b6461f313f880610060919061083d565b61006a91906108ab565b610074919061083d565b601255600f6103e86012600a61008a91906107f3565b6461f313f88061009a919061083d565b6100a491906108ab565b6100ae919061083d565b6013555f601560166101000a81548160ff0219169083151502179055505f601560176101000a81548160ff0219169083151502179055505f6016555f6017553480156100f8575f80fd5b505f61010861065460201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506101b261065460201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103e860316012600a61020491906107f3565b6461f313f880610214919061083d565b61021e919061083d565b61022891906108ab565b60015f61023961065460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506103e860296012600a61028991906107f3565b6461f313f880610299919061083d565b6102a3919061083d565b6102ad91906108ab565b60015f73c3ee82d5fc4cc111b434dc775327a4ca2115adb473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506103e860316012600a61031591906107f3565b6461f313f880610325919061083d565b61032f919061083d565b61033991906108ab565b60015f7369c28a0a1b296591bd9482d6fb97fb413bd23bfe73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506103e860316012600a6103a191906107f3565b6461f313f8806103b1919061083d565b6103bb919061083d565b6103c591906108ab565b60015f739e8e0ea0ca5ea0ff85bd1396a5aeeb2a94a7cd4773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506103e861032c6012600a61042e91906107f3565b6461f313f88061043e919061083d565b610448919061083d565b61045291906108ab565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6104a661065b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506105ce61065460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a61062a91906107f3565b6461f313f88061063a919061083d565b60405161064791906108ea565b60405180910390a3610903565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115610704578086048111156106e0576106df610682565b5b60018516156106ef5780820291505b80810290506106fd856106af565b94506106c4565b94509492505050565b5f8261071c57600190506107d7565b81610729575f90506107d7565b816001811461073f576002811461074957610778565b60019150506107d7565b60ff84111561075b5761075a610682565b5b8360020a91508482111561077257610771610682565b5b506107d7565b5060208310610133831016604e8410600b84101617156107ad5782820a9050838111156107a8576107a7610682565b5b6107d7565b6107ba84848460016106bb565b925090508184048111156107d1576107d0610682565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6107fd826107de565b9150610808836107e7565b92506108357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461070d565b905092915050565b5f610847826107de565b9150610852836107de565b9250828202610860816107de565b9150828204841483151761087757610876610682565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6108b5826107de565b91506108c0836107de565b9250826108d0576108cf61087e565b5b828204905092915050565b6108e4816107de565b82525050565b5f6020820190506108fd5f8301846108db565b92915050565b613946806109105f395ff3fe60806040526004361061014e575f3560e01c80637d1db4a5116100b557806395d89b411161006e57806395d89b411461042b578063a9059cbb14610455578063b70143c914610491578063bf474bed146104b9578063dc1052e2146104e3578063dd62ed3e1461050b57610155565b80637d1db4a5146103355780638cd09d501461035f5780638cd4426d146103875780638da5cb5b146103af5780638f9a55c0146103d957806390ed5c031461040357610155565b806323b872dd1161010757806323b872dd146102515780632f5f25721461028d578063313ce567146102a35780636384c356146102cd57806370a08231146102e3578063715018a61461031f57610155565b806306fdde0314610159578063095ea7b3146101835780630faee56f146101bf578063109daa99146101e957806312d0ecb5146101ff57806318160ddd1461022757610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061016d610547565b60405161017a91906127cd565b60405180910390f35b34801561018e575f80fd5b506101a960048036038101906101a4919061288b565b610584565b6040516101b691906128e3565b60405180910390f35b3480156101ca575f80fd5b506101d36105a1565b6040516101e0919061290b565b60405180910390f35b3480156101f4575f80fd5b506101fd6105a7565b005b34801561020a575f80fd5b5061022560048036038101906102209190612a64565b61067b565b005b348015610232575f80fd5b5061023b610c30565b604051610248919061290b565b60405180910390f35b34801561025c575f80fd5b5061027760048036038101906102729190612aab565b610c54565b60405161028491906128e3565b60405180910390f35b348015610298575f80fd5b506102a1610d28565b005b3480156102ae575f80fd5b506102b7610dac565b6040516102c49190612b16565b60405180910390f35b3480156102d8575f80fd5b506102e1610db4565b005b3480156102ee575f80fd5b5061030960048036038101906103049190612b2f565b610f00565b604051610316919061290b565b60405180910390f35b34801561032a575f80fd5b50610333610f46565b005b348015610340575f80fd5b50610349611094565b604051610356919061290b565b60405180910390f35b34801561036a575f80fd5b5061038560048036038101906103809190612b5a565b61109a565b005b348015610392575f80fd5b506103ad60048036038101906103a8919061288b565b61111f565b005b3480156103ba575f80fd5b506103c36112c0565b6040516103d09190612b94565b60405180910390f35b3480156103e4575f80fd5b506103ed6112e7565b6040516103fa919061290b565b60405180910390f35b34801561040e575f80fd5b5061042960048036038101906104249190612b5a565b6112ed565b005b348015610436575f80fd5b5061043f61138b565b60405161044c91906127cd565b60405180910390f35b348015610460575f80fd5b5061047b6004803603810190610476919061288b565b6113c8565b60405161048891906128e3565b60405180910390f35b34801561049c575f80fd5b506104b760048036038101906104b29190612b5a565b6113e5565b005b3480156104c4575f80fd5b506104cd6114ac565b6040516104da919061290b565b60405180910390f35b3480156104ee575f80fd5b5061050960048036038101906105049190612b5a565b6114b2565b005b348015610516575f80fd5b50610531600480360381019061052c9190612bad565b611530565b60405161053e919061290b565b60405180910390f35b60606040518060400160405280600b81526020017f476f7665726e6147616d65000000000000000000000000000000000000000000815250905090565b5f6105976105906115b2565b84846115b9565b6001905092915050565b60135481565b6105af6115b2565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461063b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063290612c35565b60405180910390fd5b5f600e819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516106719190612c95565b60405180910390a1565b6106836115b2565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461070f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070690612c35565b60405180910390fd5b601560149054906101000a900460ff161561075f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075690612cf8565b60405180910390fd5b600146036107bc57737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5f5b815181101561084357600160035f8484815181106107df576107de612d16565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506107be565b5061088d3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a6108789190612e9f565b6461f313f8806108889190612ee9565b6115b9565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061091b9190612f3e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c59190612f3e565b6040518363ffffffff1660e01b81526004016109e2929190612f69565b6020604051808303815f875af11580156109fe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a229190612f3e565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610aa930610f00565b5f80610ab36112c0565b426040518863ffffffff1660e01b8152600401610ad596959493929190612f90565b60606040518083038185885af1158015610af1573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b169190613003565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610bb6929190613053565b6020604051808303815f875af1158015610bd2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf691906130a4565b506001601560176101000a81548160ff0219169083151502179055506001601560146101000a81548160ff02191690831515021790555050565b5f6012600a610c3f9190612e9f565b6461f313f880610c4f9190612ee9565b905090565b5f610c6084848461177c565b610d1d84610c6c6115b2565b610d18856040518060600160405280602881526020016138e96028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610ccf6115b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122499092919063ffffffff16565b6115b9565b600190509392505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d686115b2565b73ffffffffffffffffffffffffffffffffffffffff1614610d87575f80fd5b5f6006819055505f6009819055505f6007819055505f600a819055505f600881905550565b5f6012905090565b610dbc6115b2565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3f90612c35565b60405180910390fd5b60016015806101000a81548160ff0219169083151502179055506012600a610e709190612e9f565b6461f313f880610e809190612ee9565b6010819055506012600a610e949190612e9f565b6461f313f880610ea49190612ee9565b6011819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610ed99190612e9f565b6461f313f880610ee99190612ee9565b604051610ef6919061290b565b60405180910390a1565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610f4e6115b2565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd190612c35565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60105481565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110da6115b2565b73ffffffffffffffffffffffffffffffffffffffff16146110f9575f80fd5b600654811115611107575f80fd5b80600a81905550806008819055505f600e8190555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661115f6115b2565b73ffffffffffffffffffffffffffffffffffffffff161461117e575f80fd5b5f61121c606461120e848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111c19190612b94565b602060405180830381865afa1580156111dc573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061120091906130cf565b6122ab90919063ffffffff16565b61232290919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161127a92919061314c565b6020604051808303815f875af1158015611296573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112ba91906130a4565b50505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661132d6115b2565b73ffffffffffffffffffffffffffffffffffffffff161461134c575f80fd5b806103e86012600a61135e9190612e9f565b6461f313f88061136e9190612ee9565b61137891906131a0565b6113829190612ee9565b60128190555050565b60606040518060400160405280600481526020017f474f474100000000000000000000000000000000000000000000000000000000815250905090565b5f6113db6113d46115b2565b848461177c565b6001905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114256115b2565b73ffffffffffffffffffffffffffffffffffffffff1614611444575f80fd5b5f60648261145130610f00565b61145b9190612ee9565b61146591906131a0565b90505f811180156114825750601560179054906101000a900460ff165b15611491576114908161236b565b5b5f4790505f8111156114a7576114a6816125d6565b5b505050565b60125481565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114f26115b2565b73ffffffffffffffffffffffffffffffffffffffff1614611511575f80fd5b60065481111561151f575f80fd5b806009819055508060078190555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161e90613240565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168c906132ce565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161176f919061290b565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e19061335c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184f906133ea565b60405180910390fd5b5f811161189a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189190613478565b60405180910390fd5b5f60158054906101000a900460ff166119885760035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611948575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611987576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197e906134e0565b60405180910390fd5b5b6119906112c0565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156119fe57506119ce6112c0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a57575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f995760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611afa575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611b02575f80fd5b5f600f5403611b4a57611b476064611b39600b54600f5411611b2657600754611b2a565b6009545b856122ab90919063ffffffff16565b61232290919063ffffffff16565b90505b5f600f541115611b7f57611b7c6064611b6e600e54856122ab90919063ffffffff16565b61232290919063ffffffff16565b90505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c28575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c7b575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d7357601054821115611cc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbc90613548565b60405180910390fd5b60115482611cd285610f00565b611cdc9190613566565b1115611d1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d14906135e3565b60405180910390fd5b611d596064611d4b600b54600f5411611d3857600754611d3c565b6009545b856122ab90919063ffffffff16565b61232290919063ffffffff16565b9050600f5f815480929190611d6d90613601565b91905055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611dfb57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611e3f57611e3c6064611e2e600c54600f5411611e1b57600854611e1f565b600a545b856122ab90919063ffffffff16565b61232290919063ffffffff16565b90505b5f611e4930610f00565b9050601560169054906101000a900460ff16158015611eb4575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611ecc5750601560179054906101000a900460ff165b8015611ed9575060125481115b8015611ee85750600d54600f54115b15611f9757601754431115611eff575f6016819055505b600360165410611f44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3b90613692565b60405180910390fd5b611f61611f5c84611f578460135461263e565b61263e565b61236b565b5f4790505f811115611f7757611f76476125d6565b5b60165f815480929190611f8990613601565b919050555043601781905550505b505b5f81111561209857611ff18160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461265690919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161208f919061290b565b60405180910390a35b6120e88260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126b390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061218b61213f82846126b390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461265690919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61222e84866126b390919063ffffffff16565b60405161223b919061290b565b60405180910390a350505050565b5f838311158290612290576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228791906127cd565b60405180910390fd5b505f838561229e91906136b0565b9050809150509392505050565b5f8083036122bb575f905061231c565b5f82846122c89190612ee9565b90508284826122d791906131a0565b14612317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230e90613753565b60405180910390fd5b809150505b92915050565b5f61236383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126fc565b905092915050565b6001601560166101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156123a2576123a1612928565b5b6040519080825280602002602001820160405280156123d05781602001602082028036833780820191505090505b50905030815f815181106123e7576123e6612d16565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561248b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124af9190612f3e565b816001815181106124c3576124c2612d16565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125293060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115b9565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161258b959493929190613828565b5f604051808303815f87803b1580156125a2575f80fd5b505af11580156125b4573d5f803e3d5ffd5b50505050505f601560166101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561263a573d5f803e3d5ffd5b5050565b5f81831161264c578261264e565b815b905092915050565b5f8082846126649190613566565b9050838110156126a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a0906138ca565b60405180910390fd5b8091505092915050565b5f6126f483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612249565b905092915050565b5f8083118290612742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273991906127cd565b60405180910390fd5b505f838561275091906131a0565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61279f8261275d565b6127a98185612767565b93506127b9818560208601612777565b6127c281612785565b840191505092915050565b5f6020820190508181035f8301526127e58184612795565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612827826127fe565b9050919050565b6128378161281d565b8114612841575f80fd5b50565b5f813590506128528161282e565b92915050565b5f819050919050565b61286a81612858565b8114612874575f80fd5b50565b5f8135905061288581612861565b92915050565b5f80604083850312156128a1576128a06127f6565b5b5f6128ae85828601612844565b92505060206128bf85828601612877565b9150509250929050565b5f8115159050919050565b6128dd816128c9565b82525050565b5f6020820190506128f65f8301846128d4565b92915050565b61290581612858565b82525050565b5f60208201905061291e5f8301846128fc565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61295e82612785565b810181811067ffffffffffffffff8211171561297d5761297c612928565b5b80604052505050565b5f61298f6127ed565b905061299b8282612955565b919050565b5f67ffffffffffffffff8211156129ba576129b9612928565b5b602082029050602081019050919050565b5f80fd5b5f6129e16129dc846129a0565b612986565b90508083825260208201905060208402830185811115612a0457612a036129cb565b5b835b81811015612a2d5780612a198882612844565b845260208401935050602081019050612a06565b5050509392505050565b5f82601f830112612a4b57612a4a612924565b5b8135612a5b8482602086016129cf565b91505092915050565b5f60208284031215612a7957612a786127f6565b5b5f82013567ffffffffffffffff811115612a9657612a956127fa565b5b612aa284828501612a37565b91505092915050565b5f805f60608486031215612ac257612ac16127f6565b5b5f612acf86828701612844565b9350506020612ae086828701612844565b9250506040612af186828701612877565b9150509250925092565b5f60ff82169050919050565b612b1081612afb565b82525050565b5f602082019050612b295f830184612b07565b92915050565b5f60208284031215612b4457612b436127f6565b5b5f612b5184828501612844565b91505092915050565b5f60208284031215612b6f57612b6e6127f6565b5b5f612b7c84828501612877565b91505092915050565b612b8e8161281d565b82525050565b5f602082019050612ba75f830184612b85565b92915050565b5f8060408385031215612bc357612bc26127f6565b5b5f612bd085828601612844565b9250506020612be185828601612844565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612c1f602083612767565b9150612c2a82612beb565b602082019050919050565b5f6020820190508181035f830152612c4c81612c13565b9050919050565b5f819050919050565b5f819050919050565b5f612c7f612c7a612c7584612c53565b612c5c565b612858565b9050919050565b612c8f81612c65565b82525050565b5f602082019050612ca85f830184612c86565b92915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612ce2601783612767565b9150612ced82612cae565b602082019050919050565b5f6020820190508181035f830152612d0f81612cd6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612dc557808604811115612da157612da0612d43565b5b6001851615612db05780820291505b8081029050612dbe85612d70565b9450612d85565b94509492505050565b5f82612ddd5760019050612e98565b81612dea575f9050612e98565b8160018114612e005760028114612e0a57612e39565b6001915050612e98565b60ff841115612e1c57612e1b612d43565b5b8360020a915084821115612e3357612e32612d43565b5b50612e98565b5060208310610133831016604e8410600b8410161715612e6e5782820a905083811115612e6957612e68612d43565b5b612e98565b612e7b8484846001612d7c565b92509050818404811115612e9257612e91612d43565b5b81810290505b9392505050565b5f612ea982612858565b9150612eb483612afb565b9250612ee17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612dce565b905092915050565b5f612ef382612858565b9150612efe83612858565b9250828202612f0c81612858565b91508282048414831517612f2357612f22612d43565b5b5092915050565b5f81519050612f388161282e565b92915050565b5f60208284031215612f5357612f526127f6565b5b5f612f6084828501612f2a565b91505092915050565b5f604082019050612f7c5f830185612b85565b612f896020830184612b85565b9392505050565b5f60c082019050612fa35f830189612b85565b612fb060208301886128fc565b612fbd6040830187612c86565b612fca6060830186612c86565b612fd76080830185612b85565b612fe460a08301846128fc565b979650505050505050565b5f81519050612ffd81612861565b92915050565b5f805f6060848603121561301a576130196127f6565b5b5f61302786828701612fef565b935050602061303886828701612fef565b925050604061304986828701612fef565b9150509250925092565b5f6040820190506130665f830185612b85565b61307360208301846128fc565b9392505050565b613083816128c9565b811461308d575f80fd5b50565b5f8151905061309e8161307a565b92915050565b5f602082840312156130b9576130b86127f6565b5b5f6130c684828501613090565b91505092915050565b5f602082840312156130e4576130e36127f6565b5b5f6130f184828501612fef565b91505092915050565b5f61311461310f61310a846127fe565b612c5c565b6127fe565b9050919050565b5f613125826130fa565b9050919050565b5f6131368261311b565b9050919050565b6131468161312c565b82525050565b5f60408201905061315f5f83018561313d565b61316c60208301846128fc565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6131aa82612858565b91506131b583612858565b9250826131c5576131c4613173565b5b828204905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61322a602483612767565b9150613235826131d0565b604082019050919050565b5f6020820190508181035f8301526132578161321e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132b8602283612767565b91506132c38261325e565b604082019050919050565b5f6020820190508181035f8301526132e5816132ac565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613346602583612767565b9150613351826132ec565b604082019050919050565b5f6020820190508181035f8301526133738161333a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6133d4602383612767565b91506133df8261337a565b604082019050919050565b5f6020820190508181035f830152613401816133c8565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613462602983612767565b915061346d82613408565b604082019050919050565b5f6020820190508181035f83015261348f81613456565b9050919050565b7f54726164696e67206e6f742073746172746564210000000000000000000000005f82015250565b5f6134ca601483612767565b91506134d582613496565b602082019050919050565b5f6020820190508181035f8301526134f7816134be565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f613532601983612767565b915061353d826134fe565b602082019050919050565b5f6020820190508181035f83015261355f81613526565b9050919050565b5f61357082612858565b915061357b83612858565b925082820190508082111561359357613592612d43565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6135cd601a83612767565b91506135d882613599565b602082019050919050565b5f6020820190508181035f8301526135fa816135c1565b9050919050565b5f61360b82612858565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361363d5761363c612d43565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f61367c601783612767565b915061368782613648565b602082019050919050565b5f6020820190508181035f8301526136a981613670565b9050919050565b5f6136ba82612858565b91506136c583612858565b92508282039050818111156136dd576136dc612d43565b5b92915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61373d602183612767565b9150613748826136e3565b604082019050919050565b5f6020820190508181035f83015261376a81613731565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6137a38161281d565b82525050565b5f6137b4838361379a565b60208301905092915050565b5f602082019050919050565b5f6137d682613771565b6137e0818561377b565b93506137eb8361378b565b805f5b8381101561381b57815161380288826137a9565b975061380d836137c0565b9250506001810190506137ee565b5085935050505092915050565b5f60a08201905061383b5f8301886128fc565b6138486020830187612c86565b818103604083015261385a81866137cc565b90506138696060830185612b85565b61387660808301846128fc565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6138b4601b83612767565b91506138bf82613880565b602082019050919050565b5f6020820190508181035f8301526138e1816138a8565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220148ddc8f4eff5d5dae252058ba3106ba4bec2ca9a432d03a66ab3bee2c41175864736f6c634300081a0033
Deployed Bytecode
0x60806040526004361061014e575f3560e01c80637d1db4a5116100b557806395d89b411161006e57806395d89b411461042b578063a9059cbb14610455578063b70143c914610491578063bf474bed146104b9578063dc1052e2146104e3578063dd62ed3e1461050b57610155565b80637d1db4a5146103355780638cd09d501461035f5780638cd4426d146103875780638da5cb5b146103af5780638f9a55c0146103d957806390ed5c031461040357610155565b806323b872dd1161010757806323b872dd146102515780632f5f25721461028d578063313ce567146102a35780636384c356146102cd57806370a08231146102e3578063715018a61461031f57610155565b806306fdde0314610159578063095ea7b3146101835780630faee56f146101bf578063109daa99146101e957806312d0ecb5146101ff57806318160ddd1461022757610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061016d610547565b60405161017a91906127cd565b60405180910390f35b34801561018e575f80fd5b506101a960048036038101906101a4919061288b565b610584565b6040516101b691906128e3565b60405180910390f35b3480156101ca575f80fd5b506101d36105a1565b6040516101e0919061290b565b60405180910390f35b3480156101f4575f80fd5b506101fd6105a7565b005b34801561020a575f80fd5b5061022560048036038101906102209190612a64565b61067b565b005b348015610232575f80fd5b5061023b610c30565b604051610248919061290b565b60405180910390f35b34801561025c575f80fd5b5061027760048036038101906102729190612aab565b610c54565b60405161028491906128e3565b60405180910390f35b348015610298575f80fd5b506102a1610d28565b005b3480156102ae575f80fd5b506102b7610dac565b6040516102c49190612b16565b60405180910390f35b3480156102d8575f80fd5b506102e1610db4565b005b3480156102ee575f80fd5b5061030960048036038101906103049190612b2f565b610f00565b604051610316919061290b565b60405180910390f35b34801561032a575f80fd5b50610333610f46565b005b348015610340575f80fd5b50610349611094565b604051610356919061290b565b60405180910390f35b34801561036a575f80fd5b5061038560048036038101906103809190612b5a565b61109a565b005b348015610392575f80fd5b506103ad60048036038101906103a8919061288b565b61111f565b005b3480156103ba575f80fd5b506103c36112c0565b6040516103d09190612b94565b60405180910390f35b3480156103e4575f80fd5b506103ed6112e7565b6040516103fa919061290b565b60405180910390f35b34801561040e575f80fd5b5061042960048036038101906104249190612b5a565b6112ed565b005b348015610436575f80fd5b5061043f61138b565b60405161044c91906127cd565b60405180910390f35b348015610460575f80fd5b5061047b6004803603810190610476919061288b565b6113c8565b60405161048891906128e3565b60405180910390f35b34801561049c575f80fd5b506104b760048036038101906104b29190612b5a565b6113e5565b005b3480156104c4575f80fd5b506104cd6114ac565b6040516104da919061290b565b60405180910390f35b3480156104ee575f80fd5b5061050960048036038101906105049190612b5a565b6114b2565b005b348015610516575f80fd5b50610531600480360381019061052c9190612bad565b611530565b60405161053e919061290b565b60405180910390f35b60606040518060400160405280600b81526020017f476f7665726e6147616d65000000000000000000000000000000000000000000815250905090565b5f6105976105906115b2565b84846115b9565b6001905092915050565b60135481565b6105af6115b2565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461063b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063290612c35565b60405180910390fd5b5f600e819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516106719190612c95565b60405180910390a1565b6106836115b2565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461070f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070690612c35565b60405180910390fd5b601560149054906101000a900460ff161561075f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075690612cf8565b60405180910390fd5b600146036107bc57737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5f5b815181101561084357600160035f8484815181106107df576107de612d16565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506107be565b5061088d3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a6108789190612e9f565b6461f313f8806108889190612ee9565b6115b9565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061091b9190612f3e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c59190612f3e565b6040518363ffffffff1660e01b81526004016109e2929190612f69565b6020604051808303815f875af11580156109fe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a229190612f3e565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610aa930610f00565b5f80610ab36112c0565b426040518863ffffffff1660e01b8152600401610ad596959493929190612f90565b60606040518083038185885af1158015610af1573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b169190613003565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610bb6929190613053565b6020604051808303815f875af1158015610bd2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf691906130a4565b506001601560176101000a81548160ff0219169083151502179055506001601560146101000a81548160ff02191690831515021790555050565b5f6012600a610c3f9190612e9f565b6461f313f880610c4f9190612ee9565b905090565b5f610c6084848461177c565b610d1d84610c6c6115b2565b610d18856040518060600160405280602881526020016138e96028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610ccf6115b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122499092919063ffffffff16565b6115b9565b600190509392505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d686115b2565b73ffffffffffffffffffffffffffffffffffffffff1614610d87575f80fd5b5f6006819055505f6009819055505f6007819055505f600a819055505f600881905550565b5f6012905090565b610dbc6115b2565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3f90612c35565b60405180910390fd5b60016015806101000a81548160ff0219169083151502179055506012600a610e709190612e9f565b6461f313f880610e809190612ee9565b6010819055506012600a610e949190612e9f565b6461f313f880610ea49190612ee9565b6011819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610ed99190612e9f565b6461f313f880610ee99190612ee9565b604051610ef6919061290b565b60405180910390a1565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610f4e6115b2565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd190612c35565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60105481565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110da6115b2565b73ffffffffffffffffffffffffffffffffffffffff16146110f9575f80fd5b600654811115611107575f80fd5b80600a81905550806008819055505f600e8190555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661115f6115b2565b73ffffffffffffffffffffffffffffffffffffffff161461117e575f80fd5b5f61121c606461120e848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111c19190612b94565b602060405180830381865afa1580156111dc573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061120091906130cf565b6122ab90919063ffffffff16565b61232290919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161127a92919061314c565b6020604051808303815f875af1158015611296573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112ba91906130a4565b50505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661132d6115b2565b73ffffffffffffffffffffffffffffffffffffffff161461134c575f80fd5b806103e86012600a61135e9190612e9f565b6461f313f88061136e9190612ee9565b61137891906131a0565b6113829190612ee9565b60128190555050565b60606040518060400160405280600481526020017f474f474100000000000000000000000000000000000000000000000000000000815250905090565b5f6113db6113d46115b2565b848461177c565b6001905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114256115b2565b73ffffffffffffffffffffffffffffffffffffffff1614611444575f80fd5b5f60648261145130610f00565b61145b9190612ee9565b61146591906131a0565b90505f811180156114825750601560179054906101000a900460ff165b15611491576114908161236b565b5b5f4790505f8111156114a7576114a6816125d6565b5b505050565b60125481565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114f26115b2565b73ffffffffffffffffffffffffffffffffffffffff1614611511575f80fd5b60065481111561151f575f80fd5b806009819055508060078190555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161e90613240565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168c906132ce565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161176f919061290b565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e19061335c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184f906133ea565b60405180910390fd5b5f811161189a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189190613478565b60405180910390fd5b5f60158054906101000a900460ff166119885760035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611948575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611987576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197e906134e0565b60405180910390fd5b5b6119906112c0565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156119fe57506119ce6112c0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a57575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f995760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611afa575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611b02575f80fd5b5f600f5403611b4a57611b476064611b39600b54600f5411611b2657600754611b2a565b6009545b856122ab90919063ffffffff16565b61232290919063ffffffff16565b90505b5f600f541115611b7f57611b7c6064611b6e600e54856122ab90919063ffffffff16565b61232290919063ffffffff16565b90505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c28575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c7b575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d7357601054821115611cc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbc90613548565b60405180910390fd5b60115482611cd285610f00565b611cdc9190613566565b1115611d1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d14906135e3565b60405180910390fd5b611d596064611d4b600b54600f5411611d3857600754611d3c565b6009545b856122ab90919063ffffffff16565b61232290919063ffffffff16565b9050600f5f815480929190611d6d90613601565b91905055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611dfb57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611e3f57611e3c6064611e2e600c54600f5411611e1b57600854611e1f565b600a545b856122ab90919063ffffffff16565b61232290919063ffffffff16565b90505b5f611e4930610f00565b9050601560169054906101000a900460ff16158015611eb4575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611ecc5750601560179054906101000a900460ff165b8015611ed9575060125481115b8015611ee85750600d54600f54115b15611f9757601754431115611eff575f6016819055505b600360165410611f44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3b90613692565b60405180910390fd5b611f61611f5c84611f578460135461263e565b61263e565b61236b565b5f4790505f811115611f7757611f76476125d6565b5b60165f815480929190611f8990613601565b919050555043601781905550505b505b5f81111561209857611ff18160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461265690919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161208f919061290b565b60405180910390a35b6120e88260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126b390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061218b61213f82846126b390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461265690919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61222e84866126b390919063ffffffff16565b60405161223b919061290b565b60405180910390a350505050565b5f838311158290612290576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228791906127cd565b60405180910390fd5b505f838561229e91906136b0565b9050809150509392505050565b5f8083036122bb575f905061231c565b5f82846122c89190612ee9565b90508284826122d791906131a0565b14612317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230e90613753565b60405180910390fd5b809150505b92915050565b5f61236383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126fc565b905092915050565b6001601560166101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156123a2576123a1612928565b5b6040519080825280602002602001820160405280156123d05781602001602082028036833780820191505090505b50905030815f815181106123e7576123e6612d16565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561248b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124af9190612f3e565b816001815181106124c3576124c2612d16565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125293060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115b9565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161258b959493929190613828565b5f604051808303815f87803b1580156125a2575f80fd5b505af11580156125b4573d5f803e3d5ffd5b50505050505f601560166101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561263a573d5f803e3d5ffd5b5050565b5f81831161264c578261264e565b815b905092915050565b5f8082846126649190613566565b9050838110156126a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a0906138ca565b60405180910390fd5b8091505092915050565b5f6126f483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612249565b905092915050565b5f8083118290612742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273991906127cd565b60405180910390fd5b505f838561275091906131a0565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61279f8261275d565b6127a98185612767565b93506127b9818560208601612777565b6127c281612785565b840191505092915050565b5f6020820190508181035f8301526127e58184612795565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612827826127fe565b9050919050565b6128378161281d565b8114612841575f80fd5b50565b5f813590506128528161282e565b92915050565b5f819050919050565b61286a81612858565b8114612874575f80fd5b50565b5f8135905061288581612861565b92915050565b5f80604083850312156128a1576128a06127f6565b5b5f6128ae85828601612844565b92505060206128bf85828601612877565b9150509250929050565b5f8115159050919050565b6128dd816128c9565b82525050565b5f6020820190506128f65f8301846128d4565b92915050565b61290581612858565b82525050565b5f60208201905061291e5f8301846128fc565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61295e82612785565b810181811067ffffffffffffffff8211171561297d5761297c612928565b5b80604052505050565b5f61298f6127ed565b905061299b8282612955565b919050565b5f67ffffffffffffffff8211156129ba576129b9612928565b5b602082029050602081019050919050565b5f80fd5b5f6129e16129dc846129a0565b612986565b90508083825260208201905060208402830185811115612a0457612a036129cb565b5b835b81811015612a2d5780612a198882612844565b845260208401935050602081019050612a06565b5050509392505050565b5f82601f830112612a4b57612a4a612924565b5b8135612a5b8482602086016129cf565b91505092915050565b5f60208284031215612a7957612a786127f6565b5b5f82013567ffffffffffffffff811115612a9657612a956127fa565b5b612aa284828501612a37565b91505092915050565b5f805f60608486031215612ac257612ac16127f6565b5b5f612acf86828701612844565b9350506020612ae086828701612844565b9250506040612af186828701612877565b9150509250925092565b5f60ff82169050919050565b612b1081612afb565b82525050565b5f602082019050612b295f830184612b07565b92915050565b5f60208284031215612b4457612b436127f6565b5b5f612b5184828501612844565b91505092915050565b5f60208284031215612b6f57612b6e6127f6565b5b5f612b7c84828501612877565b91505092915050565b612b8e8161281d565b82525050565b5f602082019050612ba75f830184612b85565b92915050565b5f8060408385031215612bc357612bc26127f6565b5b5f612bd085828601612844565b9250506020612be185828601612844565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612c1f602083612767565b9150612c2a82612beb565b602082019050919050565b5f6020820190508181035f830152612c4c81612c13565b9050919050565b5f819050919050565b5f819050919050565b5f612c7f612c7a612c7584612c53565b612c5c565b612858565b9050919050565b612c8f81612c65565b82525050565b5f602082019050612ca85f830184612c86565b92915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612ce2601783612767565b9150612ced82612cae565b602082019050919050565b5f6020820190508181035f830152612d0f81612cd6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612dc557808604811115612da157612da0612d43565b5b6001851615612db05780820291505b8081029050612dbe85612d70565b9450612d85565b94509492505050565b5f82612ddd5760019050612e98565b81612dea575f9050612e98565b8160018114612e005760028114612e0a57612e39565b6001915050612e98565b60ff841115612e1c57612e1b612d43565b5b8360020a915084821115612e3357612e32612d43565b5b50612e98565b5060208310610133831016604e8410600b8410161715612e6e5782820a905083811115612e6957612e68612d43565b5b612e98565b612e7b8484846001612d7c565b92509050818404811115612e9257612e91612d43565b5b81810290505b9392505050565b5f612ea982612858565b9150612eb483612afb565b9250612ee17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612dce565b905092915050565b5f612ef382612858565b9150612efe83612858565b9250828202612f0c81612858565b91508282048414831517612f2357612f22612d43565b5b5092915050565b5f81519050612f388161282e565b92915050565b5f60208284031215612f5357612f526127f6565b5b5f612f6084828501612f2a565b91505092915050565b5f604082019050612f7c5f830185612b85565b612f896020830184612b85565b9392505050565b5f60c082019050612fa35f830189612b85565b612fb060208301886128fc565b612fbd6040830187612c86565b612fca6060830186612c86565b612fd76080830185612b85565b612fe460a08301846128fc565b979650505050505050565b5f81519050612ffd81612861565b92915050565b5f805f6060848603121561301a576130196127f6565b5b5f61302786828701612fef565b935050602061303886828701612fef565b925050604061304986828701612fef565b9150509250925092565b5f6040820190506130665f830185612b85565b61307360208301846128fc565b9392505050565b613083816128c9565b811461308d575f80fd5b50565b5f8151905061309e8161307a565b92915050565b5f602082840312156130b9576130b86127f6565b5b5f6130c684828501613090565b91505092915050565b5f602082840312156130e4576130e36127f6565b5b5f6130f184828501612fef565b91505092915050565b5f61311461310f61310a846127fe565b612c5c565b6127fe565b9050919050565b5f613125826130fa565b9050919050565b5f6131368261311b565b9050919050565b6131468161312c565b82525050565b5f60408201905061315f5f83018561313d565b61316c60208301846128fc565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6131aa82612858565b91506131b583612858565b9250826131c5576131c4613173565b5b828204905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61322a602483612767565b9150613235826131d0565b604082019050919050565b5f6020820190508181035f8301526132578161321e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132b8602283612767565b91506132c38261325e565b604082019050919050565b5f6020820190508181035f8301526132e5816132ac565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613346602583612767565b9150613351826132ec565b604082019050919050565b5f6020820190508181035f8301526133738161333a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6133d4602383612767565b91506133df8261337a565b604082019050919050565b5f6020820190508181035f830152613401816133c8565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613462602983612767565b915061346d82613408565b604082019050919050565b5f6020820190508181035f83015261348f81613456565b9050919050565b7f54726164696e67206e6f742073746172746564210000000000000000000000005f82015250565b5f6134ca601483612767565b91506134d582613496565b602082019050919050565b5f6020820190508181035f8301526134f7816134be565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f613532601983612767565b915061353d826134fe565b602082019050919050565b5f6020820190508181035f83015261355f81613526565b9050919050565b5f61357082612858565b915061357b83612858565b925082820190508082111561359357613592612d43565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6135cd601a83612767565b91506135d882613599565b602082019050919050565b5f6020820190508181035f8301526135fa816135c1565b9050919050565b5f61360b82612858565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361363d5761363c612d43565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f61367c601783612767565b915061368782613648565b602082019050919050565b5f6020820190508181035f8301526136a981613670565b9050919050565b5f6136ba82612858565b91506136c583612858565b92508282039050818111156136dd576136dc612d43565b5b92915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61373d602183612767565b9150613748826136e3565b604082019050919050565b5f6020820190508181035f83015261376a81613731565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6137a38161281d565b82525050565b5f6137b4838361379a565b60208301905092915050565b5f602082019050919050565b5f6137d682613771565b6137e0818561377b565b93506137eb8361378b565b805f5b8381101561381b57815161380288826137a9565b975061380d836137c0565b9250506001810190506137ee565b5085935050505092915050565b5f60a08201905061383b5f8301886128fc565b6138486020830187612c86565b818103604083015261385a81866137cc565b90506138696060830185612b85565b61387660808301846128fc565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6138b4601b83612767565b91506138bf82613880565b602082019050919050565b5f6020820190508181035f8301526138e1816138a8565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220148ddc8f4eff5d5dae252058ba3106ba4bec2ca9a432d03a66ab3bee2c41175864736f6c634300081a0033
Deployed Bytecode Sourcemap
5661:10265:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8205:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9038:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6838:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13283:119;;;;;;;;;;;;;:::i;:::-;;13510:884;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8482:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9207:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15005:207;;;;;;;;;;;;;:::i;:::-;;8391:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13088:187;;;;;;;;;;;;;:::i;:::-;;8585:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4742:148;;;;;;;;;;;;;:::i;:::-;;6643:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14598:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15257:266;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4528:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6700:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14822:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8296:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8712:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15531:392;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6759:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14402:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8887:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8205:83;8242:13;8275:5;;;;;;;;;;;;;;;;;8268:12;;8205:83;:::o;9038:161::-;9113:4;9130:39;9139:12;:10;:12::i;:::-;9153:7;9162:6;9130:8;:39::i;:::-;9187:4;9180:11;;9038:161;;;;:::o;6838:47::-;;;;:::o;13283:119::-;4665:12;:10;:12::i;:::-;4655:22;;:6;;;;;;;;;;:22;;;4647:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13356:1:::1;13341:12;:16;;;;13373:21;13392:1;13373:21;;;;;;:::i;:::-;;;;;;;;13283:119::o:0;13510:884::-;4665:12;:10;:12::i;:::-;4655:22;;:6;;;;;;;;;;:22;;;4647:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13594:11:::1;;;;;;;;;;;13593:12;13585:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;13674:1;13657:13;:18:::0;13653:150:::1;;13748:42;13711:15;;:80;;;;;;;;;;;;;;;;;;13653:150;13820:6;13815:98;13836:3;:10;13832:1;:14;13815:98;;;13897:4;13868:18;:26;13887:3;13891:1;13887:6;;;;;;;;:::i;:::-;;;;;;;;13868:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;13848:3;;;;;;;13815:98;;;;13925:58;13942:4;13957:15;;;;;;;;;;;6451:2;6510;:13;;;;:::i;:::-;6495:12;:28;;;;:::i;:::-;13925:8;:58::i;:::-;14028:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14010:55;;;14074:4;14081:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14010:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13994:13;;:110;;;;;;;;;;;;;;;;;;14115:15;;;;;;;;;;;:31;;;14154:21;14185:4;14191:24;14209:4;14191:9;:24::i;:::-;14216:1;14218::::0;14220:7:::1;:5;:7::i;:::-;14228:15;14115:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14262:13;;;;;;;;;;;14255:29;;;14293:15;;;;;;;;;;;14311:14;14255:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14353:4;14339:11;;:18;;;;;;;;;;;;;;;;;;14382:4;14368:11;;:18;;;;;;;;;;;;;;;;;;13510:884:::0;:::o;8482:95::-;8535:7;6451:2;6510;:13;;;;:::i;:::-;6495:12;:28;;;;:::i;:::-;8555:14;;8482:95;:::o;9207:313::-;9305:4;9322:36;9332:6;9340:9;9351:6;9322:9;:36::i;:::-;9369:121;9378:6;9386:12;:10;:12::i;:::-;9400:89;9438:6;9400:89;;;;;;;;;;;;;;;;;:11;:19;9412:6;9400:19;;;;;;;;;;;;;;;:33;9420:12;:10;:12::i;:::-;9400:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;9369:8;:121::i;:::-;9508:4;9501:11;;9207:313;;;;;:::o;15005:207::-;15065:10;;;;;;;;;;;15051:24;;:12;:10;:12::i;:::-;:24;;;15043:33;;;;;;15095:1;15085:7;:11;;;;15120:1;15105:12;:16;;;;15147:1;15130:14;:18;;;;15173:1;15157:13;:17;;;;15201:1;15183:15;:19;;;;15005:207::o;8391:83::-;8432:5;6451:2;8450:16;;8391:83;:::o;13088:187::-;4665:12;:10;:12::i;:::-;4655:22;;:6;;;;;;;;;;:22;;;4647:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13154:4:::1;13141:10;::::0;:17:::1;;;;;;;;;;;;;;;;;;6451:2;6510;:13;;;;:::i;:::-;6495:12;:28;;;;:::i;:::-;13169:12;:22;;;;6451:2;6510;:13;;;;:::i;:::-;6495:12;:28;;;;:::i;:::-;13202:14;:22;;;;13240:27;6451:2;6510;:13;;;;:::i;:::-;6495:12;:28;;;;:::i;:::-;13240:27;;;;;;:::i;:::-;;;;;;;;13088:187::o:0;8585:119::-;8651:7;8678:9;:18;8688:7;8678:18;;;;;;;;;;;;;;;;8671:25;;8585:119;;;:::o;4742:148::-;4665:12;:10;:12::i;:::-;4655:22;;:6;;;;;;;;;;:22;;;4647:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4849:1:::1;4812:40;;4833:6;::::0;::::1;;;;;;;;4812:40;;;;;;;;;;;;4880:1;4863:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;4742:148::o:0;6643:31::-;;;;:::o;14598:216::-;14674:10;;;;;;;;;;;14660:24;;:12;:10;:12::i;:::-;:24;;;14652:33;;;;;;14711:7;;14702;:16;;14694:25;;;;;;14742:7;14728:13;:21;;;;14774:7;14758:15;:23;;;;14805:1;14790:12;:16;;;;14598:216;:::o;15257:266::-;15355:10;;;;;;;;;;;15341:24;;:12;:10;:12::i;:::-;:24;;;15333:33;;;;;;15377:15;15395:63;15454:3;15395:54;15441:7;15402:8;15395:26;;;15430:4;15395:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;:54;;;;:::i;:::-;:58;;:63;;;;:::i;:::-;15377:81;;15476:8;15469:25;;;15495:10;;;;;;;;;;;15507:7;15469:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15322:201;15257:266;;:::o;4528:79::-;4566:7;4593:6;;;;;;;;;;;4586:13;;4528:79;:::o;6700:33::-;;;;:::o;14822:175::-;14908:10;;;;;;;;;;;14894:24;;:12;:10;:12::i;:::-;:24;;;14886:33;;;;;;14963:6;14956:4;6451:2;6510;:13;;;;:::i;:::-;6495:12;:28;;;;:::i;:::-;14948:12;;;;:::i;:::-;14947:22;;;;:::i;:::-;14928:17;:41;;;;14822:175;:::o;8296:87::-;8335:13;8368:7;;;;;;;;;;;;;;;;;8361:14;;8296:87;:::o;8712:167::-;8790:4;8807:42;8817:12;:10;:12::i;:::-;8831:9;8842:6;8807:9;:42::i;:::-;8867:4;8860:11;;8712:167;;;;:::o;15531:392::-;15612:10;;;;;;;;;;;15598:24;;:12;:10;:12::i;:::-;:24;;;15590:33;;;;;;15634:20;15688:3;15680:7;15655:24;15673:4;15655:9;:24::i;:::-;:32;;;;:::i;:::-;:36;;;;:::i;:::-;15634:57;;15718:1;15705:12;:14;:29;;;;;15723:11;;;;;;;;;;;15705:29;15702:88;;;15748:30;15765:12;15748:16;:30::i;:::-;15702:88;15800:18;15819:21;15800:40;;15865:1;15854:10;:12;15851:65;;;15880:24;15893:10;15880:12;:24::i;:::-;15851:65;15579:344;;15531:392;:::o;6759:52::-;;;;:::o;14402:188::-;14477:10;;;;;;;;;;;14463:24;;:12;:10;:12::i;:::-;:24;;;14455:33;;;;;;14514:7;;14505;:16;;14497:25;;;;;;14544:7;14531:12;:20;;;;14575:7;14560:14;:22;;;;14402:188;:::o;8887:143::-;8968:7;8995:11;:18;9007:5;8995:18;;;;;;;;;;;;;;;:27;9014:7;8995:27;;;;;;;;;;;;;;;;8988:34;;8887:143;;;;:::o;2283:98::-;2336:7;2363:10;2356:17;;2283:98;:::o;9528:335::-;9638:1;9621:19;;:5;:19;;;9613:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9719:1;9700:21;;:7;:21;;;9692:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9801:6;9771:11;:18;9783:5;9771:18;;;;;;;;;;;;;;;:27;9790:7;9771:27;;;;;;;;;;;;;;;:36;;;;9839:7;9823:32;;9832:5;9823:32;;;9848:6;9823:32;;;;;;:::i;:::-;;;;;;;;9528:335;;;:::o;9871:2610::-;9975:1;9959:18;;:4;:18;;;9951:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10052:1;10038:16;;:2;:16;;;10030:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10122:1;10113:6;:10;10105:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10180:17;10217:10;;;;;;;;;;10212:128;;10252:18;:24;10271:4;10252:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10280:18;:22;10299:2;10280:22;;;;;;;;;;;;;;;;;;;;;;;;;10252:50;10243:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;10212:128;10364:7;:5;:7::i;:::-;10356:15;;:4;:15;;;;:32;;;;;10381:7;:5;:7::i;:::-;10375:13;;:2;:13;;;;10356:32;:52;;;;;10398:10;;;;;;;;;;;10392:16;;:2;:16;;;;10356:52;10352:1773;;;10434:4;:10;10439:4;10434:10;;;;;;;;;;;;;;;;;;;;;;;;;10433:11;:24;;;;;10449:4;:8;10454:2;10449:8;;;;;;;;;;;;;;;;;;;;;;;;;10448:9;10433:24;10425:33;;;;;;10489:1;10478:9;;:12;10475:139;;10522:76;10594:3;10522:67;10544:15;;10534:9;;:25;10533:55;;10574:14;;10533:55;;;10561:12;;10533:55;10522:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;10510:88;;10475:139;10641:1;10631:9;;:11;10628:95;;;10674:33;10703:3;10674:24;10685:12;;10674:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;10662:45;;10628:95;10751:13;;;;;;;;;;;10743:21;;:4;:21;;;:55;;;;;10782:15;;;;;;;;;;;10768:30;;:2;:30;;;;10743:55;:83;;;;;10804:18;:22;10823:2;10804:22;;;;;;;;;;;;;;;;;;;;;;;;;10802:24;10743:83;10739:420;;;10866:12;;10856:6;:22;;10848:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;10961:14;;10951:6;10935:13;10945:2;10935:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;10927:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11037:76;11109:3;11037:67;11059:15;;11049:9;;:25;11048:55;;11089:14;;11048:55;;;11076:12;;11048:55;11037:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;11025:88;;11132:9;;:11;;;;;;;;;:::i;:::-;;;;;;10739:420;11184:13;;;;;;;;;;;11178:19;;:2;:19;;;:43;;;;;11216:4;11201:20;;:4;:20;;;;11178:43;11175:174;;;11254:79;11329:3;11254:70;11276:16;;11266:9;;:26;11265:58;;11308:15;;11265:58;;;11294:13;;11265:58;11254:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;11242:91;;11175:174;11365:28;11396:24;11414:4;11396:9;:24::i;:::-;11365:55;;11440:6;;;;;;;;;;;11439:7;:30;;;;;11456:13;;;;;;;;;;;11450:19;;:2;:19;;;11439:30;:45;;;;;11473:11;;;;;;;;;;;11439:45;:89;;;;;11511:17;;11488:20;:40;11439:89;:123;;;;;11544:18;;11532:9;;:30;11439:123;11435:679;;;11602:13;;11587:12;:28;11583:90;;;11652:1;11640:9;:13;;;;11583:90;11711:1;11699:9;;:13;11691:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;11759:69;11776:51;11780:6;11788:38;11792:20;11814:11;;11788:3;:38::i;:::-;11776:3;:51::i;:::-;11759:16;:69::i;:::-;11847:26;11876:21;11847:50;;11941:1;11920:18;:22;11916:106;;;11967:35;11980:21;11967:12;:35::i;:::-;11916:106;12040:9;;:11;;;;;;;;;:::i;:::-;;;;;;12086:12;12070:13;:28;;;;11564:550;11435:679;10410:1715;10352:1773;12150:1;12140:9;:11;12137:161;;;12190:39;12219:9;12190;:24;12208:4;12190:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;12165:9;:24;12183:4;12165:24;;;;;;;;;;;;;;;:64;;;;12270:4;12247:39;;12256:4;12247:39;;;12276:9;12247:39;;;;;;:::i;:::-;;;;;;;;12137:161;12324:27;12344:6;12324:9;:15;12334:4;12324:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;12308:9;:15;12318:4;12308:15;;;;;;;;;;;;;;;:43;;;;12376:40;12394:21;12405:9;12394:6;:10;;:21;;;;:::i;:::-;12376:9;:13;12386:2;12376:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;12362:9;:13;12372:2;12362:13;;;;;;;;;;;;;;;:54;;;;12447:2;12432:41;;12441:4;12432:41;;;12451:21;12462:9;12451:6;:10;;:21;;;;:::i;:::-;12432:41;;;;;;:::i;:::-;;;;;;;;9940:2541;9871:2610;;;:::o;3420:190::-;3506:7;3539:1;3534;:6;;3542:12;3526:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3566:9;3582:1;3578;:5;;;;:::i;:::-;3566:17;;3601:1;3594:8;;;3420:190;;;;;:::o;3618:246::-;3676:7;3705:1;3700;:6;3696:47;;3730:1;3723:8;;;;3696:47;3753:9;3769:1;3765;:5;;;;:::i;:::-;3753:17;;3798:1;3793;3789;:5;;;;:::i;:::-;:10;3781:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3855:1;3848:8;;;3618:246;;;;;:::o;3872:132::-;3930:7;3957:39;3961:1;3964;3957:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3950:46;;3872:132;;;;:::o;12597:483::-;7345:4;7336:6;;:13;;;;;;;;;;;;;;;;;;12675:21:::1;12713:1;12699:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12675:40;;12744:4;12726;12731:1;12726:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12770:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12760:4;12765:1;12760:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12803:62;12820:4;12835:15;;;;;;;;;;;12853:11;12803:8;:62::i;:::-;12876:15;;;;;;;;;;;:66;;;12957:11;12983:1;12999:4;13026;13046:15;12876:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12664:416;7381:5:::0;7372:6;;:14;;;;;;;;;;;;;;;;;;12597:483;:::o;13410:92::-;13467:10;;;;;;;;;;;:19;;:27;13487:6;13467:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13410:92;:::o;12491:98::-;12548:7;12575:1;12573;:3;12572:9;;12580:1;12572:9;;;12578:1;12572:9;12565:16;;12491:98;;;;:::o;3089:179::-;3147:7;3167:9;3183:1;3179;:5;;;;:::i;:::-;3167:17;;3208:1;3203;:6;;3195:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3259:1;3252:8;;;3089:179;;;;:::o;3276:136::-;3334:7;3361:43;3365:1;3368;3361:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3354:50;;3276:136;;;;:::o;4012:189::-;4098:7;4130:1;4126;:5;4133:12;4118:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4157:9;4173:1;4169;:5;;;;:::i;:::-;4157:17;;4192:1;4185:8;;;4012:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1242:75::-;1275:6;1308:2;1302:9;1292:19;;1242:75;:::o;1323:117::-;1432:1;1429;1422:12;1446:117;1555:1;1552;1545:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:117::-;3800:1;3797;3790:12;3814:180;3862:77;3859:1;3852:88;3959:4;3956:1;3949:15;3983:4;3980:1;3973:15;4000:281;4083:27;4105:4;4083:27;:::i;:::-;4075:6;4071:40;4213:6;4201:10;4198:22;4177:18;4165:10;4162:34;4159:62;4156:88;;;4224:18;;:::i;:::-;4156:88;4264:10;4260:2;4253:22;4043:238;4000:281;;:::o;4287:129::-;4321:6;4348:20;;:::i;:::-;4338:30;;4377:33;4405:4;4397:6;4377:33;:::i;:::-;4287:129;;;:::o;4422:311::-;4499:4;4589:18;4581:6;4578:30;4575:56;;;4611:18;;:::i;:::-;4575:56;4661:4;4653:6;4649:17;4641:25;;4721:4;4715;4711:15;4703:23;;4422:311;;;:::o;4739:117::-;4848:1;4845;4838:12;4879:710;4975:5;5000:81;5016:64;5073:6;5016:64;:::i;:::-;5000:81;:::i;:::-;4991:90;;5101:5;5130:6;5123:5;5116:21;5164:4;5157:5;5153:16;5146:23;;5217:4;5209:6;5205:17;5197:6;5193:30;5246:3;5238:6;5235:15;5232:122;;;5265:79;;:::i;:::-;5232:122;5380:6;5363:220;5397:6;5392:3;5389:15;5363:220;;;5472:3;5501:37;5534:3;5522:10;5501:37;:::i;:::-;5496:3;5489:50;5568:4;5563:3;5559:14;5552:21;;5439:144;5423:4;5418:3;5414:14;5407:21;;5363:220;;;5367:21;4981:608;;4879:710;;;;;:::o;5612:370::-;5683:5;5732:3;5725:4;5717:6;5713:17;5709:27;5699:122;;5740:79;;:::i;:::-;5699:122;5857:6;5844:20;5882:94;5972:3;5964:6;5957:4;5949:6;5945:17;5882:94;:::i;:::-;5873:103;;5689:293;5612:370;;;;:::o;5988:539::-;6072:6;6121:2;6109:9;6100:7;6096:23;6092:32;6089:119;;;6127:79;;:::i;:::-;6089:119;6275:1;6264:9;6260:17;6247:31;6305:18;6297:6;6294:30;6291:117;;;6327:79;;:::i;:::-;6291:117;6432:78;6502:7;6493:6;6482:9;6478:22;6432:78;:::i;:::-;6422:88;;6218:302;5988:539;;;;:::o;6533:619::-;6610:6;6618;6626;6675:2;6663:9;6654:7;6650:23;6646:32;6643:119;;;6681:79;;:::i;:::-;6643:119;6801:1;6826:53;6871:7;6862:6;6851:9;6847:22;6826:53;:::i;:::-;6816:63;;6772:117;6928:2;6954:53;6999:7;6990:6;6979:9;6975:22;6954:53;:::i;:::-;6944:63;;6899:118;7056:2;7082:53;7127:7;7118:6;7107:9;7103:22;7082:53;:::i;:::-;7072:63;;7027:118;6533:619;;;;;:::o;7158:86::-;7193:7;7233:4;7226:5;7222:16;7211:27;;7158:86;;;:::o;7250:112::-;7333:22;7349:5;7333:22;:::i;:::-;7328:3;7321:35;7250:112;;:::o;7368:214::-;7457:4;7495:2;7484:9;7480:18;7472:26;;7508:67;7572:1;7561:9;7557:17;7548:6;7508:67;:::i;:::-;7368:214;;;;:::o;7588:329::-;7647:6;7696:2;7684:9;7675:7;7671:23;7667:32;7664:119;;;7702:79;;:::i;:::-;7664:119;7822:1;7847:53;7892:7;7883:6;7872:9;7868:22;7847:53;:::i;:::-;7837:63;;7793:117;7588:329;;;;:::o;7923:::-;7982:6;8031:2;8019:9;8010:7;8006:23;8002:32;7999:119;;;8037:79;;:::i;:::-;7999:119;8157:1;8182:53;8227:7;8218:6;8207:9;8203:22;8182:53;:::i;:::-;8172:63;;8128:117;7923:329;;;;:::o;8258:118::-;8345:24;8363:5;8345:24;:::i;:::-;8340:3;8333:37;8258:118;;:::o;8382:222::-;8475:4;8513:2;8502:9;8498:18;8490:26;;8526:71;8594:1;8583:9;8579:17;8570:6;8526:71;:::i;:::-;8382:222;;;;:::o;8610:474::-;8678:6;8686;8735:2;8723:9;8714:7;8710:23;8706:32;8703:119;;;8741:79;;:::i;:::-;8703:119;8861:1;8886:53;8931:7;8922:6;8911:9;8907:22;8886:53;:::i;:::-;8876:63;;8832:117;8988:2;9014:53;9059:7;9050:6;9039:9;9035:22;9014:53;:::i;:::-;9004:63;;8959:118;8610:474;;;;;:::o;9090:182::-;9230:34;9226:1;9218:6;9214:14;9207:58;9090:182;:::o;9278:366::-;9420:3;9441:67;9505:2;9500:3;9441:67;:::i;:::-;9434:74;;9517:93;9606:3;9517:93;:::i;:::-;9635:2;9630:3;9626:12;9619:19;;9278:366;;;:::o;9650:419::-;9816:4;9854:2;9843:9;9839:18;9831:26;;9903:9;9897:4;9893:20;9889:1;9878:9;9874:17;9867:47;9931:131;10057:4;9931:131;:::i;:::-;9923:139;;9650:419;;;:::o;10075:85::-;10120:7;10149:5;10138:16;;10075:85;;;:::o;10166:60::-;10194:3;10215:5;10208:12;;10166:60;;;:::o;10232:158::-;10290:9;10323:61;10341:42;10350:32;10376:5;10350:32;:::i;:::-;10341:42;:::i;:::-;10323:61;:::i;:::-;10310:74;;10232:158;;;:::o;10396:147::-;10491:45;10530:5;10491:45;:::i;:::-;10486:3;10479:58;10396:147;;:::o;10549:238::-;10650:4;10688:2;10677:9;10673:18;10665:26;;10701:79;10777:1;10766:9;10762:17;10753:6;10701:79;:::i;:::-;10549:238;;;;:::o;10793:173::-;10933:25;10929:1;10921:6;10917:14;10910:49;10793:173;:::o;10972:366::-;11114:3;11135:67;11199:2;11194:3;11135:67;:::i;:::-;11128:74;;11211:93;11300:3;11211:93;:::i;:::-;11329:2;11324:3;11320:12;11313:19;;10972:366;;;:::o;11344:419::-;11510:4;11548:2;11537:9;11533:18;11525:26;;11597:9;11591:4;11587:20;11583:1;11572:9;11568:17;11561:47;11625:131;11751:4;11625:131;:::i;:::-;11617:139;;11344:419;;;:::o;11769:180::-;11817:77;11814:1;11807:88;11914:4;11911:1;11904:15;11938:4;11935:1;11928:15;11955:180;12003:77;12000:1;11993:88;12100:4;12097:1;12090:15;12124:4;12121:1;12114:15;12141:102;12183:8;12230:5;12227:1;12223:13;12202:34;;12141:102;;;:::o;12249:848::-;12310:5;12317:4;12341:6;12332:15;;12365:5;12356:14;;12379:712;12400:1;12390:8;12387:15;12379:712;;;12495:4;12490:3;12486:14;12480:4;12477:24;12474:50;;;12504:18;;:::i;:::-;12474:50;12554:1;12544:8;12540:16;12537:451;;;12969:4;12962:5;12958:16;12949:25;;12537:451;13019:4;13013;13009:15;13001:23;;13049:32;13072:8;13049:32;:::i;:::-;13037:44;;12379:712;;;12249:848;;;;;;;:::o;13103:1073::-;13157:5;13348:8;13338:40;;13369:1;13360:10;;13371:5;;13338:40;13397:4;13387:36;;13414:1;13405:10;;13416:5;;13387:36;13483:4;13531:1;13526:27;;;;13567:1;13562:191;;;;13476:277;;13526:27;13544:1;13535:10;;13546:5;;;13562:191;13607:3;13597:8;13594:17;13591:43;;;13614:18;;:::i;:::-;13591:43;13663:8;13660:1;13656:16;13647:25;;13698:3;13691:5;13688:14;13685:40;;;13705:18;;:::i;:::-;13685:40;13738:5;;;13476:277;;13862:2;13852:8;13849:16;13843:3;13837:4;13834:13;13830:36;13812:2;13802:8;13799:16;13794:2;13788:4;13785:12;13781:35;13765:111;13762:246;;;13918:8;13912:4;13908:19;13899:28;;13953:3;13946:5;13943:14;13940:40;;;13960:18;;:::i;:::-;13940:40;13993:5;;13762:246;14033:42;14071:3;14061:8;14055:4;14052:1;14033:42;:::i;:::-;14018:57;;;;14107:4;14102:3;14098:14;14091:5;14088:25;14085:51;;;14116:18;;:::i;:::-;14085:51;14165:4;14158:5;14154:16;14145:25;;13103:1073;;;;;;:::o;14182:281::-;14240:5;14264:23;14282:4;14264:23;:::i;:::-;14256:31;;14308:25;14324:8;14308:25;:::i;:::-;14296:37;;14352:104;14389:66;14379:8;14373:4;14352:104;:::i;:::-;14343:113;;14182:281;;;;:::o;14469:410::-;14509:7;14532:20;14550:1;14532:20;:::i;:::-;14527:25;;14566:20;14584:1;14566:20;:::i;:::-;14561:25;;14621:1;14618;14614:9;14643:30;14661:11;14643:30;:::i;:::-;14632:41;;14822:1;14813:7;14809:15;14806:1;14803:22;14783:1;14776:9;14756:83;14733:139;;14852:18;;:::i;:::-;14733:139;14517:362;14469:410;;;;:::o;14885:143::-;14942:5;14973:6;14967:13;14958:22;;14989:33;15016:5;14989:33;:::i;:::-;14885:143;;;;:::o;15034:351::-;15104:6;15153:2;15141:9;15132:7;15128:23;15124:32;15121:119;;;15159:79;;:::i;:::-;15121:119;15279:1;15304:64;15360:7;15351:6;15340:9;15336:22;15304:64;:::i;:::-;15294:74;;15250:128;15034:351;;;;:::o;15391:332::-;15512:4;15550:2;15539:9;15535:18;15527:26;;15563:71;15631:1;15620:9;15616:17;15607:6;15563:71;:::i;:::-;15644:72;15712:2;15701:9;15697:18;15688:6;15644:72;:::i;:::-;15391:332;;;;;:::o;15729:807::-;15978:4;16016:3;16005:9;16001:19;15993:27;;16030:71;16098:1;16087:9;16083:17;16074:6;16030:71;:::i;:::-;16111:72;16179:2;16168:9;16164:18;16155:6;16111:72;:::i;:::-;16193:80;16269:2;16258:9;16254:18;16245:6;16193:80;:::i;:::-;16283;16359:2;16348:9;16344:18;16335:6;16283:80;:::i;:::-;16373:73;16441:3;16430:9;16426:19;16417:6;16373:73;:::i;:::-;16456;16524:3;16513:9;16509:19;16500:6;16456:73;:::i;:::-;15729:807;;;;;;;;;:::o;16542:143::-;16599:5;16630:6;16624:13;16615:22;;16646:33;16673:5;16646:33;:::i;:::-;16542:143;;;;:::o;16691:663::-;16779:6;16787;16795;16844:2;16832:9;16823:7;16819:23;16815:32;16812:119;;;16850:79;;:::i;:::-;16812:119;16970:1;16995:64;17051:7;17042:6;17031:9;17027:22;16995:64;:::i;:::-;16985:74;;16941:128;17108:2;17134:64;17190:7;17181:6;17170:9;17166:22;17134:64;:::i;:::-;17124:74;;17079:129;17247:2;17273:64;17329:7;17320:6;17309:9;17305:22;17273:64;:::i;:::-;17263:74;;17218:129;16691:663;;;;;:::o;17360:332::-;17481:4;17519:2;17508:9;17504:18;17496:26;;17532:71;17600:1;17589:9;17585:17;17576:6;17532:71;:::i;:::-;17613:72;17681:2;17670:9;17666:18;17657:6;17613:72;:::i;:::-;17360:332;;;;;:::o;17698:116::-;17768:21;17783:5;17768:21;:::i;:::-;17761:5;17758:32;17748:60;;17804:1;17801;17794:12;17748:60;17698:116;:::o;17820:137::-;17874:5;17905:6;17899:13;17890:22;;17921:30;17945:5;17921:30;:::i;:::-;17820:137;;;;:::o;17963:345::-;18030:6;18079:2;18067:9;18058:7;18054:23;18050:32;18047:119;;;18085:79;;:::i;:::-;18047:119;18205:1;18230:61;18283:7;18274:6;18263:9;18259:22;18230:61;:::i;:::-;18220:71;;18176:125;17963:345;;;;:::o;18314:351::-;18384:6;18433:2;18421:9;18412:7;18408:23;18404:32;18401:119;;;18439:79;;:::i;:::-;18401:119;18559:1;18584:64;18640:7;18631:6;18620:9;18616:22;18584:64;:::i;:::-;18574:74;;18530:128;18314:351;;;;:::o;18671:142::-;18721:9;18754:53;18772:34;18781:24;18799:5;18781:24;:::i;:::-;18772:34;:::i;:::-;18754:53;:::i;:::-;18741:66;;18671:142;;;:::o;18819:126::-;18869:9;18902:37;18933:5;18902:37;:::i;:::-;18889:50;;18819:126;;;:::o;18951:134::-;19009:9;19042:37;19073:5;19042:37;:::i;:::-;19029:50;;18951:134;;;:::o;19091:147::-;19186:45;19225:5;19186:45;:::i;:::-;19181:3;19174:58;19091:147;;:::o;19244:348::-;19373:4;19411:2;19400:9;19396:18;19388:26;;19424:79;19500:1;19489:9;19485:17;19476:6;19424:79;:::i;:::-;19513:72;19581:2;19570:9;19566:18;19557:6;19513:72;:::i;:::-;19244:348;;;;;:::o;19598:180::-;19646:77;19643:1;19636:88;19743:4;19740:1;19733:15;19767:4;19764:1;19757:15;19784:185;19824:1;19841:20;19859:1;19841:20;:::i;:::-;19836:25;;19875:20;19893:1;19875:20;:::i;:::-;19870:25;;19914:1;19904:35;;19919:18;;:::i;:::-;19904:35;19961:1;19958;19954:9;19949:14;;19784:185;;;;:::o;19975:223::-;20115:34;20111:1;20103:6;20099:14;20092:58;20184:6;20179:2;20171:6;20167:15;20160:31;19975:223;:::o;20204:366::-;20346:3;20367:67;20431:2;20426:3;20367:67;:::i;:::-;20360:74;;20443:93;20532:3;20443:93;:::i;:::-;20561:2;20556:3;20552:12;20545:19;;20204:366;;;:::o;20576:419::-;20742:4;20780:2;20769:9;20765:18;20757:26;;20829:9;20823:4;20819:20;20815:1;20804:9;20800:17;20793:47;20857:131;20983:4;20857:131;:::i;:::-;20849:139;;20576:419;;;:::o;21001:221::-;21141:34;21137:1;21129:6;21125:14;21118:58;21210:4;21205:2;21197:6;21193:15;21186:29;21001:221;:::o;21228:366::-;21370:3;21391:67;21455:2;21450:3;21391:67;:::i;:::-;21384:74;;21467:93;21556:3;21467:93;:::i;:::-;21585:2;21580:3;21576:12;21569:19;;21228:366;;;:::o;21600:419::-;21766:4;21804:2;21793:9;21789:18;21781:26;;21853:9;21847:4;21843:20;21839:1;21828:9;21824:17;21817:47;21881:131;22007:4;21881:131;:::i;:::-;21873:139;;21600:419;;;:::o;22025:224::-;22165:34;22161:1;22153:6;22149:14;22142:58;22234:7;22229:2;22221:6;22217:15;22210:32;22025:224;:::o;22255:366::-;22397:3;22418:67;22482:2;22477:3;22418:67;:::i;:::-;22411:74;;22494:93;22583:3;22494:93;:::i;:::-;22612:2;22607:3;22603:12;22596:19;;22255:366;;;:::o;22627:419::-;22793:4;22831:2;22820:9;22816:18;22808:26;;22880:9;22874:4;22870:20;22866:1;22855:9;22851:17;22844:47;22908:131;23034:4;22908:131;:::i;:::-;22900:139;;22627:419;;;:::o;23052:222::-;23192:34;23188:1;23180:6;23176:14;23169:58;23261:5;23256:2;23248:6;23244:15;23237:30;23052:222;:::o;23280:366::-;23422:3;23443:67;23507:2;23502:3;23443:67;:::i;:::-;23436:74;;23519:93;23608:3;23519:93;:::i;:::-;23637:2;23632:3;23628:12;23621:19;;23280:366;;;:::o;23652:419::-;23818:4;23856:2;23845:9;23841:18;23833:26;;23905:9;23899:4;23895:20;23891:1;23880:9;23876:17;23869:47;23933:131;24059:4;23933:131;:::i;:::-;23925:139;;23652:419;;;:::o;24077:228::-;24217:34;24213:1;24205:6;24201:14;24194:58;24286:11;24281:2;24273:6;24269:15;24262:36;24077:228;:::o;24311:366::-;24453:3;24474:67;24538:2;24533:3;24474:67;:::i;:::-;24467:74;;24550:93;24639:3;24550:93;:::i;:::-;24668:2;24663:3;24659:12;24652:19;;24311:366;;;:::o;24683:419::-;24849:4;24887:2;24876:9;24872:18;24864:26;;24936:9;24930:4;24926:20;24922:1;24911:9;24907:17;24900:47;24964:131;25090:4;24964:131;:::i;:::-;24956:139;;24683:419;;;:::o;25108:170::-;25248:22;25244:1;25236:6;25232:14;25225:46;25108:170;:::o;25284:366::-;25426:3;25447:67;25511:2;25506:3;25447:67;:::i;:::-;25440:74;;25523:93;25612:3;25523:93;:::i;:::-;25641:2;25636:3;25632:12;25625:19;;25284:366;;;:::o;25656:419::-;25822:4;25860:2;25849:9;25845:18;25837:26;;25909:9;25903:4;25899:20;25895:1;25884:9;25880:17;25873:47;25937:131;26063:4;25937:131;:::i;:::-;25929:139;;25656:419;;;:::o;26081:175::-;26221:27;26217:1;26209:6;26205:14;26198:51;26081:175;:::o;26262:366::-;26404:3;26425:67;26489:2;26484:3;26425:67;:::i;:::-;26418:74;;26501:93;26590:3;26501:93;:::i;:::-;26619:2;26614:3;26610:12;26603:19;;26262:366;;;:::o;26634:419::-;26800:4;26838:2;26827:9;26823:18;26815:26;;26887:9;26881:4;26877:20;26873:1;26862:9;26858:17;26851:47;26915:131;27041:4;26915:131;:::i;:::-;26907:139;;26634:419;;;:::o;27059:191::-;27099:3;27118:20;27136:1;27118:20;:::i;:::-;27113:25;;27152:20;27170:1;27152:20;:::i;:::-;27147:25;;27195:1;27192;27188:9;27181:16;;27216:3;27213:1;27210:10;27207:36;;;27223:18;;:::i;:::-;27207:36;27059:191;;;;:::o;27256:176::-;27396:28;27392:1;27384:6;27380:14;27373:52;27256:176;:::o;27438:366::-;27580:3;27601:67;27665:2;27660:3;27601:67;:::i;:::-;27594:74;;27677:93;27766:3;27677:93;:::i;:::-;27795:2;27790:3;27786:12;27779:19;;27438:366;;;:::o;27810:419::-;27976:4;28014:2;28003:9;27999:18;27991:26;;28063:9;28057:4;28053:20;28049:1;28038:9;28034:17;28027:47;28091:131;28217:4;28091:131;:::i;:::-;28083:139;;27810:419;;;:::o;28235:233::-;28274:3;28297:24;28315:5;28297:24;:::i;:::-;28288:33;;28343:66;28336:5;28333:77;28330:103;;28413:18;;:::i;:::-;28330:103;28460:1;28453:5;28449:13;28442:20;;28235:233;;;:::o;28474:173::-;28614:25;28610:1;28602:6;28598:14;28591:49;28474:173;:::o;28653:366::-;28795:3;28816:67;28880:2;28875:3;28816:67;:::i;:::-;28809:74;;28892:93;28981:3;28892:93;:::i;:::-;29010:2;29005:3;29001:12;28994:19;;28653:366;;;:::o;29025:419::-;29191:4;29229:2;29218:9;29214:18;29206:26;;29278:9;29272:4;29268:20;29264:1;29253:9;29249:17;29242:47;29306:131;29432:4;29306:131;:::i;:::-;29298:139;;29025:419;;;:::o;29450:194::-;29490:4;29510:20;29528:1;29510:20;:::i;:::-;29505:25;;29544:20;29562:1;29544:20;:::i;:::-;29539:25;;29588:1;29585;29581:9;29573:17;;29612:1;29606:4;29603:11;29600:37;;;29617:18;;:::i;:::-;29600:37;29450:194;;;;:::o;29650:220::-;29790:34;29786:1;29778:6;29774:14;29767:58;29859:3;29854:2;29846:6;29842:15;29835:28;29650:220;:::o;29876:366::-;30018:3;30039:67;30103:2;30098:3;30039:67;:::i;:::-;30032:74;;30115:93;30204:3;30115:93;:::i;:::-;30233:2;30228:3;30224:12;30217:19;;29876:366;;;:::o;30248:419::-;30414:4;30452:2;30441:9;30437:18;30429:26;;30501:9;30495:4;30491:20;30487:1;30476:9;30472:17;30465:47;30529:131;30655:4;30529:131;:::i;:::-;30521:139;;30248:419;;;:::o;30673:114::-;30740:6;30774:5;30768:12;30758:22;;30673:114;;;:::o;30793:184::-;30892:11;30926:6;30921:3;30914:19;30966:4;30961:3;30957:14;30942:29;;30793:184;;;;:::o;30983:132::-;31050:4;31073:3;31065:11;;31103:4;31098:3;31094:14;31086:22;;30983:132;;;:::o;31121:108::-;31198:24;31216:5;31198:24;:::i;:::-;31193:3;31186:37;31121:108;;:::o;31235:179::-;31304:10;31325:46;31367:3;31359:6;31325:46;:::i;:::-;31403:4;31398:3;31394:14;31380:28;;31235:179;;;;:::o;31420:113::-;31490:4;31522;31517:3;31513:14;31505:22;;31420:113;;;:::o;31569:732::-;31688:3;31717:54;31765:5;31717:54;:::i;:::-;31787:86;31866:6;31861:3;31787:86;:::i;:::-;31780:93;;31897:56;31947:5;31897:56;:::i;:::-;31976:7;32007:1;31992:284;32017:6;32014:1;32011:13;31992:284;;;32093:6;32087:13;32120:63;32179:3;32164:13;32120:63;:::i;:::-;32113:70;;32206:60;32259:6;32206:60;:::i;:::-;32196:70;;32052:224;32039:1;32036;32032:9;32027:14;;31992:284;;;31996:14;32292:3;32285:10;;31693:608;;;31569:732;;;;:::o;32307:831::-;32570:4;32608:3;32597:9;32593:19;32585:27;;32622:71;32690:1;32679:9;32675:17;32666:6;32622:71;:::i;:::-;32703:80;32779:2;32768:9;32764:18;32755:6;32703:80;:::i;:::-;32830:9;32824:4;32820:20;32815:2;32804:9;32800:18;32793:48;32858:108;32961:4;32952:6;32858:108;:::i;:::-;32850:116;;32976:72;33044:2;33033:9;33029:18;33020:6;32976:72;:::i;:::-;33058:73;33126:3;33115:9;33111:19;33102:6;33058:73;:::i;:::-;32307:831;;;;;;;;:::o;33144:177::-;33284:29;33280:1;33272:6;33268:14;33261:53;33144:177;:::o;33327:366::-;33469:3;33490:67;33554:2;33549:3;33490:67;:::i;:::-;33483:74;;33566:93;33655:3;33566:93;:::i;:::-;33684:2;33679:3;33675:12;33668:19;;33327:366;;;:::o;33699:419::-;33865:4;33903:2;33892:9;33888:18;33880:26;;33952:9;33946:4;33942:20;33938:1;33927:9;33923:17;33916:47;33980:131;34106:4;33980:131;:::i;:::-;33972:139;;33699:419;;;:::o
Swarm Source
ipfs://148ddc8f4eff5d5dae252058ba3106ba4bec2ca9a432d03a66ab3bee2c411758
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 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.