[ { "inputs": [ { "internalType": "address", "name": "_airnodeRrpAddress", "type": "address" }, { "internalType": "address", "name": "_tokenRouterAddress", "type": "address" }, { "internalType": "bool", "name": "_certificateCreateEnabled", "type": "bool" }, { "internalType": "uint256", "name": "_depositCap", "type": "uint256" }, { "internalType": "address", "name": "_pog_marketing", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "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": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isExcluded", "type": "bool" } ], "name": "ExcludeFromFees", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "indexed": false, "internalType": "bool", "name": "isExcluded", "type": "bool" } ], "name": "ExcludeMultipleAccountsFromFees", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "POGPOTDROP", "type": "uint256" } ], "name": "LPDrop", "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": "uint256", "name": "LPDROP", "type": "uint256" } ], "name": "PogPotDrop", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "requestId", "type": "bytes32" } ], "name": "RequestedUint256", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "time", "type": "uint256" } ], "name": "RoundEnded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "pair", "type": "address" }, { "indexed": true, "internalType": "bool", "name": "value", "type": "bool" } ], "name": "SetAutomatedMarketMakerPair", "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": true, "internalType": "address", "name": "winner", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "winnerTokenid", "type": "uint256" } ], "name": "winnerClaim", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "winner", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "winningID", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "BurnAmount", "type": "uint256" } ], "name": "winnerDeclared", "type": "event" }, { "inputs": [ { "internalType": "uint256", "name": "roundId", "type": "uint256" } ], "name": "ClaimWinningCertificate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "ClaimWinningCertificates", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "LPLOCQER", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "POGLOCQER", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "RoundsActive", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "state", "type": "bool" } ], "name": "RoundsState", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "activateTrading", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "airnode", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "airnodeRrp", "outputs": [ { "internalType": "contract IAirnodeRrpV0", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buyTaxes", "outputs": [ { "internalType": "uint256", "name": "pogpot", "type": "uint256" }, { "internalType": "uint256", "name": "lp", "type": "uint256" }, { "internalType": "uint256", "name": "dev", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "_tokenRouterAddress", "type": "address" }, { "internalType": "address", "name": "_originalDeployerAddress", "type": "address" }, { "internalType": "string", "name": "_projectName", "type": "string" }, { "internalType": "enum DistributionType", "name": "_distributionType", "type": "uint8" }, { "internalType": "address", "name": "_depositTokenAddress", "type": "address" }, { "internalType": "bool", "name": "_vSharesEnabled", "type": "bool" }, { "internalType": "bool", "name": "_certificateCreateEnabled", "type": "bool" }, { "internalType": "bool", "name": "_certificateCreateCapEnabled", "type": "bool" }, { "internalType": "bool", "name": "_certificateAllowMerge", "type": "bool" }, { "internalType": "bool", "name": "_certificateAllowSplit", "type": "bool" }, { "internalType": "bool", "name": "_certificateAllowLiquidation", "type": "bool" }, { "internalType": "bool", "name": "_certificateAllowDeposit", "type": "bool" }, { "internalType": "bool", "name": "_certificateDepositCapEnabled", "type": "bool" }, { "internalType": "bool", "name": "_certificateEarlyWithdrawalFeeEnabled", "type": "bool" }, { "internalType": "uint256", "name": "_depositCap", "type": "uint256" }, { "internalType": "uint32", "name": "_depositFeePercentage", "type": "uint32" }, { "internalType": "uint32", "name": "_earlyWithdrawalFeePercentage", "type": "uint32" }, { "internalType": "uint32", "name": "_earlyWithdrawalFeeDuration", "type": "uint32" }, { "internalType": "uint16", "name": "_certificateCap", "type": "uint16" }, { "internalType": "bool", "name": "_certificateMinimumDepositEnabled", "type": "bool" }, { "internalType": "uint256", "name": "_depositMinimumAmount", "type": "uint256" } ], "internalType": "struct Pot_Of_Greed.CreationVars", "name": "_creationDetails", "type": "tuple" } ], "name": "createProject", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "cycleTime", "type": "uint256" } ], "name": "cycle_over_ride", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "cycleTime", "type": "uint256" } ], "name": "cycle_over_ride_LP", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "decentralizeLP", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "emergencyClaim", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "endpointIdUint256", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "enterDrawRound", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "excluded", "type": "bool" } ], "name": "excludeFromFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "excluded", "type": "bool" } ], "name": "excludeFromMaxWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "name": "expectingRequestWithIdToBeFulfilled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "firstCycleInitialized", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "forceSend", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "requestId", "type": "bytes32" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "fulfillUint256", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getCurrentTicketCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "getParticpantByIndex", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getParticpantCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_tokenRouterAddress", "type": "address" }, { "internalType": "uint256", "name": "cycleTime", "type": "uint256" } ], "name": "initializeDecentralizedLPPool", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "isAParticipant", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isExcludedFromFees", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxBuyAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxSellAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxWallet", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "state", "type": "bool" }, { "internalType": "uint256", "name": "price", "type": "uint256" } ], "name": "overRideShareAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenAddress", "type": "address" } ], "name": "rescueETH20Tokens", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], "name": "returnRoundsWon", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "router", "outputs": [ { "internalType": "contract IUniswapV2Router02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sellTaxes", "outputs": [ { "internalType": "uint256", "name": "pogpot", "type": "uint256" }, { "internalType": "uint256", "name": "lp", "type": "uint256" }, { "internalType": "uint256", "name": "dev", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "pogpot", "type": "uint256" }, { "internalType": "uint256", "name": "lp", "type": "uint256" }, { "internalType": "uint256", "name": "dev", "type": "uint256" } ], "name": "setBuyTaxes", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_price", "type": "uint256" } ], "name": "setDefaultTicketPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], "name": "setDevWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "maxBuyFactor", "type": "uint256" }, { "internalType": "uint256", "name": "maxsellFactor", "type": "uint256" } ], "name": "setMaxBuyAndSell", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_airnode", "type": "address" }, { "internalType": "bytes32", "name": "_endpointIdUint256", "type": "bytes32" }, { "internalType": "address", "name": "_sponsorWallet", "type": "address" } ], "name": "setRequestParameters", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "pogpot", "type": "uint256" }, { "internalType": "uint256", "name": "lp", "type": "uint256" }, { "internalType": "uint256", "name": "dev", "type": "uint256" } ], "name": "setSellTaxes", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" } ], "name": "setSwapEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "swapFactor", "type": "uint256" } ], "name": "setSwapTokensAtAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "sponsorWallet", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapTokensAtAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalBuyTax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSellTax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tradingEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "maxWalletFactor", "type": "uint256" } ], "name": "updateMaxWalletAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newRouter", "type": "address" } ], "name": "updateRouter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
600a805460ff60a81b1916600160a81b178155600360a08190525f60c0819052600760e0819052600b839055600c829055600d819055610160604052610100839052610120829052610140819052600e92909255600f8190556010919091556011829055601291909155601880546001600160a01b031990811673f1c20999905b969b8dbc8350f4cb5e8450a652301790915560198054909116730679e1393f84a06cce947f49948ac688b2ebfe0a1790556022805460ff1990811690915560248290556025805482169055602691909155683635c9adc5dea000006027556028805490911690553480156100f2575f80fd5b506040516151a13803806151a183398101604081905261011191610b48565b604080518082018252600c81526b141bdd0813d98811dc99595960a21b602080830191909152825180840184526003815262504f4760e81b918101919091526001600160a01b03881660808190529251632b77c09f60e21b8152306004820152600160248201523393899163addf027c906044015f604051808303815f87803b15801561019c575f80fd5b505af11580156101ae573d5f803e3d5ffd5b505050505081600390816101c29190610c40565b5060046101cf8282610c40565b5050506001600160a01b03811661020057604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6102098161067d565b506102f8604051806102a00160405280866001600160a01b03168152602001866001600160a01b03168152602001604051806040016040528060078152602001661413d1c81413d560ca1b815250815260200160018081111561026e5761026e610cff565b81525f6020820181905260016040830181905287151560608401526080830182905260a0830181905260c083015260e08201819052610100820181905261012082018190526101408201819052610160820186905261018082018190526101a082018190526101c082018190526127106101e08301526102008201819052610220909101526106ce565b601a5f6101000a8154816001600160a01b0302191690836001600160a01b031602179055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90505f816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610372573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103969190610d13565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103e1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104059190610d13565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561044f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104739190610d13565b600980546001600160a01b03199081166001600160a01b03868116918217909355600a80548316858516179055601a54601c8054918516918416821790556017805490931693881693909317909155604080516315ab88c960e31b815290519394509192633b2528e09263ad5c46489160048083019260209291908290030181865afa158015610505573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105299190610d13565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024015f604051808303815f87803b158015610567575f80fd5b505af1158015610579573d5f803e3d5ffd5b5050505061058e614e206108ae60201b60201c565b61059a621e84806108ce565b6105a7621e8480806108ee565b6105b2816001610924565b6105bd306001610924565b6105c8826001610924565b6105e46105dd6005546001600160a01b031690565b6001610956565b6105ef306001610956565b602480545f90815260296020526040808220683635c9adc5dea000009055825482528082206107086001918201558354835281832060040183905583548352818320600701805460ff191690911790559154815220426002909101556106716106606005546001600160a01b031690565b6a52b7d2dcc80cd2e4000000610a3c565b50505050505050610f0a565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f333014806106e757506005546001600160a01b031633145b6106ef575f80fd5b5f6040518060a00160405280846040015181526020018460600151600181111561071b5761071b610cff565b815260200184608001516001600160a01b031681526020016040518061014001604052808660a00151151581526020018660c00151151581526020018660e00151151581526020018661010001511515815260200186610120015115158152602001866101400151151581526020018661016001511515815260200186610180015115158152602001866101a0015115158152602001866102600151151581525081526020016040518060c00160405280866101c0015181526020018661028001518152602001866101e0015163ffffffff16815260200186610200015163ffffffff16815260200186610220015163ffffffff16815260200186610240015161ffff16815250815250905060185f9054906101000a90046001600160a01b03166001600160a01b0316630ca9ee20826040518263ffffffff1660e01b81526004016108679190610dd9565b6020604051808303815f875af1158015610883573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a79190610d13565b9392505050565b6108b6610af9565b6108c881670de0b6b3a7640000610eda565b60135550565b6108d6610af9565b6108e881670de0b6b3a7640000610eda565b60165550565b6108f6610af9565b61090882670de0b6b3a7640000610eda565b60145561091d81670de0b6b3a7640000610eda565b6015555050565b61092c610af9565b6001600160a01b03919091165f908152602c60205260409020805460ff1916911515919091179055565b61095e610af9565b6001600160a01b0382165f908152602b602052604090205481151560ff9091161515036109de5760405162461bcd60e51b815260206004820152602860248201527f4163636f756e7420697320616c7265616479207468652076616c7565206f6620604482015267195e18db1d59195960c21b60648201526084016101f7565b6001600160a01b0382165f818152602b6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216610a925760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101f7565b8060025f828254610aa39190610ef7565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6005546001600160a01b03163314610b265760405163118cdaa760e01b81523360048201526024016101f7565b565b505050565b80516001600160a01b0381168114610b43575f80fd5b919050565b5f805f805f60a08688031215610b5c575f80fd5b610b6586610b2d565b9450610b7360208701610b2d565b935060408601518015158114610b87575f80fd5b60608701519093509150610b9d60808701610b2d565b90509295509295909350565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680610bd157607f821691505b602082108103610bef57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610b2857805f5260205f20601f840160051c81016020851015610c1a5750805b601f840160051c820191505b81811015610c39575f8155600101610c26565b5050505050565b81516001600160401b03811115610c5957610c59610ba9565b610c6d81610c678454610bbd565b84610bf5565b602080601f831160018114610ca0575f8415610c895750858301515b5f19600386901b1c1916600185901b178555610cf7565b5f85815260208120601f198616915b82811015610cce57888601518255948401946001909101908401610caf565b5085821015610ceb57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52602160045260245ffd5b5f60208284031215610d23575f80fd5b6108a782610b2d565b8051151582526020810151610d45602084018215159052565b506040810151610d59604084018215159052565b506060810151610d6d606084018215159052565b506080810151610d81608084018215159052565b5060a0810151610d9560a084018215159052565b5060c0810151610da960c084018215159052565b5060e0810151610dbd60e084018215159052565b5061010081810151151590830152610120908101511515910152565b602081525f825161026060208401528051806102808501526102a081602084018287015e5f8183870101526020860151925060028310610e2757634e487b7160e01b5f52602160045260245ffd5b82604086015260408601519250610e4960608601846001600160a01b03169052565b60608601519250610e5d6080860184610d2c565b60809586015180516101c087015260208101516101e0870152604081015163ffffffff908116610200880152606082015181166102208801529681015190961661024086015260a09095015161ffff16610260850152601f01601f191690920190920192915050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610ef157610ef1610ec6565b92915050565b80820180821115610ef157610ef1610ec6565b608051614271610f305f395f8181610846015281816113be015261344b01526142715ff3fe6080604052600436106103e2575f3560e01c8063715018a6116101ff578063bf90fb4e11610113578063e2f45605116100a8578063f66895a311610078578063f66895a314610baf578063f753321514610bcd578063f887ea4014610be6578063f8b45b0514610c05578063fe04aa3914610c1a575f80fd5b8063e2f4560514610b3d578063ec7f443714610b52578063f2fde38b14610b71578063f34469cf14610b90575f80fd5b8063c851cc32116100e3578063c851cc3214610ac1578063d2fcc00114610ae0578063dd62ed3e14610aff578063e01af92c14610b1e575f80fd5b8063bf90fb4e14610a45578063c024666814610a64578063c0e3910b14610a83578063c18bc19514610aa2575f80fd5b806388e765ff11610194578063a36ff4d811610164578063a36ff4d8146109aa578063a457c2d7146109c9578063a8aa1b31146109e8578063a9059cbb14610a07578063afa4f3b214610a26575f80fd5b806388e765ff1461094b5780638da5cb5b1461096057806394801f891461097d57806395d89b4114610996575f80fd5b80637e5e8b4a116101cf5780637e5e8b4a146108a6578063851244f7146108c5578063864701a5146108f3578063864e1dae1461092c575f80fd5b8063715018a61461082157806371bab6661461083557806379b447bd146108685780637bdf252514610887575f80fd5b806328ce3083116102f657806346469afb1161028b5780635889c8b11161025b5780635889c8b11461077a5780636009de631461079957806366d602ae146107b85780636ddd1713146107cd57806370a08231146107ed575f80fd5b806346469afb146106ef5780634ada218b146107045780634fbee19314610724578063538b90f71461075b575f80fd5b806339509351116102c657806339509351146106655780633a6ad66d146106845780633c9f5927146106af5780633e8d2237146106db575f80fd5b806328ce3083146105e7578063313ce5671461060c57806333bb6cd3146106275780633718d90a14610646575f80fd5b80630e93fd4b116103775780631a6221ba116103475780631a6221ba146105615780631bff7898146105755780631f53ac021461058a57806323b872dd146105a95780632549c761146105c8575f80fd5b80630e93fd4b146104fb57806312b77e8a1461051a57806318160ddd1461052e5780631870517a14610542575f80fd5b806308733214116103b2578063087332141461047a578063095ea7b3146104995780630a78097d146104c85780630bd05b69146104e7575f80fd5b806301504adf146103ed57806301c8c7eb1461040e57806306fdde031461042d57806307b9fc5714610457575f80fd5b366103e957005b5f80fd5b3480156103f8575f80fd5b5061040c610407366004613789565b610c39565b005b348015610419575f80fd5b5061040c6104283660046137bd565b610ca5565b348015610438575f80fd5b50610441610cd4565b60405161044e9190613815565b60405180910390f35b348015610462575f80fd5b5061046c601f5481565b60405190815260200161044e565b348015610485575f80fd5b5061040c610494366004613827565b610d64565b3480156104a4575f80fd5b506104b86104b336600461386f565b610e0f565b604051901515815260200161044e565b3480156104d3575f80fd5b5061040c6104e236600461388b565b610e28565b3480156104f2575f80fd5b5061040c610f23565b348015610506575f80fd5b5061040c610515366004613789565b610fa8565b348015610525575f80fd5b5061040c610fca565b348015610539575f80fd5b5060025461046c565b34801561054d575f80fd5b5061040c61055c366004613827565b611040565b34801561056c575f80fd5b5061046c6110e6565b348015610580575f80fd5b5061046c60125481565b348015610595575f80fd5b5061040c6105a436600461388b565b611107565b3480156105b4575f80fd5b506104b86105c33660046138a6565b611131565b3480156105d3575f80fd5b5061040c6105e2366004613789565b611154565b3480156105f2575f80fd5b506024545f9081526029602052604090206009015461046c565b348015610617575f80fd5b506040516012815260200161044e565b348015610632575f80fd5b5061040c610641366004613789565b611193565b348015610651575f80fd5b5061040c6106603660046138e4565b6113b3565b348015610670575f80fd5b506104b861067f36600461386f565b611631565b610697610692366004613a66565b611652565b6040516001600160a01b03909116815260200161044e565b3480156106ba575f80fd5b506106ce6106c936600461388b565b611832565b60405161044e9190613c3e565b3480156106e6575f80fd5b5061040c61189b565b3480156106fa575f80fd5b5061046c60115481565b34801561070f575f80fd5b50600a546104b890600160b01b900460ff1681565b34801561072f575f80fd5b506104b861073e36600461388b565b6001600160a01b03165f908152602b602052604090205460ff1690565b348015610766575f80fd5b50601a54610697906001600160a01b031681565b348015610785575f80fd5b50610697610794366004613789565b611abb565b3480156107a4575f80fd5b5061040c6107b3366004613789565b611b38565b3480156107c3575f80fd5b5061046c60155481565b3480156107d8575f80fd5b50600a546104b890600160a81b900460ff1681565b3480156107f8575f80fd5b5061046c61080736600461388b565b6001600160a01b03165f9081526020819052604090205490565b34801561082c575f80fd5b5061040c611b7b565b348015610840575f80fd5b506106977f000000000000000000000000000000000000000000000000000000000000000081565b348015610873575f80fd5b5061040c610882366004613c81565b611b8e565b348015610892575f80fd5b5061040c6108a1366004613ca1565b611bc4565b3480156108b1575f80fd5b50601b54610697906001600160a01b031681565b3480156108d0575f80fd5b506104b86108df366004613789565b602d6020525f908152604090205460ff1681565b3480156108fe575f80fd5b50600b54600c54600d5461091192919083565b6040805193845260208401929092529082015260600161044e565b348015610937575f80fd5b5061040c610946366004613789565b611c00565b348015610956575f80fd5b5061046c60145481565b34801561096b575f80fd5b506005546001600160a01b0316610697565b348015610988575f80fd5b506022546104b89060ff1681565b3480156109a1575f80fd5b50610441611c3f565b3480156109b5575f80fd5b50601e54610697906001600160a01b031681565b3480156109d4575f80fd5b506104b86109e336600461386f565b611c4e565b3480156109f3575f80fd5b50600a54610697906001600160a01b031681565b348015610a12575f80fd5b506104b8610a2136600461386f565b611cc8565b348015610a31575f80fd5b5061040c610a40366004613789565b611cd5565b348015610a50575f80fd5b50602054610697906001600160a01b031681565b348015610a6f575f80fd5b5061040c610a7e366004613ce0565b611cf5565b348015610a8e575f80fd5b506104b8610a9d36600461388b565b611ddb565b348015610aad575f80fd5b5061040c610abc366004613789565b611df8565b348015610acc575f80fd5b5061040c610adb36600461388b565b611e18565b348015610aeb575f80fd5b5061040c610afa366004613ce0565b611e42565b348015610b0a575f80fd5b5061046c610b19366004613d17565b611e74565b348015610b29575f80fd5b5061040c610b38366004613d43565b611e9e565b348015610b48575f80fd5b5061046c60135481565b348015610b5d575f80fd5b5061040c610b6c366004613d43565b611ec4565b348015610b7c575f80fd5b5061040c610b8b36600461388b565b611edf565b348015610b9b575f80fd5b5061040c610baa36600461386f565b611f19565b348015610bba575f80fd5b50600e54600f5460105461091192919083565b348015610bd8575f80fd5b506028546104b89060ff1681565b348015610bf1575f80fd5b50600954610697906001600160a01b031681565b348015610c10575f80fd5b5061046c60165481565b348015610c25575f80fd5b5061040c610c34366004613789565b6120e1565b610c41612396565b601954604051632142170760e11b81526001600160a01b03909116906342842e0e90610c7590309033908690600401613d5e565b5f604051808303815f87803b158015610c8c575f80fd5b505af1158015610c9e573d5f803e3d5ffd5b5050505050565b610cad612396565b6025805460ff1916831515179055610ccd81670de0b6b3a7640000613d96565b6026555050565b606060038054610ce390613dad565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0f90613dad565b8015610d5a5780601f10610d3157610100808354040283529160200191610d5a565b820191905f5260205f20905b815481529060010190602001808311610d3d57829003601f168201915b5050505050905090565b610d6c612396565b602882610d798386613de5565b610d839190613de5565b1115610dcb5760405162461bcd60e51b8152602060048201526012602482015271466565206d757374206265203c3d2034302560701b60448201526064015b60405180910390fd5b604080516060810182528481526020810184905201819052600e839055600f829055601081905581610dfd8285613de5565b610e079190613de5565b601255505050565b5f33610e1c8185856123c3565b60019150505b92915050565b6017546001600160a01b03163314610e3e575f80fd5b6017546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401602060405180830381865afa158015610e8f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eb39190613df8565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610efb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f1f9190613e0f565b5050565b6017546001600160a01b03163314610f39575f80fd5b600a54600160b01b900460ff1615610f935760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c65640000000000000000006044820152606401610dc2565b600a805460ff60b01b1916600160b01b179055565b610fb0612396565b610fc481690854f91a2e471b440000613d96565b60275550565b6017546001600160a01b03163314610fe0575f80fd5b60175460405147915f916001600160a01b039091169083908381818185875af1925050503d805f811461102e576040519150601f19603f3d011682016040523d82523d5f602084013e611033565b606091505b5050905080610f1f575f80fd5b611048612396565b6028826110558386613de5565b61105f9190613de5565b11156110a25760405162461bcd60e51b8152602060048201526012602482015271466565206d757374206265203c3d2034302560701b6044820152606401610dc2565b604080516060810182528481526020810184905201819052600b839055600c829055600d819055816110d48285613de5565b6110de9190613de5565b601155505050565b6024545f908152602960205260408120611102906005016124e6565b905090565b61110f612396565b601780546001600160a01b0319166001600160a01b0392909216919091179055565b5f3361113e8582856124ef565b611149858585612567565b506001949350505050565b61115c612396565b601d5460405163f855337360e01b8152600481018390525f60248201526001600160a01b039091169063f855337390604401610c75565b5f8181526029602052604090206007015461010090046001600160a01b0316331461123c5760405162461bcd60e51b815260206004820152604d60248201527f596f752063616e6e6f7420636c61696d2074686973206365727469666963617460448201527f65206265636175736520796f7520617265206e6f74207468652077696e6e657260648201526c081bd9881d1a19481c9bdd5b99609a1b608482015260a401610dc2565b6019545f82815260296020526040908190206008015490516331a9108f60e11b8152600481019190915230916001600160a01b031690636352211e90602401602060405180830381865afa158015611296573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112ba9190613e2a565b6001600160a01b0316146112e05760405162461bcd60e51b8152600401610dc290613e45565b6019545f828152602960205260409081902060078101546008909101549151632142170760e11b81526001600160a01b03938416936342842e0e9361133393309361010090910490921691600401613d5e565b5f604051808303815f87803b15801561134a575f80fd5b505af115801561135c573d5f803e3d5ffd5b5050505f82815260296020526040808220600881015460079091015491519093506101009091046001600160a01b0316917fcb90408d26e46b7900b5c4691dcdcedb05997976f34c97e59b13c86b03ef05b391a350565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114245760405162461bcd60e51b8152602060048201526016602482015275043616c6c6572206e6f74204169726e6f6465205252560541b6044820152606401610dc2565b5f838152602d602052604090205460ff166114785760405162461bcd60e51b81526020600482015260146024820152732932b8bab2b9ba1024a2103737ba1035b737bbb760611b6044820152606401610dc2565b5f838152602d60205260408120805460ff1916905561149982840184613789565b90505f60016114a66110e6565b11156114c5576114b46110e6565b6114be9083613ec4565b90506114c8565b505f5b6114d181611abb565b602480545f90815260296020908152604080832060079081018054610100600160a81b0319166101006001600160a01b039889168102919091179091559454808552828520600481015492810154600890910154969004909616808552602a84529184208054600181018255908552929093209091019390935591906115573084612a33565b600160245f8282546115699190613de5565b925050819055506115ef60275460295f60016024546115889190613ed7565b81526020019081526020015f2060010154602480545f9081526029602052604080822094909455815481528381206001908101939093558154815283812060040181905581548152838120600701805460ff19169093179092555481522042600290910155565b8281836001600160a01b03167ff6bccdcc7c2506c199cbaf64aba36ed54b01cc1c478aa234e0806f393751a9c260405160405180910390a45050505050505050565b5f33610e1c8185856116438383611e74565b61164d9190613de5565b6123c3565b5f3330148061166b57506005546001600160a01b031633145b611673575f80fd5b5f6040518060a00160405280846040015181526020018460600151600181111561169f5761169f613eea565b815260200184608001516001600160a01b031681526020016040518061014001604052808660a00151151581526020018660c00151151581526020018660e00151151581526020018661010001511515815260200186610120015115158152602001866101400151151581526020018661016001511515815260200186610180015115158152602001866101a0015115158152602001866102600151151581525081526020016040518060c00160405280866101c0015181526020018661028001518152602001866101e0015163ffffffff16815260200186610200015163ffffffff16815260200186610220015163ffffffff16815260200186610240015161ffff16815250815250905060185f9054906101000a90046001600160a01b03166001600160a01b0316630ca9ee20826040518263ffffffff1660e01b81526004016117eb9190613efe565b6020604051808303815f875af1158015611807573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061182b9190613e2a565b9392505050565b6001600160a01b0381165f908152602a602090815260409182902080548351818402810184019094528084526060939283018282801561188f57602002820191905f5260205f20905b81548152602001906001019080831161187b575b50505050509050919050565b5f5b602454811015611ab8575f8181526029602052604090206007015461010090046001600160a01b0316331461193c576040805162461bcd60e51b81526020600482015260248101919091527f596f752063616e6e6f7420636c61696d2074686973206365727469666963617460448201527f65206265636175736520796f7520617265206e6f74207468652077696e6e65726064820152608401610dc2565b6019545f82815260296020526040908190206008015490516331a9108f60e11b8152600481019190915230916001600160a01b031690636352211e90602401602060405180830381865afa158015611996573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119ba9190613e2a565b6001600160a01b0316146119e05760405162461bcd60e51b8152600401610dc290613e45565b6019545f828152602960205260409081902060078101546008909101549151632142170760e11b81526001600160a01b03938416936342842e0e93611a3393309361010090910490921691600401613d5e565b5f604051808303815f87803b158015611a4a575f80fd5b505af1158015611a5c573d5f803e3d5ffd5b5050505f82815260296020526040808220600881015460079091015491519093506101009091046001600160a01b0316917fcb90408d26e46b7900b5c4691dcdcedb05997976f34c97e59b13c86b03ef05b391a360010161189d565b50565b6024545f908152602960205260408120611ad7906005016124e6565b8210611b1b5760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b6044820152606401610dc2565b6024545f908152602960205260409020610e229060050183612b63565b611b40612396565b601d54600a54604051637db4e28f60e01b81526001600160a01b03918216600482015260248101849052911690637db4e28f90604401610c75565b611b83612396565b611b8c5f612b6e565b565b611b96612396565b611ba882670de0b6b3a7640000613d96565b601455611bbd81670de0b6b3a7640000613d96565b6015555050565b611bcc612396565b601e80546001600160a01b039485166001600160a01b031991821617909155601f9290925560208054919093169116179055565b611c08612396565b601c5460405163f855337360e01b8152600481018390525f60248201526001600160a01b039091169063f855337390604401610c75565b606060048054610ce390613dad565b5f3381611c5b8286611e74565b905083811015611cbb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610dc2565b61114982868684036123c3565b5f33610e1c818585612567565b611cdd612396565b611cef81670de0b6b3a7640000613d96565b60135550565b611cfd612396565b6001600160a01b0382165f908152602b602052604090205481151560ff909116151503611d7d5760405162461bcd60e51b815260206004820152602860248201527f4163636f756e7420697320616c7265616479207468652076616c7565206f6620604482015267195e18db1d59195960c21b6064820152608401610dc2565b6001600160a01b0382165f818152602b6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6024545f908152602960205260408120610e229060050183612bbf565b611e00612396565b611e1281670de0b6b3a7640000613d96565b60165550565b611e20612396565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b611e4a612396565b6001600160a01b03919091165f908152602c60205260409020805460ff1916911515919091179055565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b611ea6612396565b600a8054911515600160a81b0260ff60a81b19909216919091179055565b611ecc612396565b6028805460ff1916911515919091179055565b611ee7612396565b6001600160a01b038116611f1057604051631e4fbdf760e01b81525f6004820152602401610dc2565b611ab881612b6e565b33301480611f3157506005546001600160a01b031633145b611f39575f80fd5b5f604051806102a00160405280846001600160a01b03168152602001336001600160a01b031681526020016040518060400160405280600d81526020016c2827a3902628102637b1a8b2b960991b8152508152602001600180811115611fa157611fa1613eea565b81523060208201525f604082018190526001606083018190526080830182905260a0830181905260c0830181905260e08301829052610100830152610120820181905261014082018190526a52b7d2dcc80cd2e400000061016083015261018082018190526101a082018190526101c082018190526127106101e0830152610200820181905261022090910152905061203981611652565b601b80546001600160a01b0319166001600160a01b03929092169182179055612063906001611e42565b601b54601d80546001600160a01b0319166001600160a01b03928316908117909155600a546040516301d9294760e51b81529216600483015290633b2528e0906024015f604051808303815f87803b1580156120bd575f80fd5b505af11580156120cf573d5f803e3d5ffd5b505050506120dc82611154565b505050565b6120e9612be0565b81146121495760405162461bcd60e51b815260206004820152602960248201527f796f75206d757374206465706f736974207468652063757272656e74207469636044820152686b657420707269636560b81b6064820152608401610dc2565b6024545f9081526029602052604090206007015460ff1615156001146121b15760405162461bcd60e51b815260206004820181905260248201527f7468652063757272656e7420726f756e64206973206e6f7420616374697665206044820152606401610dc2565b60285460ff1615156001146122015760405162461bcd60e51b815260206004820152601660248201527520526f756e6473206d7573742062652061637469766560501b6044820152606401610dc2565b6040516323b872dd60e01b815230906323b872dd9061222890339084908690600401613d5e565b6020604051808303815f875af1158015612244573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122689190613e0f565b6122da5760405162461bcd60e51b815260206004820152603b60248201527f7472616e73666572206661696c65642c206d616b65207375726520746f20617060448201527f70726f766520706f6720746f2074616b6520796f757220706f672000000000006064820152608401610dc2565b6024545f90815260296020526040812060040180548392906122fd908490613de5565b9091555061230c905033612c0d565b6024545f908152602960205260408120600901805460019290612330908490613de5565b90915550506024545f90815260296020526040902060010154602154429161235791613de5565b1061238f57612364612c2a565b60405142907faa97d4a7b3afec5f55c25ca8593dde6929d4455fad650a16fa4334004293a618905f90a25b5042602155565b6005546001600160a01b03163314611b8c5760405163118cdaa760e01b8152336004820152602401610dc2565b6001600160a01b0383166124255760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610dc2565b6001600160a01b0382166124865760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610dc2565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f610e22825490565b5f6124fa8484611e74565b90505f19811461256157818110156125545760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610dc2565b61256184848484036123c3565b50505050565b6001600160a01b03831661258d5760405162461bcd60e51b8152600401610dc29061404f565b6001600160a01b0382166125b35760405162461bcd60e51b8152600401610dc290614094565b6001600160a01b0383165f908152602b602052604090205460ff161580156125f357506001600160a01b0382165f908152602b602052604090205460ff16155b80156126095750600a54600160a01b900460ff16155b156127c357600a54600160b01b900460ff1661265c5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b6044820152606401610dc2565b600a546001600160a01b03908116908316036126c9576015548111156126c45760405162461bcd60e51b815260206004820152601f60248201527f596f752061726520657863656564696e67206d617853656c6c416d6f756e74006044820152606401610dc2565b612731565b600a546001600160a01b0390811690841603612731576014548111156127315760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d6178427579416d6f756e7400006044820152606401610dc2565b6001600160a01b0382165f908152602c602052604090205460ff166127c3576016546001600160a01b0383165f908152602081905260409020546127759083613de5565b11156127c35760405162461bcd60e51b815260206004820152601b60248201527f556e61626c6520746f20657863656564204d61782057616c6c657400000000006044820152606401610dc2565b805f036127d5576120dc83835f612d83565b6024545f9081526029602090815260408083206004015430845291839052822054111561282f576024545f9081526029602090815260408083206004015430845291839052909120546128289190613ed7565b9050612840565b50305f908152602081905260409020545b6013548110801590819061285e5750600a54600160a01b900460ff16155b80156128735750600a54600160a81b900460ff165b801561288c5750600a546001600160a01b038581169116145b80156128b057506001600160a01b0385165f908152602b602052604090205460ff16155b80156128d457506001600160a01b0384165f908152602b602052604090205460ff16155b1561290d57600a805460ff60a01b1916600160a01b179055601254156128ff576128ff601354612eab565b600a805460ff60a01b191690555b600a546001600160a01b0386165f908152602b602052604090205460ff600160a01b90920482161591168061295957506001600160a01b0385165f908152602b602052604090205460ff165b1561296157505f5b600a546001600160a01b0386811691161480159061298d5750600a546001600160a01b03878116911614155b1561299557505f5b8015612a2057600a545f906001600160a01b03908116908716036129d4576064601254866129c39190613d96565b6129cd91906140d7565b9050612a07565b600a546001600160a01b0390811690881603612a07576064601154866129fa9190613d96565b612a0491906140d7565b90505b612a118186613ed7565b9450612a1e873083612d83565b505b612a2b868686612d83565b505050505050565b6001600160a01b038216612a935760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610dc2565b6001600160a01b0382165f9081526020819052604090205481811015612b065760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610dc2565b6001600160a01b0383165f818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b5f61182b83836133af565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0381165f908152600183016020526040812054151561182b565b6025545f9060ff161515600103612bf8575060265490565b506024545f9081526029602052604090205490565b6024545f908152602960205260409020610f1f90600501826133d5565b601c545f906001600160a01b0316632e51c0bd612c45612be0565b6040516001600160e01b031960e084901b1681526004810191909152600160248201526044015f604051808303815f875af1158015612c86573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612cad91908101906140ea565b5f81518110612cbe57612cbe61418b565b6020908102919091010151601954601a546040516329f99b9f60e01b81526001600160a01b039182166004820152602481018490529293505f929116906329f99b9f90604401602060405180830381865afa158015612d1f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d439190613df8565b602480545f9081526029602052604080822060080184905582548252808220600701805460ff191690559154815220426003909101559050610f1f6133e9565b6001600160a01b038316612da95760405162461bcd60e51b8152600401610dc29061404f565b6001600160a01b038216612dcf5760405162461bcd60e51b8152600401610dc290614094565b6001600160a01b0383165f9081526020819052604090205481811015612e465760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610dc2565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3612561565b600f5481901561319357601254600f545f91600291612eca9086613d96565b612ed491906140d7565b612ede91906140d7565b90505f6002601254600e6001015486612ef79190613d96565b612f0191906140d7565b612f0b91906140d7565b9050612f16826134fc565b478015612f2757612f278282613644565b600a546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015612f6d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f919190613df8565b9050801561317857600a54601d546040516370a0823160e01b81523060048201526001600160a01b039283169263095ea7b392169083906370a0823190602401602060405180830381865afa158015612fec573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130109190613df8565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015613058573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061307c9190613e0f565b50601d54600a546040516370a0823160e01b81523060048201526001600160a01b0392831692637db4e28f92169081906370a0823190602401602060405180830381865afa1580156130d0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130f49190613df8565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044015f604051808303815f87803b158015613137575f80fd5b505af1158015613149573d5f803e3d5ffd5b50506040518392507f779dba921071007dc5aa53f136f23c41f7097b20533d51baac8e04fbd705da5e91505f90a25b6131828385613de5565b61318c9087613ed7565b9450505050505b61319c816134fc565b6010541561326d576012546010545f91906131b79047613d96565b6131c191906140d7565b9050801561326b576017546040515f916001600160a01b03169083908381818185875af1925050503d805f8114613213576040519150601f19603f3d011682016040523d82523d5f602084013e613218565b606091505b50509050806132695760405162461bcd60e51b815260206004820181905260248201527f4661696c656420746f2073656e642045544820746f206465762077616c6c65746044820152606401610dc2565b505b505b600e541561339557601254600e545f91906132889047613d96565b61329291906140d7565b601c54600954604080516315ab88c960e31b815290519394506001600160a01b0392831693637db4e28f938693169163ad5c46489160048083019260209291908290030181865afa1580156132e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061330d9190613e2a565b6040516001600160e01b031960e085901b1681526001600160a01b039091166004820152602481018590526044015f604051808303818588803b158015613352575f80fd5b505af1158015613364573d5f803e3d5ffd5b50506040518493507fa359e3efc62b7f325730befafd40fe7d9d80f42a0366fd98af80312778b76cfc92505f9150a2505b60225460ff1615155f03610f1f57610f1f621275006136eb565b5f825f0182815481106133c4576133c461418b565b905f5260205f200154905092915050565b5f61182b836001600160a01b03841661373d565b601e54601f54602054604051636e6be03f60e01b81526001600160a01b0393841660048201526024810192909252306044830181905290831660648301526084820152631b8c6c8560e11b60a482015260e060c48201525f60e48201819052917f00000000000000000000000000000000000000000000000000000000000000001690636e6be03f90610104016020604051808303815f875af1158015613492573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134b69190613df8565b5f818152602d6020526040808220805460ff191660011790555191925082917fcba2da2f3c0c732a104019a3104936397dde7343964c1518ceb760052e4537b19190a250565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061352f5761352f61418b565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015613586573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135aa9190613e2a565b816001815181106135bd576135bd61418b565b6001600160a01b0392831660209182029290920101526009546135e391309116846123c3565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac9479061361b9085905f9086903090429060040161419f565b5f604051808303815f87803b158015613632575f80fd5b505af1158015612a2b573d5f803e3d5ffd5b60095461365c9030906001600160a01b0316846123c3565b60095460405163f305d71960e01b81523060048201819052602482018590525f60448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af11580156136c6573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c9e9190614210565b60225460ff1615155f03611c08576022805460ff19166001179055601c5460405163f855337360e01b8152600481018390525f60248201526001600160a01b039091169063f855337390604401610c75565b5f81815260018301602052604081205461378257508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610e22565b505f610e22565b5f60208284031215613799575f80fd5b5035919050565b8015158114611ab8575f80fd5b80356137b8816137a0565b919050565b5f80604083850312156137ce575f80fd5b82356137d9816137a0565b946020939093013593505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61182b60208301846137e7565b5f805f60608486031215613839575f80fd5b505081359360208301359350604090920135919050565b6001600160a01b0381168114611ab8575f80fd5b80356137b881613850565b5f8060408385031215613880575f80fd5b82356137d981613850565b5f6020828403121561389b575f80fd5b813561182b81613850565b5f805f606084860312156138b8575f80fd5b83356138c381613850565b925060208401356138d381613850565b929592945050506040919091013590565b5f805f604084860312156138f6575f80fd5b83359250602084013567ffffffffffffffff80821115613914575f80fd5b818601915086601f830112613927575f80fd5b813581811115613935575f80fd5b876020828501011115613946575f80fd5b6020830194508093505050509250925092565b634e487b7160e01b5f52604160045260245ffd5b6040516102a0810167ffffffffffffffff8111828210171561399157613991613959565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156139c0576139c0613959565b604052919050565b5f82601f8301126139d7575f80fd5b813567ffffffffffffffff8111156139f1576139f1613959565b613a04601f8201601f1916602001613997565b818152846020838601011115613a18575f80fd5b816020850160208301375f918101602001919091529392505050565b8035600281106137b8575f80fd5b803563ffffffff811681146137b8575f80fd5b803561ffff811681146137b8575f80fd5b5f60208284031215613a76575f80fd5b813567ffffffffffffffff80821115613a8d575f80fd5b908301906102a08286031215613aa1575f80fd5b613aa961396d565b613ab283613864565b8152613ac060208401613864565b6020820152604083013582811115613ad6575f80fd5b613ae2878286016139c8565b604083015250613af460608401613a34565b6060820152613b0560808401613864565b6080820152613b1660a084016137ad565b60a0820152613b2760c084016137ad565b60c0820152613b3860e084016137ad565b60e08201526101009150613b4d8284016137ad565b828201526101209150613b618284016137ad565b828201526101409150613b758284016137ad565b828201526101609150613b898284016137ad565b828201526101809150613b9d8284016137ad565b828201526101a09150613bb18284016137ad565b828201526101c0915081830135828201526101e09150613bd2828401613a42565b828201526102009150613be6828401613a42565b828201526102209150613bfa828401613a42565b828201526102409150613c0e828401613a55565b828201526102609150613c228284016137ad565b9181019190915261028091820135918101919091529392505050565b602080825282518282018190525f9190848201906040850190845b81811015613c7557835183529284019291840191600101613c59565b50909695505050505050565b5f8060408385031215613c92575f80fd5b50508035926020909101359150565b5f805f60608486031215613cb3575f80fd5b8335613cbe81613850565b9250602084013591506040840135613cd581613850565b809150509250925092565b5f8060408385031215613cf1575f80fd5b8235613cfc81613850565b91506020830135613d0c816137a0565b809150509250929050565b5f8060408385031215613d28575f80fd5b8235613d3381613850565b91506020830135613d0c81613850565b5f60208284031215613d53575f80fd5b813561182b816137a0565b6001600160a01b039384168152919092166020820152604081019190915260600190565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610e2257610e22613d82565b600181811c90821680613dc157607f821691505b602082108103613ddf57634e487b7160e01b5f52602260045260245ffd5b50919050565b80820180821115610e2257610e22613d82565b5f60208284031215613e08575f80fd5b5051919050565b5f60208284031215613e1f575f80fd5b815161182b816137a0565b5f60208284031215613e3a575f80fd5b815161182b81613850565b60208082526045908201527f596f752063616e6e6f7420636c61696d2074686973206365727469666963617460408201527f6520626563617573652069742068617320616c7265616479206265656e20636c606082015264185a5b595960da1b608082015260a00190565b634e487b7160e01b5f52601260045260245ffd5b5f82613ed257613ed2613eb0565b500690565b81810381811115610e2257610e22613d82565b634e487b7160e01b5f52602160045260245ffd5b602081525f82516102606020840152613f1b6102808401826137e7565b9050602084015160028110613f3e57634e487b7160e01b5f52602160045260245ffd5b6040848101919091528401516001600160a01b0316606080850191909152840151805115156080850152602081015180151560a086015250604081015180151560c086015250606081015180151560e0860152506080810151610100613fa78187018315159052565b60a08301519150610120613fbe8188018415159052565b60c0840151151561014088015260e084015115156101608801529083015115156101808701529091015115156101a08501525060809384015180516101c085015260208101516101e0850152604081015163ffffffff908116610200860152606082015181166102208601529481015190941661024084015260a09093015161ffff16610260909201919091525090565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b5f826140e5576140e5613eb0565b500490565b5f60208083850312156140fb575f80fd5b825167ffffffffffffffff80821115614112575f80fd5b818501915085601f830112614125575f80fd5b81518181111561413757614137613959565b8060051b9150614148848301613997565b8181529183018401918481019088841115614161575f80fd5b938501935b8385101561417f57845182529385019390850190614166565b98975050505050505050565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156141ef5784516001600160a01b0316835293830193918301916001016141ca565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215614222575f80fd5b835192506020840151915060408401519050925092509256fea2646970667358221220291c18e5b4d52c19ef95de9645d6a5949fb49c27717c0fe55574886551b7d13664736f6c63430008190033000000000000000000000000a0ad79d995ddeeb18a14eaef56a549a04e3aa1bd0000000000000000000000006609354e6ed252cf2c1e2db472f49366fa6a99f4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000d40dca93e171f0d1770710fd56cb322e522ea821