[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ApprovalCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "ApprovalQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "ApprovalToCurrentOwner", "type": "error" }, { "inputs": [], "name": "ApproveToCaller", "type": "error" }, { "inputs": [], "name": "BalanceQueryForZeroAddress", "type": "error" }, { "inputs": [], "name": "InvalidQueryRange", "type": "error" }, { "inputs": [], "name": "MintToZeroAddress", "type": "error" }, { "inputs": [], "name": "MintZeroQuantity", "type": "error" }, { "inputs": [], "name": "OwnerQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "TransferCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "TransferFromIncorrectOwner", "type": "error" }, { "inputs": [], "name": "TransferToNonERC721ReceiverImplementer", "type": "error" }, { "inputs": [], "name": "TransferToZeroAddress", "type": "error" }, { "inputs": [], "name": "URIQueryForNonexistentToken", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "address[]", "name": "_users", "type": "address[]" } ], "name": "AddBlackListUsers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_users", "type": "address[]" } ], "name": "AddPlatinummember", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_users", "type": "address[]" } ], "name": "AddWhiteListUsers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "AllowedCrypto", "outputs": [ { "internalType": "contract IERC20", "name": "Address", "type": "address" }, { "internalType": "string", "name": "Token", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "", "type": "string" } ], "name": "ClovTokenUri", "outputs": [ { "internalType": "string", "name": "TokenUri", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "", "type": "string" } ], "name": "ClovesType", "outputs": [ { "internalType": "string", "name": "rarity", "type": "string" }, { "internalType": "uint256", "name": "maxsupply", "type": "uint256" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint256", "name": "bonus", "type": "uint256" }, { "internalType": "uint256", "name": "supply", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MintCap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MintCapPlatinumMember", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MintCapState", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "PlatinumMemberAddresses", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_users", "type": "address[]" } ], "name": "RemoveBlackListUsers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_users", "type": "address[]" } ], "name": "RemovePlatinumMember", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_users", "type": "address[]" } ], "name": "RemoveWhiteListUsers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "RestMintCap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "TransferActive", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "Treasury", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_user", "type": "address" } ], "name": "_isPlatinumMember", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_user", "type": "address" } ], "name": "_isWhitelisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_user", "type": "address" } ], "name": "_isnotBlacklisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "contract IERC20", "name": "_paytoken", "type": "address" }, { "internalType": "string", "name": "_Token", "type": "string" } ], "name": "addCurrency", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "addressMintedBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "addressofAddressMintedBalance", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "blacklistedAddresses", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_Cloves", "type": "string" }, { "internalType": "uint256", "name": "_newMaxSupply", "type": "uint256" } ], "name": "changeClovMaxSuppli", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_Cloves", "type": "string" }, { "internalType": "uint256", "name": "_newPrice", "type": "uint256" } ], "name": "changeClovPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "explicitOwnershipOf", "outputs": [ { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "uint64", "name": "startTimestamp", "type": "uint64" }, { "internalType": "bool", "name": "burned", "type": "bool" } ], "internalType": "struct IERC721A.TokenOwnership", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" } ], "name": "explicitOwnershipsOf", "outputs": [ { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "uint64", "name": "startTimestamp", "type": "uint64" }, { "internalType": "bool", "name": "burned", "type": "bool" } ], "internalType": "struct IERC721A.TokenOwnership[]", "name": "", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getBonusvalue", "outputs": [ { "internalType": "uint256", "name": "bonus", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_ClovesType", "type": "string" } ], "name": "getMaxSupplyAndCurrentSupply", "outputs": [ { "internalType": "uint256", "name": "MaxSupply", "type": "uint256" }, { "internalType": "uint256", "name": "CurrentSupply", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getRarityType", "outputs": [ { "internalType": "string", "name": "rarity", "type": "string" } ], "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": "maxMintAmountForTX", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_mintAmount", "type": "uint256" }, { "internalType": "string", "name": "_ClovesType", "type": "string" }, { "internalType": "uint256", "name": "_pid", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "onlyPlatinumMember", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "onlyWhitelisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_state", "type": "bool" } ], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "resetCurrency", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_ClovesType", "type": "string" }, { "internalType": "string", "name": "_tokenuri", "type": "string" } ], "name": "setClovTokenUri", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_Cloves", "type": "string" }, { "internalType": "uint256", "name": "_maxsupply", "type": "uint256" }, { "internalType": "uint256", "name": "_price", "type": "uint256" }, { "internalType": "uint256", "name": "_bonus", "type": "uint256" }, { "internalType": "uint256", "name": "_supply", "type": "uint256" } ], "name": "setClovesInfo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_MintCap", "type": "uint256" } ], "name": "setMintCap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_MintCapPlatinumMember", "type": "uint256" } ], "name": "setMintCapPlatinumMember", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_state", "type": "bool" } ], "name": "setOnlyWhitelisted", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_state", "type": "bool" } ], "name": "setStateMintCap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_state", "type": "bool" } ], "name": "setTransferActive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_Treasury", "type": "address" } ], "name": "setTreasury", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newmaxMintAmountForTX", "type": "uint256" } ], "name": "setmaxMintAmountForTX", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_state", "type": "bool" } ], "name": "setonlyPlatinumMember", "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": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "tokensOfOwner", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "start", "type": "uint256" }, { "internalType": "uint256", "name": "stop", "type": "uint256" } ], "name": "tokensOfOwnerIn", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "typeofbaseuri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "whitelistedAddresses", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ]
60806040526006600a818155600b55600c55600d805464010101000164ffffffffff19909116179055601280546001600160a01b03191673bfe691bf973ecf07cd03bc6e7b1e74dea2def5391790553480156200005b57600080fd5b5060408051808201825260118152704c75636b79204c656f20436c6f7665727360781b6020808301918252835180850190945260038452624c4c4360e81b908401528151919291620000b09160029162000140565b508051620000c690600390602084019062000140565b5050600160005550620000d933620000ee565b6001600955620000e7600190565b5062000223565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8280546200014e90620001e6565b90600052602060002090601f016020900481019282620001725760008555620001bd565b82601f106200018d57805160ff1916838001178555620001bd565b82800160010185558215620001bd579182015b82811115620001bd578251825591602001919060010190620001a0565b50620001cb929150620001cf565b5090565b5b80821115620001cb5760008155600101620001d0565b600181811c90821680620001fb57607f821691505b602082108114156200021d57634e487b7160e01b600052602260045260246000fd5b50919050565b6141fd80620002336000396000f3fe608060405234801561001057600080fd5b50600436106103fc5760003560e01c806374d618cb11610215578063b88d4fde11610125578063e1979204116100b8578063eafb426d11610087578063eafb426d14610909578063ec0a82f51461091c578063f0f442601461092f578063f2fde38b14610942578063ff36e03c1461095557600080fd5b8063e1979204146108c7578063e56f0c27146108d0578063e84e3032146108e3578063e985e9c5146108f657600080fd5b8063c87b56dd116100f4578063c87b56dd1461087b578063e03419f41461088e578063e1430371146108a1578063e16f61e0146108b457600080fd5b8063b88d4fde1461082c578063ba4e5c491461083f578063bdbb7e6a14610852578063c23dc68f1461085b57600080fd5b80639c70b512116101a8578063a1b742c411610177578063a1b742c4146107cd578063a22cb465146107e0578063a453ff52146107f3578063a7a8c35914610806578063acca6b311461081957600080fd5b80639c70b5121461078c5780639cd4440c1461079e5780639cee2142146107b1578063a0394c69146107c457600080fd5b80638da5cb5b116101e45780638da5cb5b1461073857806392ac2dc21461074957806395d89b411461077157806399a2557a1461077957600080fd5b806374d618cb146106df57806379df4d39146106f25780637a07425b146107055780638462151c1461071857600080fd5b80632ad85cad11610310578063511e820e116102a35780635c975abb116102725780635c975abb146106745780636352211e146106815780636d848da514610694578063704903d6146106a857806370a08231146106cc57600080fd5b8063511e820e1461061b578063533a0bd41461062e578063563df32f146106415780635bbb21771461065457600080fd5b806342966c68116102df57806342966c68146105cf578063448b19e5146105e25780634c728493146105f55780634e90c8181461060857600080fd5b80632ad85cad146105835780633c952764146105965780634070a0c9146105a957806342842e0e146105bc57600080fd5b806318160ddd116103935780631fb5a37a116103625780631fb5a37a1461052157806320052e401461053457806320fb537d1461054757806323b872dd1461054f57806326c91cad1461056257600080fd5b806318160ddd146104bf57806318cae269146104d95780631df0a689146104f95780631e4bdf271461050c57600080fd5b8063081812fc116103cf578063081812fc1461045b578063095ea7b3146104865780630c3658241461049957806311d718ce146104ac57600080fd5b806301ffc9a71461040157806302329a291461042957806303106ebe1461043e57806306fdde0314610446575b600080fd5b61041461040f366004613b0a565b610968565b60405190151581526020015b60405180910390f35b61043c610437366004613ad0565b6109ba565b005b61043c610a00565b61044e610a8d565b6040516104209190613efb565b61046e610469366004613d1f565b610b1f565b6040516001600160a01b039091168152602001610420565b61043c6104943660046138cb565b610b63565b6104146104a7366004613787565b610c36565b61043c6104ba36600461392c565b610ca0565b60015460005403600019015b604051908152602001610420565b6104cb6104e7366004613787565b60176020526000908152604090205481565b61044e610507366004613bf2565b610d47565b600d5461041490640100000000900460ff1681565b61043c61052f366004613ad0565b610df0565b61043c610542366004613b44565b610e38565b61043c610f0d565b61043c61055d3660046137dd565b610f92565b610575610570366004613d1f565b610fd7565b604051610420929190613ed7565b610414610591366004613787565b611099565b61043c6105a4366004613ad0565b611103565b61043c6105b7366004613d1f565b611147565b61043c6105ca3660046137dd565b611176565b61043c6105dd366004613d1f565b6111cb565b61043c6105f0366004613c26565b6111d6565b61044e610603366004613d1f565b611240565b61043c610616366004613c7f565b6112da565b61044e610629366004613d1f565b611330565b61043c61063c3660046139a0565b6114bd565b60125461046e906001600160a01b031681565b610667610662366004613a45565b611624565b6040516104209190613e35565b600d546104149060ff1681565b61046e61068f366004613d1f565b6116ea565b600d54610414906301000000900460ff1681565b6106bb6106b6366004613bf2565b6116f5565b604051610420959493929190613f0e565b6104cb6106da366004613787565b6117b6565b61043c6106ed366004613ad0565b611804565b61043c610700366004613c7f565b61184e565b61043c610713366004613d1f565b6118a4565b61072b610726366004613787565b6118d3565b6040516104209190613e9f565b6008546001600160a01b031661046e565b61075c610757366004613b93565b6119db565b60408051928352602083019190915201610420565b61044e611add565b61072b6107873660046138f7565b611aec565b600d5461041490610100900460ff1681565b600d546104149062010000900460ff1681565b6104146107bf366004613787565b611c77565b6104cb600a5481565b61043c6107db36600461392c565b611cd8565b61043c6107ee36600461389d565b611e4b565b61043c61080136600461392c565b611ee1565b61046e610814366004613d1f565b611f83565b61043c610827366004613d51565b611fad565b61043c61083a36600461381e565b61267c565b61046e61084d366004613d1f565b6126fa565b6104cb600b5481565b61086e610869366004613d1f565b61270a565b6040516104209190613fa7565b61044e610889366004613d1f565b61277f565b61043c61089c3660046139a0565b61294f565b61043c6108af366004613cc3565b6129e6565b61043c6108c2366004613d1f565b612ad5565b6104cb600c5481565b6104cb6108de366004613d1f565b612b04565b61046e6108f1366004613d1f565b612c95565b6104146109043660046137a4565b612ca5565b61046e610917366004613d1f565b612cd3565b61043c61092a366004613ad0565b612ce3565b61043c61093d366004613787565b612d29565b61043c610950366004613787565b612d75565b61043c61096336600461392c565b612e0d565b60006301ffc9a760e01b6001600160e01b03198316148061099957506380ac58cd60e01b6001600160e01b03198316145b806109b45750635b5e139f60e01b6001600160e01b03198316145b92915050565b6008546001600160a01b031633146109ed5760405162461bcd60e51b81526004016109e490613f72565b60405180910390fd5b600d805460ff1916911515919091179055565b6008546001600160a01b03163314610a2a5760405162461bcd60e51b81526004016109e490613f72565b60005b601354811015610a8a5760138181548110610a4a57610a4a614142565b60009182526020822060029091020180546001600160a01b031916815590610a75600183018261363d565b50508080610a82906140fb565b915050610a2d565b50565b606060028054610a9c906140c0565b80601f0160208091040260200160405190810160405280929190818152602001828054610ac8906140c0565b8015610b155780601f10610aea57610100808354040283529160200191610b15565b820191906000526020600020905b815481529060010190602001808311610af857829003601f168201915b5050505050905090565b6000610b2a82612f80565b610b47576040516333d1c03960e21b815260040160405180910390fd5b506000908152600660205260409020546001600160a01b031690565b6000610b6e82612fb5565b9050806001600160a01b0316836001600160a01b03161415610ba35760405163250fdee360e21b815260040160405180910390fd5b336001600160a01b03821614610bda57610bbd8133612ca5565b610bda576040516367d9dca160e11b815260040160405180910390fd5b60008281526006602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000805b600f54811015610c9757826001600160a01b0316600f8281548110610c6157610c61614142565b6000918252602090912001546001600160a01b03161415610c855750600092915050565b80610c8f816140fb565b915050610c3a565b50600192915050565b6008546001600160a01b03163314610cca5760405162461bcd60e51b81526004016109e490613f72565b60005b81811015610d42576010838383818110610ce957610ce9614142565b9050602002016020810190610cfe9190613787565b81546001810183556000928352602090922090910180546001600160a01b0319166001600160a01b0390921691909117905580610d3a816140fb565b915050610ccd565b505050565b8051602081830181018051601482529282019190930120915280548190610d6d906140c0565b80601f0160208091040260200160405190810160405280929190818152602001828054610d99906140c0565b8015610de65780601f10610dbb57610100808354040283529160200191610de6565b820191906000526020600020905b815481529060010190602001808311610dc957829003601f168201915b5050505050905081565b6008546001600160a01b03163314610e1a5760405162461bcd60e51b81526004016109e490613f72565b600d805491151563010000000263ff00000019909216919091179055565b6008546001600160a01b03163314610e625760405162461bcd60e51b81526004016109e490613f72565b604080518082019091526001600160a01b03838116825260208083018481526013805460018101825560009190915284517f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090600290920291820180546001600160a01b0319169190951617845590518051610f06937f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a091909301929190910190613677565b5050505050565b6008546001600160a01b03163314610f375760405162461bcd60e51b81526004016109e490613f72565b60005b601154811015610a8a576017600060118381548110610f5b57610f5b614142565b60009182526020808320909101546001600160a01b0316835282019290925260400181205580610f8a816140fb565b915050610f3a565b600d805464ff000000001916640100000000179055610fb033610c36565b610fcc5760405162461bcd60e51b81526004016109e490613f45565b610d4283838361301e565b60138181548110610fe757600080fd5b6000918252602090912060029091020180546001820180546001600160a01b03909216935090611016906140c0565b80601f0160208091040260200160405190810160405280929190818152602001828054611042906140c0565b801561108f5780601f106110645761010080835404028352916020019161108f565b820191906000526020600020905b81548152906001019060200180831161107257829003601f168201915b5050505050905082565b6000805b6010548110156110fa57826001600160a01b0316601082815481106110c4576110c4614142565b6000918252602090912001546001600160a01b031614156110e85750600192915050565b806110f2816140fb565b91505061109d565b50600092915050565b6008546001600160a01b0316331461112d5760405162461bcd60e51b81526004016109e490613f72565b600d80549115156101000261ff0019909216919091179055565b6008546001600160a01b031633146111715760405162461bcd60e51b81526004016109e490613f72565b600b55565b600d805464ff00000000191664010000000017905561119433610c36565b6111b05760405162461bcd60e51b81526004016109e490613f45565b610d428383836040518060200160405280600081525061267c565b610a8a8160016131ad565b6008546001600160a01b031633146112005760405162461bcd60e51b81526004016109e490613f72565b60006014836040516112129190613ddc565b908152602001604051809103902090508181600001908051906020019061123a929190613677565b50505050565b60156020526000908152604090208054611259906140c0565b80601f0160208091040260200160405190810160405280929190818152602001828054611285906140c0565b80156112d25780601f106112a7576101008083540402835291602001916112d2565b820191906000526020600020905b8154815290600101906020018083116112b557829003601f168201915b505050505081565b6008546001600160a01b031633146113045760405162461bcd60e51b81526004016109e490613f72565b60006016836040516113169190613ddc565b908152604051908190036020019020600101919091555050565b60008181526015602052604081208054606092919061134e906140c0565b80601f016020809104026020016040519081016040528092919081815260200182805461137a906140c0565b80156113c75780601f1061139c576101008083540402835291602001916113c7565b820191906000526020600020905b8154815290600101906020018083116113aa57829003601f168201915b5050505050905060006016826040516113e09190613ddc565b90815260200160405180910390206040518060a0016040529081600082018054611409906140c0565b80601f0160208091040260200160405190810160405280929190818152602001828054611435906140c0565b80156114825780601f1061145757610100808354040283529160200191611482565b820191906000526020600020905b81548152906001019060200180831161146557829003601f168201915b505050918352505060018201546020820152600282015460408201526003820154606082015260049091015460809091015251949350505050565b6008546001600160a01b031633146114e75760405162461bcd60e51b81526004016109e490613f72565b60005b815181101561162057600f545b8061160d5782828151811061150e5761150e614142565b60200260200101516001600160a01b0316600f828154811061153257611532614142565b6000918252602090912001546001600160a01b031614156115fb57600f805461155d90600190614066565b8154811061156d5761156d614142565b600091825260209091200154600f80546001600160a01b03909216918390811061159957611599614142565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600f8054806115d8576115d861412c565b600082815260209020810160001990810180546001600160a01b03191690550190555b80611605816140a9565b9150506114f7565b5080611618816140fb565b9150506114ea565b5050565b80516060906000816001600160401b0381111561164357611643614158565b60405190808252806020026020018201604052801561168e57816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816116615790505b50905060005b8281146116e2576116bd8582815181106116b0576116b0614142565b602002602001015161270a565b8282815181106116cf576116cf614142565b6020908102919091010152600101611694565b509392505050565b60006109b482612fb5565b805160208183018101805160168252928201919093012091528054819061171b906140c0565b80601f0160208091040260200160405190810160405280929190818152602001828054611747906140c0565b80156117945780601f1061176957610100808354040283529160200191611794565b820191906000526020600020905b81548152906001019060200180831161177757829003601f168201915b5050505050908060010154908060020154908060030154908060040154905085565b60006001600160a01b0382166117df576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b03166000908152600560205260409020546001600160401b031690565b6008546001600160a01b0316331461182e5760405162461bcd60e51b81526004016109e490613f72565b600d80549115156401000000000264ff0000000019909216919091179055565b6008546001600160a01b031633146118785760405162461bcd60e51b81526004016109e490613f72565b600060168360405161188a9190613ddc565b908152604051908190036020019020600201919091555050565b6008546001600160a01b031633146118ce5760405162461bcd60e51b81526004016109e490613f72565b600a55565b606060008060006118e3856117b6565b90506000816001600160401b038111156118ff576118ff614158565b604051908082528060200260200182016040528015611928578160200160208202803683370190505b50905061194e604080516060810182526000808252602082018190529181019190915290565b60015b8386146119cf57611961816132ef565b9150816040015115611972576119c7565b81516001600160a01b03161561198757815194505b876001600160a01b0316856001600160a01b031614156119c757808387806001019850815181106119ba576119ba614142565b6020026020010181815250505b600101611951565b50909695505050505050565b6000806000601685856040516119f2929190613dcc565b90815260200160405180910390206040518060a0016040529081600082018054611a1b906140c0565b80601f0160208091040260200160405190810160405280929190818152602001828054611a47906140c0565b8015611a945780601f10611a6957610100808354040283529160200191611a94565b820191906000526020600020905b815481529060010190602001808311611a7757829003601f168201915b5050505050815260200160018201548152602001600282015481526020016003820154815260200160048201548152505090508060200151925080608001519150509250929050565b606060038054610a9c906140c0565b6060818310611b0e57604051631960ccad60e11b815260040160405180910390fd5b600080611b1a60005490565b90506001851015611b2a57600194505b80841115611b36578093505b6000611b41876117b6565b905084861015611b605785850381811015611b5a578091505b50611b64565b5060005b6000816001600160401b03811115611b7e57611b7e614158565b604051908082528060200260200182016040528015611ba7578160200160208202803683370190505b50905081611bba579350611c7092505050565b6000611bc58861270a565b905060008160400151611bd6575080515b885b888114158015611be85750848714155b15611c6457611bf6816132ef565b9250826040015115611c0757611c5c565b82516001600160a01b031615611c1c57825191505b8a6001600160a01b0316826001600160a01b03161415611c5c5780848880600101995081518110611c4f57611c4f614142565b6020026020010181815250505b600101611bd8565b50505092835250909150505b9392505050565b6000805b600e548110156110fa57826001600160a01b0316600e8281548110611ca257611ca2614142565b6000918252602090912001546001600160a01b03161415611cc65750600192915050565b80611cd0816140fb565b915050611c7b565b6008546001600160a01b03163314611d025760405162461bcd60e51b81526004016109e490613f72565b60005b81811015610d425760005b600e54811015611e3857838383818110611d2c57611d2c614142565b9050602002016020810190611d419190613787565b6001600160a01b0316600e8281548110611d5d57611d5d614142565b6000918252602090912001546001600160a01b03161415611e2657600e8054611d8890600190614066565b81548110611d9857611d98614142565b600091825260209091200154600e80546001600160a01b039092169183908110611dc457611dc4614142565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600e805480611e0357611e0361412c565b600082815260209020810160001990810180546001600160a01b03191690550190555b80611e30816140fb565b915050611d10565b5080611e43816140fb565b915050611d05565b6001600160a01b038216331415611e755760405163b06307db60e01b815260040160405180910390fd5b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6008546001600160a01b03163314611f0b5760405162461bcd60e51b81526004016109e490613f72565b60005b81811015610d4257600e838383818110611f2a57611f2a614142565b9050602002016020810190611f3f9190613787565b81546001810183556000928352602090922090910180546001600160a01b0319166001600160a01b0390921691909117905580611f7b816140fb565b915050611f0e565b600f8181548110611f9357600080fd5b6000918252602090912001546001600160a01b0316905081565b600260095414156120005760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016109e4565b600260098190555060006013828154811061201d5761201d614142565b60009182526020918290206040805180820190915260029092020180546001600160a01b03168252600181018054929391929184019161205c906140c0565b80601f0160208091040260200160405190810160405280929190818152602001828054612088906140c0565b80156120d55780601f106120aa576101008083540402835291602001916120d5565b820191906000526020600020905b8154815290600101906020018083116120b857829003601f168201915b505050505081525050905060006016846040516120f29190613ddc565b9081526020016040518091039020905060006017600061210f3390565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905060008683600201546121449190614047565b600484015460018501548651600d54939450919290919060ff16156121a35760405162461bcd60e51b81526020600482015260156024820152741d1a1948135a5b9d1a5b99c81a5cc81c185d5cd959605a1b60448201526064016109e4565b60008a116121f35760405162461bcd60e51b815260206004820152601b60248201527f6e65656420746f206d696e74206174206c656173742031204e4654000000000060448201526064016109e4565b836001600160a01b0382166370a08231336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561224357600080fd5b505afa158015612257573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061227b9190613d38565b10156122be5760405162461bcd60e51b8152602060048201526012602482015271696e73756666696369656e742066756e647360701b60448201526064016109e4565b600a548a11156123215760405162461bcd60e51b815260206004820152602860248201527f6d6178206d696e7420616d6f756e7420706572207472616e73616374696f6e20604482015267195e18d95959195960c21b60648201526084016109e4565b8161232c8b8561402f565b11156123735760405162461bcd60e51b81526020600482015260166024820152751b585e08139195081b1a5b5a5d08195e18d95959195960521b60448201526064016109e4565b600d546301000000900460ff16156123e057600b546123928b8761402f565b11156123e05760405162461bcd60e51b815260206004820152601c60248201527f6d6178204e46542070657220616464726573732065786365656465640000000060448201526064016109e4565b600d5462010000900460ff161561249b576123fa33611099565b6124405760405162461bcd60e51b81526020600482015260176024820152761d5cd95c881a5cc81b9bdd081dda1a5d195b1a5cdd1959604a1b60448201526064016109e4565b600c5461244d8b8761402f565b111561249b5760405162461bcd60e51b815260206004820152601c60248201527f6d6178204e46542070657220616464726573732065786365656465640000000060448201526064016109e4565b600d54610100900460ff16156124fa576124b433611c77565b6124fa5760405162461bcd60e51b81526020600482015260176024820152761d5cd95c881a5cc81b9bdd081dda1a5d195b1a5cdd1959604a1b60448201526064016109e4565b6001600160a01b0381166323b872dd3360125460405160e084901b6001600160e01b03191681526001600160a01b0392831660048201529116602482015260448101879052606401602060405180830381600087803b15801561255c57600080fd5b505af1158015612570573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125949190613aed565b506011805460018101825560009182527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c680180546001600160a01b031916331790558054906125e38c8361402f565b9050815b8181116126205760008181526015602090815260409091208d5161260d928f0190613677565b5080612618816140fb565b9150506125e7565b508b886004016000828254612635919061402f565b909155505033600090815260176020526040812080548e929061265990849061402f565b909155506126699050338d613324565b5050600160095550505050505050505050565b600d805464ff00000000191664010000000017905561269a33610c36565b6126b65760405162461bcd60e51b81526004016109e490613f45565b6126c184848461301e565b6001600160a01b0383163b1561123a576126dd8484848461333e565b61123a576040516368d2bf6b60e11b815260040160405180910390fd5b600e8181548110611f9357600080fd5b6040805160608082018352600080835260208084018290528385018290528451928301855281835282018190529281019290925290600183108061275057506000548310155b1561275b5792915050565b612764836132ef565b90508060400151156127765792915050565b611c7083613436565b606061278a82612f80565b6127ee5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b60648201526084016109e4565b60008281526015602052604081208054612807906140c0565b80601f0160208091040260200160405190810160405280929190818152602001828054612833906140c0565b80156128805780601f1061285557610100808354040283529160200191612880565b820191906000526020600020905b81548152906001019060200180831161286357829003601f168201915b5050505050905060006014826040516128999190613ddc565b90815260200160405180910390206040518060200160405290816000820180546128c2906140c0565b80601f01602080910402602001604051908101604052809291908181526020018280546128ee906140c0565b801561293b5780601f106129105761010080835404028352916020019161293b565b820191906000526020600020905b81548152906001019060200180831161291e57829003601f168201915b505050919092525050905195945050505050565b6008546001600160a01b031633146129795760405162461bcd60e51b81526004016109e490613f72565b60005b815181101561162057600f82828151811061299957612999614142565b60209081029190910181015182546001810184556000938452919092200180546001600160a01b0319166001600160a01b03909216919091179055806129de816140fb565b91505061297c565b6008546001600160a01b03163314612a105760405162461bcd60e51b81526004016109e490613f72565b6000601686604051612a229190613ddc565b908152602001604051809103902090506040518060a00160405280878152602001868152602001858152602001848152602001838360040154612a65919061402f565b815250601687604051612a789190613ddc565b90815260200160405180910390206000820151816000019080519060200190612aa2929190613677565b50602082015160018201556040820151600282015560608201516003820155608090910151600490910155505050505050565b6008546001600160a01b03163314612aff5760405162461bcd60e51b81526004016109e490613f72565b600c55565b60008181526015602052604081208054829190612b20906140c0565b80601f0160208091040260200160405190810160405280929190818152602001828054612b4c906140c0565b8015612b995780601f10612b6e57610100808354040283529160200191612b99565b820191906000526020600020905b815481529060010190602001808311612b7c57829003601f168201915b505050505090506000601682604051612bb29190613ddc565b90815260200160405180910390206040518060a0016040529081600082018054612bdb906140c0565b80601f0160208091040260200160405190810160405280929190818152602001828054612c07906140c0565b8015612c545780601f10612c2957610100808354040283529160200191612c54565b820191906000526020600020905b815481529060010190602001808311612c3757829003601f168201915b505050505081526020016001820154815260200160028201548152602001600382015481526020016004820154815250509050806060015192505050919050565b60108181548110611f9357600080fd5b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b60118181548110611f9357600080fd5b6008546001600160a01b03163314612d0d5760405162461bcd60e51b81526004016109e490613f72565b600d8054911515620100000262ff000019909216919091179055565b6008546001600160a01b03163314612d535760405162461bcd60e51b81526004016109e490613f72565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b6008546001600160a01b03163314612d9f5760405162461bcd60e51b81526004016109e490613f72565b6001600160a01b038116612e045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109e4565b610a8a81613464565b6008546001600160a01b03163314612e375760405162461bcd60e51b81526004016109e490613f72565b60005b81811015610d425760005b601054811015612f6d57838383818110612e6157612e61614142565b9050602002016020810190612e769190613787565b6001600160a01b031660108281548110612e9257612e92614142565b6000918252602090912001546001600160a01b03161415612f5b5760108054612ebd90600190614066565b81548110612ecd57612ecd614142565b600091825260209091200154601080546001600160a01b039092169183908110612ef957612ef9614142565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506010805480612f3857612f3861412c565b600082815260209020810160001990810180546001600160a01b03191690550190555b80612f65816140fb565b915050612e45565b5080612f78816140fb565b915050612e3a565b600081600111158015612f94575060005482105b80156109b4575050600090815260046020526040902054600160e01b161590565b600081806001116130055760005481101561300557600081815260046020526040902054600160e01b8116613003575b80611c70575060001901600081815260046020526040902054612fe5565b505b604051636f96cda160e11b815260040160405180910390fd5b600061302982612fb5565b9050836001600160a01b0316816001600160a01b03161461305c5760405162a1148160e81b815260040160405180910390fd5b6000336001600160a01b038616148061307a575061307a8533612ca5565b8061309557503361308a84610b1f565b6001600160a01b0316145b9050806130b557604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b0384166130dc57604051633a954ecd60e21b815260040160405180910390fd5b600083815260066020908152604080832080546001600160a01b03191690556001600160a01b038881168452600583528184208054600019019055871683528083208054600101905585835260049091529020600160e11b4260a01b86178117909155821661317957600183016000818152600460205260409020546131775760005481146131775760008181526004602052604090208390555b505b82846001600160a01b0316866001600160a01b03166000805160206141a883398151915260405160405180910390a4610f06565b60006131b883612fb5565b905080821561321c576000336001600160a01b03831614806131df57506131df8233612ca5565b806131fa5750336131ef86610b1f565b6001600160a01b0316145b90508061321a57604051632ce44b5f60e11b815260040160405180910390fd5b505b600084815260066020908152604080832080546001600160a01b03191690556001600160a01b03841683526005825280832080546fffffffffffffffffffffffffffffffff01905586835260049091529020600360e01b4260a01b8317179055600160e11b82166132bb57600184016000818152600460205260409020546132b95760005481146132b95760008181526004602052604090208390555b505b60405184906000906001600160a01b038416906000805160206141a8833981519152908390a4505060018054810190555050565b60408051606081018252600080825260208201819052918101919091526000828152600460205260409020546109b4906134b6565b6116208282604051806020016040528060008152506134f0565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a0290613373903390899088908890600401613df8565b602060405180830381600087803b15801561338d57600080fd5b505af19250505080156133bd575060408051601f3d908101601f191682019092526133ba91810190613b27565b60015b613418573d8080156133eb576040519150601f19603f3d011682016040523d82523d6000602084013e6133f0565b606091505b508051613410576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490505b949350505050565b60408051606081018252600080825260208201819052918101919091526109b461345f83612fb5565b6134b6565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b604080516060810182526001600160a01b038316815260a083901c6001600160401b03166020820152600160e01b90921615159082015290565b6000546001600160a01b03841661351957604051622e076360e81b815260040160405180910390fd5b826135375760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03841660008181526005602090815260408083208054680100000000000000018902019055848352600490915290204260a01b86176001861460e11b1790558190818501903b156135fa575b60405182906001600160a01b038816906000906000805160206141a8833981519152908290a46135c3600087848060010195508761333e565b6135e0576040516368d2bf6b60e11b815260040160405180910390fd5b80821061358a5782600054146135f557600080fd5b61362d565b5b6040516001830192906001600160a01b038816906000906000805160206141a8833981519152908290a48082106135fb575b50600090815561123a9085838684565b508054613649906140c0565b6000825580601f10613659575050565b601f016020900490600052602060002090810190610a8a91906136fb565b828054613683906140c0565b90600052602060002090601f0160209004810192826136a557600085556136eb565b82601f106136be57805160ff19168380011785556136eb565b828001600101855582156136eb579182015b828111156136eb5782518255916020019190600101906136d0565b506136f79291506136fb565b5090565b5b808211156136f757600081556001016136fc565b60006001600160401b0383111561372957613729614158565b61373c601f8401601f1916602001613fdc565b905082815283838301111561375057600080fd5b828260208301376000602084830101529392505050565b600082601f83011261377857600080fd5b611c7083833560208501613710565b60006020828403121561379957600080fd5b8135611c708161416e565b600080604083850312156137b757600080fd5b82356137c28161416e565b915060208301356137d28161416e565b809150509250929050565b6000806000606084860312156137f257600080fd5b83356137fd8161416e565b9250602084013561380d8161416e565b929592945050506040919091013590565b6000806000806080858703121561383457600080fd5b843561383f8161416e565b9350602085013561384f8161416e565b92506040850135915060608501356001600160401b0381111561387157600080fd5b8501601f8101871361388257600080fd5b61389187823560208401613710565b91505092959194509250565b600080604083850312156138b057600080fd5b82356138bb8161416e565b915060208301356137d281614183565b600080604083850312156138de57600080fd5b82356138e98161416e565b946020939093013593505050565b60008060006060848603121561390c57600080fd5b83356139178161416e565b95602085013595506040909401359392505050565b6000806020838503121561393f57600080fd5b82356001600160401b038082111561395657600080fd5b818501915085601f83011261396a57600080fd5b81358181111561397957600080fd5b8660208260051b850101111561398e57600080fd5b60209290920196919550909350505050565b600060208083850312156139b357600080fd5b82356001600160401b038111156139c957600080fd5b8301601f810185136139da57600080fd5b80356139ed6139e88261400c565b613fdc565b80828252848201915084840188868560051b8701011115613a0d57600080fd5b600094505b83851015613a39578035613a258161416e565b835260019490940193918501918501613a12565b50979650505050505050565b60006020808385031215613a5857600080fd5b82356001600160401b03811115613a6e57600080fd5b8301601f81018513613a7f57600080fd5b8035613a8d6139e88261400c565b80828252848201915084840188868560051b8701011115613aad57600080fd5b600094505b83851015613a39578035835260019490940193918501918501613ab2565b600060208284031215613ae257600080fd5b8135611c7081614183565b600060208284031215613aff57600080fd5b8151611c7081614183565b600060208284031215613b1c57600080fd5b8135611c7081614191565b600060208284031215613b3957600080fd5b8151611c7081614191565b60008060408385031215613b5757600080fd5b8235613b628161416e565b915060208301356001600160401b03811115613b7d57600080fd5b613b8985828601613767565b9150509250929050565b60008060208385031215613ba657600080fd5b82356001600160401b0380821115613bbd57600080fd5b818501915085601f830112613bd157600080fd5b813581811115613be057600080fd5b86602082850101111561398e57600080fd5b600060208284031215613c0457600080fd5b81356001600160401b03811115613c1a57600080fd5b61342e84828501613767565b60008060408385031215613c3957600080fd5b82356001600160401b0380821115613c5057600080fd5b613c5c86838701613767565b93506020850135915080821115613c7257600080fd5b50613b8985828601613767565b60008060408385031215613c9257600080fd5b82356001600160401b03811115613ca857600080fd5b613cb485828601613767565b95602094909401359450505050565b600080600080600060a08688031215613cdb57600080fd5b85356001600160401b03811115613cf157600080fd5b613cfd88828901613767565b9860208801359850604088013597606081013597506080013595509350505050565b600060208284031215613d3157600080fd5b5035919050565b600060208284031215613d4a57600080fd5b5051919050565b600080600060608486031215613d6657600080fd5b8335925060208401356001600160401b03811115613d8357600080fd5b613d8f86828701613767565b925050604084013590509250925092565b60008151808452613db881602086016020860161407d565b601f01601f19169290920160200192915050565b8183823760009101908152919050565b60008251613dee81846020870161407d565b9190910192915050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090613e2b90830184613da0565b9695505050505050565b6020808252825182820181905260009190848201906040850190845b818110156119cf57613e8c83855180516001600160a01b031682526020808201516001600160401b0316908301526040908101511515910152565b9284019260609290920191600101613e51565b6020808252825182820181905260009190848201906040850190845b818110156119cf57835183529284019291840191600101613ebb565b6001600160a01b038316815260406020820181905260009061342e90830184613da0565b602081526000611c706020830184613da0565b60a081526000613f2160a0830188613da0565b90508560208301528460408301528360608301528260808301529695505050505050565b602080825260139082015272165bdd48185c9948109b1858dad31a5cdd1959606a1b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b81516001600160a01b031681526020808301516001600160401b031690820152604080830151151590820152606081016109b4565b604051601f8201601f191681016001600160401b038111828210171561400457614004614158565b604052919050565b60006001600160401b0382111561402557614025614158565b5060051b60200190565b6000821982111561404257614042614116565b500190565b600081600019048311821515161561406157614061614116565b500290565b60008282101561407857614078614116565b500390565b60005b83811015614098578181015183820152602001614080565b8381111561123a5750506000910152565b6000816140b8576140b8614116565b506000190190565b600181811c908216806140d457607f821691505b602082108114156140f557634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561410f5761410f614116565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610a8a57600080fd5b8015158114610a8a57600080fd5b6001600160e01b031981168114610a8a57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122000e6e5489b22559d79daa14faf4c7f331a24a39ed811ece3d87c7eb4aa70c2b364736f6c63430008070033