[ { "inputs": [], "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" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "success", "type": "bool" } ], "name": "UodateURI", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "cal", "type": "uint256" } ], "name": "UpgradeNFTByAvax", "type": "event" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "tierGroup", "type": "uint256" } ], "name": "aggregation", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tier", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "canMint", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "canTransfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "currencyToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "defaultURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "nftId", "type": "uint256" }, { "internalType": "uint256", "name": "tierGroup", "type": "uint256" } ], "name": "downgradeNFT", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bool", "name": "buyTier0", "type": "bool" } ], "name": "exchangeXYZAndTiero", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "exemptMaxAmountUser", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "fractionalize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], "name": "getAmount", "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": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "tier", "type": "uint256" } ], "name": "getInfo", "outputs": [ { "internalType": "uint256[]", "name": "res", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "tire", "type": "uint256" } ], "name": "getLen", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTime", "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": "maxTier0", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "maxWalletLimit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "max_Regular_tier", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "wallet", "type": "address" }, { "internalType": "uint256", "name": "tie", "type": "uint256" }, { "internalType": "string", "name": "uri", "type": "string" } ], "name": "mintNFTWithAvax", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "wallet", "type": "address" }, { "internalType": "uint256", "name": "tie", "type": "uint256" }, { "internalType": "string", "name": "uri", "type": "string" } ], "name": "mintNFTWithToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "onERC721Received", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "nonpayable", "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": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "price", "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": [], "name": "sendAllAvaxToTreasure", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "sendAllBalance", "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": "user", "type": "address[]" }, { "internalType": "bool", "name": "flag", "type": "bool" } ], "name": "setExemptMaxAmountUser", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "vals", "type": "uint256[]" } ], "name": "setMaxRegularTier", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setMaxTier0", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "vals", "type": "uint256[]" } ], "name": "setMaxWalletAmountList", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "option", "type": "uint8" } ], "name": "setMintOption", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "setNFTmintCurrency", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "vals", "type": "uint256[]" } ], "name": "setPriceList", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "wallet", "type": "address" } ], "name": "setTreasureWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "flag", "type": "bool" } ], "name": "setUpgradable", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "users", "type": "address[]" }, { "internalType": "bool", "name": "flag", "type": "bool" } ], "name": "setWhiteList", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "setXYZtoken", "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": "", "type": "uint256" } ], "name": "tBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "tier0transfer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "tierInfo", "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": [ { "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": [ { "internalType": "uint256", "name": "tier", "type": "uint256" }, { "internalType": "string", "name": "uri", "type": "string" } ], "name": "updateDefaultURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "string", "name": "uri", "type": "string" } ], "name": "updateURI", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "nftId", "type": "uint256" }, { "internalType": "uint256", "name": "tierGroup", "type": "uint256" } ], "name": "upgradeNFT", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "nftId", "type": "uint256" }, { "internalType": "uint256", "name": "tierGroup", "type": "uint256" } ], "name": "upgradeNFTByAvax", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "userInfo", "outputs": [ { "internalType": "uint256", "name": "tier0", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "whiteList", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
608060405262989680601655603980546001600160a01b031990811673f827c3e5fd68e78aa092245d442398e12988901c17909155603a805490911673b0b598fcd066058a83fea073d56522b5bae0522b1790556103e8603b55603c805460ff19908116909155603e805490911690553480156200007c57600080fd5b50604080518082018252601581527f436865656d73586672616374696f6e616c204e4654000000000000000000000060208083019182528351808501909452600384526221ac2760e91b908401528151919291620000dd91600091620004d0565b508051620000f3906001906020840190620004d0565b505050600062000108620004cc60201b60201c565b600780546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350612710600b819055611388600c8190556109c4600d55610640600e556101f4600f55610190601090815560c86011556064601281905560146013819055600a9055601654601555601792909255601892909255614e206019908155617530601a55619c40601b5561c350601c5562013880601d55620186a0601e556207a120601f55620f424060209081556005602181905560229390935560326023556024919091556025929092556026556004602755600260285560016029819055602a819055602b556000602c55604080516080810190915260508082529091620051fd9083013980516200025091602d91602090910190620004d0565b50604051806080016040528060508152602001620051ad6050913980516200028191602e91602090910190620004d0565b506040518060800160405280605081526020016200529d605091398051620002b291602f91602090910190620004d0565b506040518060800160405280605081526020016200524d605091398051620002e391603091602090910190620004d0565b50604051806080016040528060508152602001620051fd6050913980516200031491603191602090910190620004d0565b50604051806080016040528060508152602001620051fd6050913980516200034591603291602090910190620004d0565b50604051806080016040528060508152602001620051fd6050913980516200037691603391602090910190620004d0565b50604051806080016040528060508152602001620051fd605091398051620003a791603491602090910190620004d0565b50604051806080016040528060508152602001620051fd605091398051620003d891603591602090910190620004d0565b50604051806080016040528060508152602001620051fd6050913980516200040991603691602090910190620004d0565b50604051806080016040528060508152602001620051fd6050913980516200043a91603791602090910190620004d0565b503060009081526042602090815260408083208054600160ff199182168117909255600a7f22157c206018468b45ae7922bc7a0b0cb8feed201dac3c6fb5e7876aa94e11e955603f9384905291842080549092168117909155916200049e620004cc565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055620005b3565b3390565b828054620004de9062000576565b90600052602060002090601f0160209004810192826200050257600085556200054d565b82601f106200051d57805160ff19168380011785556200054d565b828001600101855582156200054d579182015b828111156200054d57825182559160200191906001019062000530565b506200055b9291506200055f565b5090565b5b808211156200055b576000815560010162000560565b6002810460018216806200058b57607f821691505b60208210811415620005ad57634e487b7160e01b600052602260045260246000fd5b50919050565b614bea80620005c36000396000f3fe6080604052600436106102955760003560e01c806301ffc9a7146102a1578063064cdefa146102d757806306fdde03146102f7578063081812fc14610319578063095ea7b3146103465780630a25d82e146103685780630f98566614610388578063150b7a021461039b5780631959a002146103c857806322e1dea9146103f557806323b872dd1461041557806324813ec314610435578063248e85f114610455578063248ff82c1461047557806326a49e371461049557806331d41c69146104b557806332844277146104d5578063332e4a34146104f5578063372c12b114610515578063380e95b01461053557806342842e0e1461055557806343e467cb146105755780634cd8582b1461058a578063557ed1ba146105aa57806357d12275146105bf5780635df00552146105df5780635f99ed49146105ff5780636352211e1461061257806363bb1b7914610632578063695195c4146106525780636a91e7bc146106725780636b2fa3741461069f57806370a08231146106b4578063715018a6146106d45780637526e4af146106e95780638166bd2e1461070957806385cc440d146107295780638b243af3146107495780638da5cb5b1461076957806395d89b411461077e5780639bf2121314610793578063a22cb465146107b3578063a267c2c4146107d3578063b722e533146107f3578063b88d4fde14610813578063be7569a414610833578063c87b56dd14610848578063cf608a4714610868578063d4e5df5714610888578063daeedd74146108a8578063e43f696e146108c8578063e985e9c5146108e8578063f2fde38b14610908578063f54956ce14610928578063f5a7976714610948578063f5f7b96214610968578063f9578c5e14610988578063f9ec796c146109a85761029c565b3661029c57005b600080fd5b3480156102ad57600080fd5b506102c16102bc366004613ddc565b6109c8565b6040516102ce9190614032565b60405180910390f35b3480156102e357600080fd5b506102c16102f2366004613a84565b610a10565b34801561030357600080fd5b5061030c610a25565b6040516102ce9190614052565b34801561032557600080fd5b50610339610334366004613e14565b610ab7565b6040516102ce9190613f60565b34801561035257600080fd5b50610366610361366004613bb9565b610b03565b005b34801561037457600080fd5b50610366610383366004613d15565b610b9b565b610366610396366004613be2565b610c5e565b3480156103a757600080fd5b506103bb6103b6366004613b0b565b610d1d565b6040516102ce919061403d565b3480156103d457600080fd5b506103e86103e3366004613a84565b610d2e565b6040516102ce9190614836565b34801561040157600080fd5b506102c1610410366004613eac565b610d43565b34801561042157600080fd5b50610366610430366004613ad0565b610e48565b34801561044157600080fd5b5061030c610450366004613e14565b610e5e565b34801561046157600080fd5b506103e8610470366004613bb9565b610efe565b34801561048157600080fd5b50610366610490366004613a84565b610f53565b3480156104a157600080fd5b506103e86104b0366004613e14565b610faa565b3480156104c157600080fd5b506102c16104d0366004613e68565b610fc1565b3480156104e157600080fd5b506103666104f0366004613da4565b6110ad565b34801561050157600080fd5b506102c1610510366004613c36565b6110f5565b34801561052157600080fd5b506102c1610530366004613a84565b611289565b34801561054157600080fd5b50610366610550366004613ecd565b61129e565b34801561056157600080fd5b50610366610570366004613ad0565b61130c565b34801561058157600080fd5b506103e8611322565b34801561059657600080fd5b506103e86105a5366004613e14565b611328565b3480156105b657600080fd5b506103e861133a565b3480156105cb57600080fd5b506103666105da366004613a84565b61133e565b3480156105eb57600080fd5b506103666105fa366004613bb9565b611395565b61036661060d366004613eac565b6113e0565b34801561061e57600080fd5b5061033961062d366004613e14565b611632565b34801561063e57600080fd5b5061036661064d366004613eac565b611667565b34801561065e57600080fd5b5061036661066d366004613e44565b611804565b34801561067e57600080fd5b5061069261068d366004613bb9565b611ac8565b6040516102ce9190613fee565b3480156106ab57600080fd5b50610339611b3a565b3480156106c057600080fd5b506103e86106cf366004613a84565b611b49565b3480156106e057600080fd5b50610366611b8d565b3480156106f557600080fd5b50610366610704366004613c68565b611bfa565b34801561071557600080fd5b506103e8610724366004613e14565b611ca4565b34801561073557600080fd5b50610366610744366004613eac565b611cb4565b34801561075557600080fd5b50610366610764366004613d15565b611e5d565b34801561077557600080fd5b50610339611f1c565b34801561078a57600080fd5b5061030c611f2b565b34801561079f57600080fd5b506103666107ae366004613d15565b611f3a565b3480156107bf57600080fd5b506103666107ce366004613b83565b611ff9565b3480156107df57600080fd5b506103e86107ee366004613e14565b6120c7565b3480156107ff57600080fd5b5061036661080e366004613e14565b6120d9565b34801561081f57600080fd5b5061036661082e366004613b0b565b612195565b34801561083f57600080fd5b506103666121ac565b34801561085457600080fd5b5061030c610863366004613e14565b61221d565b34801561087457600080fd5b50610366610883366004613be2565b612336565b34801561089457600080fd5b506103666108a3366004613a84565b6124da565b3480156108b457600080fd5b506103666108c3366004613e68565b612609565b3480156108d457600080fd5b506103666108e3366004613c68565b612694565b3480156108f457600080fd5b506102c1610903366004613a9e565b61273e565b34801561091457600080fd5b50610366610923366004613a84565b61276c565b34801561093457600080fd5b50610366610943366004613e14565b612811565b34801561095457600080fd5b506103e8610963366004613a84565b612850565b34801561097457600080fd5b50610366610983366004613a84565b61285d565b34801561099457600080fd5b506103666109a3366004613eac565b6128b4565b3480156109b457600080fd5b506103e86109c3366004613e14565b612ad6565b60006001600160e01b031982166380ac58cd60e01b14806109f957506001600160e01b03198216635b5e139f60e01b145b80610a085750610a0882612ae6565b90505b919050565b60426020526000908152604090205460ff1681565b606060008054610a3490614a55565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6090614a55565b8015610aad5780601f10610a8257610100808354040283529160200191610aad565b820191906000526020600020905b815481529060010190602001808311610a9057829003601f168201915b5050505050905090565b6000610ac282612aff565b610ae75760405162461bcd60e51b8152600401610ade906144ed565b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b6000610b0e82611632565b9050806001600160a01b0316836001600160a01b03161415610b425760405162461bcd60e51b8152600401610ade9061465c565b806001600160a01b0316610b54612b1c565b6001600160a01b03161480610b705750610b7081610903612b1c565b610b8c5760405162461bcd60e51b8152600401610ade906142e2565b610b968383612b20565b505050565b610ba3612b1c565b6007546001600160a01b03908116911614610bd05760405162461bcd60e51b8152600401610ade90614539565b8051600a14610bf15760405162461bcd60e51b8152600401610ade9061473f565b60005b8151811015610c5a57818181518110610c1d57634e487b7160e01b600052603260045260246000fd5b6020026020010151602282600b8110610c4657634e487b7160e01b600052603260045260246000fd5b015580610c5281614a90565b915050610bf4565b5050565b6038546001600160a01b031615610c875760405162461bcd60e51b8152600401610ade90614631565b600b8210610ca75760405162461bcd60e51b8152600401610ade90614811565b6000601783600b8110610cca57634e487b7160e01b600052603260045260246000fd5b0154603b54909150610ce482670de0b6b3a76400006149dc565b610cee91906148b1565b3414610d0c5760405162461bcd60e51b8152600401610ade90614441565b610d17848484612b8e565b50505050565b630a85bd0160e11b5b949350505050565b60406020819052600091825290206001015481565b6000600a83108015610d905750600b83600b8110610d7157634e487b7160e01b600052603260045260246000fd5b01546000848152603d6020526040902054610d8d908490614899565b11155b8015610df55750601654610da590600a6149dc565b82600b85600b8110610dc757634e487b7160e01b600052603260045260246000fd5b0154601654610dd691906148b1565b610de091906149dc565b610de8612dab565b610df29190614899565b11155b15610e0257506001610e42565b82600a148015610e315750601654610e1b90600a6149dc565b82610e24612dab565b610e2e9190614899565b11155b15610e3e57506001610e42565b5060005b92915050565b610e53838383612e27565b610b9683838361303b565b602d81600b8110610e6e57600080fd5b018054909150610e7d90614a55565b80601f0160208091040260200160405190810160405280929190818152602001828054610ea990614a55565b8015610ef65780601f10610ecb57610100808354040283529160200191610ef6565b820191906000526020600020905b815481529060010190602001808311610ed957829003601f168201915b505050505081565b600081600a1415610f2b57506001600160a01b038216600090815260406020819052902060010154610e42565b506001600160a01b038216600090815260406020818152818320848452905290205492915050565b610f5b612b1c565b6007546001600160a01b03908116911614610f885760405162461bcd60e51b8152600401610ade90614539565b603880546001600160a01b0319166001600160a01b0392909216919091179055565b601781600b8110610fba57600080fd5b0154905081565b600033610fcc611f1c565b6001600160a01b0316148015610fe55750603e5460ff16155b8061100f5750336000908152603f602052604090205460ff16801561100f5750603e5460ff166001145b8061101f5750603e5460ff166002145b1561106d5761102e8383613073565b611036612b1c565b6001600160a01b0316600080516020614b95833981519152600160405161105d9190614032565b60405180910390a2506001610e42565b611075612b1c565b6001600160a01b0316600080516020614b95833981519152600060405161109c9190614032565b60405180910390a250600092915050565b6110b5612b1c565b6007546001600160a01b039081169116146110e25760405162461bcd60e51b8152600401610ade90614539565b603c805460ff1916911515919091179055565b6000828152604160209081526040808320546001600160a01b0387168452604290925282205460ff16151560011415611132576001915050611282565b6001600160a01b03851660009081526042602052604090205460ff1615801561115b575080600a145b8015611181575061116a6130b7565b836111748761313f565b61117e9190614899565b11155b15611190576001915050611282565b80600a14156111a3576000915050611282565b6001600160a01b0385166000818152604060208181528183208584528152818320549383526042905290205460ff161580156111df5750600a82105b80156112165750602282600b811061120757634e487b7160e01b600052603260045260246000fd5b01546112138583614899565b11155b801561126b57506112256130b7565b600b83600b811061124657634e487b7160e01b600052603260045260246000fd5b015460165461125591906148b1565b61125e8861313f565b6112689190614899565b11155b1561127b57600192505050611282565b6000925050505b9392505050565b603f6020526000908152604090205460ff1681565b6112a6612b1c565b6007546001600160a01b039081169116146112d35760405162461bcd60e51b8152600401610ade90614539565b60038160ff16106112f65760405162461bcd60e51b8152600401610ade90614766565b603e805460ff191660ff92909216919091179055565b611317838383612e27565b610b968383836131ef565b60165481565b603d6020526000908152604090205481565b4290565b611346612b1c565b6007546001600160a01b039081169116146113735760405162461bcd60e51b8152600401610ade90614539565b603a80546001600160a01b0319166001600160a01b0392909216919091179055565b816001600160a01b03166113a7612b1c565b6001600160a01b031614156113ce5760405162461bcd60e51b8152600401610ade90614065565b610c5a6113d9612b1c565b838361320a565b603c5460ff166114025760405162461bcd60e51b8152600401610ade906141a9565b6038546001600160a01b03161561142b5760405162461bcd60e51b8152600401610ade90614631565b60008281526041602052604081205490601782600b811061145c57634e487b7160e01b600052603260045260246000fd5b0154601784600b811061147f57634e487b7160e01b600052603260045260246000fd5b015461148b91906149fb565b9050336001600160a01b03167f35da91e5b418a59e54085b10b42be33b3938527f506ad3df2a0f8747d49ef3d434603b5484670de0b6b3a76400006114d091906149dc565b6114da91906148b1565b6040516114e892919061483f565b60405180910390a2603b5461150582670de0b6b3a76400006149dc565b61150f91906148b1565b341461152d5760405162461bcd60e51b8152600401610ade90614441565b600a8210801561153d5750600a83105b801561154857508183115b6115645760405162461bcd60e51b8152600401610ade9061441b565b61157661156f612b1c565b3086610e48565b610d17611581612b1c565b84602d86600b81106115a357634e487b7160e01b600052603260045260246000fd5b0180546115af90614a55565b80601f01602080910402602001604051908101604052809291908181526020018280546115db90614a55565b80156116285780601f106115fd57610100808354040283529160200191611628565b820191906000526020600020905b81548152906001019060200180831161160b57829003601f168201915b5050505050612b8e565b6000818152600260205260408120546001600160a01b031680610a085760405162461bcd60e51b8152600401610ade90614384565b603c5460ff166116895760405162461bcd60e51b8152600401610ade906141a9565b600082815260416020526040902054600a811080156116a85750600a82105b80156116b357508082105b6116cf5760405162461bcd60e51b8152600401610ade9061441b565b6000600b82600b81106116f257634e487b7160e01b600052603260045260246000fd5b015460165461170191906148b1565b90506000600b84600b811061172657634e487b7160e01b600052603260045260246000fd5b015460165461173591906148b1565b9050611749611742612b1c565b3087610e48565b611776611754612b1c565b85602d87600b81106115a357634e487b7160e01b600052603260045260246000fd5b61178081836149fb565b3060009081526040602081905290206001015410156117e2576117a8600a61041083856149fb565b6117c45760405162461bcd60e51b8152600401610ade9061471b565b6117ce81836149fb565b306000908152604060208190529020600101555b6117fd306117ee612b1c565b6117f884866149fb565b61320a565b5050505050565b801561199357306000908152604060208190529020600101548211156118615761182f600a83610d43565b61184b5760405162461bcd60e51b8152600401610ade9061471b565b3060009081526040602081905290206001018290555b603a546001600160a01b03166323b872dd61187a612b1c565b603a546040805163313ce56760e01b8152905130926001600160a01b03169163313ce567916004808301926020929190829003018186803b1580156118be57600080fd5b505afa1580156118d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f69190613ee9565b61190190600a61490b565b61190b90876149dc565b6040518463ffffffff1660e01b815260040161192993929190613f74565b602060405180830381600087803b15801561194357600080fd5b505af1158015611957573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197b9190613dc0565b5061198e30611988612b1c565b8461320a565b610c5a565b6119a561199e612b1c565b308461320a565b603a546001600160a01b031663a9059cbb6119be612b1c565b603a60009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015611a0c57600080fd5b505afa158015611a20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a449190613ee9565b611a4f90600a61490b565b611a5990866149dc565b6040518363ffffffff1660e01b8152600401611a76929190613fd5565b602060405180830381600087803b158015611a9057600080fd5b505af1158015611aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b969190613dc0565b6001600160a01b0382166000908152604060208181528183208484528152918190208054825181850281018501909352808352606093830182828015611b2d57602002820191906000526020600020905b815481526020019060010190808311611b19575b5050505050905092915050565b6038546001600160a01b031681565b60006001600160a01b038216611b715760405162461bcd60e51b8152600401610ade9061433a565b506001600160a01b031660009081526003602052604090205490565b611b95612b1c565b6007546001600160a01b03908116911614611bc25760405162461bcd60e51b8152600401610ade90614539565b6007546040516000916001600160a01b031690600080516020614b55833981519152908390a3600780546001600160a01b0319169055565b611c02612b1c565b6007546001600160a01b03908116911614611c2f5760405162461bcd60e51b8152600401610ade90614539565b60005b8251811015610b96578160426000858481518110611c6057634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580611c9c81614a90565b915050611c32565b600b81600b8110610fba57600080fd5b8160406000611cc1612b1c565b6001600160a01b03166001600160a01b03168152602001908152602001600020600101541015611d035760405162461bcd60e51b8152600401610ade9061469d565b600b81600b8110611d2457634e487b7160e01b600052603260045260246000fd5b0154601654611d3391906148b1565b821015611d525760405162461bcd60e51b8152600401610ade906141d0565b600a8110611d725760405162461bcd60e51b8152600401610ade906140db565b6000600b82600b8110611d9557634e487b7160e01b600052603260045260246000fd5b0154601654611da491906148b1565b600b83600b8110611dc557634e487b7160e01b600052603260045260246000fd5b0154601654611dd491906148b1565b611dde90856148b1565b611de891906149dc565b9050611dfc611df5612b1c565b308361320a565b60005b600b83600b8110611e2057634e487b7160e01b600052603260045260246000fd5b0154601654611e2f91906148b1565b611e3990856148b1565b811015610d1757611e4b611581612b1c565b80611e5581614a90565b915050611dff565b611e65612b1c565b6007546001600160a01b03908116911614611e925760405162461bcd60e51b8152600401610ade90614539565b8051600a14611eb35760405162461bcd60e51b8152600401610ade9061473f565b60005b8151811015610c5a57818181518110611edf57634e487b7160e01b600052603260045260246000fd5b6020026020010151600b82600b8110611f0857634e487b7160e01b600052603260045260246000fd5b015580611f1481614a90565b915050611eb6565b6007546001600160a01b031690565b606060018054610a3490614a55565b611f42612b1c565b6007546001600160a01b03908116911614611f6f5760405162461bcd60e51b8152600401610ade90614539565b8051600a14611f905760405162461bcd60e51b8152600401610ade9061473f565b60005b8151811015610c5a57818181518110611fbc57634e487b7160e01b600052603260045260246000fd5b6020026020010151601782600b8110611fe557634e487b7160e01b600052603260045260246000fd5b015580611ff181614a90565b915050611f93565b612001612b1c565b6001600160a01b0316826001600160a01b031614156120325760405162461bcd60e51b8152600401610ade90614237565b806005600061203f612b1c565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff191692151592909217909155612083612b1c565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516120bb9190614032565b60405180910390a35050565b60416020526000908152604090205481565b60008181526041602052604081205490600b8281811061210957634e487b7160e01b600052603260045260246000fd5b015460165461211891906148b1565b905061212c612125612b1c565b3085610e48565b3060009081526040602081905290206001015481111561218357612151600a82610d43565b61216d5760405162461bcd60e51b8152600401610ade9061471b565b3060009081526040602081905290206001018190555b610b963061218f612b1c565b8361320a565b6121a0848484612e27565b610d178484848461335b565b6121b4612b1c565b6007546001600160a01b039081169116146121e15760405162461bcd60e51b8152600401610ade90614539565b6039546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561221a573d6000803e3d6000fd5b50565b606061222882612aff565b6122445760405162461bcd60e51b8152600401610ade9061449c565b6000828152600660205260408120805461225d90614a55565b80601f016020809104026020016040519081016040528092919081815260200182805461228990614a55565b80156122d65780601f106122ab576101008083540402835291602001916122d6565b820191906000526020600020905b8154815290600101906020018083116122b957829003601f168201915b5050505050905060006122e7613394565b90508051600014156122fb57509050610a0b565b81511561232d578082604051602001612315929190613f31565b60405160208183030381529060405292505050610a0b565b610d26846133a6565b6038546001600160a01b031661235e5760405162461bcd60e51b8152600401610ade90614606565b600b821061237e5760405162461bcd60e51b8152600401610ade90614811565b6000601783600b81106123a157634e487b7160e01b600052603260045260246000fd5b01546038549091506001600160a01b03166323b872dd6123bf612b1c565b603b546038546040805163313ce56760e01b815290513093926001600160a01b03169163313ce567916004808301926020929190829003018186803b15801561240757600080fd5b505afa15801561241b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061243f9190613ee9565b61244a90600a61490b565b61245490876149dc565b61245e91906148b1565b6040518463ffffffff1660e01b815260040161247c93929190613f74565b602060405180830381600087803b15801561249657600080fd5b505af11580156124aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ce9190613dc0565b50610d17848484612b8e565b6124e2612b1c565b6007546001600160a01b0390811691161461250f5760405162461bcd60e51b8152600401610ade90614539565b6039546040516370a0823160e01b81526001600160a01b038084169263a9059cbb9291169083906370a082319061254a903090600401613f60565b60206040518083038186803b15801561256257600080fd5b505afa158015612576573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061259a9190613e2c565b6040518363ffffffff1660e01b81526004016125b7929190613fd5565b602060405180830381600087803b1580156125d157600080fd5b505af11580156125e5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5a9190613dc0565b612611612b1c565b6007546001600160a01b0390811691161461263e5760405162461bcd60e51b8152600401610ade90614539565b600a821061265e5760405162461bcd60e51b8152600401610ade9061441b565b80602d83600b811061268057634e487b7160e01b600052603260045260246000fd5b019080519060200190610b96929190613953565b61269c612b1c565b6007546001600160a01b039081169116146126c95760405162461bcd60e51b8152600401610ade90614539565b60005b8251811015610b965781603f60008584815181106126fa57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061273681614a90565b9150506126cc565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b612774612b1c565b6007546001600160a01b039081169116146127a15760405162461bcd60e51b8152600401610ade90614539565b6001600160a01b0381166127c75760405162461bcd60e51b8152600401610ade9061412d565b6007546040516001600160a01b03808416921690600080516020614b5583398151915290600090a3600780546001600160a01b0319166001600160a01b0392909216919091179055565b612819612b1c565b6007546001600160a01b039081169116146128465760405162461bcd60e51b8152600401610ade90614539565b6016819055601555565b6001600160a01b03163190565b612865612b1c565b6007546001600160a01b039081169116146128925760405162461bcd60e51b8152600401610ade90614539565b603980546001600160a01b0319166001600160a01b0392909216919091179055565b603c5460ff166128d65760405162461bcd60e51b8152600401610ade906141a9565b6038546001600160a01b03166128fe5760405162461bcd60e51b8152600401610ade90614631565b60008281526041602052604081205490601782600b811061292f57634e487b7160e01b600052603260045260246000fd5b01546038549091506001600160a01b03166323b872dd61294d612b1c565b30600b86600b811061296f57634e487b7160e01b600052603260045260246000fd5b015460165461297e91906148b1565b603b54603860009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156129cf57600080fd5b505afa1580156129e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a079190613ee9565b612a1290600a61490b565b612a1c90886149dc565b612a2691906148b1565b612a3091906148b1565b6040518463ffffffff1660e01b8152600401612a4e93929190613f74565b602060405180830381600087803b158015612a6857600080fd5b505af1158015612a7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aa09190613dc0565b50600a8210801561153d5750600a8310801561154857508183116115645760405162461bcd60e51b8152600401610ade9061441b565b602281600b8110610fba57600080fd5b6001600160e01b031981166301ffc9a760e01b14919050565b6000908152600260205260409020546001600160a01b0316151590565b3390565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190612b5582611632565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b33612b97611f1c565b6001600160a01b0316148015612bb05750603e5460ff16155b80612bda5750336000908152603f602052604090205460ff168015612bda5750603e5460ff166001145b80612bea5750603e5460ff166002145b15612d9357600082600a1415612c5657612c05836001610d43565b612c215760405162461bcd60e51b8152600401610ade9061471b565b306000908152604060208190528120600101805491612c3f83614a90565b9190505550612c503085600161320a565b50610b96565b3060009081526040602081815281832086845290529020805415612cb45780548190612c84906001906149fb565b81548110612ca257634e487b7160e01b600052603260045260246000fd5b90600052602060002001549150612d20565b612cbf846001610d43565b612cdb5760405162461bcd60e51b8152600401610ade9061471b565b612ce5600a613429565b612cef600a613432565b9150612cfb3083613436565b6000828152604160209081526040822086905582546001810184558383529120018290555b60405163095ea7b360e01b8152309063095ea7b390612d459088908690600401613fd5565b600060405180830381600087803b158015612d5f57600080fd5b505af1158015612d73573d6000803e3d6000fd5b50505050612d82308684610e48565b612d8c8284613073565b5050610b96565b60405162461bcd60e51b8152600401610ade9061478e565b600080805b600a8111612e21576000818152603d602052604090205480600b83818110612de857634e487b7160e01b600052603260045260246000fd5b0154601654612df791906148b1565b612e0191906149dc565b612e0b9084614899565b9250508080612e1990614a90565b915050612db0565b50905090565b6001600160a01b038084166000908152604060208181528183208584526041825282842054808552908252828420948716845282825282842090845290529020612e73848460016110f5565b612e8f5760405162461bcd60e51b8152600401610ade90614101565b6000805b8354811015612f8457838181548110612ebc57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154851415612f725783548490612ede906001906149fb565b81548110612efc57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154848281548110612f2757634e487b7160e01b600052603260045260246000fd5b906000526020600020018190555083805480612f5357634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905560019150612f84565b80612f7c81614a90565b915050612e93565b5080612fa25760405162461bcd60e51b8152600401610ade906147b6565b8154600181018355600083815260209020018490556001600160a01b038616301415612ff5576000848152604160209081526040808320548352603d9091528120805491612fef83614a90565b91905055505b6001600160a01b038516301415613033576000848152604160209081526040808320548352603d909152812080549161302d83614a3e565b91905055505b505050505050565b61304c613046612b1c565b82613450565b6130685760405162461bcd60e51b8152600401610ade906146ca565b610b968383836134cd565b61307c82612aff565b6130985760405162461bcd60e51b8152600401610ade906143cd565b60008281526006602090815260409091208251610b9692840190613953565b600080805b600a8111612e2157600b81600b81106130e557634e487b7160e01b600052603260045260246000fd5b0154601654602283600b811061310b57634e487b7160e01b600052603260045260246000fd5b015461311791906149dc565b61312191906148b1565b61312b9083614899565b91508061313781614a90565b9150506130bc565b600080805b600a8110156131c8576001600160a01b038416600090815260406020818152818320848452905290208054600b8381811061318f57634e487b7160e01b600052603260045260246000fd5b015460165461319e91906148b1565b6131a891906149dc565b6131b29084614899565b92505080806131c090614a90565b915050613144565b506001600160a01b0383166000908152604060208190529020600101546112829082614899565b610b9683838360405180602001604052806000815250612195565b6001600160a01b0383166000908152604060208190529020600101548111156132455760405162461bcd60e51b8152600401610ade906147e3565b613251826000836110f5565b61326d5760405162461bcd60e51b8152600401610ade906142b6565b6001600160a01b038316600090815260406020819052812060010180548392906132989084906149fb565b90915550506001600160a01b038216600090815260406020819052812060010180548392906132c8908490614899565b90915550506001600160a01b03831630141561331257600080516020614b35833981519152546000908152603d60205260408120805483929061330c908490614899565b90915550505b6001600160a01b038216301415610b9657600080516020614b35833981519152546000908152603d6020526040812080548392906133519084906149fb565b9091555050505050565b61336c613366612b1c565b83613450565b6133885760405162461bcd60e51b8152600401610ade906146ca565b610d17848484846135e8565b60408051602081019091526000815290565b60606133b182612aff565b6133cd5760405162461bcd60e51b8152600401610ade906145b7565b60006133d7613394565b905060008151116133f75760405180602001604052806000815250611282565b806134018461361b565b604051602001613412929190613f31565b604051602081830303815290604052915050919050565b80546001019055565b5490565b610c5a828260405180602001604052806000815250613735565b600061345b82612aff565b6134775760405162461bcd60e51b8152600401610ade9061426a565b600061348283611632565b9050806001600160a01b0316846001600160a01b031614806134bd5750836001600160a01b03166134b284610ab7565b6001600160a01b0316145b80610d265750610d26818561273e565b826001600160a01b03166134e082611632565b6001600160a01b0316146135065760405162461bcd60e51b8152600401610ade9061456e565b6001600160a01b03821661352c5760405162461bcd60e51b8152600401610ade906141f3565b613537838383610b96565b613542600082612b20565b6001600160a01b038316600090815260036020526040812080546001929061356b9084906149fb565b90915550506001600160a01b0382166000908152600360205260408120805460019290613599908490614899565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b038681169182179092559151849391871691600080516020614b7583398151915291a4505050565b6135f38484846134cd565b6135ff84848484613768565b610d175760405162461bcd60e51b8152600401610ade90614089565b60608161364057506040805180820190915260018152600360fc1b6020820152610a0b565b8160005b811561366a578061365481614a90565b91506136639050600a836148b1565b9150613644565b6000816001600160401b0381111561369257634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156136bc576020820181803683370190505b5090505b8415610d26576136d16001836149fb565b91506136de600a86614aab565b6136e9906030614899565b60f81b81838151811061370c57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535061372e600a866148b1565b94506136c0565b61373f8383613880565b61374c6000848484613768565b610b965760405162461bcd60e51b8152600401610ade90614089565b600061377c846001600160a01b031661394d565b1561387857836001600160a01b031663150b7a02613798612b1c565b8786866040518563ffffffff1660e01b81526004016137ba9493929190613f98565b602060405180830381600087803b1580156137d457600080fd5b505af1925050508015613804575060408051601f3d908101601f1916820190925261380191810190613df8565b60015b61385e573d808015613832576040519150601f19603f3d011682016040523d82523d6000602084013e613837565b606091505b5080516138565760405162461bcd60e51b8152600401610ade90614089565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610d26565b506001610d26565b6001600160a01b0382166138a65760405162461bcd60e51b8152600401610ade90614467565b6138af81612aff565b156138cc5760405162461bcd60e51b8152600401610ade90614173565b6138d860008383610b96565b6001600160a01b0382166000908152600360205260408120805460019290613901908490614899565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386169081179091559051839290600080516020614b75833981519152908290a45050565b3b151590565b82805461395f90614a55565b90600052602060002090601f01602090048101928261398157600085556139c7565b82601f1061399a57805160ff19168380011785556139c7565b828001600101855582156139c7579182015b828111156139c75782518255916020019190600101906139ac565b506139d39291506139d7565b5090565b5b808211156139d357600081556001016139d8565b60006001600160401b03831115613a0557613a05614aeb565b613a18601f8401601f191660200161484d565b9050828152838383011115613a2c57600080fd5b828260208301376000602084830101529392505050565b80356001600160a01b0381168114610a0b57600080fd5b8035610a0b81614b01565b600082601f830112613a75578081fd5b611282838335602085016139ec565b600060208284031215613a95578081fd5b61128282613a43565b60008060408385031215613ab0578081fd5b613ab983613a43565b9150613ac760208401613a43565b90509250929050565b600080600060608486031215613ae4578081fd5b613aed84613a43565b9250613afb60208501613a43565b9150604084013590509250925092565b60008060008060808587031215613b20578081fd5b613b2985613a43565b9350613b3760208601613a43565b92506040850135915060608501356001600160401b03811115613b58578182fd5b8501601f81018713613b68578182fd5b613b77878235602084016139ec565b91505092959194509250565b60008060408385031215613b95578182fd5b613b9e83613a43565b91506020830135613bae81614b01565b809150509250929050565b60008060408385031215613bcb578182fd5b613bd483613a43565b946020939093013593505050565b600080600060608486031215613bf6578283fd5b613bff84613a43565b92506020840135915060408401356001600160401b03811115613c20578182fd5b613c2c86828701613a65565b9150509250925092565b600080600060608486031215613c4a578081fd5b613c5384613a43565b95602085013595506040909401359392505050565b60008060408385031215613c7a578182fd5b82356001600160401b03811115613c8f578283fd5b8301601f81018513613c9f578283fd5b80356020613cb4613caf83614876565b61484d565b82815281810190848301838502860184018a1015613cd0578788fd5b8795505b84861015613cf957613ce581613a43565b835260019590950194918301918301613cd4565b509550613d099050868201613a5a565b93505050509250929050565b60006020808385031215613d27578182fd5b82356001600160401b03811115613d3c578283fd5b8301601f81018513613d4c578283fd5b8035613d5a613caf82614876565b8181528381019083850185840285018601891015613d76578687fd5b8694505b83851015613d98578035835260019490940193918501918501613d7a565b50979650505050505050565b600060208284031215613db5578081fd5b813561128281614b01565b600060208284031215613dd1578081fd5b815161128281614b01565b600060208284031215613ded578081fd5b813561128281614b0f565b600060208284031215613e09578081fd5b815161128281614b0f565b600060208284031215613e25578081fd5b5035919050565b600060208284031215613e3d578081fd5b5051919050565b60008060408385031215613e56578182fd5b823591506020830135613bae81614b01565b60008060408385031215613e7a578182fd5b8235915060208301356001600160401b03811115613e96578182fd5b613ea285828601613a65565b9150509250929050565b60008060408385031215613ebe578182fd5b50508035926020909101359150565b600060208284031215613ede578081fd5b813561128281614b25565b600060208284031215613efa578081fd5b815161128281614b25565b60008151808452613f1d816020860160208601614a12565b601f01601f19169290920160200192915050565b60008351613f43818460208801614a12565b835190830190613f57818360208801614a12565b01949350505050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090613fcb90830184613f05565b9695505050505050565b6001600160a01b03929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b818110156140265783518352928401929184019160010161400a565b50909695505050505050565b901515815260200190565b6001600160e01b031991909116815260200190565b6000602082526112826020830184613f05565b6020808252600a9082015269496e76616c696420746f60b01b604082015260600190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252600c908201526b24b73b30b634b2103a34b2b960a11b604082015260600190565b602080825260129082015271657863656564206d617820616d6f756e743160701b604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601c908201527b115490cdcc8c4e881d1bdad95b88185b1c9958591e481b5a5b9d195960221b604082015260600190565b6020808252600d908201526c3737903832b936b4b9b9b4b7b760991b604082015260600190565b6020808252600990820152681d1bdbc81cdb585b1b60ba1b604082015260600190565b60208082526024908201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526019908201527822a9219b99189d1030b8383937bb32903a379031b0b63632b960391b604082015260600190565b6020808252602c908201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b60208082526012908201527132bc31b2b2b21036b0bc1030b6b7bab73a1960711b604082015260600190565b60208082526038908201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776040820152771b995c881b9bdc88185c1c1c9bdd995908199bdc88185b1b60421b606082015260800190565b6020808252602a908201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604082015269726f206164647265737360b01b606082015260800190565b60208082526029908201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460408201526832b73a103a37b5b2b760b91b606082015260800190565b6020808252602e908201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60408201526d32bc34b9ba32b73a103a37b5b2b760911b606082015260800190565b6020808252600c908201526b34b73b30b634b2103a34b2b960a11b604082015260600190565b6020808252600c908201526b6e6f742065712076616c756560a01b604082015260600190565b6020808252818101527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604082015260600190565b60208082526031908201527f45524337323155524953746f726167653a2055524920717565727920666f72206040820152703737b732bc34b9ba32b73a103a37b5b2b760791b606082015260800190565b6020808252602c908201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960408201526839903737ba1037bbb760b91b606082015260800190565b6020808252602f908201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60408201526e3732bc34b9ba32b73a103a37b5b2b760891b606082015260800190565b602080825260119082015270696e76616c69642043757272656e63793160781b604082015260600190565b6020808252601190820152700696e76616c69642043757272656e63793607c1b604082015260600190565b60208082526021908201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656040820152603960f91b606082015260800190565b602080825260139082015272125b9cdd59999a58da595b9d08185b5bdd5b9d606a1b604082015260600190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6020808252600a90820152691b1a5b5a5d081b5a5b9d60b21b604082015260600190565b6020808252600d908201526c1a5b9d985b1a59081a5b9c1d5d609a1b604082015260600190565b6020808252600e908201526d34b73b30b634b21037b83a34b7b760911b604082015260600190565b6020808252600e908201526d34b73b30b634b21027b83a34b7b760911b604082015260600190565b602080825260139082015272199c9bdb481a185cc81b9bc81d1bdad95b9259606a1b604082015260600190565b602080825260149082015273696e73756666696365696e742062616c616e636560601b604082015260600190565b6020808252600b908201526a696e76616c69642074696560a81b604082015260600190565b90815260200190565b918252602082015260400190565b6040518181016001600160401b038111828210171561486e5761486e614aeb565b604052919050565b60006001600160401b0382111561488f5761488f614aeb565b5060209081020190565b600082198211156148ac576148ac614abf565b500190565b6000826148c0576148c0614ad5565b500490565b80825b60018086116148d75750614902565b8187048211156148e9576148e9614abf565b808616156148f657918102915b9490941c9380026148c8565b94509492505050565b600061128260001960ff85168460008261492757506001611282565b8161493457506000611282565b816001811461494a576002811461495457614981565b6001915050611282565b60ff84111561496557614965614abf565b6001841b91508482111561497b5761497b614abf565b50611282565b5060208310610133831016604e8410600b84101617156149b4575081810a838111156149af576149af614abf565b611282565b6149c184848460016148c5565b8086048211156149d3576149d3614abf565b02949350505050565b60008160001904831182151516156149f6576149f6614abf565b500290565b600082821015614a0d57614a0d614abf565b500390565b60005b83811015614a2d578181015183820152602001614a15565b83811115610d175750506000910152565b600081614a4d57614a4d614abf565b506000190190565b600281046001821680614a6957607f821691505b60208210811415614a8a57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415614aa457614aa4614abf565b5060010190565b600082614aba57614aba614ad5565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b801515811461221a57600080fd5b6001600160e01b03198116811461221a57600080fd5b60ff8116811461221a57600080fdfe22157c206018468b45ae7922bc7a0b0cb8feed201dac3c6fb5e7876aa94e11e98be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef56fec203058d9a869b913308c1ef948fb8e2e66fddcb5eed5d9a86c0bf0d0557a26469706673582212200e12b37f9151f8537f81042769956e120cf1fe5675355da8116c50ffaebaee6c64736f6c6343000800003368747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f516d585a59647a56387476777163436f78614c625557614774706146715a35534d794c41546237674a51764e715768747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f516d6146784c31356f536f6466776e704a356578793373484e367a623676387769437868644c39394c6a3735416b68747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f516d51644b39613634614b377975456e4d7569764879776d7753394562535154326f3854784e787779505146745068747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f516d5a784a4a614535327238316f57736b68363674617965757a41727445654c3362433159396d74464b526d5a64