[ { "inputs": [ { "internalType": "address", "name": "_bNeonAddress", "type": "address" }, { "internalType": "address", "name": "_xNeonAddress", "type": "address" }, { "internalType": "address", "name": "_magicAddress", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "MAX_SUPPLY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PRICE_PER_TOKEN", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "bNeonToken", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "claimErc20Rewards", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "claimNftcRewards", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "claimedErc20Rewards", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "claimedNftcRewards", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "erc20RewardPerInvite", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getLevel", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "inviteCounts", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "magic", "outputs": [ { "internalType": "contract IMagic", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxMintPerTx", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "numberOfTokens", "type": "uint256" }, { "internalType": "address", "name": "inviter", "type": "address" } ], "name": "mintWithBNeon", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "numberOfTokens", "type": "uint256" }, { "internalType": "address", "name": "inviter", "type": "address" } ], "name": "mintWithETH", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "numberOfTokens", "type": "uint256" }, { "internalType": "address", "name": "inviter", "type": "address" } ], "name": "mintWithXNeon", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nftcRewardPer10Invites", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pricePerTokenBNeon", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pricePerTokenXNeon", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_uriPrefix1", "type": "string" }, { "internalType": "string", "name": "_uriPrefix2", "type": "string" }, { "internalType": "string", "name": "_uriPrefix3", "type": "string" }, { "internalType": "string", "name": "_uriPrefix4", "type": "string" }, { "internalType": "string", "name": "_uriPrefix5", "type": "string" } ], "name": "setAllUriPrefixes", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_bNeonAddress", "type": "address" } ], "name": "setBNeonTokenAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_price", "type": "uint256" } ], "name": "setBNeonTokenPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "setErc20RewardPerInvite", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_magicAddress", "type": "address" } ], "name": "setMagicContractAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "setNftcRewardPer10Invites", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_price", "type": "uint256" } ], "name": "setPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_xNeonAddress", "type": "address" } ], "name": "setXNeonTokenAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_price", "type": "uint256" } ], "name": "setXNeonTokenPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_maxMint", "type": "uint256" } ], "name": "setmaxMintPerTx", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "tokenLevels", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "uriPrefix1", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uriPrefix2", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uriPrefix3", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uriPrefix4", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uriPrefix5", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uriSuffix", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "walletOfOwner", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "xNeonToken", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ]
60e0604052603660808181529062003c3660a039600c90620000229082620002e4565b5060405180606001604052806036815260200162003c6c60369139600d906200004c9082620002e4565b5060405180606001604052806036815260200162003cd860369139600e90620000769082620002e4565b5060405180606001604052806036815260200162003c0060369139600f90620000a09082620002e4565b5060405180606001604052806036815260200162003ca260369139601090620000ca9082620002e4565b5067016345785d8a00006011556014601255680796e3ea3f8ab000006016556905ede20f01a459800000601755681b1ae4d6e2ef500000601d556001601e553480156200011657600080fd5b5060405162003d0e38038062003d0e8339810160408190526200013991620003cd565b60408051808201825260048082526329b5b4b760e11b6020808401829052845180860190955291845290830152906000620001758382620002e4565b506001620001848282620002e4565b505050620001a16200019b620001e960201b60201c565b620001ed565b6001600b55601480546001600160a01b039485166001600160a01b03199182161790915560158054938516938216939093179092556013805491909316911617905562000417565b3390565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200026a57607f821691505b6020821081036200028b57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002df57600081815260208120601f850160051c81016020861015620002ba5750805b601f850160051c820191505b81811015620002db57828155600101620002c6565b5050505b505050565b81516001600160401b038111156200030057620003006200023f565b620003188162000311845462000255565b8462000291565b602080601f831160018114620003505760008415620003375750858301515b600019600386901b1c1916600185901b178555620002db565b600085815260208120601f198616915b82811015620003815788860151825594840194600190910190840162000360565b5085821015620003a05787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80516001600160a01b0381168114620003c857600080fd5b919050565b600080600060608486031215620003e357600080fd5b620003ee84620003b0565b9250620003fe60208501620003b0565b91506200040e60408501620003b0565b90509250925092565b6137d980620004276000396000f3fe6080604052600436106103765760003560e01c8063715018a6116101d1578063c87b56dd11610102578063de7fcb1d116100a0578063e985e9c51161006f578063e985e9c5146109e5578063ed48522514610a2e578063f2fde38b14610a4e578063f8ac25de14610a6e57600080fd5b8063de7fcb1d14610977578063dfce775d1461098d578063e2c2f656146109a3578063e600d94d146109b857600080fd5b8063d3ac2b96116100dc578063d3ac2b96146108ea578063d6b9323f1461090a578063db08f3371461092a578063de2dd2211461094a57600080fd5b8063c87b56dd14610894578063d01097a9146108b4578063d16affbf146108d457600080fd5b806395d89b411161016f578063afaac99011610149578063afaac99014610814578063b350ccb114610834578063b3a01d8814610854578063b88d4fde1461087457600080fd5b806395d89b41146107c95780639e1b3a9b146107de578063a22cb465146107f457600080fd5b806386481d40116101ab57806386481d40146107565780638da5cb5b146107765780638fb721151461079457806391b7f5ed146107a957600080fd5b8063715018a61461070b57806379f34a1014610720578063833b94991461074057600080fd5b80633c5cb20a116102ab5780634f6ccce71161024957806362562d7e1161022357806362562d7e146106a05780636352211e146106b55780636daba9e3146106d557806370a08231146106eb57600080fd5b80634f6ccce71461062f5780635503a0e81461064f5780636163bdbf1461068057600080fd5b8063438b630011610285578063438b6300146105ab57806348e4c2d3146105d85780634a9606ae146105ed5780634d0dfd7f1461061a57600080fd5b80633c5cb20a146105565780633ccfd60b1461057657806342842e0e1461058b57600080fd5b80631a541ee3116103185780631c057ebc116102f25780631c057ebc146104e057806323b872dd146105005780632f745c591461052057806332cb6b0c1461054057600080fd5b80631a541ee31461048b5780631adf9396146104a05780631b13d450146104b357600080fd5b80630908b41e116103545780630908b41e1461040a578063095ea7b31461042c5780630d8546461461044c57806318160ddd1461046c57600080fd5b806301ffc9a71461037b57806306fdde03146103b0578063081812fc146103d2575b600080fd5b34801561038757600080fd5b5061039b610396366004612f7c565b610a83565b60405190151581526020015b60405180910390f35b3480156103bc57600080fd5b506103c5610a94565b6040516103a79190612fe9565b3480156103de57600080fd5b506103f26103ed366004612ffc565b610b26565b6040516001600160a01b0390911681526020016103a7565b34801561041657600080fd5b5061042a610425366004612ffc565b610bc0565b005b34801561043857600080fd5b5061042a610447366004613031565b610bef565b34801561045857600080fd5b506013546103f2906001600160a01b031681565b34801561047857600080fd5b506008545b6040519081526020016103a7565b34801561049757600080fd5b5061042a610d04565b61042a6104ae36600461305b565b610ede565b3480156104bf57600080fd5b5061047d6104ce366004613087565b601b6020526000908152604090205481565b3480156104ec57600080fd5b5061042a6104fb366004613087565b610ef5565b34801561050c57600080fd5b5061042a61051b3660046130a2565b610f89565b34801561052c57600080fd5b5061047d61053b366004613031565b610fba565b34801561054c57600080fd5b5061047d61520881565b34801561056257600080fd5b5061042a61057136600461318a565b611050565b34801561058257600080fd5b5061042a6110c2565b34801561059757600080fd5b5061042a6105a63660046130a2565b611160565b3480156105b757600080fd5b506105cb6105c6366004613087565b61117b565b6040516103a7919061325c565b3480156105e457600080fd5b506103c561123d565b3480156105f957600080fd5b5061047d610608366004613087565b601a6020526000908152604090205481565b34801561062657600080fd5b506103c56112cb565b34801561063b57600080fd5b5061047d61064a366004612ffc565b6112d8565b34801561065b57600080fd5b506103c560405180604001604052806005815260200164173539b7b760d91b81525081565b34801561068c57600080fd5b5061042a61069b366004612ffc565b61136b565b3480156106ac57600080fd5b506103c561139a565b3480156106c157600080fd5b506103f26106d0366004612ffc565b6113a7565b3480156106e157600080fd5b5061047d601d5481565b3480156106f757600080fd5b5061047d610706366004613087565b61141e565b34801561071757600080fd5b5061042a6114a5565b34801561072c57600080fd5b5061042a61073b366004612ffc565b6114db565b34801561074c57600080fd5b5061047d60115481565b34801561076257600080fd5b5061047d610771366004612ffc565b61150a565b34801561078257600080fd5b50600a546001600160a01b03166103f2565b3480156107a057600080fd5b506103c5611595565b3480156107b557600080fd5b5061042a6107c4366004612ffc565b6115a2565b3480156107d557600080fd5b506103c56115d1565b3480156107ea57600080fd5b5061047d60175481565b34801561080057600080fd5b5061042a61080f3660046132ae565b6115e0565b34801561082057600080fd5b506015546103f2906001600160a01b031681565b34801561084057600080fd5b5061042a61084f36600461305b565b6116a4565b34801561086057600080fd5b506014546103f2906001600160a01b031681565b34801561088057600080fd5b5061042a61088f3660046132e5565b611768565b3480156108a057600080fd5b506103c56108af366004612ffc565b6117a0565b3480156108c057600080fd5b5061042a6108cf36600461305b565b6118bd565b3480156108e057600080fd5b5061047d60165481565b3480156108f657600080fd5b5061042a610905366004613087565b6118fe565b34801561091657600080fd5b5061042a610925366004612ffc565b61194a565b34801561093657600080fd5b5061042a610945366004613087565b611979565b34801561095657600080fd5b5061047d610965366004613087565b60196020526000908152604090205481565b34801561098357600080fd5b5061047d60125481565b34801561099957600080fd5b5061047d601e5481565b3480156109af57600080fd5b5061042a611a0d565b3480156109c457600080fd5b5061047d6109d3366004612ffc565b601c6020526000908152604090205481565b3480156109f157600080fd5b5061039b610a00366004613361565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b348015610a3a57600080fd5b5061042a610a49366004612ffc565b611b2c565b348015610a5a57600080fd5b5061042a610a69366004613087565b611b5b565b348015610a7a57600080fd5b506103c5611bf3565b6000610a8e82611c00565b92915050565b606060008054610aa39061338b565b80601f0160208091040260200160405190810160405280929190818152602001828054610acf9061338b565b8015610b1c5780601f10610af157610100808354040283529160200191610b1c565b820191906000526020600020905b815481529060010190602001808311610aff57829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b0316610ba45760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b600a546001600160a01b03163314610bea5760405162461bcd60e51b8152600401610b9b906133bf565b601e55565b6000610bfa826113a7565b9050806001600160a01b0316836001600160a01b031603610c675760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610b9b565b336001600160a01b0382161480610c835750610c838133610a00565b610cf55760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610b9b565b610cff8383611c25565b505050565b6002600b5403610d565760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610b9b565b6002600b55601d54336000908152601960205260408120549091610d799161340a565b336000908152601a6020526040812054919250610d968284613421565b905060008111610ddf5760405162461bcd60e51b81526020600482015260146024820152734e6f207265776172647320617661696c61626c6560601b6044820152606401610b9b565b6014546040516370a0823160e01b815230600482015282916001600160a01b0316906370a0823190602401602060405180830381865afa158015610e27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4b9190613434565b1015610e995760405162461bcd60e51b815260206004820181905260248201527f496e73756666696369656e742062616c616e636520696e20636f6e74726163746044820152606401610b9b565b336000908152601a602052604081208054839290610eb890849061344d565b9091555050601454610ed4906001600160a01b03163383611c93565b50506001600b5550565b610ee782611ce5565b610ef18282611dc9565b5050565b600a546001600160a01b03163314610f1f5760405162461bcd60e51b8152600401610b9b906133bf565b6001600160a01b038116610f675760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610b9b565b601580546001600160a01b0319166001600160a01b0392909216919091179055565b610f933382611e6e565b610faf5760405162461bcd60e51b8152600401610b9b90613460565b610cff838383611f65565b6000610fc58361141e565b82106110275760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610b9b565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b600a546001600160a01b0316331461107a5760405162461bcd60e51b8152600401610b9b906133bf565b600c61108686826134f7565b50600d61109385826134f7565b50600e6110a084826134f7565b50600f6110ad83826134f7565b5060106110ba82826134f7565b505050505050565b600a546001600160a01b031633146110ec5760405162461bcd60e51b8152600401610b9b906133bf565b6000611100600a546001600160a01b031690565b6001600160a01b03164760405160006040518083038185875af1925050503d806000811461114a576040519150601f19603f3d011682016040523d82523d6000602084013e61114f565b606091505b505090508061115d57600080fd5b50565b610cff83838360405180602001604052806000815250611768565b606060006111888361141e565b9050806000036111ac5760408051600080825260208201909252905b509392505050565b60008167ffffffffffffffff8111156111c7576111c76130de565b6040519080825280602002602001820160405280156111f0578160200160208202803683370190505b50905060005b828110156111a4576112088582610fba565b82828151811061121a5761121a6135b7565b60209081029190910101528061122f816135cd565b9150506111f6565b50919050565b600e805461124a9061338b565b80601f01602080910402602001604051908101604052809291908181526020018280546112769061338b565b80156112c35780601f10611298576101008083540402835291602001916112c3565b820191906000526020600020905b8154815290600101906020018083116112a657829003601f168201915b505050505081565b6010805461124a9061338b565b60006112e360085490565b82106113465760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610b9b565b60088281548110611359576113596135b7565b90600052602060002001549050919050565b600a546001600160a01b031633146113955760405162461bcd60e51b8152600401610b9b906133bf565b601d55565b600d805461124a9061338b565b6000818152600260205260408120546001600160a01b031680610a8e5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610b9b565b60006001600160a01b0382166114895760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610b9b565b506001600160a01b031660009081526003602052604090205490565b600a546001600160a01b031633146114cf5760405162461bcd60e51b8152600401610b9b906133bf565b6114d96000612110565b565b600a546001600160a01b031633146115055760405162461bcd60e51b8152600401610b9b906133bf565b601255565b6000818152600260205260408120546001600160a01b03166115825760405162461bcd60e51b815260206004820152602b60248201527f4552433732314d657461646174613a20517565727920666f72206e6f6e65786960448201526a39ba32b73a103a37b5b2b760a91b6064820152608401610b9b565b506000908152601c602052604090205490565b600f805461124a9061338b565b600a546001600160a01b031633146115cc5760405162461bcd60e51b8152600401610b9b906133bf565b601155565b606060018054610aa39061338b565b336001600160a01b038316036116385760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610b9b565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6017546014546116be9184916001600160a01b0316612162565b6014546017546001600160a01b03909116906323b872dd90339030906116e590879061340a565b6040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064016020604051808303816000875af1158015611739573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175d91906135e6565b50610ef18282611dc9565b6117723383611e6e565b61178e5760405162461bcd60e51b8152600401610b9b90613460565b61179a848484846122a9565b50505050565b6000818152600260205260409020546060906001600160a01b031661181f5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610b9b565b600082815260186020526040902080546118389061338b565b80601f01602080910402602001604051908101604052809291908181526020018280546118649061338b565b80156118b15780601f10611886576101008083540402835291602001916118b1565b820191906000526020600020905b81548152906001019060200180831161189457829003601f168201915b50505050509050919050565b6016546015546118d79184916001600160a01b0316612162565b6015546016546001600160a01b03909116906323b872dd90339030906116e590879061340a565b600a546001600160a01b031633146119285760405162461bcd60e51b8152600401610b9b906133bf565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b600a546001600160a01b031633146119745760405162461bcd60e51b8152600401610b9b906133bf565b601755565b600a546001600160a01b031633146119a35760405162461bcd60e51b8152600401610b9b906133bf565b6001600160a01b0381166119eb5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610b9b565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b33600090815260196020526040812054601e54909190611a2e600a84613619565b611a38919061340a565b336000908152601b6020526040812054919250611a558284613421565b905060008111611a9e5760405162461bcd60e51b81526020600482015260146024820152734e6f207265776172647320617661696c61626c6560601b6044820152606401610b9b565b336000908152601b602052604081208054839290611abd90849061344d565b90915550506013546040516340c10f1960e01b8152336004820152602481018390526001600160a01b03909116906340c10f1990604401600060405180830381600087803b158015611b0e57600080fd5b505af1158015611b22573d6000803e3d6000fd5b5050505050505050565b600a546001600160a01b03163314611b565760405162461bcd60e51b8152600401610b9b906133bf565b601655565b600a546001600160a01b03163314611b855760405162461bcd60e51b8152600401610b9b906133bf565b6001600160a01b038116611bea5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b9b565b61115d81612110565b600c805461124a9061338b565b60006001600160e01b0319821663780e9d6360e01b1480610a8e5750610a8e826122dc565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611c5a826113a7565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610cff90849061232c565b601254811115611d075760405162461bcd60e51b8152600401610b9b9061362d565b61520881611d1460085490565b611d1e919061344d565b1115611d6c5760405162461bcd60e51b815260206004820181905260248201527f507572636861736520776f756c6420657863656564206d617820737570706c796044820152606401610b9b565b3481601154611d7b919061340a565b111561115d5760405162461bcd60e51b815260206004820152601f60248201527f45746865722076616c75652073656e74206973206e6f7420636f7272656374006044820152606401610b9b565b6000611dd460085490565b905060005b83811015611e15576000611ded828461344d565b9050611df933826123fe565b611e0281612418565b5080611e0d816135cd565b915050611dd9565b506001600160a01b03821615801590611e3757506001600160a01b0382163314155b15610cff576001600160a01b03821660009081526019602052604081208054859290611e6490849061344d565b9091555050505050565b6000818152600260205260408120546001600160a01b0316611ee75760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610b9b565b6000611ef2836113a7565b9050806001600160a01b0316846001600160a01b03161480611f2d5750836001600160a01b0316611f2284610b26565b6001600160a01b0316145b80611f5d57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b0316611f78826113a7565b6001600160a01b031614611fe05760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610b9b565b6001600160a01b0382166120425760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610b9b565b61204d838383612816565b612058600082611c25565b6001600160a01b0383166000908152600360205260408120805460019290612081908490613421565b90915550506001600160a01b03821660009081526003602052604081208054600192906120af90849061344d565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6012548311156121845760405162461bcd60e51b8152600401610b9b9061362d565b6152088361219160085490565b61219b919061344d565b11156121e95760405162461bcd60e51b815260206004820181905260248201527f507572636861736520776f756c6420657863656564206d617820737570706c796044820152606401610b9b565b6040516370a0823160e01b81523360048201526001600160a01b038216906370a0823190602401602060405180830381865afa15801561222d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122519190613434565b61225b848461340a565b1115610cff5760405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e7420746f6b656e2062616c616e63650000000000006044820152606401610b9b565b6122b4848484611f65565b6122c084848484612821565b61179a5760405162461bcd60e51b8152600401610b9b9061366e565b60006001600160e01b031982166380ac58cd60e01b148061230d57506001600160e01b03198216635b5e139f60e01b145b80610a8e57506301ffc9a760e01b6001600160e01b0319831614610a8e565b6000612381826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166129229092919063ffffffff16565b805190915015610cff578080602001905181019061239f91906135e6565b610cff5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610b9b565b610ef182826040518060200160405280600081525061293b565b604080514260208201529081018290526000906103e8906060016040516020818303038152906040528051906020012060001c61245591906136c0565b90506000606060006101f48410156125175760019250600c80546124789061338b565b80601f01602080910402602001604051908101604052809291908181526020018280546124a49061338b565b80156124f15780601f106124c6576101008083540402835291602001916124f1565b820191906000526020600020905b8154815290600101906020018083116124d457829003601f168201915b50505050509150600a8561250591906136c0565b61251090600161344d565b90506127a5565b6103208410156125bf5760029250600d80546125329061338b565b80601f016020809104026020016040519081016040528092919081815260200182805461255e9061338b565b80156125ab5780601f10612580576101008083540402835291602001916125ab565b820191906000526020600020905b81548152906001019060200180831161258e57829003601f168201915b5050505050915060088561250591906136c0565b6103de8410156126675760039250600e80546125da9061338b565b80601f01602080910402602001604051908101604052809291908181526020018280546126069061338b565b80156126535780601f1061262857610100808354040283529160200191612653565b820191906000526020600020905b81548152906001019060200180831161263657829003601f168201915b5050505050915060058561250591906136c0565b6103e784101561270f5760049250600f80546126829061338b565b80601f01602080910402602001604051908101604052809291908181526020018280546126ae9061338b565b80156126fb5780601f106126d0576101008083540402835291602001916126fb565b820191906000526020600020905b8154815290600101906020018083116126de57829003601f168201915b5050505050915060028561250591906136c0565b60059250601080546127209061338b565b80601f016020809104026020016040519081016040528092919081815260200182805461274c9061338b565b80156127995780601f1061276e57610100808354040283529160200191612799565b820191906000526020600020905b81548152906001019060200180831161277c57829003601f168201915b50505050509150600190505b6000858152601c60205260409020839055816127c08261296e565b60405180604001604052806005815260200164173539b7b760d91b8152506040516020016127f0939291906136d4565b60408051601f198184030181529181526000878152601860205220906110ba90826134f7565b610cff838383612a6f565b60006001600160a01b0384163b1561291757604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290612865903390899088908890600401613717565b6020604051808303816000875af19250505080156128a0575060408051601f3d908101601f1916820190925261289d91810190613754565b60015b6128fd573d8080156128ce576040519150601f19603f3d011682016040523d82523d6000602084013e6128d3565b606091505b5080516000036128f55760405162461bcd60e51b8152600401610b9b9061366e565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611f5d565b506001949350505050565b60606129318484600085612b27565b90505b9392505050565b6129458383612c4f565b6129526000848484612821565b610cff5760405162461bcd60e51b8152600401610b9b9061366e565b6060816000036129955750506040805180820190915260018152600360fc1b602082015290565b8160005b81156129bf57806129a9816135cd565b91506129b89050600a83613619565b9150612999565b60008167ffffffffffffffff8111156129da576129da6130de565b6040519080825280601f01601f191660200182016040528015612a04576020820181803683370190505b5090505b8415611f5d57612a19600183613421565b9150612a26600a866136c0565b612a3190603061344d565b60f81b818381518110612a4657612a466135b7565b60200101906001600160f81b031916908160001a905350612a68600a86613619565b9450612a08565b6001600160a01b038316612aca57612ac581600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b612aed565b816001600160a01b0316836001600160a01b031614612aed57612aed8382612d9d565b6001600160a01b038216612b0457610cff81612e3a565b826001600160a01b0316826001600160a01b031614610cff57610cff8282612ee9565b606082471015612b885760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610b9b565b843b612bd65760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610b9b565b600080866001600160a01b03168587604051612bf29190613771565b60006040518083038185875af1925050503d8060008114612c2f576040519150601f19603f3d011682016040523d82523d6000602084013e612c34565b606091505b5091509150612c44828286612f2d565b979650505050505050565b6001600160a01b038216612ca55760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610b9b565b6000818152600260205260409020546001600160a01b031615612d0a5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610b9b565b612d1660008383612816565b6001600160a01b0382166000908152600360205260408120805460019290612d3f90849061344d565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60006001612daa8461141e565b612db49190613421565b600083815260076020526040902054909150808214612e07576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090612e4c90600190613421565b60008381526009602052604081205460088054939450909284908110612e7457612e746135b7565b906000526020600020015490508060088381548110612e9557612e956135b7565b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480612ecd57612ecd61378d565b6001900381819060005260206000200160009055905550505050565b6000612ef48361141e565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b60608315612f3c575081612934565b825115612f4c5782518084602001fd5b8160405162461bcd60e51b8152600401610b9b9190612fe9565b6001600160e01b03198116811461115d57600080fd5b600060208284031215612f8e57600080fd5b813561293481612f66565b60005b83811015612fb4578181015183820152602001612f9c565b50506000910152565b60008151808452612fd5816020860160208601612f99565b601f01601f19169290920160200192915050565b6020815260006129346020830184612fbd565b60006020828403121561300e57600080fd5b5035919050565b80356001600160a01b038116811461302c57600080fd5b919050565b6000806040838503121561304457600080fd5b61304d83613015565b946020939093013593505050565b6000806040838503121561306e57600080fd5b8235915061307e60208401613015565b90509250929050565b60006020828403121561309957600080fd5b61293482613015565b6000806000606084860312156130b757600080fd5b6130c084613015565b92506130ce60208501613015565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff8084111561310f5761310f6130de565b604051601f8501601f19908116603f01168101908282118183101715613137576131376130de565b8160405280935085815286868601111561315057600080fd5b858560208301376000602087830101525050509392505050565b600082601f83011261317b57600080fd5b612934838335602085016130f4565b600080600080600060a086880312156131a257600080fd5b853567ffffffffffffffff808211156131ba57600080fd5b6131c689838a0161316a565b965060208801359150808211156131dc57600080fd5b6131e889838a0161316a565b955060408801359150808211156131fe57600080fd5b61320a89838a0161316a565b9450606088013591508082111561322057600080fd5b61322c89838a0161316a565b9350608088013591508082111561324257600080fd5b5061324f8882890161316a565b9150509295509295909350565b6020808252825182820181905260009190848201906040850190845b8181101561329457835183529284019291840191600101613278565b50909695505050505050565b801515811461115d57600080fd5b600080604083850312156132c157600080fd5b6132ca83613015565b915060208301356132da816132a0565b809150509250929050565b600080600080608085870312156132fb57600080fd5b61330485613015565b935061331260208601613015565b925060408501359150606085013567ffffffffffffffff81111561333557600080fd5b8501601f8101871361334657600080fd5b613355878235602084016130f4565b91505092959194509250565b6000806040838503121561337457600080fd5b61337d83613015565b915061307e60208401613015565b600181811c9082168061339f57607f821691505b60208210810361123757634e487b7160e01b600052602260045260246000fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610a8e57610a8e6133f4565b81810381811115610a8e57610a8e6133f4565b60006020828403121561344657600080fd5b5051919050565b80820180821115610a8e57610a8e6133f4565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b601f821115610cff57600081815260208120601f850160051c810160208610156134d85750805b601f850160051c820191505b818110156110ba578281556001016134e4565b815167ffffffffffffffff811115613511576135116130de565b6135258161351f845461338b565b846134b1565b602080601f83116001811461355a57600084156135425750858301515b600019600386901b1c1916600185901b1785556110ba565b600085815260208120601f198616915b828110156135895788860151825594840194600190910190840161356a565b50858210156135a75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b6000600182016135df576135df6133f4565b5060010190565b6000602082840312156135f857600080fd5b8151612934816132a0565b634e487b7160e01b600052601260045260246000fd5b60008261362857613628613603565b500490565b60208082526021908201527f4d6178206d696e7420706572207472616e73616374696f6e20657863656564656040820152601960fa1b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6000826136cf576136cf613603565b500690565b600084516136e6818460208901612f99565b8451908301906136fa818360208901612f99565b845191019061370d818360208801612f99565b0195945050505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061374a90830184612fbd565b9695505050505050565b60006020828403121561376657600080fd5b815161293481612f66565b60008251613783818460208701612f99565b9190910192915050565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220a0b0a9350f3bfa605b3c6adcc9ad424751fffe713f5639224dc47989ddbc90d764736f6c63430008130033697066733a2f2f516d6269734b435941486b47675774324a625974446165356250376a7231657438766d456a6e6f78386639557a382f697066733a2f2f516d6269356f71794c774b4d614454574c6e554c42616f387a62324a6f3378757356426652514c457a516456614b2f697066733a2f2f516d53794b4a476e5671724b6a66394c6770324c4b4559707950614e724c316a46644c6b37625646454d39316f712f697066733a2f2f516d623354677133705259366f6361514d665261677136486a434c385a4d476e37436867366f4d72624e4a6568722f697066733a2f2f516d63626869624a356d525a595764695433513943647977504d63733566466f42554d69684332456e6d6e346f662f000000000000000000000000a9ec9d38df9fcaf103fdac7036b33cc526ff528c000000000000000000000000e40c77e8bcc8cb171dd5dafa7da24ccc390f1a400000000000000000000000003b32fce84afb42632f6d3e2b80fa932a042c1287