Feature Tip: Add private address tag to any address under My Name Tag !
Warning! There are reports that the CBDAO team who managed MEXP has deleted the website and social media accounts. Please exercise caution when interacting with this address.
Overview
Max Total Supply
15,750.50860274922690297 MEXP
Holders
725 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
1.442784518480653459 MEXPValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
MEXPToken
Compiler Version
v0.5.16+commit.9c3226ce
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-04-11 */ pragma solidity 0.5.16; /* ___________________________________________________________________ _ _ ______ | | / / / --|-/|-/-----__---/----__----__---_--_----__-------/-------__------ |/ |/ /___) / / ' / ) / / ) /___) / / ) __/__|____(___ _/___(___ _(___/_/_/__/_(___ _____/______(___/__o_o_ ███╗ ███╗███████╗██╗ ██╗██████╗ ████████╗ ██████╗ ██╗ ██╗███████╗███╗ ██╗ ████╗ ████║██╔════╝╚██╗██╔╝██╔══██╗ ╚══██╔══╝██╔═══██╗██║ ██╔╝██╔════╝████╗ ██║ ██╔████╔██║█████╗ ╚███╔╝ ██████╔╝ ██║ ██║ ██║█████╔╝ █████╗ ██╔██╗ ██║ ██║╚██╔╝██║██╔══╝ ██╔██╗ ██╔═══╝ ██║ ██║ ██║██╔═██╗ ██╔══╝ ██║╚██╗██║ ██║ ╚═╝ ██║███████╗██╔╝ ██╗██║ ██║ ╚██████╔╝██║ ██╗███████╗██║ ╚████║ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═══╝ === 'MEXP' Token contract with following features === => TRC20 Compliance => Higher degree of control by owner - safeguard functionality => SafeMath implementation => Burnable and minting ( For MOJI Players) ======================= Quick Stats =================== => Name : "MOJI Experience Points" => Symbol : MEXP => Total supply: 0 (Minted only by MOJI players only) => Decimals : 18 */ //*******************************************************************// //------------------------ SafeMath Library -------------------------// //*******************************************************************// /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a); return c; } } //*******************************************************************// //------------------ Contract to Manage Ownership -------------------// //*******************************************************************// contract owned { address payable public owner; address payable private newOwner; /** Signer is deligated admin wallet, which can do sub-owner functions. Signer calls following four functions: => claimOwnerTokens => distributeMainDividend => distributeLeaders1 => distributeLeaders2 */ address public signer; event OwnershipTransferred(address indexed _from, address indexed _to); constructor() public { owner = msg.sender; signer = msg.sender; } modifier onlyOwner { require(msg.sender == owner); _; } modifier onlySigner { require(msg.sender == signer); _; } function changeSigner(address _signer) public onlyOwner { signer = _signer; } function transferOwnership(address payable _newOwner) public onlyOwner { newOwner = _newOwner; } //this flow is to prevent transferring ownership to wrong wallet by mistake function acceptOwnership() public { require(msg.sender == newOwner); emit OwnershipTransferred(owner, newOwner); owner = newOwner; newOwner = address(0); } } //**************************************************************************// //------------------- NIFTYMOJI CONTRACT INTERFACE --------------------// //**************************************************************************// interface niftyMoji { function ownerOf(uint256 tokenId) external view returns (address); function powerNLucks(uint256 tokenID) external view returns(uint256, uint256); function totalSupply() external view returns(uint256); } //****************************************************************************// //--------------------- MEXP MAIN CODE STARTS HERE ---------------------// //****************************************************************************// contract MEXPToken is owned { /*=============================== = DATA STORAGE = ===============================*/ // Public variables of the token using SafeMath for uint256; uint256 public withdrawnByAdmin; string public constant name = "MOJI Experience Points"; string public constant symbol = "MEXP"; uint256 public constant decimals = 18; uint256 public totalSupply; uint256 public burnTracker; //mainly used in mintToken function.. uint256 public mintingMultiplier=10000; // 10000 = 1, 123 = 0.0123 admin can set it minting per day, will be factored as luck % address public niftyMojiContractAddress = 0xde544E54a330Abd1eA8a0E6693D46BFe95D9A684; // admin can set / change this address uint256 public battleFees=1; // default is 0.000000000000000001 Ether for battle fees, which admin can change uint256 public mintTokenFee = 0.001 ether; uint256 public battleWinReward= 10**18; // = 1 token with 18 decimal places, admin can change uint256 public battleLooseReward = 10**17; // = 0.1 token with 10 decimal places, admin can change uint256 public maxBattlePerDay=10; //daily 10 max battles bool public globalHalt; // Emergency Break uint256 public lastFinishedIndex; // This creates a mapping with all data storage mapping (address => uint256) public balanceOf; mapping(uint256 => uint256) public totalMintedForTokenId; mapping(uint256 => uint256) public totalMintedByOwnerForTokenID; mapping(uint256 => uint256) public totalMintedByUserForTokenID; mapping(uint256 => uint256) public totalMintedByBattleForTokenID; mapping(uint256 => uint256) public dayTracker; mapping (address => mapping (address => uint256)) public allowance; mapping(address => uint256) public BattleCountEndTime; mapping (address => uint256) public userBattleCount; mapping(address => bool) public blackListedUser; mapping(uint256 => bool) public blackListedToken; struct battleInfo { uint256 tokenID; uint256 userSeed; uint256 rewardAmount; uint256 blockNo; uint256 opponentTokenID; } battleInfo[] public battleInfos; /*=============================== = PUBLIC EVENTS = ===============================*/ // This generates a public event of token transfer event Transfer(address indexed from, address indexed to, uint256 value); // This notifies clients about the amount burnt event Burn(address indexed indexed from, uint256 value); // This trackes approvals event Approval(address indexed owner, address indexed spender, uint256 value ); /*====================================== = STANDARD TRC20 FUNCTIONS = ======================================*/ /* Internal transfer, only can be called by this contract */ function _transfer(address _from, address _to, uint _value) internal { //checking conditions require(!globalHalt, "paused by admin"); require (_to != address(0x0)); // Prevent transfer to 0x0 address. Use burn() instead // overflow and undeflow checked by SafeMath Library balanceOf[_from] = balanceOf[_from].sub(_value); // Subtract from the sender balanceOf[_to] = balanceOf[_to].add(_value); // Add the same to the recipient // emit Transfer event emit Transfer(_from, _to, _value); } /** * Transfer tokens * * Send `_value` tokens to `_to` from your account * * @param _to The address of the recipient * @param _value the amount to send */ function transfer(address _to, uint256 _value) public returns (bool success) { require(!blackListedUser[msg.sender], "you are not allowed"); //no need to check for input validations, as that is ruled by SafeMath _transfer(msg.sender, _to, _value); return true; } /** * Transfer tokens from other address * * Send `_value` tokens to `_to` in behalf of `_from` * * @param _from The address of the sender * @param _to The address of the recipient * @param _value the amount to send */ function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) { require(!blackListedUser[msg.sender], "you are not allowed"); //require(_value <= allowance[_from][msg.sender]); // no need for this condition as it is already checked by SafeMath below allowance[_from][msg.sender] = allowance[_from][msg.sender].sub(_value); _transfer(_from, _to, _value); return true; } /** * Set allowance for other address * * Allows `_spender` to spend no more than `_value` tokens in your behalf * * @param _spender The address authorized to spend * @param _value the max amount they can spend */ function approve(address _spender, uint256 _value) public returns (bool success) { require(!blackListedUser[msg.sender], "you are not allowed"); require(!globalHalt, "paused by admin"); allowance[msg.sender][_spender] = _value; emit Approval(msg.sender, _spender, _value); return true; } /*===================================== = CUSTOM PUBLIC FUNCTIONS = ======================================*/ /** Constructor function */ constructor() public { battleInfo memory temp; battleInfos.push(temp); } /** * Fallback function. It just accepts incoming Ether */ function () payable external {} /** * Destroy tokens * * Remove `_value` tokens from the system irreversibly * * @param _value the amount of money to burn */ function burn(uint256 _value) public returns (bool success) { require(!globalHalt, "paused by admin"); require(!blackListedUser[msg.sender], "you are not allowed"); //checking of enough token balance is done by SafeMath balanceOf[msg.sender] = balanceOf[msg.sender].sub(_value); // Subtract from the sender totalSupply = totalSupply.sub(_value); // Updates totalSupply burnTracker = burnTracker.add(_value); emit Transfer(msg.sender, address(0), _value); //althogh we can track all the "burn" from the Transfer function, we just kept it as it is. As that is no much harm emit Burn(msg.sender, _value); return true; } /** * Destroy tokens from other account * * Remove `_value` tokens from the system irreversibly on behalf of `_from`. * * @param _from the address of the sender * @param _value the amount of money to burn */ function burnFrom(address _from, uint256 _value) public returns (bool success) { require(!globalHalt, "paused by admin"); require(!blackListedUser[msg.sender], "you are not allowed"); //checking of allowance and token value is done by SafeMath balanceOf[_from] = balanceOf[_from].sub(_value); // Subtract from the targeted balance allowance[_from][msg.sender] = allowance[_from][msg.sender].sub(_value); // Subtract from the sender's allowance totalSupply = totalSupply.sub(_value); // Update totalSupply burnTracker = burnTracker.add(_value); emit Transfer(_from, address(0), _value); emit Burn(_from, _value); return true; } function mintTokenOwnerOnly(address user, uint256 _tokenID, uint256 tokenAmount) public onlyOwner returns(bool) { require(user != address(this) && user != address(0), "invalid address" ); require(tokenAmount > 0 , "Invalid token to mint"); require(!blackListedToken[_tokenID], "this token is blacklisted"); if(_tokenID != 0) { require(niftyMoji(niftyMojiContractAddress).ownerOf(_tokenID) == user,"user is not the owner of this tokenID"); totalMintedForTokenId[_tokenID] = totalMintedForTokenId[_tokenID].add(tokenAmount); totalMintedByOwnerForTokenID[_tokenID] = totalMintedByOwnerForTokenID[_tokenID].add(tokenAmount); } totalSupply = totalSupply.add(tokenAmount); balanceOf[user] = balanceOf[user].add(tokenAmount); //emitting Transfer event emit Transfer(address(0),user,tokenAmount); return true; } function blackListUser(address user) public onlyOwner returns(bool) { blackListedUser[user] = true; return true; } function removeUserFromBlackList(address user) public onlyOwner returns(bool) { blackListedUser[user] = false; return true; } function blackListToken(uint256 _tokenID) public onlyOwner returns(bool) { blackListedToken[_tokenID] = true; return true; } function removeTokenFromBlackList(uint256 _tokenID) public onlyOwner returns(bool) { blackListedToken[_tokenID] = false; return true; } //Minting according to luck percent of the given token id function mintToken(uint256 _tokenID) public payable returns(bool) { require(!globalHalt, "paused by admin"); address caller = niftyMoji(niftyMojiContractAddress).ownerOf(_tokenID); require(!blackListedUser[caller], "you are not allowed"); require(!blackListedToken[_tokenID], "this token is blacklisted"); require(caller == msg.sender,"caller is not the owner of this tokenID"); require(msg.value >= mintTokenFee, 'Not enough token minting fee'); uint256 dt = dayTracker[_tokenID]; if (dt != 0) { uint256 secPassed = now - dt ; require(secPassed > 0 , "already minted for the day"); (,uint256 luckPercent ) = niftyMoji(niftyMojiContractAddress).powerNLucks(_tokenID); uint256 mintAmount = (( (mintingMultiplier * (10 ** 18) * ((luckPercent + 9 ) / 10 ) ) / 100000 ) / 86400 ) * secPassed ; dayTracker[_tokenID] = now ; totalMintedByUserForTokenID[_tokenID] = totalMintedByUserForTokenID[_tokenID].add(mintAmount); totalMintedForTokenId[_tokenID] = totalMintedForTokenId[_tokenID].add(mintAmount); totalSupply = totalSupply.add(mintAmount); balanceOf[caller] = balanceOf[caller].add(mintAmount); //emitting Transfer event emit Transfer(address(0),caller,mintAmount); } else { dayTracker[_tokenID] = now; } owner.transfer(msg.value); return true; } function viewAmountIfIMintNow(uint256 _tokenID) public view returns(uint256 amount) { uint256 dt = dayTracker[_tokenID]; if (dt != 0) { uint256 secPassed = now - dt ; (,uint256 luckPercent ) = niftyMoji(niftyMojiContractAddress).powerNLucks(_tokenID); amount = (( (mintingMultiplier * (10 ** 18) * ((luckPercent + 9 ) / 10 ) ) / 100000 ) / 86400 ) * secPassed ; return amount; } else { return (0); } } function setMaxBattlePerDay(uint _maxBattlePerDay) public onlyOwner returns (bool) { maxBattlePerDay = _maxBattlePerDay; return true; } event initiateBattleEv(address caller,uint256 _tokenID,uint256 _userSeed,uint256 battleInfoIndex, uint256 blockNo); function initiateBattle(uint256 _tokenID, uint256 _userSeed) public payable returns (uint256 battleID) { require(!globalHalt, "paused by admin"); require(msg.value == battleFees, "Invalid fees amount"); address caller = niftyMoji(niftyMojiContractAddress).ownerOf(_tokenID); require(!blackListedUser[caller], "you are not allowed"); require(!blackListedToken[_tokenID], "this token is blacklisted"); require(caller == msg.sender,"caller is not the owner of this tokenID"); require( userBattleCount[caller] <= maxBattlePerDay, "enough for the day"); if(BattleCountEndTime[caller] >= now ) { userBattleCount[caller] += 1; } else { BattleCountEndTime[caller] = now + 86400; userBattleCount[caller] = 1; } battleInfo memory temp; temp.tokenID = _tokenID; temp.userSeed = _userSeed; temp.blockNo = block.number; battleInfos.push(temp); //emitting Transfer event battleID = battleInfos.length - 1; address(owner).transfer(msg.value); emit initiateBattleEv(caller, _tokenID, _userSeed, battleID,block.number ); return battleID; } event finishBattleEv(address user, uint256 battleInfoIndex, uint256 _tokenID, uint256 randomToken, uint256 mintAmount); function finishBattle(uint256 _battleInfoIndex,bytes32 blockHashValue) public onlySigner returns (bool) // returns winning amount minted { require(_battleInfoIndex < battleInfos.length, "Invalid Battle Index"); require(battleInfos[_battleInfoIndex].rewardAmount == 0, "Already finished"); uint256 _tokenID = battleInfos[_battleInfoIndex].tokenID; uint256 _userSeed = battleInfos[_battleInfoIndex].userSeed; address caller = niftyMoji(niftyMojiContractAddress).ownerOf(_tokenID); bool success; uint256 randomToken; address randomTokenUser; for(uint256 i=0;i<50;i++) { randomToken = uint256(keccak256(abi.encodePacked(blockHashValue, _userSeed))) % niftyMoji(niftyMojiContractAddress).totalSupply() + 1; randomTokenUser = niftyMoji(niftyMojiContractAddress).ownerOf(_tokenID); if(blackListedToken[randomToken] || blackListedUser[randomTokenUser]) { _userSeed += block.number%8; } else { success = true; break; } } require(success, "try again"); (uint256 powerPercent,uint256 luckPercent ) = niftyMoji(niftyMojiContractAddress).powerNLucks(_tokenID); (uint256 powerPercent2,uint256 luckPercent2 ) = niftyMoji(niftyMojiContractAddress).powerNLucks(randomToken); uint256 mintAmount; if( powerPercent + luckPercent > powerPercent2 + luckPercent2) { mintAmount = battleWinReward ; } else { mintAmount = battleLooseReward; } battleInfos[_battleInfoIndex].rewardAmount = mintAmount; battleInfos[_battleInfoIndex].opponentTokenID = randomToken; emit finishBattleEv(caller,_battleInfoIndex, _tokenID, randomToken, mintAmount); balanceOf[caller] = balanceOf[caller].add(mintAmount); totalSupply = totalSupply.add(mintAmount); totalMintedForTokenId[_tokenID] = totalMintedForTokenId[_tokenID].add(mintAmount); totalMintedByBattleForTokenID[_tokenID] = totalMintedByBattleForTokenID[_tokenID].add(mintAmount); dayTracker[_tokenID] = now; lastFinishedIndex = _battleInfoIndex; emit Transfer(address(0),caller,mintAmount); return true; } function multipleFinishBattle (bytes32[] memory _blockHashValue) public onlySigner returns(bool) { uint i; for(i=0;i<_blockHashValue.length;i++) { require(finishBattle(lastFinishedIndex + i + 1,_blockHashValue[i]),"could not fihish battle"); } return true; } function lastUnFinishedIndexNBlock() public view returns (uint256 lastUnFinishedIndex, uint256 blockNo) { uint len = battleInfos.length-1; if(len > lastFinishedIndex) { return (lastFinishedIndex +1, battleInfos[lastFinishedIndex +1].blockNo); } else { return (0,0); } } function setNiftyMojiContractAddress(address _niftyMojiContractAddress) public onlyOwner returns(bool) { niftyMojiContractAddress = _niftyMojiContractAddress; return true; } function setMintingMultiplier(uint256 _mintingMultiplier) public onlyOwner returns (bool) { mintingMultiplier = _mintingMultiplier; return true; } function setbattleFees(uint256 _battleFees) public onlyOwner returns(bool) { battleFees = _battleFees; return true; } function setMintTokenFee(uint256 _mintTokenFee) public onlyOwner returns(bool) { mintTokenFee = _mintTokenFee; return true; } function setBattleReward(uint256 winReward, uint256 looseReward) public onlyOwner returns(bool) { battleWinReward = winReward; battleLooseReward = looseReward; return true; } /** * If global halt is off, then this funtion will on it. And vice versa * This also change safeguard for token movement status */ function changeGlobalHalt() onlyOwner public returns(bool) { if (globalHalt == false){ globalHalt = true; } else{ globalHalt = false; } return true; } /** * Function to check Ether balance in this contract */ function totalEtherbalanceContract() public view returns(uint256){ return address(this).balance; } /** * Just in rare case, owner wants to transfer Ether from contract to owner address */ function manualWithdrawEtherAdmin(uint64 Amount) public onlyOwner returns (bool){ require (address(this).balance >= Amount); address(owner).transfer(Amount); withdrawnByAdmin = withdrawnByAdmin.add(Amount); return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"payable":false,"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":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","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":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"battleInfoIndex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_tokenID","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"randomToken","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"mintAmount","type":"uint256"}],"name":"finishBattleEv","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"uint256","name":"_tokenID","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_userSeed","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"battleInfoIndex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"blockNo","type":"uint256"}],"name":"initiateBattleEv","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"BattleCountEndTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"battleFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"battleInfos","outputs":[{"internalType":"uint256","name":"tokenID","type":"uint256"},{"internalType":"uint256","name":"userSeed","type":"uint256"},{"internalType":"uint256","name":"rewardAmount","type":"uint256"},{"internalType":"uint256","name":"blockNo","type":"uint256"},{"internalType":"uint256","name":"opponentTokenID","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"battleLooseReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"battleWinReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tokenID","type":"uint256"}],"name":"blackListToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"blackListUser","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"blackListedToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blackListedUser","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"burnFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"burnTracker","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"changeGlobalHalt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_signer","type":"address"}],"name":"changeSigner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"dayTracker","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_battleInfoIndex","type":"uint256"},{"internalType":"bytes32","name":"blockHashValue","type":"bytes32"}],"name":"finishBattle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"globalHalt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tokenID","type":"uint256"},{"internalType":"uint256","name":"_userSeed","type":"uint256"}],"name":"initiateBattle","outputs":[{"internalType":"uint256","name":"battleID","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"lastFinishedIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastUnFinishedIndexNBlock","outputs":[{"internalType":"uint256","name":"lastUnFinishedIndex","type":"uint256"},{"internalType":"uint256","name":"blockNo","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint64","name":"Amount","type":"uint64"}],"name":"manualWithdrawEtherAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxBattlePerDay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tokenID","type":"uint256"}],"name":"mintToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"mintTokenFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"_tokenID","type":"uint256"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"mintTokenOwnerOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"mintingMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32[]","name":"_blockHashValue","type":"bytes32[]"}],"name":"multipleFinishBattle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"niftyMojiContractAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address payable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tokenID","type":"uint256"}],"name":"removeTokenFromBlackList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"removeUserFromBlackList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"winReward","type":"uint256"},{"internalType":"uint256","name":"looseReward","type":"uint256"}],"name":"setBattleReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_maxBattlePerDay","type":"uint256"}],"name":"setMaxBattlePerDay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_mintTokenFee","type":"uint256"}],"name":"setMintTokenFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_mintingMultiplier","type":"uint256"}],"name":"setMintingMultiplier","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_niftyMojiContractAddress","type":"address"}],"name":"setNiftyMojiContractAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_battleFees","type":"uint256"}],"name":"setbattleFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"signer","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalEtherbalanceContract","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"totalMintedByBattleForTokenID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"totalMintedByOwnerForTokenID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"totalMintedByUserForTokenID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"totalMintedForTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userBattleCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_tokenID","type":"uint256"}],"name":"viewAmountIfIMintNow","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"withdrawnByAdmin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405261271060065573de544e54a330abd1ea8a0e6693d46bfe95d9a684600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160085566038d7ea4c68000600955670de0b6b3a7640000600a5567016345785d8a0000600b55600a600c553480156200009957600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001256200018f565b601a8190806001815401808255809150509060018203906000526020600020906005020160009091929091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015550505050620001be565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6150d780620001ce6000396000f3fe6080604052600436106103765760003560e01c8063720099b3116101d1578063bfeb0ea811610102578063d74c5d92116100a0578063f47cf2391161006f578063f47cf239146114ea578063f57ca6d31461154f578063f603a048146115b8578063f7e1d2be146115e357610376565b8063d74c5d9214611356578063dd62ed3e146113c1578063ec9aca7814611446578063f2fde38b1461149957610376565b8063cb77baa7116100dc578063cb77baa714611168578063d295e90e14611245578063d306254d146112ae578063d724129d146112d957610376565b8063bfeb0ea814611080578063c634d032146110cf578063c6b58ccb1461111557610376565b8063a4aa3e031161016f578063aad2b72311610149578063aad2b72314610f62578063b03c1abc14610fb3578063bc10670414610fde578063bd5addb71461102d57610376565b8063a4aa3e0314610e3b578063a7fad26b14610e8a578063a9059cbb14610eef57610376565b80637c1017d2116101ab5780637c1017d214610ca45780638da5cb5b14610cf757806395d89b4114610d4e57806395eb3e4f14610dde57610376565b8063720099b314610bc757806379ba509714610c1a57806379cc679014610c3157610376565b8063338211a3116102ab578063457af8f31161024957806358f44c1f1161022357806358f44c1f14610a915780636653efd714610ac05780636feefd2714610b1357806370a0823114610b6257610376565b8063457af8f3146109ef5780634b6f0fdd14610a1a5780635217ea2914610a4557610376565b80633ed70eac116102855780633ed70eac146108bd57806342966c681461091457806343d4df8a14610967578063442e309d1461099257610376565b8063338211a3146108035780633744cc681461083557806337e9da721461086057610376565b806321d510b31161031857806323b872dd116102f257806323b872dd146106a35780632942cd96146107365780632f19063d14610789578063313ce567146107d857610376565b806321d510b3146105b85780632270a6f414610621578063238ac9331461064c57610376565b806310f448f01161035457806310f448f0146104a657806316f3a12d146104f557806318160ddd1461055e5780631d1217151461058957610376565b806306fdde0314610378578063095ea7b3146104085780630aed3f761461047b575b005b34801561038457600080fd5b5061038d61160e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103cd5780820151818401526020810190506103b2565b50505050905090810190601f1680156103fa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041457600080fd5b506104616004803603604081101561042b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611647565b604051808215151515815260200191505060405180910390f35b34801561048757600080fd5b5061049061187c565b6040518082815260200191505060405180910390f35b3480156104b257600080fd5b506104df600480360360208110156104c957600080fd5b8101908080359060200190929190505050611882565b6040518082815260200191505060405180910390f35b34801561050157600080fd5b506105446004803603602081101561051857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119b4565b604051808215151515815260200191505060405180910390f35b34801561056a57600080fd5b50610573611a70565b6040518082815260200191505060405180910390f35b34801561059557600080fd5b5061059e611a76565b604051808215151515815260200191505060405180910390f35b3480156105c457600080fd5b50610607600480360360208110156105db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b30565b604051808215151515815260200191505060405180910390f35b34801561062d57600080fd5b50610636611b50565b6040518082815260200191505060405180910390f35b34801561065857600080fd5b50610661611b56565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106af57600080fd5b5061071c600480360360608110156106c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b7c565b604051808215151515815260200191505060405180910390f35b34801561074257600080fd5b5061076f6004803603602081101561075957600080fd5b8101908080359060200190929190505050611d63565b604051808215151515815260200191505060405180910390f35b34801561079557600080fd5b506107c2600480360360208110156107ac57600080fd5b8101908080359060200190929190505050611dce565b6040518082815260200191505060405180910390f35b3480156107e457600080fd5b506107ed611de6565b6040518082815260200191505060405180910390f35b34801561080f57600080fd5b50610818611deb565b604051808381526020018281526020019250505060405180910390f35b34801561084157600080fd5b5061084a611e4c565b6040518082815260200191505060405180910390f35b34801561086c57600080fd5b506108a36004803603602081101561088357600080fd5b81019080803567ffffffffffffffff169060200190929190505050611e52565b604051808215151515815260200191505060405180910390f35b3480156108c957600080fd5b506108d2611f64565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561092057600080fd5b5061094d6004803603602081101561093757600080fd5b8101908080359060200190929190505050611f8a565b604051808215151515815260200191505060405180910390f35b34801561097357600080fd5b5061097c612257565b6040518082815260200191505060405180910390f35b34801561099e57600080fd5b506109d5600480360360408110156109b557600080fd5b81019080803590602001909291908035906020019092919050505061225d565b604051808215151515815260200191505060405180910390f35b3480156109fb57600080fd5b50610a046122d0565b6040518082815260200191505060405180910390f35b348015610a2657600080fd5b50610a2f6122d6565b6040518082815260200191505060405180910390f35b610a7b60048036036040811015610a5b57600080fd5b8101908080359060200190929190803590602001909291905050506122dc565b6040518082815260200191505060405180910390f35b348015610a9d57600080fd5b50610aa66129cb565b604051808215151515815260200191505060405180910390f35b348015610acc57600080fd5b50610af960048036036020811015610ae357600080fd5b81019080803590602001909291905050506129de565b604051808215151515815260200191505060405180910390f35b348015610b1f57600080fd5b50610b4c60048036036020811015610b3657600080fd5b81019080803590602001909291905050506129fe565b6040518082815260200191505060405180910390f35b348015610b6e57600080fd5b50610bb160048036036020811015610b8557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612a16565b6040518082815260200191505060405180910390f35b348015610bd357600080fd5b50610c0060048036036020811015610bea57600080fd5b8101908080359060200190929190505050612a2e565b604051808215151515815260200191505060405180910390f35b348015610c2657600080fd5b50610c2f612a99565b005b348015610c3d57600080fd5b50610c8a60048036036040811015610c5457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612c36565b604051808215151515815260200191505060405180910390f35b348015610cb057600080fd5b50610cdd60048036036020811015610cc757600080fd5b8101908080359060200190929190505050613013565b604051808215151515815260200191505060405180910390f35b348015610d0357600080fd5b50610d0c61307e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d5a57600080fd5b50610d636130a3565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610da3578082015181840152602081019050610d88565b50505050905090810190601f168015610dd05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610dea57600080fd5b50610e2160048036036040811015610e0157600080fd5b8101908080359060200190929190803590602001909291905050506130dc565b604051808215151515815260200191505060405180910390f35b348015610e4757600080fd5b50610e7460048036036020811015610e5e57600080fd5b8101908080359060200190929190505050613a23565b6040518082815260200191505060405180910390f35b348015610e9657600080fd5b50610ed960048036036020811015610ead57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613a3b565b6040518082815260200191505060405180910390f35b348015610efb57600080fd5b50610f4860048036036040811015610f1257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613a53565b604051808215151515815260200191505060405180910390f35b348015610f6e57600080fd5b50610fb160048036036020811015610f8557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613b2a565b005b348015610fbf57600080fd5b50610fc8613bc7565b6040518082815260200191505060405180910390f35b348015610fea57600080fd5b506110176004803603602081101561100157600080fd5b8101908080359060200190929190505050613bcd565b6040518082815260200191505060405180910390f35b34801561103957600080fd5b506110666004803603602081101561105057600080fd5b8101908080359060200190929190505050613be5565b604051808215151515815260200191505060405180910390f35b34801561108c57600080fd5b506110b9600480360360208110156110a357600080fd5b8101908080359060200190929190505050613c50565b6040518082815260200191505060405180910390f35b6110fb600480360360208110156110e557600080fd5b8101908080359060200190929190505050613c68565b604051808215151515815260200191505060405180910390f35b34801561112157600080fd5b5061114e6004803603602081101561113857600080fd5b81019080803590602001909291905050506143be565b604051808215151515815260200191505060405180910390f35b34801561117457600080fd5b5061122b6004803603602081101561118b57600080fd5b81019080803590602001906401000000008111156111a857600080fd5b8201836020820111156111ba57600080fd5b803590602001918460208302840111640100000000831117156111dc57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929050505061444e565b604051808215151515815260200191505060405180910390f35b34801561125157600080fd5b506112946004803603602081101561126857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614566565b604051808215151515815260200191505060405180910390f35b3480156112ba57600080fd5b506112c3614622565b6040518082815260200191505060405180910390f35b3480156112e557600080fd5b5061133c600480360360608110156112fc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050614628565b604051808215151515815260200191505060405180910390f35b34801561136257600080fd5b5061138f6004803603602081101561137957600080fd5b8101908080359060200190929190505050614b3d565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b3480156113cd57600080fd5b50611430600480360360408110156113e457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614b80565b6040518082815260200191505060405180910390f35b34801561145257600080fd5b5061147f6004803603602081101561146957600080fd5b8101908080359060200190929190505050614ba5565b604051808215151515815260200191505060405180910390f35b3480156114a557600080fd5b506114e8600480360360208110156114bc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614c35565b005b3480156114f657600080fd5b506115396004803603602081101561150d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614cd2565b6040518082815260200191505060405180910390f35b34801561155b57600080fd5b5061159e6004803603602081101561157257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614cea565b604051808215151515815260200191505060405180910390f35b3480156115c457600080fd5b506115cd614d8f565b6040518082815260200191505060405180910390f35b3480156115ef57600080fd5b506115f8614d97565b6040518082815260200191505060405180910390f35b6040518060400160405280601681526020017f4d4f4a4920457870657269656e636520506f696e74730000000000000000000081525081565b6000601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611709576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f796f7520617265206e6f7420616c6c6f7765640000000000000000000000000081525060200191505060405180910390fd5b600d60009054906101000a900460ff161561178c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f7061757365642062792061646d696e000000000000000000000000000000000081525060200191505060405180910390fd5b81601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600c5481565b60008060146000848152602001908152602001600020549050600081146119a957600081420390506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638a4a33be866040518263ffffffff1660e01b815260040180828152602001915050604080518083038186803b15801561191e57600080fd5b505afa158015611932573d6000803e3d6000fd5b505050506040513d604081101561194857600080fd5b8101908080519060200190929190805190602001909291905050509150508162015180620186a0600a600985018161197c57fe5b04670de0b6b3a764000060065402028161199257fe5b048161199a57fe5b040293508393505050506119af565b60009150505b919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a0f57600080fd5b6001601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ad157600080fd5b60001515600d60009054906101000a900460ff1615151415611b0d576001600d60006101000a81548160ff021916908315150217905550611b29565b6000600d60006101000a81548160ff0219169083151502179055505b6001905090565b60186020528060005260406000206000915054906101000a900460ff1681565b60035481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611c3e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f796f7520617265206e6f7420616c6c6f7765640000000000000000000000000081525060200191505060405180910390fd5b611ccd82601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614d9d90919063ffffffff16565b601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d58848484614db7565b600190509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611dbe57600080fd5b8160088190555060019050919050565b60126020528060005260406000206000915090505481565b601281565b60008060006001601a80549050039050600e54811115611e39576001600e5401601a6001600e540181548110611e1d57fe5b9060005260206000209060050201600301549250925050611e48565b60008081915080905092509250505b9091565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ead57600080fd5b8167ffffffffffffffff16471015611ec457600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8367ffffffffffffffff169081150290604051600060405180830381858888f19350505050158015611f35573d6000803e3d6000fd5b50611f558267ffffffffffffffff1660035461500890919063ffffffff16565b60038190555060019050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600d60009054906101000a900460ff161561200f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f7061757365642062792061646d696e000000000000000000000000000000000081525060200191505060405180910390fd5b601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156120cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f796f7520617265206e6f7420616c6c6f7765640000000000000000000000000081525060200191505060405180910390fd5b61212182600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614d9d90919063ffffffff16565b600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061217982600454614d9d90919063ffffffff16565b6004819055506121948260055461500890919063ffffffff16565b600581905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a260019050919050565b600a5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146122b857600080fd5b82600a8190555081600b819055506001905092915050565b60065481565b600b5481565b6000600d60009054906101000a900460ff1615612361576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f7061757365642062792061646d696e000000000000000000000000000000000081525060200191505060405180910390fd5b60085434146123d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e76616c6964206665657320616d6f756e740000000000000000000000000081525060200191505060405180910390fd5b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561244d57600080fd5b505afa158015612461573d6000803e3d6000fd5b505050506040513d602081101561247757600080fd5b81019080805190602001909291905050509050601860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561254a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f796f7520617265206e6f7420616c6c6f7765640000000000000000000000000081525060200191505060405180910390fd5b6019600085815260200190815260200160002060009054906101000a900460ff16156125de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f7468697320746f6b656e20697320626c61636b6c69737465640000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612662576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602781526020018061507c6027913960400191505060405180910390fd5b600c54601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115612719576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f656e6f75676820666f722074686520646179000000000000000000000000000081525060200191505060405180910390fd5b42601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106127b2576001601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550612841565b620151804201601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b612849615027565b848160000181815250508381602001818152505043816060018181525050601a819080600181540180825580915050906001820390600052602060002090600502016000909192909190915060008201518160000155602082015181600101556040820151816002015560608201518160030155608082015181600401555050506001601a805490500392506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f1935050505015801561293c573d6000803e3d6000fd5b507f819675e3cfbb4ad979e64dcee5bde4df78a7a9fef443648b640e108849b5f8658286868643604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a1829250505092915050565b600d60009054906101000a900460ff1681565b60196020528060005260406000206000915054906101000a900460ff1681565b60116020528060005260406000206000915090505481565b600f6020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612a8957600080fd5b8160098190555060019050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612af357600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600d60009054906101000a900460ff1615612cbb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f7061757365642062792061646d696e000000000000000000000000000000000081525060200191505060405180910390fd5b601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612d7b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f796f7520617265206e6f7420616c6c6f7765640000000000000000000000000081525060200191505060405180910390fd5b612dcd82600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614d9d90919063ffffffff16565b600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e9f82601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614d9d90919063ffffffff16565b601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f3482600454614d9d90919063ffffffff16565b600481905550612f4f8260055461500890919063ffffffff16565b600581905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a38273ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a26001905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461306e57600080fd5b8160068190555060019050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600481526020017f4d4558500000000000000000000000000000000000000000000000000000000081525081565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461313857600080fd5b601a8054905083106131b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f496e76616c696420426174746c6520496e64657800000000000000000000000081525060200191505060405180910390fd5b6000601a84815481106131c157fe5b90600052602060002090600502016002015414613246576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f416c72656164792066696e69736865640000000000000000000000000000000081525060200191505060405180910390fd5b6000601a848154811061325557fe5b90600052602060002090600502016000015490506000601a858154811061327857fe5b90600052602060002090600502016001015490506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561330157600080fd5b505afa158015613315573d6000803e3d6000fd5b505050506040513d602081101561332b57600080fd5b81019080805190602001909291905050509050600080600080600090505b6032811015613588576001600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156133bc57600080fd5b505afa1580156133d0573d6000803e3d6000fd5b505050506040513d60208110156133e657600080fd5b81019080805190602001909291905050508a8860405160200180838152602001828152602001925050506040516020818303038152906040528051906020012060001c8161343057fe5b06019250600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e886040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156134a757600080fd5b505afa1580156134bb573d6000803e3d6000fd5b505050506040513d60208110156134d157600080fd5b810190808051906020019092919050505091506019600084815260200190815260200160002060009054906101000a900460ff16806135595750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613572576008438161356857fe5b068601955061357b565b60019350613588565b8080600101915050613349565b50826135fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f74727920616761696e000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600080600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638a4a33be896040518263ffffffff1660e01b815260040180828152602001915050604080518083038186803b15801561367157600080fd5b505afa158015613685573d6000803e3d6000fd5b505050506040513d604081101561369b57600080fd5b81019080805190602001909291908051906020019092919050505091509150600080600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638a4a33be876040518263ffffffff1660e01b815260040180828152602001915050604080518083038186803b15801561372f57600080fd5b505afa158015613743573d6000803e3d6000fd5b505050506040513d604081101561375957600080fd5b810190808051906020019092919080519060200190929190505050915091506000818301848601111561379057600a549050613796565b600b5490505b80601a8f815481106137a457fe5b90600052602060002090600502016002018190555086601a8f815481106137c757fe5b9060005260206000209060050201600401819055507fbb6c6c2435370cfd3b48e76bc7598863c9e7a07ec23742dc69ecdcf837e7122e898f8d8a85604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a16138b181600f60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461500890919063ffffffff16565b600f60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506139098160045461500890919063ffffffff16565b60048190555061393581601060008e81526020019081526020016000205461500890919063ffffffff16565b601060008d81526020019081526020016000208190555061397281601360008e81526020019081526020016000205461500890919063ffffffff16565b601360008d81526020019081526020016000208190555042601460008d8152602001908152602001600020819055508d600e819055508873ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019b50505050505050505050505092915050565b60146020528060005260406000206000915090505481565b60166020528060005260406000206000915090505481565b6000601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613b15576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f796f7520617265206e6f7420616c6c6f7765640000000000000000000000000081525060200191505060405180910390fd5b613b20338484614db7565b6001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613b8357600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60085481565b60106020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613c4057600080fd5b81600c8190555060019050919050565b60136020528060005260406000206000915090505481565b6000600d60009054906101000a900460ff1615613ced576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f7061757365642062792061646d696e000000000000000000000000000000000081525060200191505060405180910390fd5b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015613d6257600080fd5b505afa158015613d76573d6000803e3d6000fd5b505050506040513d6020811015613d8c57600080fd5b81019080805190602001909291905050509050601860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613e5f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f796f7520617265206e6f7420616c6c6f7765640000000000000000000000000081525060200191505060405180910390fd5b6019600084815260200190815260200160002060009054906101000a900460ff1615613ef3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f7468697320746f6b656e20697320626c61636b6c69737465640000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614613f77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602781526020018061507c6027913960400191505060405180910390fd5b600954341015613fef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4e6f7420656e6f75676820746f6b656e206d696e74696e67206665650000000081525060200191505060405180910390fd5b6000601460008581526020019081526020016000205490506000811461433257600081420390506000811161408c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f616c7265616479206d696e74656420666f72207468652064617900000000000081525060200191505060405180910390fd5b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638a4a33be876040518263ffffffff1660e01b815260040180828152602001915050604080518083038186803b15801561410057600080fd5b505afa158015614114573d6000803e3d6000fd5b505050506040513d604081101561412a57600080fd5b81019080805190602001909291908051906020019092919050505091505060008262015180620186a0600a600986018161416057fe5b04670de0b6b3a764000060065402028161417657fe5b048161417e57fe5b040290504260146000898152602001908152602001600020819055506141c081601260008a81526020019081526020016000205461500890919063ffffffff16565b60126000898152602001908152602001600020819055506141fd81601060008a81526020019081526020016000205461500890919063ffffffff16565b60106000898152602001908152602001600020819055506142298160045461500890919063ffffffff16565b60048190555061428181600f60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461500890919063ffffffff16565b600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505061434b565b4260146000868152602001908152602001600020819055505b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156143b2573d6000803e3d6000fd5b50600192505050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461441957600080fd5b60016019600084815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146144aa57600080fd5b60008090505b825181101561455c576144dd600182600e5401018483815181106144d057fe5b60200260200101516130dc565b61454f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f636f756c64206e6f742066696869736820626174746c6500000000000000000081525060200191505060405180910390fd5b80806001019150506144b0565b6001915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146145c157600080fd5b6000601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b60055481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461468357600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156146ec5750600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b61475e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f696e76616c69642061646472657373000000000000000000000000000000000081525060200191505060405180910390fd5b600082116147d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f496e76616c696420746f6b656e20746f206d696e74000000000000000000000081525060200191505060405180910390fd5b6019600084815260200190815260200160002060009054906101000a900460ff1615614868576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f7468697320746f6b656e20697320626c61636b6c69737465640000000000000081525060200191505060405180910390fd5b60008314614a1c578373ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156148fa57600080fd5b505afa15801561490e573d6000803e3d6000fd5b505050506040513d602081101561492457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16146149a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806150576025913960400191505060405180910390fd5b6149c782601060008681526020019081526020016000205461500890919063ffffffff16565b6010600085815260200190815260200160002081905550614a0482601160008681526020019081526020016000205461500890919063ffffffff16565b60116000858152602001908152602001600020819055505b614a318260045461500890919063ffffffff16565b600481905550614a8982600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461500890919063ffffffff16565b600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b601a8181548110614b4a57fe5b90600052602060002090600502016000915090508060000154908060010154908060020154908060030154908060040154905085565b6015602052816000526040600020602052806000526040600020600091509150505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614614c0057600080fd5b60006019600084815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614614c8e57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60176020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614614d4557600080fd5b81600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b600047905090565b600e5481565b600082821115614dac57600080fd5b818303905092915050565b600d60009054906101000a900460ff1615614e3a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f7061757365642062792061646d696e000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614e7457600080fd5b614ec681600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614d9d90919063ffffffff16565b600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614f5b81600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461500890919063ffffffff16565b600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008082840190508381101561501d57600080fd5b8091505092915050565b6040518060a001604052806000815260200160008152602001600081526020016000815260200160008152509056fe75736572206973206e6f7420746865206f776e6572206f66207468697320746f6b656e494463616c6c6572206973206e6f7420746865206f776e6572206f66207468697320746f6b656e4944a265627a7a72315820d03bbef45985d0fd5e814bc60d0bb7191b6b2252b29fa6479cd2497ca6bd0ab164736f6c63430005100032
Deployed Bytecode
0x6080604052600436106103765760003560e01c8063720099b3116101d1578063bfeb0ea811610102578063d74c5d92116100a0578063f47cf2391161006f578063f47cf239146114ea578063f57ca6d31461154f578063f603a048146115b8578063f7e1d2be146115e357610376565b8063d74c5d9214611356578063dd62ed3e146113c1578063ec9aca7814611446578063f2fde38b1461149957610376565b8063cb77baa7116100dc578063cb77baa714611168578063d295e90e14611245578063d306254d146112ae578063d724129d146112d957610376565b8063bfeb0ea814611080578063c634d032146110cf578063c6b58ccb1461111557610376565b8063a4aa3e031161016f578063aad2b72311610149578063aad2b72314610f62578063b03c1abc14610fb3578063bc10670414610fde578063bd5addb71461102d57610376565b8063a4aa3e0314610e3b578063a7fad26b14610e8a578063a9059cbb14610eef57610376565b80637c1017d2116101ab5780637c1017d214610ca45780638da5cb5b14610cf757806395d89b4114610d4e57806395eb3e4f14610dde57610376565b8063720099b314610bc757806379ba509714610c1a57806379cc679014610c3157610376565b8063338211a3116102ab578063457af8f31161024957806358f44c1f1161022357806358f44c1f14610a915780636653efd714610ac05780636feefd2714610b1357806370a0823114610b6257610376565b8063457af8f3146109ef5780634b6f0fdd14610a1a5780635217ea2914610a4557610376565b80633ed70eac116102855780633ed70eac146108bd57806342966c681461091457806343d4df8a14610967578063442e309d1461099257610376565b8063338211a3146108035780633744cc681461083557806337e9da721461086057610376565b806321d510b31161031857806323b872dd116102f257806323b872dd146106a35780632942cd96146107365780632f19063d14610789578063313ce567146107d857610376565b806321d510b3146105b85780632270a6f414610621578063238ac9331461064c57610376565b806310f448f01161035457806310f448f0146104a657806316f3a12d146104f557806318160ddd1461055e5780631d1217151461058957610376565b806306fdde0314610378578063095ea7b3146104085780630aed3f761461047b575b005b34801561038457600080fd5b5061038d61160e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103cd5780820151818401526020810190506103b2565b50505050905090810190601f1680156103fa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041457600080fd5b506104616004803603604081101561042b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611647565b604051808215151515815260200191505060405180910390f35b34801561048757600080fd5b5061049061187c565b6040518082815260200191505060405180910390f35b3480156104b257600080fd5b506104df600480360360208110156104c957600080fd5b8101908080359060200190929190505050611882565b6040518082815260200191505060405180910390f35b34801561050157600080fd5b506105446004803603602081101561051857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119b4565b604051808215151515815260200191505060405180910390f35b34801561056a57600080fd5b50610573611a70565b6040518082815260200191505060405180910390f35b34801561059557600080fd5b5061059e611a76565b604051808215151515815260200191505060405180910390f35b3480156105c457600080fd5b50610607600480360360208110156105db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b30565b604051808215151515815260200191505060405180910390f35b34801561062d57600080fd5b50610636611b50565b6040518082815260200191505060405180910390f35b34801561065857600080fd5b50610661611b56565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106af57600080fd5b5061071c600480360360608110156106c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b7c565b604051808215151515815260200191505060405180910390f35b34801561074257600080fd5b5061076f6004803603602081101561075957600080fd5b8101908080359060200190929190505050611d63565b604051808215151515815260200191505060405180910390f35b34801561079557600080fd5b506107c2600480360360208110156107ac57600080fd5b8101908080359060200190929190505050611dce565b6040518082815260200191505060405180910390f35b3480156107e457600080fd5b506107ed611de6565b6040518082815260200191505060405180910390f35b34801561080f57600080fd5b50610818611deb565b604051808381526020018281526020019250505060405180910390f35b34801561084157600080fd5b5061084a611e4c565b6040518082815260200191505060405180910390f35b34801561086c57600080fd5b506108a36004803603602081101561088357600080fd5b81019080803567ffffffffffffffff169060200190929190505050611e52565b604051808215151515815260200191505060405180910390f35b3480156108c957600080fd5b506108d2611f64565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561092057600080fd5b5061094d6004803603602081101561093757600080fd5b8101908080359060200190929190505050611f8a565b604051808215151515815260200191505060405180910390f35b34801561097357600080fd5b5061097c612257565b6040518082815260200191505060405180910390f35b34801561099e57600080fd5b506109d5600480360360408110156109b557600080fd5b81019080803590602001909291908035906020019092919050505061225d565b604051808215151515815260200191505060405180910390f35b3480156109fb57600080fd5b50610a046122d0565b6040518082815260200191505060405180910390f35b348015610a2657600080fd5b50610a2f6122d6565b6040518082815260200191505060405180910390f35b610a7b60048036036040811015610a5b57600080fd5b8101908080359060200190929190803590602001909291905050506122dc565b6040518082815260200191505060405180910390f35b348015610a9d57600080fd5b50610aa66129cb565b604051808215151515815260200191505060405180910390f35b348015610acc57600080fd5b50610af960048036036020811015610ae357600080fd5b81019080803590602001909291905050506129de565b604051808215151515815260200191505060405180910390f35b348015610b1f57600080fd5b50610b4c60048036036020811015610b3657600080fd5b81019080803590602001909291905050506129fe565b6040518082815260200191505060405180910390f35b348015610b6e57600080fd5b50610bb160048036036020811015610b8557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612a16565b6040518082815260200191505060405180910390f35b348015610bd357600080fd5b50610c0060048036036020811015610bea57600080fd5b8101908080359060200190929190505050612a2e565b604051808215151515815260200191505060405180910390f35b348015610c2657600080fd5b50610c2f612a99565b005b348015610c3d57600080fd5b50610c8a60048036036040811015610c5457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612c36565b604051808215151515815260200191505060405180910390f35b348015610cb057600080fd5b50610cdd60048036036020811015610cc757600080fd5b8101908080359060200190929190505050613013565b604051808215151515815260200191505060405180910390f35b348015610d0357600080fd5b50610d0c61307e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d5a57600080fd5b50610d636130a3565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610da3578082015181840152602081019050610d88565b50505050905090810190601f168015610dd05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610dea57600080fd5b50610e2160048036036040811015610e0157600080fd5b8101908080359060200190929190803590602001909291905050506130dc565b604051808215151515815260200191505060405180910390f35b348015610e4757600080fd5b50610e7460048036036020811015610e5e57600080fd5b8101908080359060200190929190505050613a23565b6040518082815260200191505060405180910390f35b348015610e9657600080fd5b50610ed960048036036020811015610ead57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613a3b565b6040518082815260200191505060405180910390f35b348015610efb57600080fd5b50610f4860048036036040811015610f1257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613a53565b604051808215151515815260200191505060405180910390f35b348015610f6e57600080fd5b50610fb160048036036020811015610f8557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613b2a565b005b348015610fbf57600080fd5b50610fc8613bc7565b6040518082815260200191505060405180910390f35b348015610fea57600080fd5b506110176004803603602081101561100157600080fd5b8101908080359060200190929190505050613bcd565b6040518082815260200191505060405180910390f35b34801561103957600080fd5b506110666004803603602081101561105057600080fd5b8101908080359060200190929190505050613be5565b604051808215151515815260200191505060405180910390f35b34801561108c57600080fd5b506110b9600480360360208110156110a357600080fd5b8101908080359060200190929190505050613c50565b6040518082815260200191505060405180910390f35b6110fb600480360360208110156110e557600080fd5b8101908080359060200190929190505050613c68565b604051808215151515815260200191505060405180910390f35b34801561112157600080fd5b5061114e6004803603602081101561113857600080fd5b81019080803590602001909291905050506143be565b604051808215151515815260200191505060405180910390f35b34801561117457600080fd5b5061122b6004803603602081101561118b57600080fd5b81019080803590602001906401000000008111156111a857600080fd5b8201836020820111156111ba57600080fd5b803590602001918460208302840111640100000000831117156111dc57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929050505061444e565b604051808215151515815260200191505060405180910390f35b34801561125157600080fd5b506112946004803603602081101561126857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614566565b604051808215151515815260200191505060405180910390f35b3480156112ba57600080fd5b506112c3614622565b6040518082815260200191505060405180910390f35b3480156112e557600080fd5b5061133c600480360360608110156112fc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050614628565b604051808215151515815260200191505060405180910390f35b34801561136257600080fd5b5061138f6004803603602081101561137957600080fd5b8101908080359060200190929190505050614b3d565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b3480156113cd57600080fd5b50611430600480360360408110156113e457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614b80565b6040518082815260200191505060405180910390f35b34801561145257600080fd5b5061147f6004803603602081101561146957600080fd5b8101908080359060200190929190505050614ba5565b604051808215151515815260200191505060405180910390f35b3480156114a557600080fd5b506114e8600480360360208110156114bc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614c35565b005b3480156114f657600080fd5b506115396004803603602081101561150d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614cd2565b6040518082815260200191505060405180910390f35b34801561155b57600080fd5b5061159e6004803603602081101561157257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614cea565b604051808215151515815260200191505060405180910390f35b3480156115c457600080fd5b506115cd614d8f565b6040518082815260200191505060405180910390f35b3480156115ef57600080fd5b506115f8614d97565b6040518082815260200191505060405180910390f35b6040518060400160405280601681526020017f4d4f4a4920457870657269656e636520506f696e74730000000000000000000081525081565b6000601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611709576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f796f7520617265206e6f7420616c6c6f7765640000000000000000000000000081525060200191505060405180910390fd5b600d60009054906101000a900460ff161561178c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f7061757365642062792061646d696e000000000000000000000000000000000081525060200191505060405180910390fd5b81601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600c5481565b60008060146000848152602001908152602001600020549050600081146119a957600081420390506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638a4a33be866040518263ffffffff1660e01b815260040180828152602001915050604080518083038186803b15801561191e57600080fd5b505afa158015611932573d6000803e3d6000fd5b505050506040513d604081101561194857600080fd5b8101908080519060200190929190805190602001909291905050509150508162015180620186a0600a600985018161197c57fe5b04670de0b6b3a764000060065402028161199257fe5b048161199a57fe5b040293508393505050506119af565b60009150505b919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a0f57600080fd5b6001601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ad157600080fd5b60001515600d60009054906101000a900460ff1615151415611b0d576001600d60006101000a81548160ff021916908315150217905550611b29565b6000600d60006101000a81548160ff0219169083151502179055505b6001905090565b60186020528060005260406000206000915054906101000a900460ff1681565b60035481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611c3e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f796f7520617265206e6f7420616c6c6f7765640000000000000000000000000081525060200191505060405180910390fd5b611ccd82601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614d9d90919063ffffffff16565b601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d58848484614db7565b600190509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611dbe57600080fd5b8160088190555060019050919050565b60126020528060005260406000206000915090505481565b601281565b60008060006001601a80549050039050600e54811115611e39576001600e5401601a6001600e540181548110611e1d57fe5b9060005260206000209060050201600301549250925050611e48565b60008081915080905092509250505b9091565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ead57600080fd5b8167ffffffffffffffff16471015611ec457600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8367ffffffffffffffff169081150290604051600060405180830381858888f19350505050158015611f35573d6000803e3d6000fd5b50611f558267ffffffffffffffff1660035461500890919063ffffffff16565b60038190555060019050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600d60009054906101000a900460ff161561200f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f7061757365642062792061646d696e000000000000000000000000000000000081525060200191505060405180910390fd5b601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156120cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f796f7520617265206e6f7420616c6c6f7765640000000000000000000000000081525060200191505060405180910390fd5b61212182600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614d9d90919063ffffffff16565b600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061217982600454614d9d90919063ffffffff16565b6004819055506121948260055461500890919063ffffffff16565b600581905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a260019050919050565b600a5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146122b857600080fd5b82600a8190555081600b819055506001905092915050565b60065481565b600b5481565b6000600d60009054906101000a900460ff1615612361576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f7061757365642062792061646d696e000000000000000000000000000000000081525060200191505060405180910390fd5b60085434146123d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e76616c6964206665657320616d6f756e740000000000000000000000000081525060200191505060405180910390fd5b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561244d57600080fd5b505afa158015612461573d6000803e3d6000fd5b505050506040513d602081101561247757600080fd5b81019080805190602001909291905050509050601860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561254a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f796f7520617265206e6f7420616c6c6f7765640000000000000000000000000081525060200191505060405180910390fd5b6019600085815260200190815260200160002060009054906101000a900460ff16156125de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f7468697320746f6b656e20697320626c61636b6c69737465640000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612662576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602781526020018061507c6027913960400191505060405180910390fd5b600c54601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115612719576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f656e6f75676820666f722074686520646179000000000000000000000000000081525060200191505060405180910390fd5b42601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106127b2576001601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550612841565b620151804201601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b612849615027565b848160000181815250508381602001818152505043816060018181525050601a819080600181540180825580915050906001820390600052602060002090600502016000909192909190915060008201518160000155602082015181600101556040820151816002015560608201518160030155608082015181600401555050506001601a805490500392506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f1935050505015801561293c573d6000803e3d6000fd5b507f819675e3cfbb4ad979e64dcee5bde4df78a7a9fef443648b640e108849b5f8658286868643604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a1829250505092915050565b600d60009054906101000a900460ff1681565b60196020528060005260406000206000915054906101000a900460ff1681565b60116020528060005260406000206000915090505481565b600f6020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612a8957600080fd5b8160098190555060019050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612af357600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600d60009054906101000a900460ff1615612cbb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f7061757365642062792061646d696e000000000000000000000000000000000081525060200191505060405180910390fd5b601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612d7b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f796f7520617265206e6f7420616c6c6f7765640000000000000000000000000081525060200191505060405180910390fd5b612dcd82600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614d9d90919063ffffffff16565b600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e9f82601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614d9d90919063ffffffff16565b601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f3482600454614d9d90919063ffffffff16565b600481905550612f4f8260055461500890919063ffffffff16565b600581905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a38273ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a26001905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461306e57600080fd5b8160068190555060019050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600481526020017f4d4558500000000000000000000000000000000000000000000000000000000081525081565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461313857600080fd5b601a8054905083106131b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f496e76616c696420426174746c6520496e64657800000000000000000000000081525060200191505060405180910390fd5b6000601a84815481106131c157fe5b90600052602060002090600502016002015414613246576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f416c72656164792066696e69736865640000000000000000000000000000000081525060200191505060405180910390fd5b6000601a848154811061325557fe5b90600052602060002090600502016000015490506000601a858154811061327857fe5b90600052602060002090600502016001015490506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561330157600080fd5b505afa158015613315573d6000803e3d6000fd5b505050506040513d602081101561332b57600080fd5b81019080805190602001909291905050509050600080600080600090505b6032811015613588576001600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156133bc57600080fd5b505afa1580156133d0573d6000803e3d6000fd5b505050506040513d60208110156133e657600080fd5b81019080805190602001909291905050508a8860405160200180838152602001828152602001925050506040516020818303038152906040528051906020012060001c8161343057fe5b06019250600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e886040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156134a757600080fd5b505afa1580156134bb573d6000803e3d6000fd5b505050506040513d60208110156134d157600080fd5b810190808051906020019092919050505091506019600084815260200190815260200160002060009054906101000a900460ff16806135595750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613572576008438161356857fe5b068601955061357b565b60019350613588565b8080600101915050613349565b50826135fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f74727920616761696e000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600080600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638a4a33be896040518263ffffffff1660e01b815260040180828152602001915050604080518083038186803b15801561367157600080fd5b505afa158015613685573d6000803e3d6000fd5b505050506040513d604081101561369b57600080fd5b81019080805190602001909291908051906020019092919050505091509150600080600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638a4a33be876040518263ffffffff1660e01b815260040180828152602001915050604080518083038186803b15801561372f57600080fd5b505afa158015613743573d6000803e3d6000fd5b505050506040513d604081101561375957600080fd5b810190808051906020019092919080519060200190929190505050915091506000818301848601111561379057600a549050613796565b600b5490505b80601a8f815481106137a457fe5b90600052602060002090600502016002018190555086601a8f815481106137c757fe5b9060005260206000209060050201600401819055507fbb6c6c2435370cfd3b48e76bc7598863c9e7a07ec23742dc69ecdcf837e7122e898f8d8a85604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a16138b181600f60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461500890919063ffffffff16565b600f60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506139098160045461500890919063ffffffff16565b60048190555061393581601060008e81526020019081526020016000205461500890919063ffffffff16565b601060008d81526020019081526020016000208190555061397281601360008e81526020019081526020016000205461500890919063ffffffff16565b601360008d81526020019081526020016000208190555042601460008d8152602001908152602001600020819055508d600e819055508873ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019b50505050505050505050505092915050565b60146020528060005260406000206000915090505481565b60166020528060005260406000206000915090505481565b6000601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613b15576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f796f7520617265206e6f7420616c6c6f7765640000000000000000000000000081525060200191505060405180910390fd5b613b20338484614db7565b6001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613b8357600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60085481565b60106020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613c4057600080fd5b81600c8190555060019050919050565b60136020528060005260406000206000915090505481565b6000600d60009054906101000a900460ff1615613ced576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f7061757365642062792061646d696e000000000000000000000000000000000081525060200191505060405180910390fd5b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015613d6257600080fd5b505afa158015613d76573d6000803e3d6000fd5b505050506040513d6020811015613d8c57600080fd5b81019080805190602001909291905050509050601860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613e5f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f796f7520617265206e6f7420616c6c6f7765640000000000000000000000000081525060200191505060405180910390fd5b6019600084815260200190815260200160002060009054906101000a900460ff1615613ef3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f7468697320746f6b656e20697320626c61636b6c69737465640000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614613f77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602781526020018061507c6027913960400191505060405180910390fd5b600954341015613fef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4e6f7420656e6f75676820746f6b656e206d696e74696e67206665650000000081525060200191505060405180910390fd5b6000601460008581526020019081526020016000205490506000811461433257600081420390506000811161408c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f616c7265616479206d696e74656420666f72207468652064617900000000000081525060200191505060405180910390fd5b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638a4a33be876040518263ffffffff1660e01b815260040180828152602001915050604080518083038186803b15801561410057600080fd5b505afa158015614114573d6000803e3d6000fd5b505050506040513d604081101561412a57600080fd5b81019080805190602001909291908051906020019092919050505091505060008262015180620186a0600a600986018161416057fe5b04670de0b6b3a764000060065402028161417657fe5b048161417e57fe5b040290504260146000898152602001908152602001600020819055506141c081601260008a81526020019081526020016000205461500890919063ffffffff16565b60126000898152602001908152602001600020819055506141fd81601060008a81526020019081526020016000205461500890919063ffffffff16565b60106000898152602001908152602001600020819055506142298160045461500890919063ffffffff16565b60048190555061428181600f60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461500890919063ffffffff16565b600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505061434b565b4260146000868152602001908152602001600020819055505b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156143b2573d6000803e3d6000fd5b50600192505050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461441957600080fd5b60016019600084815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146144aa57600080fd5b60008090505b825181101561455c576144dd600182600e5401018483815181106144d057fe5b60200260200101516130dc565b61454f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f636f756c64206e6f742066696869736820626174746c6500000000000000000081525060200191505060405180910390fd5b80806001019150506144b0565b6001915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146145c157600080fd5b6000601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b60055481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461468357600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156146ec5750600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b61475e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f696e76616c69642061646472657373000000000000000000000000000000000081525060200191505060405180910390fd5b600082116147d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f496e76616c696420746f6b656e20746f206d696e74000000000000000000000081525060200191505060405180910390fd5b6019600084815260200190815260200160002060009054906101000a900460ff1615614868576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f7468697320746f6b656e20697320626c61636b6c69737465640000000000000081525060200191505060405180910390fd5b60008314614a1c578373ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156148fa57600080fd5b505afa15801561490e573d6000803e3d6000fd5b505050506040513d602081101561492457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16146149a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806150576025913960400191505060405180910390fd5b6149c782601060008681526020019081526020016000205461500890919063ffffffff16565b6010600085815260200190815260200160002081905550614a0482601160008681526020019081526020016000205461500890919063ffffffff16565b60116000858152602001908152602001600020819055505b614a318260045461500890919063ffffffff16565b600481905550614a8982600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461500890919063ffffffff16565b600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b601a8181548110614b4a57fe5b90600052602060002090600502016000915090508060000154908060010154908060020154908060030154908060040154905085565b6015602052816000526040600020602052806000526040600020600091509150505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614614c0057600080fd5b60006019600084815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614614c8e57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60176020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614614d4557600080fd5b81600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b600047905090565b600e5481565b600082821115614dac57600080fd5b818303905092915050565b600d60009054906101000a900460ff1615614e3a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f7061757365642062792061646d696e000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614e7457600080fd5b614ec681600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614d9d90919063ffffffff16565b600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614f5b81600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461500890919063ffffffff16565b600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008082840190508381101561501d57600080fd5b8091505092915050565b6040518060a001604052806000815260200160008152602001600081526020016000815260200160008152509056fe75736572206973206e6f7420746865206f776e6572206f66207468697320746f6b656e494463616c6c6572206973206e6f7420746865206f776e6572206f66207468697320746f6b656e4944a265627a7a72315820d03bbef45985d0fd5e814bc60d0bb7191b6b2252b29fa6479cd2497ca6bd0ab164736f6c63430005100032
Deployed Bytecode Sourcemap
5687:18604:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5953:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5953:54:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5953:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10886:337;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10886:337:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10886:337:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6845:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6845:33:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16924:549;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16924:549:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16924:549:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14642:142;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14642:142:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14642:142:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6104:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6104:26:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;23476:228;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23476:228:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7625:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7625:47:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7625:47:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5914:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5914:31:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4052:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4052:21:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10130:466;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10130:466:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10130:466:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;22761:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22761:145:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22761:145:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7236:62;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7236:62:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7236:62:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6059:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6059:37:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21987:369;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21987:369:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;6594:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6594:41:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;24022:262;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24022:262:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;24022:262:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6346:84;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6346:84:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11845:745;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11845:745:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11845:745:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6642:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6642:38:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;23097:211;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23097:211:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;23097:211:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6212:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6212:38:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6741:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6741:41:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17775:1290;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17775:1290:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6909:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6909:22:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7679:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7679:48:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7679:48:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7166:63;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7166:63:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7166:63:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7051:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7051:45:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7051:45:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22918:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22918:153:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22918:153:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4729:196;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4729:196:0;;;:::i;:::-;;12874:792;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12874:792:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12874:792:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;22577:174;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22577:174:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22577:174:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3692:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3692:28:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6014:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6014:38:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6014:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19200:2444;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19200:2444:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19200:2444:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7376:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7376:45:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7376:45:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7507:53;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7507:53:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7507:53:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9513:313;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9513:313:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9513:313:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4431:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4431:91:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4431:91:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;6478:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6478:27:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7103:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7103:56:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7103:56:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17481:163;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17481:163:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17481:163:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7305:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7305:64:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7305:64:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15358:1558;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15358:1558:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14961:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14961:152:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14961:152:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;21652:327;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21652:327:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21652:327:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;21652:327:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;21652:327:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;21652:327:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;21652:327:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14794:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14794:153:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14794:153:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6137:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6137:26:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13674:951;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13674:951:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13674:951:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7927:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7927:31:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7927:31:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7428:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7428:66:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7428:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15123:163;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15123:163:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15123:163:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4530:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4530:110:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4530:110:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;7567:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7567:51:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7567:51:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22366:201;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22366:201:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22366:201:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;23794:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23794:112:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6957:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6957:32:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5953:54;;;;;;;;;;;;;;;;;;;:::o;10886:337::-;10953:12;10987:15;:27;11003:10;10987:27;;;;;;;;;;;;;;;;;;;;;;;;;10986:28;10978:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11058:10;;;;;;;;;;;11057:11;11049:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11133:6;11099:9;:21;11109:10;11099:21;;;;;;;;;;;;;;;:31;11121:8;11099:31;;;;;;;;;;;;;;;:40;;;;11176:8;11155:38;;11164:10;11155:38;;;11186:6;11155:38;;;;;;;;;;;;;;;;;;11211:4;11204:11;;10886:337;;;;:::o;6845:33::-;;;;:::o;16924:549::-;16992:14;17024:10;17037;:20;17048:8;17037:20;;;;;;;;;;;;17024:33;;17078:1;17072:2;:7;17068:390;;17105:17;17133:2;17127:3;:8;17105:30;;17153:19;17187:24;;;;;;;;;;;17177:47;;;17225:8;17177:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17177:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17177:57:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17177:57:0;;;;;;;;;;;;;;;;;;;;;;;;;17151:83;;;17348:9;17338:5;17326:6;17317:2;17311:1;17297:11;:15;17296:23;;;;;;17283:8;17262:17;;:30;:59;17261:71;;;;;;17259:84;;;;;;17258:99;17249:108;;17380:6;17373:13;;;;;;;17068:390;17444:1;17436:10;;;16924:549;;;;:::o;14642:142::-;14704:4;4309:5;;;;;;;;;;;4295:19;;:10;:19;;;4287:28;;;;;;14750:4;14726:15;:21;14742:4;14726:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;14772:4;14765:11;;14642:142;;;:::o;6104:26::-;;;;:::o;23476:228::-;23529:4;4309:5;;;;;;;;;;;4295:19;;:10;:19;;;4287:28;;;;;;23564:5;23550:19;;:10;;;;;;;;;;;:19;;;23546:129;;;23598:4;23585:10;;:17;;;;;;;;;;;;;;;;;;23546:129;;;23656:5;23643:10;;:18;;;;;;;;;;;;;;;;;;23546:129;23692:4;23685:11;;23476:228;:::o;7625:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;5914:31::-;;;;:::o;4052:21::-;;;;;;;;;;;;;:::o;10130:466::-;10212:12;10246:15;:27;10262:10;10246:27;;;;;;;;;;;;;;;;;;;;;;;;;10245:28;10237:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10476:40;10509:6;10476:9;:16;10486:5;10476:16;;;;;;;;;;;;;;;:28;10493:10;10476:28;;;;;;;;;;;;;;;;:32;;:40;;;;:::i;:::-;10445:9;:16;10455:5;10445:16;;;;;;;;;;;;;;;:28;10462:10;10445:28;;;;;;;;;;;;;;;:71;;;;10527:29;10537:5;10544:3;10549:6;10527:9;:29::i;:::-;10584:4;10577:11;;10130:466;;;;;:::o;22761:145::-;22830:4;4309:5;;;;;;;;;;;4295:19;;:10;:19;;;4287:28;;;;;;22865:11;22852:10;:24;;;;22894:4;22887:11;;22761:145;;;:::o;7236:62::-;;;;;;;;;;;;;;;;;:::o;6059:37::-;6094:2;6059:37;:::o;21987:369::-;22045:27;22074:15;22107:8;22137:1;22118:11;:18;;;;:20;22107:31;;22159:17;;22152:3;:24;22149:200;;;22229:1;22210:17;;:20;22232:11;22263:1;22244:17;;:20;22232:33;;;;;;;;;;;;;;;;;;:41;;;22202:72;;;;;;;22149:200;22333:1;22335;22325:12;;;;;;;;;;;21987:369;;;:::o;6594:41::-;;;;:::o;24022:262::-;24097:4;4309:5;;;;;;;;;;;4295:19;;:10;:19;;;4287:28;;;;;;24147:6;24122:31;;:21;:31;;24113:41;;;;;;24173:5;;;;;;;;;;;24165:23;;:31;24189:6;24165:31;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24165:31:0;24226:28;24247:6;24226:28;;:16;;:20;;:28;;;;:::i;:::-;24207:16;:47;;;;24272:4;24265:11;;24022:262;;;:::o;6346:84::-;;;;;;;;;;;;;:::o;11845:745::-;11891:12;11927:10;;;;;;;;;;;11926:11;11918:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11977:15;:27;11993:10;11977:27;;;;;;;;;;;;;;;;;;;;;;;;;11976:28;11968:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12127:33;12153:6;12127:9;:21;12137:10;12127:21;;;;;;;;;;;;;;;;:25;;:33;;;;:::i;:::-;12103:9;:21;12113:10;12103:21;;;;;;;;;;;;;;;:57;;;;12214:23;12230:6;12214:11;;:15;;:23;;;;:::i;:::-;12200:11;:37;;;;12306:23;12322:6;12306:11;;:15;;:23;;;;:::i;:::-;12292:11;:37;;;;12384:1;12355:40;;12364:10;12355:40;;;12388:6;12355:40;;;;;;;;;;;;;;;;;;12541:10;12536:24;;;12553:6;12536:24;;;;;;;;;;;;;;;;;;12578:4;12571:11;;11845:745;;;:::o;6642:38::-;;;;:::o;23097:211::-;23187:4;4309:5;;;;;;;;;;;4295:19;;:10;:19;;;4287:28;;;;;;23227:9;23209:15;:27;;;;23267:11;23247:17;:31;;;;23296:4;23289:11;;23097:211;;;;:::o;6212:38::-;;;;:::o;6741:41::-;;;;:::o;17775:1290::-;17860:16;17904:10;;;;;;;;;;;17903:11;17895:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17966:10;;17953:9;:23;17945:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18011:14;18038:24;;;;;;;;;;;18028:43;;;18072:8;18028:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18028:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18028:53:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18028:53:0;;;;;;;;;;;;;;;;18011:70;;18101:15;:23;18117:6;18101:23;;;;;;;;;;;;;;;;;;;;;;;;;18100:24;18092:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18168:16;:26;18185:8;18168:26;;;;;;;;;;;;;;;;;;;;;18167:27;18159:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18253:10;18243:20;;:6;:20;;;18235:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18353:15;;18326;:23;18342:6;18326:23;;;;;;;;;;;;;;;;:42;;18317:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18435:3;18405:18;:26;18424:6;18405:26;;;;;;;;;;;;;;;;:33;18402:236;;18492:1;18465:15;:23;18481:6;18465:23;;;;;;;;;;;;;;;;:28;;;;;;;;;;;18402:236;;;18579:5;18573:3;:11;18544:18;:26;18563:6;18544:26;;;;;;;;;;;;;;;:40;;;;18625:1;18599:15;:23;18615:6;18599:23;;;;;;;;;;;;;;;:27;;;;18402:236;18656:22;;:::i;:::-;18704:8;18689:4;:12;;:23;;;;;18739:9;18723:4;:13;;:25;;;;;18774:12;18759:4;:12;;:27;;;;;18797:11;18814:4;18797:22;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;18797:22:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18897:1;18876:11;:18;;;;:22;18865:33;;18917:5;;;;;;;;;;;18909:23;;:34;18933:9;18909:34;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18909:34:0;18959:69;18976:6;18984:8;18994:9;19005:8;19014:12;18959:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19049:8;19042:15;;;;17775:1290;;;;:::o;6909:22::-;;;;;;;;;;;;;:::o;7679:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;7166:63::-;;;;;;;;;;;;;;;;;:::o;7051:45::-;;;;;;;;;;;;;;;;;:::o;22918:153::-;22991:4;4309:5;;;;;;;;;;;4295:19;;:10;:19;;;4287:28;;;;;;23028:13;23013:12;:28;;;;23059:4;23052:11;;22918:153;;;:::o;4729:196::-;4796:8;;;;;;;;;;;4782:22;;:10;:22;;;4774:31;;;;;;4849:8;;;;;;;;;;;4821:37;;4842:5;;;;;;;;;;;4821:37;;;;;;;;;;;;4877:8;;;;;;;;;;;4869:5;;:16;;;;;;;;;;;;;;;;;;4915:1;4896:8;;:21;;;;;;;;;;;;;;;;;;4729:196::o;12874:792::-;12939:12;12975:10;;;;;;;;;;;12974:11;12966:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13025:15;:27;13041:10;13025:27;;;;;;;;;;;;;;;;;;;;;;;;;13024:28;13016:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13175:28;13196:6;13175:9;:16;13185:5;13175:16;;;;;;;;;;;;;;;;:20;;:28;;;;:::i;:::-;13156:9;:16;13166:5;13156:16;;;;;;;;;;;;;;;:47;;;;13307:40;13340:6;13307:9;:16;13317:5;13307:16;;;;;;;;;;;;;;;:28;13324:10;13307:28;;;;;;;;;;;;;;;;:32;;:40;;;;:::i;:::-;13276:9;:16;13286:5;13276:16;;;;;;;;;;;;;;;:28;13293:10;13276:28;;;;;;;;;;;;;;;:71;;;;13412:23;13428:6;13412:11;;:15;;:23;;;;:::i;:::-;13398:11;:37;;;;13516:23;13532:6;13516:11;;:15;;:23;;;;:::i;:::-;13502:11;:37;;;;13589:1;13565:35;;13574:5;13565:35;;;13593:6;13565:35;;;;;;;;;;;;;;;;;;13622:5;13617:19;;;13629:6;13617:19;;;;;;;;;;;;;;;;;;13654:4;13647:11;;12874:792;;;;:::o;22577:174::-;22661:4;4309:5;;;;;;;;;;;4295:19;;:10;:19;;;4287:28;;;;;;22703:18;22683:17;:38;;;;22739:4;22732:11;;22577:174;;;:::o;3692:28::-;;;;;;;;;;;;;:::o;6014:38::-;;;;;;;;;;;;;;;;;;;:::o;19200:2444::-;19298:4;4396:6;;;;;;;;;;;4382:20;;:10;:20;;;4374:29;;;;;;19382:11;:18;;;;19363:16;:37;19355:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19490:1;19444:11;19456:16;19444:29;;;;;;;;;;;;;;;;;;:42;;;:47;19436:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19523:16;19542:11;19554:16;19542:29;;;;;;;;;;;;;;;;;;:37;;;19523:56;;19590:17;19610:11;19622:16;19610:29;;;;;;;;;;;;;;;;;;:38;;;19590:58;;19659:14;19686:24;;;;;;;;;;;19676:43;;;19720:8;19676:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19676:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19676:53:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19676:53:0;;;;;;;;;;;;;;;;19659:70;;19740:12;19763:19;19793:23;19831:9;19841:1;19831:11;;19827:545;19845:2;19843:1;:4;19827:545;;;20009:1;19967:24;;;;;;;;;;;19957:47;;;:49;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19957:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19957:49:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19957:49:0;;;;;;;;;;;;;;;;19926:14;19942:9;19909:43;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;19909:43:0;;;19899:54;;;;;;19891:63;;:115;;;;;;:119;19877:133;;20053:24;;;;;;;;;;;20043:43;;;20087:8;20043:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20043:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20043:53:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20043:53:0;;;;;;;;;;;;;;;;20025:71;;20114:16;:29;20131:11;20114:29;;;;;;;;;;;;;;;;;;;;;:65;;;;20147:15;:32;20163:15;20147:32;;;;;;;;;;;;;;;;;;;;;;;;;20114:65;20111:250;;;20239:1;20226:12;:14;;;;;;20213:27;;;;20111:250;;;20317:4;20307:14;;20340:5;;20111:250;19848:3;;;;;;;19827:545;;;;20390:7;20382:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20423:20;20444:19;20478:24;;;;;;;;;;;20468:47;;;20516:8;20468:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20468:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20468:57:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20468:57:0;;;;;;;;;;;;;;;;;;;;;;;;;20422:103;;;;20537:21;20559:20;20594:24;;;;;;;;;;;20584:47;;;20632:11;20584:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20584:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20584:60:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20584:60:0;;;;;;;;;;;;;;;;;;;;;;;;;20536:108;;;;20656:18;20734:12;20718:13;:28;20704:11;20689:12;:26;:57;20685:222;;;20786:15;;20773:28;;20685:222;;;20878:17;;20865:30;;20685:222;20962:10;20917:11;20929:16;20917:29;;;;;;;;;;;;;;;;;;:42;;:55;;;;21031:11;20983;20995:16;20983:29;;;;;;;;;;;;;;;;;;:45;;:59;;;;21060:74;21075:6;21082:16;21100:8;21110:11;21123:10;21060:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21168:33;21190:10;21168:9;:17;21178:6;21168:17;;;;;;;;;;;;;;;;:21;;:33;;;;:::i;:::-;21148:9;:17;21158:6;21148:17;;;;;;;;;;;;;;;:53;;;;21226:27;21242:10;21226:11;;:15;;:27;;;;:::i;:::-;21212:11;:41;;;;21298:47;21334:10;21298:21;:31;21320:8;21298:31;;;;;;;;;;;;:35;;:47;;;;:::i;:::-;21264:21;:31;21286:8;21264:31;;;;;;;;;;;:81;;;;21398:55;21442:10;21398:29;:39;21428:8;21398:39;;;;;;;;;;;;:43;;:55;;;;:::i;:::-;21356:29;:39;21386:8;21356:39;;;;;;;;;;;:97;;;;21487:3;21464:10;:20;21475:8;21464:20;;;;;;;;;;;:26;;;;21521:16;21501:17;:36;;;;21596:6;21576:38;;21593:1;21576:38;;;21603:10;21576:38;;;;;;;;;;;;;;;;;;21632:4;21625:11;;;;;;;;;;;;;19200:2444;;;;:::o;7376:45::-;;;;;;;;;;;;;;;;;:::o;7507:53::-;;;;;;;;;;;;;;;;;:::o;9513:313::-;9576:12;9610:15;:27;9626:10;9610:27;;;;;;;;;;;;;;;;;;;;;;;;;9609:28;9601:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9752:34;9762:10;9774:3;9779:6;9752:9;:34::i;:::-;9814:4;9807:11;;9513:313;;;;:::o;4431:91::-;4309:5;;;;;;;;;;;4295:19;;:10;:19;;;4287:28;;;;;;4507:7;4498:6;;:16;;;;;;;;;;;;;;;;;;4431:91;:::o;6478:27::-;;;;:::o;7103:56::-;;;;;;;;;;;;;;;;;:::o;17481:163::-;17558:4;4309:5;;;;;;;;;;;4295:19;;:10;:19;;;4287:28;;;;;;17598:16;17580:15;:34;;;;17632:4;17625:11;;17481:163;;;:::o;7305:64::-;;;;;;;;;;;;;;;;;:::o;15358:1558::-;15419:4;15445:10;;;;;;;;;;;15444:11;15436:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15486:14;15513:24;;;;;;;;;;;15503:43;;;15547:8;15503:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15503:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15503:53:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15503:53:0;;;;;;;;;;;;;;;;15486:70;;15576:15;:23;15592:6;15576:23;;;;;;;;;;;;;;;;;;;;;;;;;15575:24;15567:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15643:16;:26;15660:8;15643:26;;;;;;;;;;;;;;;;;;;;;15642:27;15634:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15728:10;15718:20;;:6;:20;;;15710:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15813:12;;15800:9;:25;;15792:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15869:10;15882;:20;15893:8;15882:20;;;;;;;;;;;;15869:33;;15923:1;15917:2;:7;15913:938;;15950:17;15978:2;15972:3;:8;15950:30;;16016:1;16004:9;:13;15996:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16066:19;16100:24;;;;;;;;;;;16090:47;;;16138:8;16090:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16090:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16090:57:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16090:57:0;;;;;;;;;;;;;;;;;;;;;;;;;16064:83;;;16162:18;16273:9;16263:5;16251:6;16242:2;16236:1;16222:11;:15;16221:23;;;;;;16208:8;16187:17;;:30;:59;16186:71;;;;;;16184:84;;;;;;16183:99;16162:120;;16321:3;16298:10;:20;16309:8;16298:20;;;;;;;;;;;:26;;;;16392:53;16434:10;16392:27;:37;16420:8;16392:37;;;;;;;;;;;;:41;;:53;;;;:::i;:::-;16352:27;:37;16380:8;16352:37;;;;;;;;;;;:93;;;;16494:47;16530:10;16494:21;:31;16516:8;16494:31;;;;;;;;;;;;:35;;:47;;;;:::i;:::-;16460:21;:31;16482:8;16460:31;;;;;;;;;;;:81;;;;16570:27;16586:10;16570:11;;:15;;:27;;;;:::i;:::-;16556:11;:41;;;;16632:33;16654:10;16632:9;:17;16642:6;16632:17;;;;;;;;;;;;;;;;:21;;:33;;;;:::i;:::-;16612:9;:17;16622:6;16612:17;;;;;;;;;;;;;;;:53;;;;16744:6;16724:38;;16741:1;16724:38;;;16751:10;16724:38;;;;;;;;;;;;;;;;;;15913:938;;;;;;16835:3;16812:10;:20;16823:8;16812:20;;;;;;;;;;;:26;;;;15913:938;16861:5;;;;;;;;;;;:14;;:25;16876:9;16861:25;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16861:25:0;16904:4;16897:11;;;;15358:1558;;;:::o;14961:152::-;15028:4;4309:5;;;;;;;;;;;4295:19;;:10;:19;;;4287:28;;;;;;15079:4;15050:16;:26;15067:8;15050:26;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;15101:4;15094:11;;14961:152;;;:::o;21652:327::-;21743:4;4396:6;;;;;;;;;;;4382:20;;:10;:20;;;4374:29;;;;;;21765:6;21790:1;21788:3;;21784:166;21794:15;:22;21792:1;:24;21784:166;;;21853:58;21890:1;21886;21866:17;;:21;:25;21892:15;21908:1;21892:18;;;;;;;;;;;;;;21853:12;:58::i;:::-;21845:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21817:3;;;;;;;21784:166;;;21967:4;21960:11;;;21652:327;;;:::o;14794:153::-;14866:4;4309:5;;;;;;;;;;;4295:19;;:10;:19;;;4287:28;;;;;;14912:5;14888:15;:21;14904:4;14888:21;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;14935:4;14928:11;;14794:153;;;:::o;6137:26::-;;;;:::o;13674:951::-;13780:4;4309:5;;;;;;;;;;;4295:19;;:10;:19;;;4287:28;;;;;;13826:4;13810:21;;:4;:21;;;;:43;;;;;13851:1;13835:18;;:4;:18;;;;13810:43;13802:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13907:1;13893:11;:15;13885:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13955:16;:26;13972:8;13955:26;;;;;;;;;;;;;;;;;;;;;13954:27;13946:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14037:1;14025:8;:13;14022:372;;14129:4;14072:61;;14082:24;;;;;;;;;;;14072:43;;;14116:8;14072:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14072:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14072:53:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14072:53:0;;;;;;;;;;;;;;;;:61;;;14064:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14223:48;14259:11;14223:21;:31;14245:8;14223:31;;;;;;;;;;;;:35;;:48;;;;:::i;:::-;14189:21;:31;14211:8;14189:31;;;;;;;;;;;:82;;;;14327:55;14370:11;14327:28;:38;14356:8;14327:38;;;;;;;;;;;;:42;;:55;;;;:::i;:::-;14286:28;:38;14315:8;14286:38;;;;;;;;;;;:96;;;;14022:372;14418:28;14434:11;14418;;:15;;:28;;;;:::i;:::-;14404:11;:42;;;;14475:32;14495:11;14475:9;:15;14485:4;14475:15;;;;;;;;;;;;;;;;:19;;:32;;;;:::i;:::-;14457:9;:15;14467:4;14457:15;;;;;;;;;;;;;;;:50;;;;14578:4;14558:37;;14575:1;14558:37;;;14583:11;14558:37;;;;;;;;;;;;;;;;;;14613:4;14606:11;;13674:951;;;;;:::o;7927:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7428:66::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15123:163::-;15200:4;4309:5;;;;;;;;;;;4295:19;;:10;:19;;;4287:28;;;;;;15251:5;15222:16;:26;15239:8;15222:26;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;15274:4;15267:11;;15123:163;;;:::o;4530:110::-;4309:5;;;;;;;;;;;4295:19;;:10;:19;;;4287:28;;;;;;4623:9;4612:8;;:20;;;;;;;;;;;;;;;;;;4530:110;:::o;7567:51::-;;;;;;;;;;;;;;;;;:::o;22366:201::-;22463:4;4309:5;;;;;;;;;;;4295:19;;:10;:19;;;4287:28;;;;;;22512:25;22485:24;;:52;;;;;;;;;;;;;;;;;;22555:4;22548:11;;22366:201;;;:::o;23794:112::-;23851:7;23877:21;23870:28;;23794:112;:::o;6957:32::-;;;;:::o;3176:116::-;3234:7;3263:1;3258;:6;;3250:15;;;;;;3283:1;3279;:5;3272:12;;3176:116;;;;:::o;8663:618::-;8793:10;;;;;;;;;;;8792:11;8784:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8858:3;8843:19;;:3;:19;;;;8834:29;;;;;;9037:28;9058:6;9037:9;:16;9047:5;9037:16;;;;;;;;;;;;;;;;:20;;:28;;;;:::i;:::-;9018:9;:16;9028:5;9018:16;;;;;;;;;;;;;;;:47;;;;9124:26;9143:6;9124:9;:14;9134:3;9124:14;;;;;;;;;;;;;;;;:18;;:26;;;;:::i;:::-;9107:9;:14;9117:3;9107:14;;;;;;;;;;;;;;;:43;;;;9261:3;9245:28;;9254:5;9245:28;;;9266:6;9245:28;;;;;;;;;;;;;;;;;;8663:618;;;:::o;3300:136::-;3358:7;3374:9;3390:1;3386;:5;3374:17;;3411:1;3406;:6;;3398:15;;;;;;3427:1;3420:8;;;3300:136;;;;:::o;5687:18604::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
bzzr://d03bbef45985d0fd5e814bc60d0bb7191b6b2252b29fa6479cd2497ca6bd0ab1
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.