[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "_maxTxAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_walletMax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address[]", "name": "whitelists", "type": "address[]" } ], "internalType": "struct IProofNonReflectionTokenCutter.WhitelistAdd_", "name": "_WhitelistAdd", "type": "tuple" } ], "name": "addMoreToWhitelist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_proofFee", "type": "uint256" } ], "name": "adjustProofFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "cancelToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "initialMainFee", "type": "uint256" }, { "internalType": "uint256", "name": "initialMainFeeOnSell", "type": "uint256" }, { "internalType": "uint256", "name": "initialLpFee", "type": "uint256" }, { "internalType": "uint256", "name": "initialLpFeeOnSell", "type": "uint256" }, { "internalType": "uint256", "name": "initialDevFee", "type": "uint256" }, { "internalType": "uint256", "name": "initialDevFeeOnSell", "type": "uint256" } ], "name": "changeFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "changeIsFeeExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "changeIsTxLimitExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "newValue", "type": "bool" } ], "name": "changeRestrictWhales", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "enableSwapBack", "type": "bool" }, { "internalType": "uint256", "name": "newSwapBackLimit", "type": "uint256" } ], "name": "changeSwapBackSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newLimit", "type": "uint256" } ], "name": "changeTxLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newLimit", "type": "uint256" } ], "name": "changeWalletLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "devFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "devFeeOnSell", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "devWallet", "outputs": [ { "internalType": "address payable", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "factory", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getCirculatingSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], "name": "holdsSupportedNFT", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isDividendExempt", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isFeeExempt", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isTxLimitExempt", "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": [], "name": "launchedAt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lpFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lpFeeOnSell", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mainFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mainFeeOnSell", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mainWallet", "outputs": [ { "internalType": "address payable", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "nftWhitelist", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "proofAdmin", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "proofBurnerAddress", "outputs": [ { "internalType": "address payable", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "proofFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "reduceProofFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "restrictWhales", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "router", "outputs": [ { "internalType": "contract IUniswapV2Router02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "string", "name": "tokenName", "type": "string" }, { "internalType": "string", "name": "tokenSymbol", "type": "string" }, { "internalType": "uint256", "name": "initialSupply", "type": "uint256" }, { "internalType": "uint256", "name": "percentToLP", "type": "uint256" }, { "internalType": "uint256", "name": "whitelistPeriod", "type": "uint256" }, { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "dev", "type": "address" }, { "internalType": "address", "name": "main", "type": "address" }, { "internalType": "address", "name": "routerAddress", "type": "address" }, { "internalType": "address", "name": "initialProofAdmin", "type": "address" }, { "internalType": "address[]", "name": "whitelists", "type": "address[]" }, { "internalType": "address[]", "name": "nftWhitelist", "type": "address[]" } ], "internalType": "struct IProofNonReflectionTokenCutter.BaseData", "name": "_baseData", "type": "tuple" }, { "components": [ { "internalType": "uint256", "name": "mainFee", "type": "uint256" }, { "internalType": "uint256", "name": "mainFeeOnSell", "type": "uint256" }, { "internalType": "uint256", "name": "lpFee", "type": "uint256" }, { "internalType": "uint256", "name": "lpFeeOnSell", "type": "uint256" }, { "internalType": "uint256", "name": "devFee", "type": "uint256" }, { "internalType": "uint256", "name": "devFeeOnSell", "type": "uint256" } ], "internalType": "struct ProofNonReflectionTokenFees.allFees", "name": "fees", "type": "tuple" } ], "name": "setBasicData", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address payable", "name": "newDevWallet", "type": "address" } ], "name": "setDevWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "setLaunchedAt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address payable", "name": "newMainWallet", "type": "address" } ], "name": "setMainWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address payable", "name": "newOwnerWallet", "type": "address" } ], "name": "setOwnerWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapAndLiquifyEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapThreshold", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapTradingStatus", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokenOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalFeeIfSelling", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tradingStatus", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newAdmin", "type": "address" } ], "name": "updateProofAdmin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newproofBurnerAddress", "type": "address" } ], "name": "updateProofBurnerAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_whitelistPeriod", "type": "uint256" } ], "name": "updateWhitelistPeriod", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "userWhitelist", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "whitelistEndTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "whitelistMode", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "whitelistPeriod", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
6080806040523461005857600160ff1981816009541617600955600c541617600c55600260115561010160a81b61ffff60a81b19601f541617601f553360018060a01b0319601c541617601c5561305a908161005e8239f35b600080fdfe608080604052600436101561001d575b50361561001b57600080fd5b005b60003560e01c9081630445b66714611f815750806306fdde0314611edb578063095ea7b314611eb55780630963da6c14611e9757806318160ddd14611e795780631df4ccfc14611e5b5780631f53ac0214611e0d57806323b62b7514611de457806323b872dd14611d2657806327193bc414611ca25780632837442514611c795780632b112e4914611c2b578063313ce56714611c0f5780633950935114611bbe5780633af32abf1461072f5780633c82281214611b105780633dab526914611abd5780633f4218e014611a7e5780634355855a14611a3f57806344de2e4c14611a1c5780634509a988146119d3578063497a000a146119795780634a74bb0214611953578063546a8811146118b757806359a51c341461188e5780636457f6bf14610e6d5780636827e76414610e4f578063704ce43e14610e3157806370a0823114610df757806370c757ec14610dd45780637c0ff20514610db65780637d1db4a514610d995780637db1342c14610d18578063807c2d9c14610cfa5780638b42507f14610cbb5780638ea5220f14610c9257806390fbd17f14610c655780639502c42614610c4757806395d89b4114610b69578063985b9db014610b4b578063a3a2e89e14610aed578063a3e6761014610ac4578063a457c2d714610a12578063a8aa1b31146109e9578063a9059cbb146109b7578063b48e665e14610999578063b72344a21461094d578063bb542ef014610905578063bf56b371146108e7578063c45a0155146108be578063ca987b0e146108a0578063cb29813c14610800578063cd1e330a146107e2578063d0a5eb4e14610794578063d4fb9a011461076e578063d741b9c31461072f578063d920334e146106ae578063dd62ed3e1461065d578063e572967b146105c3578063e66b1d1e14610573578063ebdfd72214610555578063ef92e22214610438578063f16fd78d146103d5578063f887ea40146103ac578063fabe62831461034e5763fbd7575314610300573861000f565b346103495760003660031901126103495761032660018060a01b03601c54163314612134565b601f805460ff60b01b19811660b091821c60ff161590911b60ff60b01b16179055005b600080fd5b346103495760403660031901126103495761001b61036a611fe5565b610372612034565b601d5490916001600160a01b039161038d90831633146122eb565b16600052600e60205260406000209060ff801983541691151516179055565b3461034957600036600319011261034957601a546040516001600160a01b039091168152602090f35b34610349576020366003190112610349576103ee611fe5565b600654906001600160a01b03906104088284163314612291565b1680916001600160601b0360a01b1617600655600052600a6020526040600020600160ff19825416179055600080f35b346103495760003660031901126103495761045e60018060a01b03601d541633146122eb565b60026011540361051d57601054610476811515612336565b6203f48081018091116105075742106104d75760016011556104b16104a86104a36014546013549061223c565b61222e565b6012549061223c565b6018556104d26104c96104a36017546016549061223c565b6015549061223c565b601955005b60405162461bcd60e51b81526020600482015260086024820152673a37b79039b7b7b760c11b6044820152606490fd5b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152601060248201526f08585b1c9958591e481c99591d58d95960821b6044820152606490fd5b34610349576000366003190112610349576020600754604051908152f35b346103495760203660031901126103495761058c612025565b6105a160018060a01b03601d541633146122eb565b6105ae6010541515612336565b60ff8019600954169115151617600955600080f35b346103495760031960203682011261034957600435906001600160401b0390818311610349576020908336030112610349576040519060208201828110828211176106475760405282600401359081116103495761001b92600461062a92369201016120c6565b815261064160018060a01b03601c54163314612134565b51612f9d565b634e487b7160e01b600052604160045260246000fd5b3461034957604036600319011261034957610676611fe5565b61067e611ffb565b9060018060a01b038091166000526001602052604060002091166000526020526020604060002054604051908152f35b34610349576020366003190112610349576004356106d760018060a01b03601d541633146122eb565b6106e46010541515612336565b60025460058102811590828104600514821715610507576103e861070b910484101561236e565b60038202918204600314171561050757606461072a91048211156123a5565b602055005b34610349576020366003190112610349576001600160a01b03610750611fe5565b16600052600a602052602060ff604060002054166040519015158152f35b3461034957600036600319011261034957602060ff601f5460b01c166040519015158152f35b34610349576020366003190112610349576004356001600160a01b0381811691829003610349576107ca90601d541633146122eb565b6001600160601b0360a01b601f541617601f55600080f35b34610349576000366003190112610349576020601154604051908152f35b346103495760c03660031901126103495761001b6011600435610899600c61088d60243561087e6044359561087e6064356108836108716084359a60a4359b61085460018060a01b03601d541633146122eb565b86601255816013558060145588601555846016558c60175561223c565b9361087e8c54809661223c565b61223c565b988960185561223c565b92836019551115612249565b1115612249565b34610349576000366003190112610349576020601954604051908152f35b3461034957600036600319011261034957601c546040516001600160a01b039091168152602090f35b34610349576000366003190112610349576020601054604051908152f35b34610349576020366003190112610349576004356001600160a01b03818116918290036103495761093d601d549133908316146122eb565b6001600160a01b03191617601d55005b3461034957602036600319011261034957610966611fe5565b6006546001600160a01b0391906109809083163314612291565b166001600160601b0360a01b6005541617600555600080f35b34610349576000366003190112610349576020600854604051908152f35b34610349576040366003190112610349576109dd6109d3611fe5565b60243590336124ed565b50602060405160018152f35b3461034957600036600319011261034957601b546040516001600160a01b039091168152602090f35b3461034957604036600319011261034957610a2b611fe5565b60243590336000526001602052604060002060018060a01b03821660005260205260406000205491808310610a7157610a66920390336129b3565b602060405160018152f35b60405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608490fd5b3461034957600036600319011261034957601d546040516001600160a01b039091168152602090f35b346103495760403660031901126103495761001b610b09611fe5565b610b11612034565b601d5490916001600160a01b0391610b2c90831633146122eb565b16600052600d60205260406000209060ff801983541691151516179055565b34610349576000366003190112610349576020601554604051908152f35b34610349576000366003190112610349576040516000600454610b8b8161218b565b80845290600190818116908115610c205750600114610bc5575b610bc184610bb581860382612043565b60405191829182611f9c565b0390f35b6004600090815292507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b828410610c08575050508101602001610bb582610ba5565b80546020858701810191909152909301928101610bf0565b60ff191660208087019190915292151560051b85019092019250610bb59150839050610ba5565b34610349576000366003190112610349576020601754604051908152f35b34610349576020366003190112610349576020610c88610c83611fe5565b6123e9565b6040519015158152f35b3461034957600036600319011261034957601e546040516001600160a01b039091168152602090f35b34610349576020366003190112610349576001600160a01b03610cdc611fe5565b16600052600e602052602060ff604060002054166040519015158152f35b34610349576000366003190112610349576020602154604051908152f35b3461034957602036600319011261034957600435610d4160018060a01b03601d541633146122eb565b610d4e6010541515612336565b60025460058102811590828104600514821715610507576103e8610d75910484101561236e565b600382029182046003141715610507576064610d9491048211156123a5565b602155005b346103495760003660031901126103495760208054604051908152f35b34610349576000366003190112610349576020601654604051908152f35b3461034957600036600319011261034957602060ff600c54166040519015158152f35b34610349576020366003190112610349576001600160a01b03610e18611fe5565b1660005260006020526020604060002054604051908152f35b34610349576000366003190112610349576020601354604051908152f35b34610349576000366003190112610349576020601454604051908152f35b346103495760031960e036820112610349576004356001600160401b0381116103495761018080928236030112610349576040519182018281106001600160401b038211176106475760405280600401356001600160401b03811161034957610edc906004369184010161207f565b825260248101356001600160401b03811161034957610f01906004369184010161207f565b6020830152604481013560408301526064810135606083015260848101356080830152610f3060a48201612011565b60a0830152610f4160c48201612011565b60c0830152610f5260e48201612011565b60e0830152610f646101048201612011565b610100830152610f776101248201612011565b6101208301526101448101356001600160401b03811161034957610fa190600436918401016120c6565b610140830152610164810135906001600160401b038211610349576004610fcb92369201016120c6565b61016082015260c0366023190112610349576040518060c08101106001600160401b0360c0830111176106475760c08101604052602435815260443560208201526064356040820152608435606082015260a435608082015260c43560a082015261104160018060a01b03601c54163314612134565b81519182516001600160401b0381116106475761105f60035461218b565b601f811161183f575b506020601f82116001146117b957819293946000926117ae575b50508160011b916000199060031b1c1916176003555b60208101519182516001600160401b038111610647576110b960045461218b565b601f8111611754575b506020601f82116001146116ce57819293946000926116c3575b50508160011b916000199060031b1c1916176004555b60408201516002556046606083015110611694576040820151806005810204600514811517156105075760056103e8910204602055604082015180800460011481151715610507576064900460215560408201518060058102046005148115171561050757610fa060059190910204602255610100820151601a80546001600160a01b0319166001600160a01b0392909216918217905560405163c45a015560e01b815290602082600481845afa90811561164957600492600092611672575b50602090604051938480926315ab88c960e31b82525afa9081156116495760446020926000948591611655575b506040516364e329cb60e11b81526001600160a01b0391821660048201523060248201529485938492165af19081156116495760009161161a575b50601b80546001600160a01b0319166001600160a01b03928316178155306000818152600160208181526040808420601a548816855282528084206000199055938352600a9052828220805460ff199081168317909155601c54861683528383208054821683179055935485168252828220805485168217905560a0870151851682528282208054851682179055610120870151851682528282208054851682179055610100870151909416815220805490911690911790556101408201516112e290612f9d565b6101608201518051906001600160401b0382116106475768010000000000000000821161064757602090600b5483600b558084106115f6575b5001600b60005260005b8281106115cb57306000908152600d602090815260408083208054600160ff199182168117909255601c80546001600160a01b039081168752848720805484168517905560a08c810180518316895286892080548616871790555182168852600e87528588208054851686179055601b54821688528588208054851686179055915416865283862080548316841790557ff77e91909e61d18f67b875b2bfcae1f683a8d555e55382e3a6b082e2c59ea57a80548316841790559480527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c8054909116909117905560808089015160085590870151601381905560608801516016819055918801516014819055938801516017819055885160128190559389015160158190558a95601195929461147f94600c9461088d94929361087e93928492611472929091849161223c565b936108838a54809661223c565b116115925760a0810151601d80546001600160a01b03199081166001600160a01b039384161790915560c0830151601e8054831691841691909117905560e0830151601f80548316918416919091179055610120830151600680549092169216919091179055604081015160608201516000916064916114fe916121dc565b04602061150f826040860151612284565b933384528382526040842061152584825461223c565b905560a08101516001600160a01b0316845283825260408420805461154b90879061223c565b90556040519283527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef928484843393a360a001516040519485526001600160a01b031693a3005b60405162461bcd60e51b8152602060048201526011602482015270546f6f20686967682073656c6c2066656560781b6044820152606490fd5b81516001600160a01b0316600080516020613005833981519152820155602090910190600101611325565b611614908460008051602061300583398151915291820191016121c5565b8561131b565b61163c915060203d602011611642575b6116348183612043565b81019061220f565b8361121a565b503d61162a565b6040513d6000823e3d90fd5b61166c9150843d8611611642576116348183612043565b876111df565b602091925061168d90823d8411611642576116348183612043565b91906111b2565b60405162461bcd60e51b8152602060048201526007602482015266546f6f206c6f7760c81b6044820152606490fd5b0151905084806110dc565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b9060005b601f198416811061173c5750600193949583601f19811610611723575b505050811b016004556110f2565b015160001960f88460031b161c19169055848080611715565b9091602060018192858a0151815501930191016116f8565b61179e9060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f840160051c810191602085106117a4575b601f0160051c01906121c5565b846110c2565b9091508190611791565b015190508480611082565b60036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b9060005b601f19841681106118275750600193949583601f1981161061180e575b505050811b01600355611098565b015160001960f88460031b161c19169055848080611800565b9091602060018192858a0151815501930191016117e3565b6118889060036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f840160051c810191602085106117a457601f0160051c01906121c5565b84611068565b34610349576000366003190112610349576006546040516001600160a01b039091168152602090f35b3461034957600036600319011261034957601c546001600160a01b03906118e19082163314612134565b80601a5416600052600d60205260406000209060ff199160018382541617905580601a5416600052600e6020526040600020600183825416179055601d54166000526040600020600182825416179055601f549060095416600955600160b01b9061ffff60a81b191617601f55600080f35b3461034957600036600319011261034957602060ff601f5460a81c166040519015158152f35b34610349576020366003190112610349576004356119a260018060a01b03600654163314612291565b806008556010549080603c0290603c820403610507576119c19161223c565b600755600c805460ff19166001179055005b3461034957602036600319011261034957600435600b5481101561034957600b60005260008051602061300583398151915201546040516001600160a01b039091168152602090f35b3461034957600036600319011261034957602060ff600954166040519015158152f35b34610349576020366003190112610349576001600160a01b03611a60611fe5565b16600052600f602052602060ff604060002054166040519015158152f35b34610349576020366003190112610349576001600160a01b03611a9f611fe5565b16600052600d602052602060ff604060002054166040519015158152f35b3461034957604036600319011261034957611ad6612025565b611aeb60018060a01b03601d541633146122eb565b601f805460ff60a81b191691151560a81b60ff60a81b16919091179055602435602255005b3461034957602036600319011261034957600435611b3960018060a01b03600654163314612291565b601054611b47811515612336565b6203f4808101809111610507574210611b955760018111610349576104c9816104d292601155611b836104a88261087e6014546013549061223c565b60185561087e6017546016549061223c565b60028111610349576104c9816104d292601155611b836104a88261087e6014546013549061223c565b3461034957604036600319011261034957610a66611bda611fe5565b336000526001602052604060002060018060a01b038216600052602052611c0860243560406000205461223c565b90336129b3565b3461034957600036600319011261034957602060405160098152f35b34610349576000366003190112610349576020611c71611c5d60025461dead6000526000845260406000205490612284565b600080526000835260406000205490612284565b604051908152f35b34610349576000366003190112610349576005546040516001600160a01b039091168152602090f35b3461034957600036600319011261034957611cc860018060a01b03601c54163314612134565b601054611cee574260105560085480603c0290603c820403610507576119c1904261223c565b60405162461bcd60e51b815260206004820152601060248201526f185b1c9958591e481b185d5b98da195960821b6044820152606490fd5b3461034957606036600319011261034957611d3f611fe5565b611d47611ffb565b6044359060018060a01b0383166000526001602052604060002033600052602052604060002054926000198403611d83575b6109dd93506124ed565b828410611d9f57611d9a836109dd950333836129b3565b611d79565b60405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606490fd5b3461034957600036600319011261034957601f546040516001600160a01b039091168152602090f35b34610349576020366003190112610349576004356001600160a01b038181169182900361034957611e4390601d541633146122eb565b6001600160601b0360a01b601e541617601e55600080f35b34610349576000366003190112610349576020601854604051908152f35b34610349576000366003190112610349576020600254604051908152f35b34610349576000366003190112610349576020601254604051908152f35b3461034957604036600319011261034957610a66611ed1611fe5565b60243590336129b3565b34610349576000366003190112610349576040516000600354611efd8161218b565b80845290600190818116908115610c205750600114611f2657610bc184610bb581860382612043565b6003600090815292507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b828410611f69575050508101602001610bb582610ba5565b80546020858701810191909152909301928101611f51565b34610349576000366003190112610349576020906022548152f35b6020808252825181830181905290939260005b828110611fd157505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501611faf565b600435906001600160a01b038216820361034957565b602435906001600160a01b038216820361034957565b35906001600160a01b038216820361034957565b60043590811515820361034957565b60243590811515820361034957565b90601f801991011681019081106001600160401b0382111761064757604052565b6001600160401b03811161064757601f01601f191660200190565b81601f820112156103495780359061209682612064565b926120a46040519485612043565b8284526020838301011161034957816000926020809301838601378301015290565b9080601f83011215610349578135906001600160401b038211610647578160051b604051936020936120fa85840187612043565b85528380860192820101928311610349578301905b82821061211d575050505090565b83809161212984612011565b81520191019061210f565b1561213b57565b60405162461bcd60e51b815260206004820152602260248201527f4f776e61626c653a2063616c6c6572206973206e6f742074686520666163746f604482015261727960f01b6064820152608490fd5b90600182811c921680156121bb575b60208310146121a557565b634e487b7160e01b600052602260045260246000fd5b91607f169161219a565b8181106121d0575050565b600081556001016121c5565b8181029291811591840414171561050757565b81156121f9570490565b634e487b7160e01b600052601260045260246000fd5b9081602091031261034957516001600160a01b03811681036103495790565b906001820180921161050757565b9190820180921161050757565b1561225057565b60405162461bcd60e51b815260206004820152600c60248201526b546f6f20686967682066656560a01b6044820152606490fd5b9190820391821161050757565b1561229857565b60405162461bcd60e51b815260206004820152602560248201527f4f776e61626c653a2063616c6c6572206973206e6f74207468652070726f6f6660448201526420b236b4b760d91b6064820152608490fd5b156122f257565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b1561233d57565b60405162461bcd60e51b8152602060048201526009602482015268085b185d5b98da195960ba1b6044820152606490fd5b1561237557565b60405162461bcd60e51b81526020600482015260086024820152674d696e20302e352560c01b6044820152606490fd5b156123ac57565b60405162461bcd60e51b81526020600482015260066024820152654d617820332560d01b6044820152606490fd5b60001981146105075760010190565b600090600b8054925b8381106124025750505050600090565b6000829052600080516020613005833981519152810154604080516370a0823160e01b81526001600160a01b0386811660048301529092602091829185916024918391165afa9182156124a55750600091612476575b50905061246d57612468906123da565b6123f2565b50505050600190565b82813d831161249e575b61248a8183612043565b8101031261249b5750518038612458565b80fd5b503d612480565b513d6000823e3d90fd5b156124b657565b60405162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b6044820152606490fd5b92919060ff91601f83815460b01c161561297d57600c5484811661283d575b5083815460a01c166127bd57601b546001600160a01b0393841694908416939190858514806127b2575b612747575b600090868252602094600e8652604093828585205416158061273c575b6126f2575b857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef98999a9b1698891415806126e4575b806126d7575b806126c2575b61269c575b508783528286526125b38185852054612284565b88845283875284842055888195601b541692838a148015612693575b6125fe575b509150508152808452816125eb848284205461223c565b91888152808652205551908152a3600190565b909192939550600d8752808587205416159081612682575b501561267a57612663920361266d5760646126346019545b836121dc565b0490308552848652612649828587205461223c565b3086528587528486205583518281528888883093a3612284565b91388088816125d4565b606461263460185461262e565b509050612663565b905081865284862054161538612616565b508382146125cf565b805460ff60a01b19908116600160a01b1782556126b7612ae5565b81541690553861259f565b5030845283875284842054602254111561259a565b5082815460a81c16612594565b5082815460a01c161561258e565b838752612702828686205461223c565b602154101561255d57845162461bcd60e51b815260048101889052600a60248201526913585e0815d85b1b195d60b21b6044820152606490fd5b508260095416612558565b6020548411801590612786575b61253b5760405162461bcd60e51b815260206004820152600660248201526509ac2f040a8b60d31b6044820152606490fd5b50828816600052600e602052806040600020541680156127545750856000528060406000205416612754565b508060095416612536565b507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919394925060209060018060a01b0380941693600095858752868452612809836040892054612284565b868852878552604088205516948581526040612828838284205461223c565b918781528085522055604051908152a3600190565b60075442106128545760ff1916600c555b3861250c565b50601b546001600160a01b03908782169082168181036128ab5750508316600052600a60205283604060002054168015612897575b612892906124af565b61284e565b506128926128a4846123e9565b9050612889565b909185169081036128e35750600052600a602052836040600020541680156128d657612892906124af565b506128926128a4876123e9565b90600052600a602052846040600020541690811561296c575b8161293e575b506128925760405162461bcd60e51b815260206004820152600f60248201526e139bdd0815da1a5d195b1a5cdd1959608a1b6044820152606490fd5b9050600052600a6020528360406000205416801561295d575b38612902565b50612967836123e9565b612957565b9050612977876123e9565b906128fc565b60405162461bcd60e51b815260206004820152600e60248201526d151c98591a5b99c810db1bdcd95960921b6044820152606490fd5b6001600160a01b03908116918215612a645716918215612a145760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b3d15612ae0573d90612ac682612064565b91612ad46040519384612043565b82523d6000602084013e565b606090565b60003081526020818152604080832054916018546002811115600014612f8a5750612b2b612b21612b18601654866121dc565b601954906121ef565b60011c8094612284565b8015612f835782519160608301936001600160401b039484811086821117612f6f578152600284528184019381368637805115612f5b57308552601a5482516315ab88c960e31b81526001600160a01b03979096600496919289169186898981865afa988915612f51578c99612f32575b508451986001998a1015612f1f578a1686860152823b15612f1b57855163791ac94760e01b815288810191909152602481018c905260a06044820152935160a485018190528b928592909160c484019190858c8b8f5b848410612ef6575050505050508383809230606483015242608483015203925af18015612eec57612ec6575b505060185447969060028111612eae5750612c3e612b18601654896121dc565b851c905b80612e22575b505060185447939060028111612e085750612c9193612c9e612c6c601754836121dc565b91612c99612c7d60195480956121ef565b978894612c8c601154856121dc565b6121ef565b938492612284565b612284565b97612caf575b505050505050505050565b889581612d1a575b505050505080612cf6575b505081612cd5575b808080808080612ca4565b828080938193601f54165af1612ce9612ab5565b501561249b578080612cca565b8180809285601e54165af1612d09612ab5565b5015612d16578238612cc2565b8280fd5b909192939495501c92818187601c5416855192838092633690e28760e01b82525afa908115612dfe578980878a829583958491612de1575b50165af1612d5e612ab5565b5015612ddd578086601c541684519384809263d7e7a9e760e01b82525afa928315612dd457508793868594859485948592612db7575b5050165af1612da1612ab5565b5015612db35783903880808080612cb7565b8380fd5b612dcd9250803d10611642576116348183612043565b3880612d94565b513d89823e3d90fd5b8780fd5b612df89150883d8a11611642576116348183612043565b38612d52565b84513d8b823e3d90fd5b612c9e612c9195612c99612c7d84612c8c601454856121dc565b60609060c488601a5416918551948593849263f305d71960e01b8452308b85015260248401528d60448401528d606484015261dead60848401524260a48401525af18015612ea457612e75575b80612c48565b606090813d8111612e9d575b612e8b8183612043565b81010312612e995738612e6f565b8680fd5b503d612e81565b82513d8a823e3d90fd5b612ebe90612c8c6013548a6121dc565b851c90612c42565b8198929811612ed9578752953880612c1e565b634e487b7160e01b825260418452602482fd5b83513d8b823e3d90fd5b90939698508484939692959850511681520194019101908d94928794928c8b8f612bf2565b8b80fd5b634e487b7160e01b8d526032895260248dfd5b612f4a919950873d8911611642576116348183612043565b9738612b9c565b86513d8e823e3d90fd5b634e487b7160e01b88526032600452602488fd5b634e487b7160e01b88526041600452602488fd5b5050505050565b612b21612b2b91612c8c601354876121dc565b805160005b818110612fae57505050565b8251811015612fee57612fe990600a602060018060a01b03818460051b8801015116600052526040600020600160ff198254161790556123da565b612fa2565b634e487b7160e01b600052603260045260246000fdfe0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9a26469706673582212203e5d351bb2e99e3736c6b110a6b598bb7c960fa560426f4d4360c81a87ecb11864736f6c63430008110033