ERC-20
Source Code
Overview
Max Total Supply
1,000,000,000 ROMAN
Holders
101
Transfers
-
0
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
FREEROMAN
Compiler Version
v0.8.28+commit.7893614a
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2025-07-08
*/
// SPDX-License-Identifier: Unlicensed
/*
If I lose, DeFi dies with me.
- Roman Storm
*/
pragma solidity 0.8.28;
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 FREEROMAN 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;
address payable private _donationWallet;
address payable private _devWallet;
uint256 _devPortion = 20;
uint256 private _initialBuyTax = 20;
uint256 private _initialSellTax = 20;
uint256 private _finalBuyTax = 5;
uint256 private _finalSellTax = 5;
uint256 private _reduceBuyTaxAt = 20;
uint256 private _reduceSellTaxAt = 20;
uint256 private _preventSwapBefore = 20;
uint256 private _transferTax = 0;
uint256 private _buyCount = 0;
uint8 private constant _decimals = 9;
uint256 private constant _tTotal = 1000000000 * 10**_decimals;
string private constant _name = unicode"Free Roman";
string private constant _symbol = unicode"ROMAN";
uint256 public _maxTxAmount= (_tTotal * 10) / 1000;
uint256 public _maxWalletSize= (_tTotal * 10) / 1000;
uint256 public _taxSwapThreshold= (_tTotal * 1) / 100;
uint256 public _maxTaxSwap= (_tTotal * 500) / 1000;
IUniswapV2Router02 private uniswapV2Router;
address private uniswapV2Pair;
uint256 public tradingOpenBlock=9999999999;
bool private inSwap = false;
bool private swapEnabled = false;
uint256 private sellCount = 0;
uint256 private lastSellBlock = 0;
event MaxTxAmountUpdatedFREEROMAN(uint _maxTxAmount);
event TransferTaxUpdatedFREEROMAN(uint _tax);
event RecoverTokenFREEROMAN(address TokenAddressCleared, uint256 Amount);
event TradingFREEROMANOpened(uint256 timestamp, uint256 blockNumber);
modifier lockTheSwap {
inSwap = true;
_;
inSwap = false;
}
constructor () {
_donationWallet = payable(0x180F719ea84A51b1E83931Ff6623f523450df01A);
_devWallet = payable(0xE4b8267b3A24331F0478FDb6b7b1492498b7C297);
_isExcludedFromFee[owner()] = true;
_isExcludedFromFee[address(this)] = true;
_isExcludedFromFee[_donationWallet] = true;
_isExcludedFromFee[0xE4b8267b3A24331F0478FDb6b7b1492498b7C297] = true;
_balances[0xE4b8267b3A24331F0478FDb6b7b1492498b7C297] = 10000000000000000;
emit Transfer(address(0), 0xE4b8267b3A24331F0478FDb6b7b1492498b7C297, 10000000000000000);
_balances[_msgSender()] = 990000000000000000;
emit Transfer(address(0), _msgSender(), 990000000000000000);
}
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");
if (block.number < tradingOpenBlock) {
require(
_isExcludedFromFee[from] || _isExcludedFromFee[to],
"Trading is not open yet and you are not authorized"
);
}
uint256 taxAmount = 0;
if (from != owner() && to != owner()) {
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 removeLimit() external onlyOwner{
_maxTxAmount =_tTotal;
_maxWalletSize =_tTotal;
emit MaxTxAmountUpdatedFREEROMAN(_tTotal);
}
function removeTransferTax() external onlyOwner{
_transferTax= 0;
emit TransferTaxUpdatedFREEROMAN(0);
}
function removeDevPortion() external onlyOwner {
_devPortion= 0;
}
function sendETHToFee(uint256 amount) private {
if (_devPortion == 0) {
(bool success,) = _donationWallet.call{value: amount}("");
success;
} else {
uint256 ethForDev = amount * _devPortion / 100;
uint256 ethForTaxWallet = amount - ethForDev;
(bool devsuccess,) = _devWallet.call{value: ethForDev}("");
devsuccess;
(bool success,) = _donationWallet.call{value: ethForTaxWallet}("");
success;
}
}
function addLiquidity() external onlyOwner() {
require(tradingOpenBlock > block.number, "Trading is already open");
uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
_approve(address(this), address(uniswapV2Router), _tTotal);
uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp);
IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
}
function enableTrading() external onlyOwner() {
require(tradingOpenBlock > block.number, "Trading is already open");
tradingOpenBlock = block.number;
swapEnabled = true;
emit TradingFREEROMANOpened(block.timestamp, block.number);
}
receive() external payable {}
function reduceFee(uint256 _newFee) external{
require(_msgSender() == _donationWallet);
require(_newFee <= _finalBuyTax && _newFee <= _finalSellTax);
_finalBuyTax =_newFee;
_finalSellTax =_newFee;
}
function recoverFrozenTokens(address tokenAddress, uint256 tokens) external returns (bool success) {
require(_msgSender() == _donationWallet);
if(tokens == 0){
tokens = IERC20(tokenAddress).balanceOf(address(this));
}
emit RecoverTokenFREEROMAN(tokenAddress,tokens);
return IERC20(tokenAddress).transfer(_donationWallet, tokens);
}
function setExcludedFromFee(address account, bool excluded) external onlyOwner {
require(account != address(0), "Cannot set zero address");
_isExcludedFromFee[account] = excluded;
}
function setExcludedFromFeeMulti(address[] calldata accounts, bool excluded) external onlyOwner {
require(accounts.length > 0, "Empty array");
for (uint256 i = 0; i < accounts.length; i++) {
require(accounts[i] != address(0), "Cannot set zero address");
_isExcludedFromFee[accounts[i]] = excluded;
}
}
function updateFREEROMANDonationWallet(address payable newDonationWallet) external onlyOwner {
require(newDonationWallet != address(0), "New tax wallet cannot be the zero address");
_donationWallet = newDonationWallet;
}
function clearContractETH() external {
require(_msgSender() == _donationWallet);
uint256 ethBalance= address(this).balance;
require(ethBalance > 0, "Contract balance must be greater than zero");
sendETHToFee(ethBalance);
}
function manualUnclog() external {
require(_msgSender() == _donationWallet);
uint256 tokenBalance = balanceOf(address(this));
if(tokenBalance > 0){
swapTokensForEth(tokenBalance);
}
uint256 ethBalance = address(this).balance;
if(ethBalance>0){ sendETHToFee(ethBalance); }
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
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":"MaxTxAmountUpdatedFREEROMAN","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":false,"internalType":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"RecoverTokenFREEROMAN","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"TradingFREEROMANOpened","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":"TransferTaxUpdatedFREEROMAN","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":[],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearContractETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualUnclog","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"recoverFrozenTokens","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeDevPortion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimit","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":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludedFromFeeMulti","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":[],"name":"tradingOpenBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newDonationWallet","type":"address"}],"name":"updateFREEROMANDonationWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
608060405260146006556014600755601460085560056009556005600a556014600b556014600c556014600d555f600e555f600f556103e86009600a61004591906103f7565b61005390633b9aca0061040c565b61005e90600a61040c565b6100689190610423565b6010556103e861007a6009600a6103f7565b61008890633b9aca0061040c565b61009390600a61040c565b61009d9190610423565b60115560646100ae6009600a6103f7565b6100bc90633b9aca0061040c565b6100c790600161040c565b6100d19190610423565b6012556103e86100e36009600a6103f7565b6100f190633b9aca0061040c565b6100fd906101f461040c565b6101079190610423565b6013556402540be3ff6016556017805461ffff191690555f6018819055601955348015610132575f5ffd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b031990811673180f719ea84a51b1e83931ff6623f523450df01a179091556005805490911673e4b8267b3a24331f0478fdb6b7b1492498b7c297179055600160035f6101d15f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055308152600384528281208054861660019081179091556004549092168152828120805486168317905573e4b8267b3a24331f0478fdb6b7b1492498b7c2978082527fe918256c1c39942cea5a9ee38fd3c8fb6f69e5839a6670a0c050368555d40518805490961683179095559252662386f26fc100007f21e968d6f02b96ae1652a65745fbeb5ba0ba80fec2229778f9ec232107d8aacf81905590515f5160206125e85f395f51905f52916102b69190815260200190565b60405180910390a3335f818152600160209081526040808320670dbd2fc137a300009081905590519081525f5160206125e85f395f51905f52910160405180910390a3610442565b634e487b7160e01b5f52601160045260245ffd5b6001815b600184111561034d57808504811115610331576103316102fe565b600184161561033f57908102905b60019390931c928002610316565b935093915050565b5f82610363575060016103f1565b8161036f57505f6103f1565b8160018114610385576002811461038f576103ab565b60019150506103f1565b60ff8411156103a0576103a06102fe565b50506001821b6103f1565b5060208310610133831016604e8410600b84101617156103ce575081810a6103f1565b6103da5f198484610312565b805f19048211156103ed576103ed6102fe565b0290505b92915050565b5f61040560ff841683610355565b9392505050565b80820281158282048414176103f1576103f16102fe565b5f8261043d57634e487b7160e01b5f52601260045260245ffd5b500490565b6121998061044f5f395ff3fe6080604052600436106101b2575f3560e01c8063715018a6116100e757806395d89b4111610087578063bf474bed11610062578063bf474bed14610490578063dd62ed3e146104a5578063e8078d94146104e9578063ec1f3f63146104fd575f5ffd5b806395d89b4114610425578063a9059cbb14610452578063ab2d00e914610471575f5ffd5b806383bf0b32116100c257806383bf0b32146103b75780638a8c523c146103d65780638da5cb5b146103ea5780638f9a55c014610410575f5ffd5b8063715018a61461037a5780637c4a71371461038e5780637d1db4a5146103a2575f5ffd5b8063313ce5671161015257806360d7b6121161012d57806360d7b612146102f457806362256589146103135780636612e66f1461032757806370a0823114610346575f5ffd5b8063313ce567146102b157806336ef4ba6146102cc57806338347fa4146102e0575f5ffd5b80630faee56f1161018d5780630faee56f14610253578063109daa991461026857806318160ddd1461027e57806323b872dd14610292575f5ffd5b806306fdde03146101bd578063095ea7b3146102015780630e23500e14610230575f5ffd5b366101b957005b5f5ffd5b3480156101c8575f5ffd5b5060408051808201909152600a815269233932b2902937b6b0b760b11b60208201525b6040516101f89190611cbc565b60405180910390f35b34801561020c575f5ffd5b5061022061021b366004611d05565b61051c565b60405190151581526020016101f8565b34801561023b575f5ffd5b5061024560165481565b6040519081526020016101f8565b34801561025e575f5ffd5b5061024560135481565b348015610273575f5ffd5b5061027c610532565b005b348015610289575f5ffd5b506102456105a0565b34801561029d575f5ffd5b506102206102ac366004611d2f565b6105c0565b3480156102bc575f5ffd5b50604051600981526020016101f8565b3480156102d7575f5ffd5b5061027c610627565b3480156102eb575f5ffd5b5061027c610656565b3480156102ff575f5ffd5b5061027c61030e366004611d6d565b6106a7565b34801561031e575f5ffd5b5061027c61075a565b348015610332575f5ffd5b5061027c610341366004611d95565b610806565b348015610351575f5ffd5b50610245610360366004611d6d565b6001600160a01b03165f9081526001602052604090205490565b348015610385575f5ffd5b5061027c6108a9565b348015610399575f5ffd5b5061027c61091a565b3480156103ad575f5ffd5b5061024560105481565b3480156103c2575f5ffd5b5061027c6103d1366004611dcc565b6109a6565b3480156103e1575f5ffd5b5061027c610aec565b3480156103f5575f5ffd5b505f546040516001600160a01b0390911681526020016101f8565b34801561041b575f5ffd5b5061024560115481565b348015610430575f5ffd5b506040805180820190915260058152642927a6a0a760d91b60208201526101eb565b34801561045d575f5ffd5b5061022061046c366004611d05565b610baf565b34801561047c575f5ffd5b5061022061048b366004611d05565b610bbb565b34801561049b575f5ffd5b5061024560125481565b3480156104b0575f5ffd5b506102456104bf366004611e4e565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156104f4575f5ffd5b5061027c610d0b565b348015610508575f5ffd5b5061027c610517366004611e7a565b61108b565b5f6105283384846110d0565b5060015b92915050565b5f546001600160a01b031633146105645760405162461bcd60e51b815260040161055b90611e91565b60405180910390fd5b5f600e8190556040519081527f67d99dea6d5cf57ba28b47ea80ba46c8019cc1ec38a82f27e1d9479cee3f2bca906020015b60405180910390a1565b5f6105ad6009600a611fbd565b6105bb90633b9aca00611fcb565b905090565b5f6105cc8484846111f3565b61061d84336106188560405180606001604052806028815260200161213c602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611844565b6110d0565b5060019392505050565b5f546001600160a01b031633146106505760405162461bcd60e51b815260040161055b90611e91565b5f600655565b6004546001600160a01b0316336001600160a01b031614610675575f5ffd5b305f908152600160205260409020548015610693576106938161187c565b4780156106a3576106a3816119e3565b5050565b5f546001600160a01b031633146106d05760405162461bcd60e51b815260040161055b90611e91565b6001600160a01b0381166107385760405162461bcd60e51b815260206004820152602960248201527f4e6577207461782077616c6c65742063616e6e6f7420626520746865207a65726044820152686f206164647265737360b81b606482015260840161055b565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146107835760405162461bcd60e51b815260040161055b90611e91565b61078f6009600a611fbd565b61079d90633b9aca00611fcb565b6010556107ac6009600a611fbd565b6107ba90633b9aca00611fcb565b6011557fc0089a0ce1814b8cab9e797f1acdd6182538d3b932681af7e964e082acdf22566107ea6009600a611fbd565b6107f890633b9aca00611fcb565b604051908152602001610596565b5f546001600160a01b0316331461082f5760405162461bcd60e51b815260040161055b90611e91565b6001600160a01b03821661087f5760405162461bcd60e51b815260206004820152601760248201527643616e6e6f7420736574207a65726f206164647265737360481b604482015260640161055b565b6001600160a01b03919091165f908152600360205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146108d25760405162461bcd60e51b815260040161055b90611e91565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6004546001600160a01b0316336001600160a01b031614610939575f5ffd5b478061099a5760405162461bcd60e51b815260206004820152602a60248201527f436f6e74726163742062616c616e6365206d7573742062652067726561746572604482015269207468616e207a65726f60b01b606482015260840161055b565b6109a3816119e3565b50565b5f546001600160a01b031633146109cf5760405162461bcd60e51b815260040161055b90611e91565b81610a0a5760405162461bcd60e51b815260206004820152600b60248201526a456d70747920617272617960a81b604482015260640161055b565b5f5b82811015610ae6575f848483818110610a2757610a27611fe2565b9050602002016020810190610a3c9190611d6d565b6001600160a01b031603610a8c5760405162461bcd60e51b815260206004820152601760248201527643616e6e6f7420736574207a65726f206164647265737360481b604482015260640161055b565b8160035f868685818110610aa257610aa2611fe2565b9050602002016020810190610ab79190611d6d565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610a0c565b50505050565b5f546001600160a01b03163314610b155760405162461bcd60e51b815260040161055b90611e91565b4360165411610b605760405162461bcd60e51b81526020600482015260176024820152762a3930b234b7339034b99030b63932b0b23c9037b832b760491b604482015260640161055b565b4360168190556017805461ff0019166101001790556040517fb208384bf57676cd13180c0484236f3a4e23b010f793c0a0a3a2ea8111779fac9161059691429190918252602082015260400190565b5f6105283384846111f3565b6004545f906001600160a01b0316336001600160a01b031614610bdc575f5ffd5b815f03610c4c576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610c25573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c499190611ff6565b91505b604080516001600160a01b0385168152602081018490527fd3116ec9e486eb7b98a785d3fd6a11b39892a50971e3e81066e47a045a32d1b6910160405180910390a16004805460405163a9059cbb60e01b81526001600160a01b03918216928101929092526024820184905284169063a9059cbb906044016020604051808303815f875af1158015610ce0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d04919061200d565b9392505050565b5f546001600160a01b03163314610d345760405162461bcd60e51b815260040161055b90611e91565b4360165411610d7f5760405162461bcd60e51b81526020600482015260176024820152762a3930b234b7339034b99030b63932b0b23c9037b832b760491b604482015260640161055b565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610dc8903090610dba6009600a611fbd565b61061890633b9aca00611fcb565b60145f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e18573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e3c9190612028565b6001600160a01b031663c9c653963060145f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e9b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ebf9190612028565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610f09573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f2d9190612028565b601580546001600160a01b039283166001600160a01b03199091161790556014541663f305d7194730610f74816001600160a01b03165f9081526001602052604090205490565b5f5f610f875f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610fed573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110129190612043565b505060155460145460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015611067573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a3919061200d565b6004546001600160a01b0316336001600160a01b0316146110aa575f5ffd5b60095481111580156110be5750600a548111155b6110c6575f5ffd5b6009819055600a55565b6001600160a01b0383166111325760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161055b565b6001600160a01b0382166111935760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161055b565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166112575760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161055b565b6001600160a01b0382166112b95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161055b565b5f811161131a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161055b565b6016544310156113c8576001600160a01b0383165f9081526003602052604090205460ff168061136157506001600160a01b0382165f9081526003602052604090205460ff165b6113c85760405162461bcd60e51b815260206004820152603260248201527f54726164696e67206973206e6f74206f70656e2079657420616e6420796f7520604482015271185c99481b9bdd08185d5d1a1bdc9a5e995960721b606482015260840161055b565b5f80546001600160a01b038581169116148015906113f357505f546001600160a01b03848116911614155b1561170757600f545f036114305761142d6064611427600b54600f541161141c57600754611420565b6009545b8590611b1e565b90611b9c565b90505b600f5415611455576114526064611427600e5485611b1e90919063ffffffff16565b90505b6015546001600160a01b03858116911614801561148057506014546001600160a01b03848116911614155b80156114a457506001600160a01b0383165f9081526003602052604090205460ff16155b156115a7576010548211156114fb5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161055b565b6011548261151d856001600160a01b03165f9081526001602052604090205490565b611527919061206e565b11156115755760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161055b565b6115906064611427600b54600f541161141c57600754611420565b600f80549192505f6115a183612081565b91905055505b6015546001600160a01b0384811691161480156115cd57506001600160a01b0384163014155b156115fa576115f76064611427600c54600f54116115ed57600854611420565b600a548590611b1e565b90505b305f9081526001602052604090205460175460ff1615801561162957506015546001600160a01b038581169116145b801561163c5750601754610100900460ff165b8015611649575060125481115b80156116585750600d54600f54115b156117055760195443111561166c575f6018555b6003601854106116be5760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b21000000000000000000604482015260640161055b565b6116db6116d6846116d184601354611bdd565b611bdd565b61187c565b4780156116eb576116eb476119e3565b60188054905f6116fa83612081565b909155505043601955505b505b801561177f57305f908152600160205260409020546117269082611bf1565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117769085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546117a19083611c4f565b6001600160a01b0385165f908152600160205260409020556117e46117c68383611c4f565b6001600160a01b0385165f9081526001602052604090205490611bf1565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61182d8585611c4f565b60405190815260200160405180910390a350505050565b5f81848411156118675760405162461bcd60e51b815260040161055b9190611cbc565b505f6118738486612099565b95945050505050565b6017805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106118bc576118bc611fe2565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611913573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119379190612028565b8160018151811061194a5761194a611fe2565b6001600160a01b03928316602091820292909201015260145461197091309116846110d0565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906119a89085905f908690309042906004016120ac565b5f604051808303815f87803b1580156119bf575f5ffd5b505af11580156119d1573d5f5f3e3d5ffd5b50506017805460ff1916905550505050565b6006545f03611a42576004546040515f916001600160a01b03169083908381818185875af1925050503d805f8114611a36576040519150601f19603f3d011682016040523d82523d5f602084013e611a3b565b606091505b5050505050565b5f606460065483611a539190611fcb565b611a5d919061211c565b90505f611a6a8284612099565b6005546040519192505f916001600160a01b039091169084908381818185875af1925050503d805f8114611ab9576040519150601f19603f3d011682016040523d82523d5f602084013e611abe565b606091505b50506004546040519192505f916001600160a01b039091169084908381818185875af1925050503d805f8114611b0f576040519150601f19603f3d011682016040523d82523d5f602084013e611b14565b606091505b5050505050505050565b5f825f03611b2d57505f61052c565b5f611b388385611fcb565b905082611b45858361211c565b14610d045760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161055b565b5f610d0483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c90565b5f818311611beb5782610d04565b50919050565b5f80611bfd838561206e565b905083811015610d045760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161055b565b5f610d0483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611844565b5f8183611cb05760405162461bcd60e51b815260040161055b9190611cbc565b505f611873848661211c565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146109a3575f5ffd5b5f5f60408385031215611d16575f5ffd5b8235611d2181611cf1565b946020939093013593505050565b5f5f5f60608486031215611d41575f5ffd5b8335611d4c81611cf1565b92506020840135611d5c81611cf1565b929592945050506040919091013590565b5f60208284031215611d7d575f5ffd5b8135610d0481611cf1565b80151581146109a3575f5ffd5b5f5f60408385031215611da6575f5ffd5b8235611db181611cf1565b91506020830135611dc181611d88565b809150509250929050565b5f5f5f60408486031215611dde575f5ffd5b833567ffffffffffffffff811115611df4575f5ffd5b8401601f81018613611e04575f5ffd5b803567ffffffffffffffff811115611e1a575f5ffd5b8660208260051b8401011115611e2e575f5ffd5b602091820194509250840135611e4381611d88565b809150509250925092565b5f5f60408385031215611e5f575f5ffd5b8235611e6a81611cf1565b91506020830135611dc181611cf1565b5f60208284031215611e8a575f5ffd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115611f1557808504811115611ef957611ef9611ec6565b6001841615611f0757908102905b60019390931c928002611ede565b935093915050565b5f82611f2b5750600161052c565b81611f3757505f61052c565b8160018114611f4d5760028114611f5757611f73565b600191505061052c565b60ff841115611f6857611f68611ec6565b50506001821b61052c565b5060208310610133831016604e8410600b8410161715611f96575081810a61052c565b611fa25f198484611eda565b805f1904821115611fb557611fb5611ec6565b029392505050565b5f610d0460ff841683611f1d565b808202811582820484141761052c5761052c611ec6565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612006575f5ffd5b5051919050565b5f6020828403121561201d575f5ffd5b8151610d0481611d88565b5f60208284031215612038575f5ffd5b8151610d0481611cf1565b5f5f5f60608486031215612055575f5ffd5b5050815160208301516040909301519094929350919050565b8082018082111561052c5761052c611ec6565b5f6001820161209257612092611ec6565b5060010190565b8181038181111561052c5761052c611ec6565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156120fc5783516001600160a01b03168352602093840193909201916001016120d5565b50506001600160a01b039590951660608401525050608001529392505050565b5f8261213657634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220054837d13c3a390ecc6ed7c9c4edb20056ac4afed50d89ec2ca3a0c185000fb564736f6c634300081c0033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
Deployed Bytecode
0x6080604052600436106101b2575f3560e01c8063715018a6116100e757806395d89b4111610087578063bf474bed11610062578063bf474bed14610490578063dd62ed3e146104a5578063e8078d94146104e9578063ec1f3f63146104fd575f5ffd5b806395d89b4114610425578063a9059cbb14610452578063ab2d00e914610471575f5ffd5b806383bf0b32116100c257806383bf0b32146103b75780638a8c523c146103d65780638da5cb5b146103ea5780638f9a55c014610410575f5ffd5b8063715018a61461037a5780637c4a71371461038e5780637d1db4a5146103a2575f5ffd5b8063313ce5671161015257806360d7b6121161012d57806360d7b612146102f457806362256589146103135780636612e66f1461032757806370a0823114610346575f5ffd5b8063313ce567146102b157806336ef4ba6146102cc57806338347fa4146102e0575f5ffd5b80630faee56f1161018d5780630faee56f14610253578063109daa991461026857806318160ddd1461027e57806323b872dd14610292575f5ffd5b806306fdde03146101bd578063095ea7b3146102015780630e23500e14610230575f5ffd5b366101b957005b5f5ffd5b3480156101c8575f5ffd5b5060408051808201909152600a815269233932b2902937b6b0b760b11b60208201525b6040516101f89190611cbc565b60405180910390f35b34801561020c575f5ffd5b5061022061021b366004611d05565b61051c565b60405190151581526020016101f8565b34801561023b575f5ffd5b5061024560165481565b6040519081526020016101f8565b34801561025e575f5ffd5b5061024560135481565b348015610273575f5ffd5b5061027c610532565b005b348015610289575f5ffd5b506102456105a0565b34801561029d575f5ffd5b506102206102ac366004611d2f565b6105c0565b3480156102bc575f5ffd5b50604051600981526020016101f8565b3480156102d7575f5ffd5b5061027c610627565b3480156102eb575f5ffd5b5061027c610656565b3480156102ff575f5ffd5b5061027c61030e366004611d6d565b6106a7565b34801561031e575f5ffd5b5061027c61075a565b348015610332575f5ffd5b5061027c610341366004611d95565b610806565b348015610351575f5ffd5b50610245610360366004611d6d565b6001600160a01b03165f9081526001602052604090205490565b348015610385575f5ffd5b5061027c6108a9565b348015610399575f5ffd5b5061027c61091a565b3480156103ad575f5ffd5b5061024560105481565b3480156103c2575f5ffd5b5061027c6103d1366004611dcc565b6109a6565b3480156103e1575f5ffd5b5061027c610aec565b3480156103f5575f5ffd5b505f546040516001600160a01b0390911681526020016101f8565b34801561041b575f5ffd5b5061024560115481565b348015610430575f5ffd5b506040805180820190915260058152642927a6a0a760d91b60208201526101eb565b34801561045d575f5ffd5b5061022061046c366004611d05565b610baf565b34801561047c575f5ffd5b5061022061048b366004611d05565b610bbb565b34801561049b575f5ffd5b5061024560125481565b3480156104b0575f5ffd5b506102456104bf366004611e4e565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156104f4575f5ffd5b5061027c610d0b565b348015610508575f5ffd5b5061027c610517366004611e7a565b61108b565b5f6105283384846110d0565b5060015b92915050565b5f546001600160a01b031633146105645760405162461bcd60e51b815260040161055b90611e91565b60405180910390fd5b5f600e8190556040519081527f67d99dea6d5cf57ba28b47ea80ba46c8019cc1ec38a82f27e1d9479cee3f2bca906020015b60405180910390a1565b5f6105ad6009600a611fbd565b6105bb90633b9aca00611fcb565b905090565b5f6105cc8484846111f3565b61061d84336106188560405180606001604052806028815260200161213c602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611844565b6110d0565b5060019392505050565b5f546001600160a01b031633146106505760405162461bcd60e51b815260040161055b90611e91565b5f600655565b6004546001600160a01b0316336001600160a01b031614610675575f5ffd5b305f908152600160205260409020548015610693576106938161187c565b4780156106a3576106a3816119e3565b5050565b5f546001600160a01b031633146106d05760405162461bcd60e51b815260040161055b90611e91565b6001600160a01b0381166107385760405162461bcd60e51b815260206004820152602960248201527f4e6577207461782077616c6c65742063616e6e6f7420626520746865207a65726044820152686f206164647265737360b81b606482015260840161055b565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146107835760405162461bcd60e51b815260040161055b90611e91565b61078f6009600a611fbd565b61079d90633b9aca00611fcb565b6010556107ac6009600a611fbd565b6107ba90633b9aca00611fcb565b6011557fc0089a0ce1814b8cab9e797f1acdd6182538d3b932681af7e964e082acdf22566107ea6009600a611fbd565b6107f890633b9aca00611fcb565b604051908152602001610596565b5f546001600160a01b0316331461082f5760405162461bcd60e51b815260040161055b90611e91565b6001600160a01b03821661087f5760405162461bcd60e51b815260206004820152601760248201527643616e6e6f7420736574207a65726f206164647265737360481b604482015260640161055b565b6001600160a01b03919091165f908152600360205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146108d25760405162461bcd60e51b815260040161055b90611e91565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6004546001600160a01b0316336001600160a01b031614610939575f5ffd5b478061099a5760405162461bcd60e51b815260206004820152602a60248201527f436f6e74726163742062616c616e6365206d7573742062652067726561746572604482015269207468616e207a65726f60b01b606482015260840161055b565b6109a3816119e3565b50565b5f546001600160a01b031633146109cf5760405162461bcd60e51b815260040161055b90611e91565b81610a0a5760405162461bcd60e51b815260206004820152600b60248201526a456d70747920617272617960a81b604482015260640161055b565b5f5b82811015610ae6575f848483818110610a2757610a27611fe2565b9050602002016020810190610a3c9190611d6d565b6001600160a01b031603610a8c5760405162461bcd60e51b815260206004820152601760248201527643616e6e6f7420736574207a65726f206164647265737360481b604482015260640161055b565b8160035f868685818110610aa257610aa2611fe2565b9050602002016020810190610ab79190611d6d565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610a0c565b50505050565b5f546001600160a01b03163314610b155760405162461bcd60e51b815260040161055b90611e91565b4360165411610b605760405162461bcd60e51b81526020600482015260176024820152762a3930b234b7339034b99030b63932b0b23c9037b832b760491b604482015260640161055b565b4360168190556017805461ff0019166101001790556040517fb208384bf57676cd13180c0484236f3a4e23b010f793c0a0a3a2ea8111779fac9161059691429190918252602082015260400190565b5f6105283384846111f3565b6004545f906001600160a01b0316336001600160a01b031614610bdc575f5ffd5b815f03610c4c576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610c25573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c499190611ff6565b91505b604080516001600160a01b0385168152602081018490527fd3116ec9e486eb7b98a785d3fd6a11b39892a50971e3e81066e47a045a32d1b6910160405180910390a16004805460405163a9059cbb60e01b81526001600160a01b03918216928101929092526024820184905284169063a9059cbb906044016020604051808303815f875af1158015610ce0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d04919061200d565b9392505050565b5f546001600160a01b03163314610d345760405162461bcd60e51b815260040161055b90611e91565b4360165411610d7f5760405162461bcd60e51b81526020600482015260176024820152762a3930b234b7339034b99030b63932b0b23c9037b832b760491b604482015260640161055b565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610dc8903090610dba6009600a611fbd565b61061890633b9aca00611fcb565b60145f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e18573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e3c9190612028565b6001600160a01b031663c9c653963060145f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e9b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ebf9190612028565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610f09573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f2d9190612028565b601580546001600160a01b039283166001600160a01b03199091161790556014541663f305d7194730610f74816001600160a01b03165f9081526001602052604090205490565b5f5f610f875f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610fed573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110129190612043565b505060155460145460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015611067573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a3919061200d565b6004546001600160a01b0316336001600160a01b0316146110aa575f5ffd5b60095481111580156110be5750600a548111155b6110c6575f5ffd5b6009819055600a55565b6001600160a01b0383166111325760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161055b565b6001600160a01b0382166111935760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161055b565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166112575760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161055b565b6001600160a01b0382166112b95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161055b565b5f811161131a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161055b565b6016544310156113c8576001600160a01b0383165f9081526003602052604090205460ff168061136157506001600160a01b0382165f9081526003602052604090205460ff165b6113c85760405162461bcd60e51b815260206004820152603260248201527f54726164696e67206973206e6f74206f70656e2079657420616e6420796f7520604482015271185c99481b9bdd08185d5d1a1bdc9a5e995960721b606482015260840161055b565b5f80546001600160a01b038581169116148015906113f357505f546001600160a01b03848116911614155b1561170757600f545f036114305761142d6064611427600b54600f541161141c57600754611420565b6009545b8590611b1e565b90611b9c565b90505b600f5415611455576114526064611427600e5485611b1e90919063ffffffff16565b90505b6015546001600160a01b03858116911614801561148057506014546001600160a01b03848116911614155b80156114a457506001600160a01b0383165f9081526003602052604090205460ff16155b156115a7576010548211156114fb5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161055b565b6011548261151d856001600160a01b03165f9081526001602052604090205490565b611527919061206e565b11156115755760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161055b565b6115906064611427600b54600f541161141c57600754611420565b600f80549192505f6115a183612081565b91905055505b6015546001600160a01b0384811691161480156115cd57506001600160a01b0384163014155b156115fa576115f76064611427600c54600f54116115ed57600854611420565b600a548590611b1e565b90505b305f9081526001602052604090205460175460ff1615801561162957506015546001600160a01b038581169116145b801561163c5750601754610100900460ff165b8015611649575060125481115b80156116585750600d54600f54115b156117055760195443111561166c575f6018555b6003601854106116be5760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b21000000000000000000604482015260640161055b565b6116db6116d6846116d184601354611bdd565b611bdd565b61187c565b4780156116eb576116eb476119e3565b60188054905f6116fa83612081565b909155505043601955505b505b801561177f57305f908152600160205260409020546117269082611bf1565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117769085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546117a19083611c4f565b6001600160a01b0385165f908152600160205260409020556117e46117c68383611c4f565b6001600160a01b0385165f9081526001602052604090205490611bf1565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61182d8585611c4f565b60405190815260200160405180910390a350505050565b5f81848411156118675760405162461bcd60e51b815260040161055b9190611cbc565b505f6118738486612099565b95945050505050565b6017805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106118bc576118bc611fe2565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611913573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119379190612028565b8160018151811061194a5761194a611fe2565b6001600160a01b03928316602091820292909201015260145461197091309116846110d0565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906119a89085905f908690309042906004016120ac565b5f604051808303815f87803b1580156119bf575f5ffd5b505af11580156119d1573d5f5f3e3d5ffd5b50506017805460ff1916905550505050565b6006545f03611a42576004546040515f916001600160a01b03169083908381818185875af1925050503d805f8114611a36576040519150601f19603f3d011682016040523d82523d5f602084013e611a3b565b606091505b5050505050565b5f606460065483611a539190611fcb565b611a5d919061211c565b90505f611a6a8284612099565b6005546040519192505f916001600160a01b039091169084908381818185875af1925050503d805f8114611ab9576040519150601f19603f3d011682016040523d82523d5f602084013e611abe565b606091505b50506004546040519192505f916001600160a01b039091169084908381818185875af1925050503d805f8114611b0f576040519150601f19603f3d011682016040523d82523d5f602084013e611b14565b606091505b5050505050505050565b5f825f03611b2d57505f61052c565b5f611b388385611fcb565b905082611b45858361211c565b14610d045760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161055b565b5f610d0483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c90565b5f818311611beb5782610d04565b50919050565b5f80611bfd838561206e565b905083811015610d045760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161055b565b5f610d0483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611844565b5f8183611cb05760405162461bcd60e51b815260040161055b9190611cbc565b505f611873848661211c565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146109a3575f5ffd5b5f5f60408385031215611d16575f5ffd5b8235611d2181611cf1565b946020939093013593505050565b5f5f5f60608486031215611d41575f5ffd5b8335611d4c81611cf1565b92506020840135611d5c81611cf1565b929592945050506040919091013590565b5f60208284031215611d7d575f5ffd5b8135610d0481611cf1565b80151581146109a3575f5ffd5b5f5f60408385031215611da6575f5ffd5b8235611db181611cf1565b91506020830135611dc181611d88565b809150509250929050565b5f5f5f60408486031215611dde575f5ffd5b833567ffffffffffffffff811115611df4575f5ffd5b8401601f81018613611e04575f5ffd5b803567ffffffffffffffff811115611e1a575f5ffd5b8660208260051b8401011115611e2e575f5ffd5b602091820194509250840135611e4381611d88565b809150509250925092565b5f5f60408385031215611e5f575f5ffd5b8235611e6a81611cf1565b91506020830135611dc181611cf1565b5f60208284031215611e8a575f5ffd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115611f1557808504811115611ef957611ef9611ec6565b6001841615611f0757908102905b60019390931c928002611ede565b935093915050565b5f82611f2b5750600161052c565b81611f3757505f61052c565b8160018114611f4d5760028114611f5757611f73565b600191505061052c565b60ff841115611f6857611f68611ec6565b50506001821b61052c565b5060208310610133831016604e8410600b8410161715611f96575081810a61052c565b611fa25f198484611eda565b805f1904821115611fb557611fb5611ec6565b029392505050565b5f610d0460ff841683611f1d565b808202811582820484141761052c5761052c611ec6565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612006575f5ffd5b5051919050565b5f6020828403121561201d575f5ffd5b8151610d0481611d88565b5f60208284031215612038575f5ffd5b8151610d0481611cf1565b5f5f5f60608486031215612055575f5ffd5b5050815160208301516040909301519094929350919050565b8082018082111561052c5761052c611ec6565b5f6001820161209257612092611ec6565b5060010190565b8181038181111561052c5761052c611ec6565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156120fc5783516001600160a01b03168352602093840193909201916001016120d5565b50506001600160a01b039590951660608401525050608001529392505050565b5f8261213657634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220054837d13c3a390ecc6ed7c9c4edb20056ac4afed50d89ec2ca3a0c185000fb564736f6c634300081c0033
Deployed Bytecode Sourcemap
3566:11497:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6173:83;;;;;;;;;;-1:-1:-1;6243:5:0;;;;;;;;;;;;-1:-1:-1;;;6243:5:0;;;;6173:83;;;;;;;:::i;:::-;;;;;;;;7006:161;;;;;;;;;;-1:-1:-1;7006:161:0;;;;;:::i;:::-;;:::i;:::-;;;1110:14:1;;1103:22;1085:41;;1073:2;1058:18;7006:161:0;945:187:1;4883:42:0;;;;;;;;;;;;;;;;;;;1283:25:1;;;1271:2;1256:18;4883:42:0;1137:177:1;4735:50:0;;;;;;;;;;;;;;;;11310:127;;;;;;;;;;;;;:::i;:::-;;6450:95;;;;;;;;;;;;;:::i;7175:313::-;;;;;;;;;;-1:-1:-1;7175:313:0;;;;;:::i;:::-;;:::i;6359:83::-;;;;;;;;;;-1:-1:-1;6359:83:0;;4370:1;1974:36:1;;1962:2;1947:18;6359:83:0;1832:184:1;11445:80:0;;;;;;;;;;;;;:::i;14713:347::-;;;;;;;;;;;;;:::i;14189:243::-;;;;;;;;;;-1:-1:-1;14189:243:0;;;;;:::i;:::-;;:::i;11135:167::-;;;;;;;;;;;;;:::i;13610:204::-;;;;;;;;;;-1:-1:-1;13610:204:0;;;;;:::i;:::-;;:::i;6553:119::-;;;;;;;;;;-1:-1:-1;6553:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6646:18:0;6619:7;6646:18;;;:9;:18;;;;;;;6553:119;2647:148;;;;;;;;;;;;;:::i;14440:265::-;;;;;;;;;;;;;:::i;4559:50::-;;;;;;;;;;;;;;;;13822:359;;;;;;;;;;-1:-1:-1;13822:359:0;;;;;:::i;:::-;;:::i;12642:272::-;;;;;;;;;;;;;:::i;2433:79::-;;;;;;;;;;-1:-1:-1;2471:7:0;2498:6;2433:79;;-1:-1:-1;;;;;2498:6:0;;;3939:51:1;;3927:2;3912:18;2433:79:0;3793:203:1;4616:52:0;;;;;;;;;;;;;;;;6264:87;;;;;;;;;;-1:-1:-1;6336:7:0;;;;;;;;;;;;-1:-1:-1;;;6336:7:0;;;;6264:87;;6680:167;;;;;;;;;;-1:-1:-1;6680:167:0;;;;;:::i;:::-;;:::i;13204:398::-;;;;;;;;;;-1:-1:-1;13204:398:0;;;;;:::i;:::-;;:::i;4675:53::-;;;;;;;;;;;;;;;;6855:143;;;;;;;;;;-1:-1:-1;6855:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6963:18:0;;;6936:7;6963:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6855:143;11994:639;;;;;;;;;;;;;:::i;12963:233::-;;;;;;;;;;-1:-1:-1;12963:233:0;;;;;:::i;:::-;;:::i;7006:161::-;7081:4;7098:39;268:10;7121:7;7130:6;7098:8;:39::i;:::-;-1:-1:-1;7155:4:0;7006:161;;;;;:::o;11310:127::-;2560:6;;-1:-1:-1;;;;;2560:6:0;268:10;2560:22;2552:67;;;;-1:-1:-1;;;2552:67:0;;;;;;;:::i;:::-;;;;;;;;;11382:1:::1;11368:12;:15:::0;;;11399:30:::1;::::0;1283:25:1;;;11399:30:0::1;::::0;1271:2:1;1256:18;11399:30:0::1;;;;;;;;11310:127::o:0;6450:95::-;6503:7;4426:13;4370:1;4426:2;:13;:::i;:::-;4413:26;;:10;:26;:::i;:::-;6523:14;;6450:95;:::o;7175:313::-;7273:4;7290:36;7300:6;7308:9;7319:6;7290:9;:36::i;:::-;7337:121;7346:6;268:10;7368:89;7406:6;7368:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7368:19:0;;;;;;:11;:19;;;;;;;;268:10;7368:33;;;;;;;;;;:37;:89::i;:::-;7337:8;:121::i;:::-;-1:-1:-1;7476:4:0;7175:313;;;;;:::o;11445:80::-;2560:6;;-1:-1:-1;;;;;2560:6:0;268:10;2560:22;2552:67;;;;-1:-1:-1;;;2552:67:0;;;;;;;:::i;:::-;11516:1:::1;11503:11;:14:::0;11445:80::o;14713:347::-;14781:15;;-1:-1:-1;;;;;14781:15:0;268:10;-1:-1:-1;;;;;14765:31:0;;14757:40;;;;;;14851:4;14810:20;6646:18;;;:9;:18;;;;;;14871:16;;14868:75;;14901:30;14918:12;14901:16;:30::i;:::-;14976:21;15011:12;;15008:45;;15026:24;15039:10;15026:12;:24::i;:::-;14746:314;;14713:347::o;14189:243::-;2560:6;;-1:-1:-1;;;;;2560:6:0;268:10;2560:22;2552:67;;;;-1:-1:-1;;;2552:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14301:31:0;::::1;14293:85;;;::::0;-1:-1:-1;;;14293:85:0;;7115:2:1;14293:85:0::1;::::0;::::1;7097:21:1::0;7154:2;7134:18;;;7127:30;7193:34;7173:18;;;7166:62;-1:-1:-1;;;7244:18:1;;;7237:39;7293:19;;14293:85:0::1;6913:405:1::0;14293:85:0::1;14389:15;:35:::0;;-1:-1:-1;;;;;;14389:35:0::1;-1:-1:-1::0;;;;;14389:35:0;;;::::1;::::0;;;::::1;::::0;;14189:243::o;11135:167::-;2560:6;;-1:-1:-1;;;;;2560:6:0;268:10;2560:22;2552:67;;;;-1:-1:-1;;;2552:67:0;;;;;;;:::i;:::-;4426:13:::1;4370:1;4426:2;:13;:::i;:::-;4413:26;::::0;:10:::1;:26;:::i;:::-;11187:12;:21:::0;4426:13:::1;4370:1;4426:2;:13;:::i;:::-;4413:26;::::0;:10:::1;:26;:::i;:::-;11219:14;:23:::0;11258:36:::1;4426:13;4370:1;4426:2;:13;:::i;:::-;4413:26;::::0;:10:::1;:26;:::i;:::-;11258:36;::::0;1283:25:1;;;1271:2;1256:18;11258:36:0::1;1137:177:1::0;13610:204:0;2560:6;;-1:-1:-1;;;;;2560:6:0;268:10;2560:22;2552:67;;;;-1:-1:-1;;;2552:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13708:21:0;::::1;13700:57;;;::::0;-1:-1:-1;;;13700:57:0;;7525:2:1;13700:57:0::1;::::0;::::1;7507:21:1::0;7564:2;7544:18;;;7537:30;-1:-1:-1;;;7583:18:1;;;7576:53;7646:18;;13700:57:0::1;7323:347:1::0;13700:57:0::1;-1:-1:-1::0;;;;;13768:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:38;;-1:-1:-1;;13768:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13610:204::o;2647:148::-;2560:6;;-1:-1:-1;;;;;2560:6:0;268:10;2560:22;2552:67;;;;-1:-1:-1;;;2552:67:0;;;;;;;:::i;:::-;2754:1:::1;2738:6:::0;;2717:40:::1;::::0;-1:-1:-1;;;;;2738:6:0;;::::1;::::0;2717:40:::1;::::0;2754:1;;2717:40:::1;2785:1;2768:19:::0;;-1:-1:-1;;;;;;2768:19:0::1;::::0;;2647:148::o;14440:265::-;14512:15;;-1:-1:-1;;;;;14512:15:0;268:10;-1:-1:-1;;;;;14496:31:0;;14488:40;;;;;;14561:21;14601:14;14593:69;;;;-1:-1:-1;;;14593:69:0;;7877:2:1;14593:69:0;;;7859:21:1;7916:2;7896:18;;;7889:30;7955:34;7935:18;;;7928:62;-1:-1:-1;;;8006:18:1;;;7999:40;8056:19;;14593:69:0;7675:406:1;14593:69:0;14673:24;14686:10;14673:12;:24::i;:::-;14477:228;14440:265::o;13822:359::-;2560:6;;-1:-1:-1;;;;;2560:6:0;268:10;2560:22;2552:67;;;;-1:-1:-1;;;2552:67:0;;;;;;;:::i;:::-;13937:19;13929:43:::1;;;::::0;-1:-1:-1;;;13929:43:0;;8288:2:1;13929:43:0::1;::::0;::::1;8270:21:1::0;8327:2;8307:18;;;8300:30;-1:-1:-1;;;8346:18:1;;;8339:41;8397:18;;13929:43:0::1;8086:335:1::0;13929:43:0::1;13988:9;13983:191;14003:19:::0;;::::1;13983:191;;;14075:1;14052:8:::0;;14061:1;14052:11;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14052:25:0::1;::::0;14044:61:::1;;;::::0;-1:-1:-1;;;14044:61:0;;7525:2:1;14044:61:0::1;::::0;::::1;7507:21:1::0;7564:2;7544:18;;;7537:30;-1:-1:-1;;;7583:18:1;;;7576:53;7646:18;;14044:61:0::1;7323:347:1::0;14044:61:0::1;14154:8;14120:18;:31;14139:8;;14148:1;14139:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14120:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14120:31:0;:42;;-1:-1:-1;;14120:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;14024:3:0::1;13983:191;;;;13822:359:::0;;;:::o;12642:272::-;2560:6;;-1:-1:-1;;;;;2560:6:0;268:10;2560:22;2552:67;;;;-1:-1:-1;;;2552:67:0;;;;;;;:::i;:::-;12726:12:::1;12707:16;;:31;12699:67;;;::::0;-1:-1:-1;;;12699:67:0;;8760:2:1;12699:67:0::1;::::0;::::1;8742:21:1::0;8799:2;8779:18;;;8772:30;-1:-1:-1;;;8818:18:1;;;8811:53;8881:18;;12699:67:0::1;8558:347:1::0;12699:67:0::1;12796:12;12777:16;:31:::0;;;12819:11:::1;:18:::0;;-1:-1:-1;;12819:18:0::1;;;::::0;;12853:53:::1;::::0;::::1;::::0;::::1;::::0;12876:15:::1;::::0;12796:12;9084:25:1;;;9140:2;9125:18;;9118:34;9072:2;9057:18;;8910:248;6680:167:0;6758:4;6775:42;268:10;6799:9;6810:6;6775:9;:42::i;13204:398::-;13338:15;;13289:12;;-1:-1:-1;;;;;13338:15:0;268:10;-1:-1:-1;;;;;13322:31:0;;13314:40;;;;;;13370:6;13380:1;13370:11;13367:96;;13406:45;;-1:-1:-1;;;13406:45:0;;13445:4;13406:45;;;3939:51:1;-1:-1:-1;;;;;13406:30:0;;;;;3912:18:1;;13406:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13397:54;;13367:96;13480:42;;;-1:-1:-1;;;;;9590:32:1;;9572:51;;9654:2;9639:18;;9632:34;;;13480:42:0;;9545:18:1;13480:42:0;;;;;;;13570:15;;;13540:54;;-1:-1:-1;;;13540:54:0;;-1:-1:-1;;;;;13570:15:0;;;13540:54;;;9572:51:1;;;;9639:18;;;9632:34;;;13540:29:0;;;;;9545:18:1;;13540:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13533:61;13204:398;-1:-1:-1;;;13204:398:0:o;11994:639::-;2560:6;;-1:-1:-1;;;;;2560:6:0;268:10;2560:22;2552:67;;;;-1:-1:-1;;;2552:67:0;;;;;;;:::i;:::-;12077:12:::1;12058:16;;:31;12050:67;;;::::0;-1:-1:-1;;;12050:67:0;;8760:2:1;12050:67:0::1;::::0;::::1;8742:21:1::0;8799:2;8779:18;;;8772:30;-1:-1:-1;;;8818:18:1;;;8811:53;8881:18;;12050:67:0::1;8558:347:1::0;12050:67:0::1;12128:15;:80:::0;;-1:-1:-1;;;;;;12128:80:0::1;12165:42;12128:80:::0;;::::1;::::0;;;12219:58:::1;::::0;12236:4:::1;::::0;4426:13:::1;4370:1;4426:2;:13;:::i;:::-;4413:26;::::0;:10:::1;:26;:::i;12219:58::-;12322:15;;;;;;;;;-1:-1:-1::0;;;;;12322:15:0::1;-1:-1:-1::0;;;;;12322:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12304:55:0::1;;12368:4;12375:15;;;;;;;;;-1:-1:-1::0;;;;;12375:15:0::1;-1:-1:-1::0;;;;;12375:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12304:94;::::0;-1:-1:-1;;;;;;12304:94:0::1;::::0;;;;;;-1:-1:-1;;;;;10662:32:1;;;12304:94:0::1;::::0;::::1;10644:51:1::0;10731:32;;10711:18;;;10704:60;10617:18;;12304:94:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12288:13;:110:::0;;-1:-1:-1;;;;;12288:110:0;;::::1;-1:-1:-1::0;;;;;;12288:110:0;;::::1;;::::0;;12409:15:::1;::::0;::::1;:31;12448:21;12479:4;12486:24;12479:4:::0;-1:-1:-1;;;;;6646:18:0;6619:7;6646:18;;;:9;:18;;;;;;;6553:119;12486:24:::1;12512:1;12515;12518:7;2471::::0;2498:6;-1:-1:-1;;;;;2498:6:0;;2433:79;12518:7:::1;12409:134;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12409:134:0;;;-1:-1:-1;;;;;11096:32:1;;;12409:134:0::1;::::0;::::1;11078:51:1::0;11145:18;;;11138:34;;;;11188:18;;;11181:34;;;;11231:18;;;11224:34;11295:32;;;11274:19;;;11267:61;12527:15:0::1;11344:19:1::0;;;11337:35;11050:19;;12409:134:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12561:13:0::1;::::0;12592:15:::1;::::0;12554:71:::1;::::0;-1:-1:-1;;;12554:71:0;;-1:-1:-1;;;;;12592:15:0;;::::1;12554:71;::::0;::::1;9572:51:1::0;-1:-1:-1;;9639:18:1;;;9632:34;12561:13:0;::::1;::::0;-1:-1:-1;12554:29:0::1;::::0;9545:18:1;;12554:71:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12963:233::-:0;13040:15;;-1:-1:-1;;;;;13040:15:0;268:10;-1:-1:-1;;;;;13024:31:0;;13016:40;;;;;;13084:12;;13073:7;:23;;:51;;;;;13111:13;;13100:7;:24;;13073:51;13065:60;;;;;;13136:12;:21;;;13166:13;:22;12963:233::o;7496:335::-;-1:-1:-1;;;;;7589:19:0;;7581:68;;;;-1:-1:-1;;;7581:68:0;;12046:2:1;7581:68:0;;;12028:21:1;12085:2;12065:18;;;12058:30;12124:34;12104:18;;;12097:62;-1:-1:-1;;;12175:18:1;;;12168:34;12219:19;;7581:68:0;11844:400:1;7581:68:0;-1:-1:-1;;;;;7668:21:0;;7660:68;;;;-1:-1:-1;;;7660:68:0;;12451:2:1;7660:68:0;;;12433:21:1;12490:2;12470:18;;;12463:30;12529:34;12509:18;;;12502:62;-1:-1:-1;;;12580:18:1;;;12573:32;12622:19;;7660:68:0;12249:398:1;7660:68:0;-1:-1:-1;;;;;7739:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7791:32;;1283:25:1;;;7791:32:0;;1256:18:1;7791:32:0;;;;;;;7496:335;;;:::o;7839:2685::-;-1:-1:-1;;;;;7927:18:0;;7919:68;;;;-1:-1:-1;;;7919:68:0;;12854:2:1;7919:68:0;;;12836:21:1;12893:2;12873:18;;;12866:30;12932:34;12912:18;;;12905:62;-1:-1:-1;;;12983:18:1;;;12976:35;13028:19;;7919:68:0;12652:401:1;7919:68:0;-1:-1:-1;;;;;8006:16:0;;7998:64;;;;-1:-1:-1;;;7998:64:0;;13260:2:1;7998:64:0;;;13242:21:1;13299:2;13279:18;;;13272:30;13338:34;13318:18;;;13311:62;-1:-1:-1;;;13389:18:1;;;13382:33;13432:19;;7998:64:0;13058:399:1;7998:64:0;8090:1;8081:6;:10;8073:64;;;;-1:-1:-1;;;8073:64:0;;13664:2:1;8073:64:0;;;13646:21:1;13703:2;13683:18;;;13676:30;13742:34;13722:18;;;13715:62;-1:-1:-1;;;13793:18:1;;;13786:39;13842:19;;8073:64:0;13462:405:1;8073:64:0;8167:16;;8152:12;:31;8148:226;;;-1:-1:-1;;;;;8226:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;8254:22:0;;;;;;:18;:22;;;;;;;;8226:50;8200:162;;;;-1:-1:-1;;;8200:162:0;;14074:2:1;8200:162:0;;;14056:21:1;14113:2;14093:18;;;14086:30;14152:34;14132:18;;;14125:62;-1:-1:-1;;;14203:18:1;;;14196:48;14261:19;;8200:162:0;13872:414:1;8200:162:0;8384:17;2498:6;;-1:-1:-1;;;;;8422:15:0;;;2498:6;;8422:15;;;;:32;;-1:-1:-1;2471:7:0;2498:6;-1:-1:-1;;;;;8441:13:0;;;2498:6;;8441:13;;8422:32;8418:1741;;;8490:9;;8503:1;8490:14;8487:147;;8536:82;8614:3;8536:73;8560:15;;8548:9;;:27;8547:61;;8594:14;;8547:61;;;8579:12;;8547:61;8536:6;;:10;:73::i;:::-;:77;;:82::i;:::-;8524:94;;8487:147;8653:9;;:13;8650:96;;8697:33;8726:3;8697:24;8708:12;;8697:6;:10;;:24;;;;:::i;:33::-;8686:44;;8650:96;8774:13;;-1:-1:-1;;;;;8766:21:0;;;8774:13;;8766:21;:55;;;;-1:-1:-1;8805:15:0;;-1:-1:-1;;;;;8791:30:0;;;8805:15;;8791:30;;8766:55;:83;;;;-1:-1:-1;;;;;;8827:22:0;;;;;;:18;:22;;;;;;;;8825:24;8766:83;8762:426;;;8889:12;;8879:6;:22;;8871:60;;;;-1:-1:-1;;;8871:60:0;;14493:2:1;8871:60:0;;;14475:21:1;14532:2;14512:18;;;14505:30;14571:27;14551:18;;;14544:55;14616:18;;8871:60:0;14291:349:1;8871:60:0;8984:14;;8974:6;8958:13;8968:2;-1:-1:-1;;;;;6646:18:0;6619:7;6646:18;;;:9;:18;;;;;;;6553:119;8958:13;:22;;;;:::i;:::-;:40;;8950:79;;;;-1:-1:-1;;;8950:79:0;;14977:2:1;8950:79:0;;;14959:21:1;15016:2;14996:18;;;14989:30;15055:28;15035:18;;;15028:56;15101:18;;8950:79:0;14775:350:1;8950:79:0;9060:82;9138:3;9060:73;9084:15;;9072:9;;:27;9071:61;;9118:14;;9071:61;;9060:82;9161:9;:11;;9048:94;;-1:-1:-1;9161:9:0;:11;;;:::i;:::-;;;;;;8762:426;9214:13;;-1:-1:-1;;;;;9208:19:0;;;9214:13;;9208:19;:44;;;;-1:-1:-1;;;;;;9231:21:0;;9247:4;9231:21;;9208:44;9204:182;;;9285:85;9366:3;9285:76;9309:16;;9297:9;;:28;9296:64;;9345:15;;9296:64;;;9329:13;;9285:6;;:10;:76::i;:85::-;9273:97;;9204:182;9451:4;9402:28;6646:18;;;:9;:18;;;;;;9477:6;;;;9476:7;:30;;;;-1:-1:-1;9493:13:0;;-1:-1:-1;;;;;9487:19:0;;;9493:13;;9487:19;9476:30;:45;;;;-1:-1:-1;9510:11:0;;;;;;;9476:45;:89;;;;;9548:17;;9525:20;:40;9476:89;:123;;;;;9581:18;;9569:9;;:30;9476:123;9472:676;;;9637:13;;9624:12;:26;9620:88;;;9687:1;9675:9;:13;9620:88;9746:1;9734:9;;:13;9726:49;;;;-1:-1:-1;;;9726:49:0;;15472:2:1;9726:49:0;;;15454:21:1;15511:2;15491:18;;;15484:30;15550:25;15530:18;;;15523:53;15593:18;;9726:49:0;15270:347:1;9726:49:0;9796:67;9813:49;9817:6;9824:37;9828:20;9849:11;;9824:3;:37::i;:::-;9813:3;:49::i;:::-;9796:16;:67::i;:::-;9911:21;9955:20;;9951:104;;10000:35;10013:21;10000:12;:35::i;:::-;10075:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;10120:12:0;10105:13;:27;-1:-1:-1;9472:676:0;8456:1703;8418:1741;10174:13;;10171:166;;10246:4;10228:24;;;;:9;:24;;;;;;:39;;10257:9;10228:28;:39::i;:::-;10219:4;10201:24;;;;:9;:24;;;;;;;:66;;;;10285:40;;-1:-1:-1;;;;;10285:40:0;;;;;;;10315:9;1283:25:1;;1271:2;1256:18;;1137:177;10285:40:0;;;;;;;;10171:166;-1:-1:-1;;;;;10366:15:0;;;;;;:9;:15;;;;;;:27;;10386:6;10366:19;:27::i;:::-;-1:-1:-1;;;;;10349:15:0;;;;;;:9;:15;;;;;:44;10419:40;10437:21;:6;10448:9;10437:10;:21::i;:::-;-1:-1:-1;;;;;10419:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10404:13:0;;;;;;;:9;:13;;;;;:55;;;;10475:41;;;10494:21;:6;10505:9;10494:10;:21::i;:::-;10475:41;;1283:25:1;;;1271:2;1256:18;10475:41:0;;;;;;;7908:2616;7839:2685;;;:::o;1325:190::-;1411:7;1447:12;1439:6;;;;1431:29;;;;-1:-1:-1;;;1431:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1471:9:0;1483:5;1487:1;1483;:5;:::i;:::-;1471:17;1325:190;-1:-1:-1;;;;;1325:190:0:o;10644:483::-;5376:6;:13;;-1:-1:-1;;5376:13:0;5385:4;5376:13;;;10746:16:::1;::::0;;10760:1:::1;10746:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10746:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10746:16:0::1;10722:40;;10791:4;10773;10778:1;10773:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10773:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10817:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10817:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10773:7;;10817:22;;;;;:15;:22:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10807:4;10812:1;10807:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10807:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10882:15:::1;::::0;10850:62:::1;::::0;10867:4:::1;::::0;10882:15:::1;10900:11:::0;10850:8:::1;:62::i;:::-;10923:15;::::0;:196:::1;::::0;-1:-1:-1;;;10923:196:0;;-1:-1:-1;;;;;10923:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11004:11;;10923:15:::1;::::0;11046:4;;11073::::1;::::0;11093:15:::1;::::0;10923:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;5412:6:0;:14;;-1:-1:-1;;5412:14:0;;;-1:-1:-1;;;;10644:483:0:o;11530:456::-;11588:11;;11603:1;11588:16;11584:398;;11636:15;;:39;;11619:12;;-1:-1:-1;;;;;11636:15:0;;11664:6;;11619:12;11636:39;11619:12;11636:39;11664:6;11636:15;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14440:265:0:o;11584:398::-;11715:17;11758:3;11744:11;;11735:6;:20;;;;:::i;:::-;:26;;;;:::i;:::-;11715:46;-1:-1:-1;11767:23:0;11793:18;11715:46;11793:6;:18;:::i;:::-;11838:10;;:37;;11767:44;;-1:-1:-1;11818:15:0;;-1:-1:-1;;;;;11838:10:0;;;;11861:9;;11818:15;11838:37;11818:15;11838:37;11861:9;11838:10;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11915:15:0;;:48;;11817:58;;-1:-1:-1;11898:12:0;;-1:-1:-1;;;;;11915:15:0;;;;11943;;11898:12;11915:48;11898:12;11915:48;11943:15;11915;:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;11530:456:0;:::o;1523:246::-;1581:7;1605:1;1610;1605:6;1601:47;;-1:-1:-1;1635:1:0;1628:8;;1601:47;1658:9;1670:5;1674:1;1670;:5;:::i;:::-;1658:17;-1:-1:-1;1703:1:0;1694:5;1698:1;1658:17;1694:5;:::i;:::-;:10;1686:56;;;;-1:-1:-1;;;1686:56:0;;17485:2:1;1686:56:0;;;17467:21:1;17524:2;17504:18;;;17497:30;17563:34;17543:18;;;17536:62;-1:-1:-1;;;17614:18:1;;;17607:31;17655:19;;1686:56:0;17283:397:1;1777:132:0;1835:7;1862:39;1866:1;1869;1862:39;;;;;;;;;;;;;;;;;:3;:39::i;10534:102::-;10591:7;10618:1;10616;:3;10615:13;;10627:1;10615:13;;;-1:-1:-1;10623:1:0;10534:102;-1:-1:-1;10534:102:0:o;994:179::-;1052:7;;1084:5;1088:1;1084;:5;:::i;:::-;1072:17;;1113:1;1108;:6;;1100:46;;;;-1:-1:-1;;;1100:46:0;;17887:2:1;1100:46:0;;;17869:21:1;17926:2;17906:18;;;17899:30;17965:29;17945:18;;;17938:57;18012:18;;1100:46:0;17685:351:1;1181:136:0;1239:7;1266:43;1270:1;1273;1266:43;;;;;;;;;;;;;;;;;:3;:43::i;1917:189::-;2003:7;2038:12;2031:5;2023:28;;;;-1:-1:-1;;;2023:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2062:9:0;2074:5;2078:1;2074;:5;:::i;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;573:367;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;904:2;889:18;;;;876:32;;-1:-1:-1;;;573:367:1:o;1319:508::-;1396:6;1404;1412;1465:2;1453:9;1444:7;1440:23;1436:32;1433:52;;;1481:1;1478;1471:12;1433:52;1520:9;1507:23;1539:31;1564:5;1539:31;:::i;:::-;1589:5;-1:-1:-1;1646:2:1;1631:18;;1618:32;1659:33;1618:32;1659:33;:::i;:::-;1319:508;;1711:7;;-1:-1:-1;;;1791:2:1;1776:18;;;;1763:32;;1319:508::o;2021:255::-;2088:6;2141:2;2129:9;2120:7;2116:23;2112:32;2109:52;;;2157:1;2154;2147:12;2109:52;2196:9;2183:23;2215:31;2240:5;2215:31;:::i;2281:118::-;2367:5;2360:13;2353:21;2346:5;2343:32;2333:60;;2389:1;2386;2379:12;2404:382;2469:6;2477;2530:2;2518:9;2509:7;2505:23;2501:32;2498:52;;;2546:1;2543;2536:12;2498:52;2585:9;2572:23;2604:31;2629:5;2604:31;:::i;:::-;2654:5;-1:-1:-1;2711:2:1;2696:18;;2683:32;2724:30;2683:32;2724:30;:::i;:::-;2773:7;2763:17;;;2404:382;;;;;:::o;3043:745::-;3135:6;3143;3151;3204:2;3192:9;3183:7;3179:23;3175:32;3172:52;;;3220:1;3217;3210:12;3172:52;3260:9;3247:23;3293:18;3285:6;3282:30;3279:50;;;3325:1;3322;3315:12;3279:50;3348:22;;3401:4;3393:13;;3389:27;-1:-1:-1;3379:55:1;;3430:1;3427;3420:12;3379:55;3470:2;3457:16;3496:18;3488:6;3485:30;3482:50;;;3528:1;3525;3518:12;3482:50;3583:7;3576:4;3566:6;3563:1;3559:14;3555:2;3551:23;3547:34;3544:47;3541:67;;;3604:1;3601;3594:12;3541:67;3635:4;3627:13;;;;-1:-1:-1;3659:6:1;-1:-1:-1;3700:20:1;;3687:34;3730:28;3687:34;3730:28;:::i;:::-;3777:5;3767:15;;;3043:745;;;;;:::o;4001:388::-;4069:6;4077;4130:2;4118:9;4109:7;4105:23;4101:32;4098:52;;;4146:1;4143;4136:12;4098:52;4185:9;4172:23;4204:31;4229:5;4204:31;:::i;:::-;4254:5;-1:-1:-1;4311:2:1;4296:18;;4283:32;4324:33;4283:32;4324:33;:::i;4394:226::-;4453:6;4506:2;4494:9;4485:7;4481:23;4477:32;4474:52;;;4522:1;4519;4512:12;4474:52;-1:-1:-1;4567:23:1;;4394:226;-1:-1:-1;4394:226:1:o;4625:356::-;4827:2;4809:21;;;4846:18;;;4839:30;4905:34;4900:2;4885:18;;4878:62;4972:2;4957:18;;4625:356::o;5176:127::-;5237:10;5232:3;5228:20;5225:1;5218:31;5268:4;5265:1;5258:15;5292:4;5289:1;5282:15;5308:375;5396:1;5414:5;5428:249;5449:1;5439:8;5436:15;5428:249;;;5499:4;5494:3;5490:14;5484:4;5481:24;5478:50;;;5508:18;;:::i;:::-;5558:1;5548:8;5544:16;5541:49;;;5572:16;;;;5541:49;5655:1;5651:16;;;;;5611:15;;5428:249;;;5308:375;;;;;;:::o;5688:902::-;5737:5;5767:8;5757:80;;-1:-1:-1;5808:1:1;5822:5;;5757:80;5856:4;5846:76;;-1:-1:-1;5893:1:1;5907:5;;5846:76;5938:4;5956:1;5951:59;;;;6024:1;6019:174;;;;5931:262;;5951:59;5981:1;5972:10;;5995:5;;;6019:174;6056:3;6046:8;6043:17;6040:43;;;6063:18;;:::i;:::-;-1:-1:-1;;6119:1:1;6105:16;;6178:5;;5931:262;;6277:2;6267:8;6264:16;6258:3;6252:4;6249:13;6245:36;6239:2;6229:8;6226:16;6221:2;6215:4;6212:12;6208:35;6205:77;6202:203;;;-1:-1:-1;6314:19:1;;;6390:5;;6202:203;6437:42;-1:-1:-1;;6462:8:1;6456:4;6437:42;:::i;:::-;6515:6;6511:1;6507:6;6503:19;6494:7;6491:32;6488:58;;;6526:18;;:::i;:::-;6564:20;;5688:902;-1:-1:-1;;;5688:902:1:o;6595:140::-;6653:5;6682:47;6723:4;6713:8;6709:19;6703:4;6682:47;:::i;6740:168::-;6813:9;;;6844;;6861:15;;;6855:22;;6841:37;6831:71;;6882:18;;:::i;8426:127::-;8487:10;8482:3;8478:20;8475:1;8468:31;8518:4;8515:1;8508:15;8542:4;8539:1;8532:15;9163:230;9233:6;9286:2;9274:9;9265:7;9261:23;9257:32;9254:52;;;9302:1;9299;9292:12;9254:52;-1:-1:-1;9347:16:1;;9163:230;-1:-1:-1;9163:230:1:o;9964:245::-;10031:6;10084:2;10072:9;10063:7;10059:23;10055:32;10052:52;;;10100:1;10097;10090:12;10052:52;10132:9;10126:16;10151:28;10173:5;10151:28;:::i;10214:251::-;10284:6;10337:2;10325:9;10316:7;10312:23;10308:32;10305:52;;;10353:1;10350;10343:12;10305:52;10385:9;10379:16;10404:31;10429:5;10404:31;:::i;11383:456::-;11471:6;11479;11487;11540:2;11528:9;11519:7;11515:23;11511:32;11508:52;;;11556:1;11553;11546:12;11508:52;-1:-1:-1;;11601:16:1;;11707:2;11692:18;;11686:25;11803:2;11788:18;;;11782:25;11601:16;;11686:25;;-1:-1:-1;11782:25:1;11383:456;-1:-1:-1;11383:456:1:o;14645:125::-;14710:9;;;14731:10;;;14728:36;;;14744:18;;:::i;15130:135::-;15169:3;15190:17;;;15187:43;;15210:18;;:::i;:::-;-1:-1:-1;15257:1:1;15246:13;;15130:135::o;15622:128::-;15689:9;;;15710:11;;;15707:37;;;15724:18;;:::i;15887:959::-;16149:4;16197:3;16186:9;16182:19;16228:6;16217:9;16210:25;16271:6;16266:2;16255:9;16251:18;16244:34;16314:3;16309:2;16298:9;16294:18;16287:31;16338:6;16373;16367:13;16404:6;16396;16389:22;16442:3;16431:9;16427:19;16420:26;;16481:2;16473:6;16469:15;16455:29;;16502:1;16512:195;16526:6;16523:1;16520:13;16512:195;;;16591:13;;-1:-1:-1;;;;;16587:39:1;16575:52;;16656:2;16682:15;;;;16647:12;;;;16623:1;16541:9;16512:195;;;-1:-1:-1;;;;;;;16763:32:1;;;;16758:2;16743:18;;16736:60;-1:-1:-1;;16827:3:1;16812:19;16805:35;16724:3;15887:959;-1:-1:-1;;;15887:959:1:o;17061:217::-;17101:1;17127;17117:132;;17171:10;17166:3;17162:20;17159:1;17152:31;17206:4;17203:1;17196:15;17234:4;17231:1;17224:15;17117:132;-1:-1:-1;17263:9:1;;17061:217::o
Swarm Source
ipfs://054837d13c3a390ecc6ed7c9c4edb20056ac4afed50d89ec2ca3a0c185000fb5
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.
Add Token to MetaMask (Web3)