[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "inputs": [], "name": "ERC20TransferFailed", "type": "error" }, { "inputs": [], "name": "ERC20ZeroTransfer", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amountIn", "type": "uint256" }, { "indexed": false, "internalType": "address[]", "name": "path", "type": "address[]" } ], "name": "SwapTokensForETH", "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": "EnableTxLimit", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "EnableWalletLimit", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "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": [ { "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": "buyTax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "dexPair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "dexRouter", "outputs": [ { "internalType": "contract IDexSwapRouter", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "enableTrading", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_adr", "type": "address" }, { "internalType": "bool", "name": "_status", "type": "bool" } ], "name": "excludeFromFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_adr", "type": "address" }, { "internalType": "bool", "name": "_status", "type": "bool" } ], "name": "excludeTxLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_adr", "type": "address" }, { "internalType": "bool", "name": "_status", "type": "bool" } ], "name": "excludeWalletLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isExcludedFromFee", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isMarketPair", "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": "", "type": "address" } ], "name": "isWalletLimitExempt", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isWlAddress", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "marketingWallet", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "removeLimits", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "rescueFunds", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_token", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "rescueTokens", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "sellTax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_buySide", "type": "uint256" }, { "internalType": "uint256", "name": "_sellSide", "type": "uint256" } ], "name": "setBuyFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newWallet", "type": "address" } ], "name": "setMarketingWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newLimit", "type": "uint256" } ], "name": "setMaxWalletLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_threshold", "type": "uint256" }, { "internalType": "bool", "name": "_enabled", "type": "bool" }, { "internalType": "bool", "name": "_limited", "type": "bool" } ], "name": "setSwapBackSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newLimit", "type": "uint256" } ], "name": "setTxLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapEnabled", "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": "swapbylimit", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tradingEnable", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_status", "type": "bool" } ], "name": "transferProtection", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "transferSniperProtection", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_adr", "type": "address[]" }, { "internalType": "bool", "name": "_status", "type": "bool" } ], "name": "updateSetting", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60806040526040518060400160405280600681526020017f53697550616b0000000000000000000000000000000000000000000000000000815250600190816200004a919062000dc0565b506040518060400160405280600681526020017f53697550616b00000000000000000000000000000000000000000000000000008152506002908162000091919062000dc0565b50600960035f6101000a81548160ff021916908360ff16021790555060035f9054906101000a900460ff16600a620000ca91906200102d565b633b9aca00620000db91906200107d565b600d556200010b6064620000fc6002600d546200095d60201b90919060201c565b620009dd60201b90919060201c565b600e556200013b60646200012c6002600d546200095d60201b90919060201c565b620009dd60201b90919060201c565b600f556200016b60646200015c6001600d546200095d60201b90919060201c565b620009dd60201b90919060201c565b6010556001601160146101000a81548160ff0219169083151502179055506001601160156101000a81548160ff0219169083151502179055506001601160166101000a81548160ff0219169083151502179055506001601160176101000a81548160ff021916908315150217905550348015620001e6575f80fd5b5062000207620001fb62000a2e60201b60201c565b62000a3560201b60201c565b3360115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002a9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002cf91906200112c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000335573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200035b91906200112c565b6040518363ffffffff1660e01b81526004016200037a9291906200116d565b6020604051808303815f875af115801562000397573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003bd91906200112c565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550601460048190555060146005819055506001601360156101000a81548160ff021916908315150217905550600d5460065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d546040516200094e9190620011a9565b60405180910390a35062001368565b5f8083036200096f575f9050620009d7565b5f82846200097e91906200107d565b90508284826200098f9190620011f1565b14620009d2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009c990620012ac565b60405180910390fd5b809150505b92915050565b5f62000a2683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000af660201b60201c565b905092915050565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f808311829062000b3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b36919062001346565b60405180910390fd5b505f838562000b4f9190620011f1565b9050809150509392505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000bd857607f821691505b60208210810362000bee5762000bed62000b93565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000c527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000c15565b62000c5e868362000c15565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000ca862000ca262000c9c8462000c76565b62000c7f565b62000c76565b9050919050565b5f819050919050565b62000cc38362000c88565b62000cdb62000cd28262000caf565b84845462000c21565b825550505050565b5f90565b62000cf162000ce3565b62000cfe81848462000cb8565b505050565b5b8181101562000d255762000d195f8262000ce7565b60018101905062000d04565b5050565b601f82111562000d745762000d3e8162000bf4565b62000d498462000c06565b8101602085101562000d59578190505b62000d7162000d688562000c06565b83018262000d03565b50505b505050565b5f82821c905092915050565b5f62000d965f198460080262000d79565b1980831691505092915050565b5f62000db0838362000d85565b9150826002028217905092915050565b62000dcb8262000b5c565b67ffffffffffffffff81111562000de75762000de662000b66565b5b62000df3825462000bc0565b62000e0082828562000d29565b5f60209050601f83116001811462000e36575f841562000e21578287015190505b62000e2d858262000da3565b86555062000e9c565b601f19841662000e468662000bf4565b5f5b8281101562000e6f5784890151825560018201915060208501945060208101905062000e48565b8683101562000e8f578489015162000e8b601f89168262000d85565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000f2e5780860481111562000f065762000f0562000ea4565b5b600185161562000f165780820291505b808102905062000f268562000ed1565b945062000ee6565b94509492505050565b5f8262000f4857600190506200101a565b8162000f57575f90506200101a565b816001811462000f70576002811462000f7b5762000fb1565b60019150506200101a565b60ff84111562000f905762000f8f62000ea4565b5b8360020a91508482111562000faa5762000fa962000ea4565b5b506200101a565b5060208310610133831016604e8410600b841016171562000feb5782820a90508381111562000fe55762000fe462000ea4565b5b6200101a565b62000ffa848484600162000edd565b9250905081840481111562001014576200101362000ea4565b5b81810290505b9392505050565b5f60ff82169050919050565b5f620010398262000c76565b9150620010468362001021565b9250620010757fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000f37565b905092915050565b5f620010898262000c76565b9150620010968362000c76565b9250828202620010a68162000c76565b91508282048414831517620010c057620010bf62000ea4565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620010f682620010cb565b9050919050565b6200110881620010ea565b811462001113575f80fd5b50565b5f815190506200112681620010fd565b92915050565b5f60208284031215620011445762001143620010c7565b5b5f620011538482850162001116565b91505092915050565b6200116781620010ea565b82525050565b5f604082019050620011825f8301856200115c565b6200119160208301846200115c565b9392505050565b620011a38162000c76565b82525050565b5f602082019050620011be5f83018462001198565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620011fd8262000c76565b91506200120a8362000c76565b9250826200121d576200121c620011c4565b5b828204905092915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6200129460218362001228565b9150620012a18262001238565b604082019050919050565b5f6020820190508181035f830152620012c58162001286565b9050919050565b5f5b83811015620012eb578082015181840152602081019050620012ce565b5f8484015250505050565b5f601f19601f8301169050919050565b5f620013128262000b5c565b6200131e818562001228565b935062001330818560208601620012cc565b6200133b81620012f6565b840191505092915050565b5f6020820190508181035f83015262001360818462001306565b905092915050565b613fcb80620013765f395ff3fe608060405260043610610275575f3560e01c8063751039fc1161014e578063ae85ade6116100c0578063e6b2603b11610079578063e6b2603b1461094a578063e9fd339414610960578063ea1ce5a81461098a578063f242ab41146109b4578063f2fde38b146109de578063fb0ecfa414610a065761027c565b8063ae85ade614610830578063b94b0aef14610858578063c867d60b14610880578063cc1776d3146108bc578063dd62ed3e146108e6578063df8408fe146109225761027c565b80638b42507f116101125780638b42507f146107125780638da5cb5b1461074e57806395d89b411461077857806395fc8fdf146107a25780639a212943146107ca578063a9059cbb146107f45761027c565b8063751039fc1461066857806375f0a8741461067e5780637d1db4a5146106a8578063807c2d9c146106d25780638a8c523c146106fc5761027c565b80635342acb4116101e75780635e42358c116101ab5780635e42358c14610572578063651a89871461059c5780636ddd1713146105c457806370a08231146105ee578063715018a61461062a578063728d41c9146106405761027c565b80635342acb41461048257806357376198146104be5780635c85974f146104e65780635d098b381461050e5780635da0a467146105365761027c565b806318160ddd1161023957806318160ddd14610364578063230358521461038e57806323b872dd146103b6578063313ce567146103f25780633ecad2711461041c5780634f7041a5146104585761027c565b80630445b6671461028057806306fdde03146102aa5780630758d924146102d4578063095ea7b3146102fe5780631693e8d41461033a5761027c565b3661027c57005b5f80fd5b34801561028b575f80fd5b50610294610a2e565b6040516102a19190613191565b60405180910390f35b3480156102b5575f80fd5b506102be610a34565b6040516102cb9190613234565b60405180910390f35b3480156102df575f80fd5b506102e8610ac4565b6040516102f591906132ce565b60405180910390f35b348015610309575f80fd5b50610324600480360381019061031f9190613354565b610ae9565b60405161033191906133ac565b60405180910390f35b348015610345575f80fd5b5061034e610b06565b60405161035b91906133ac565b60405180910390f35b34801561036f575f80fd5b50610378610b19565b6040516103859190613191565b60405180910390f35b348015610399575f80fd5b506103b460048036038101906103af91906133ef565b610b22565b005b3480156103c1575f80fd5b506103dc60048036038101906103d7919061341a565b610bbb565b6040516103e991906133ac565b60405180910390f35b3480156103fd575f80fd5b50610406610cad565b6040516104139190613485565b60405180910390f35b348015610427575f80fd5b50610442600480360381019061043d919061349e565b610cc2565b60405161044f91906133ac565b60405180910390f35b348015610463575f80fd5b5061046c610cdf565b6040516104799190613191565b60405180910390f35b34801561048d575f80fd5b506104a860048036038101906104a3919061349e565b610ce5565b6040516104b591906133ac565b60405180910390f35b3480156104c9575f80fd5b506104e460048036038101906104df9190613354565b610d02565b005b3480156104f1575f80fd5b5061050c600480360381019061050791906134c9565b610eee565b005b348015610519575f80fd5b50610534600480360381019061052f919061349e565b610f74565b005b348015610541575f80fd5b5061055c6004803603810190610557919061349e565b611033565b60405161056991906133ac565b60405180910390f35b34801561057d575f80fd5b50610586611050565b60405161059391906133ac565b60405180910390f35b3480156105a7575f80fd5b506105c260048036038101906105bd91906134f4565b611063565b005b3480156105cf575f80fd5b506105d8611137565b6040516105e591906133ac565b60405180910390f35b3480156105f9575f80fd5b50610614600480360381019061060f919061349e565b61114a565b6040516106219190613191565b60405180910390f35b348015610635575f80fd5b5061063e611190565b005b34801561064b575f80fd5b50610666600480360381019061066191906134c9565b611217565b005b348015610673575f80fd5b5061067c61129d565b005b348015610689575f80fd5b5061069261134f565b60405161069f9190613541565b60405180910390f35b3480156106b3575f80fd5b506106bc611374565b6040516106c99190613191565b60405180910390f35b3480156106dd575f80fd5b506106e661137a565b6040516106f39190613191565b60405180910390f35b348015610707575f80fd5b50610710611380565b005b34801561071d575f80fd5b506107386004803603810190610733919061349e565b611469565b60405161074591906133ac565b60405180910390f35b348015610759575f80fd5b50610762611486565b60405161076f9190613541565b60405180910390f35b348015610783575f80fd5b5061078c6114ad565b6040516107999190613234565b60405180910390f35b3480156107ad575f80fd5b506107c860048036038101906107c391906135bb565b61153d565b005b3480156107d5575f80fd5b506107de611654565b6040516107eb91906133ac565b60405180910390f35b3480156107ff575f80fd5b5061081a60048036038101906108159190613354565b611667565b60405161082791906133ac565b60405180910390f35b34801561083b575f80fd5b50610856600480360381019061085191906134f4565b611685565b005b348015610863575f80fd5b5061087e60048036038101906108799190613618565b611759565b005b34801561088b575f80fd5b506108a660048036038101906108a1919061349e565b611815565b6040516108b391906133ac565b60405180910390f35b3480156108c7575f80fd5b506108d0611832565b6040516108dd9190613191565b60405180910390f35b3480156108f1575f80fd5b5061090c60048036038101906109079190613668565b611838565b6040516109199190613191565b60405180910390f35b34801561092d575f80fd5b50610948600480360381019061094391906134f4565b6118ba565b005b348015610955575f80fd5b5061095e61198e565b005b34801561096b575f80fd5b50610974611ae9565b60405161098191906133ac565b60405180910390f35b348015610995575f80fd5b5061099e611afc565b6040516109ab91906133ac565b60405180910390f35b3480156109bf575f80fd5b506109c8611b0f565b6040516109d59190613541565b60405180910390f35b3480156109e9575f80fd5b50610a0460048036038101906109ff919061349e565b611b34565b005b348015610a11575f80fd5b50610a2c6004803603810190610a2791906136a6565b611c2a565b005b60105481565b606060018054610a4390613711565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6f90613711565b8015610aba5780601f10610a9157610100808354040283529160200191610aba565b820191905f5260205f20905b815481529060010190602001808311610a9d57829003601f168201915b5050505050905090565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610afc610af5611cb8565b8484611cbf565b6001905092915050565b601360149054906101000a900460ff1681565b5f600d54905090565b610b2a611cb8565b73ffffffffffffffffffffffffffffffffffffffff16610b48611486565b73ffffffffffffffffffffffffffffffffffffffff1614610b9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b959061378b565b60405180910390fd5b80601360156101000a81548160ff02191690831515021790555050565b5f610bc7848484611e86565b50610ca284610bd4611cb8565b610c9d856040518060400160405280601881526020017f45524332303a204578636565647320616c6c6f77616e6365000000000000000081525060075f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610c54611cb8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125b99092919063ffffffff16565b611cbf565b600190509392505050565b5f60035f9054906101000a900460ff16905090565b6009602052805f5260405f205f915054906101000a900460ff1681565b60045481565b6008602052805f5260405f205f915054906101000a900460ff1681565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d88906137f3565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1660115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683604051602401610ddd929190613811565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610e67919061387c565b5f604051808303815f865af19150503d805f8114610ea0576040519150601f19603f3d011682016040523d82523d5f602084013e610ea5565b606091505b5050905080610ee9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee0906138dc565b60405180910390fd5b505050565b610ef6611cb8565b73ffffffffffffffffffffffffffffffffffffffff16610f14611486565b73ffffffffffffffffffffffffffffffffffffffff1614610f6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f619061378b565b60405180910390fd5b80600e8190555050565b610f7c611cb8565b73ffffffffffffffffffffffffffffffffffffffff16610f9a611486565b73ffffffffffffffffffffffffffffffffffffffff1614610ff0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe79061378b565b60405180910390fd5b8060115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c602052805f5260405f205f915054906101000a900460ff1681565b601160169054906101000a900460ff1681565b61106b611cb8565b73ffffffffffffffffffffffffffffffffffffffff16611089611486565b73ffffffffffffffffffffffffffffffffffffffff16146110df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d69061378b565b60405180910390fd5b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b601160149054906101000a900460ff1681565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611198611cb8565b73ffffffffffffffffffffffffffffffffffffffff166111b6611486565b73ffffffffffffffffffffffffffffffffffffffff161461120c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112039061378b565b60405180910390fd5b6112155f61261b565b565b61121f611cb8565b73ffffffffffffffffffffffffffffffffffffffff1661123d611486565b73ffffffffffffffffffffffffffffffffffffffff1614611293576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128a9061378b565b60405180910390fd5b80600f8190555050565b6112a5611cb8565b73ffffffffffffffffffffffffffffffffffffffff166112c3611486565b73ffffffffffffffffffffffffffffffffffffffff1614611319576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113109061378b565b60405180910390fd5b5f601160166101000a81548160ff0219169083151502179055505f601160176101000a81548160ff021916908315150217905550565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b600f5481565b611388611cb8565b73ffffffffffffffffffffffffffffffffffffffff166113a6611486565b73ffffffffffffffffffffffffffffffffffffffff16146113fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f39061378b565b60405180910390fd5b601360149054906101000a900460ff161561144c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144390613944565b60405180910390fd5b6001601360146101000a81548160ff021916908315150217905550565b600b602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600280546114bc90613711565b80601f01602080910402602001604051908101604052809291908181526020018280546114e890613711565b80156115335780601f1061150a57610100808354040283529160200191611533565b820191905f5260205f20905b81548152906001019060200180831161151657829003601f168201915b5050505050905090565b611545611cb8565b73ffffffffffffffffffffffffffffffffffffffff16611563611486565b73ffffffffffffffffffffffffffffffffffffffff16146115b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b09061378b565b60405180910390fd5b5f5b8383905081101561164e5781600c5f8686858181106115dd576115dc613962565b5b90506020020160208101906115f2919061349e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506115bb565b50505050565b601160179054906101000a900460ff1681565b5f61167a611673611cb8565b8484611e86565b506001905092915050565b61168d611cb8565b73ffffffffffffffffffffffffffffffffffffffff166116ab611486565b73ffffffffffffffffffffffffffffffffffffffff1614611701576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f89061378b565b60405180910390fd5b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b611761611cb8565b73ffffffffffffffffffffffffffffffffffffffff1661177f611486565b73ffffffffffffffffffffffffffffffffffffffff16146117d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cc9061378b565b60405180910390fd5b81601160146101000a81548160ff02191690831515021790555080601160156101000a81548160ff02191690831515021790555082601081905550505050565b600a602052805f5260405f205f915054906101000a900460ff1681565b60055481565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6118c2611cb8565b73ffffffffffffffffffffffffffffffffffffffff166118e0611486565b73ffffffffffffffffffffffffffffffffffffffff1614611936576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192d9061378b565b60405180910390fd5b8060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a14906137f3565b60405180910390fd5b5f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051611a63906139b2565b5f6040518083038185875af1925050503d805f8114611a9d576040519150601f19603f3d011682016040523d82523d5f602084013e611aa2565b606091505b5050905080611ae6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611add90613a10565b60405180910390fd5b50565b601160159054906101000a900460ff1681565b601360159054906101000a900460ff1681565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b3c611cb8565b73ffffffffffffffffffffffffffffffffffffffff16611b5a611486565b73ffffffffffffffffffffffffffffffffffffffff1614611bb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba79061378b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1590613a9e565b60405180910390fd5b611c278161261b565b50565b611c32611cb8565b73ffffffffffffffffffffffffffffffffffffffff16611c50611486565b73ffffffffffffffffffffffffffffffffffffffff1614611ca6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9d9061378b565b60405180910390fd5b81600481905550806005819055505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d2f575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401611d269190613541565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d9f575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401611d969190613541565b60405180910390fd5b8060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e799190613191565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611ef7575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611eee9190613541565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f67575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401611f5e9190613541565b60405180910390fd5b5f8203611fa0576040517f67c8957700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601360169054906101000a900460ff1615611fc757611fc08484846126dc565b90506125b2565b600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156120655750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156120b157601360149054906101000a900460ff166120b0576040517ff27f64e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5f6120bb3061114a565b90505f60105482101590508080156120e05750601360169054906101000a900460ff16155b8015612133575060095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561214b5750601160149054906101000a900460ff165b801561219e575060085f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156121f1575060085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612200576121ff826128a6565b5b600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561229e5750600b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156122b65750601160169054906101000a900460ff165b1561230157600e54841115612300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f790613b06565b60405180910390fd5b5b612388846040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125b99092919063ffffffff16565b60065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f6123d4878761298c565b6123e8576123e3878787612ae8565b6123ea565b845b9050601160179054906101000a900460ff16801561244f5750600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156124b457600f54612472826124648961114a565b612d4390919063ffffffff16565b11156124b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124aa90613b6e565b60405180910390fd5b5b6125048160065f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612d4390919063ffffffff16565b60065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125a29190613191565b60405180910390a3600193505050505b9392505050565b5f838311158290612600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f79190613234565b60405180910390fd5b505f838561260e9190613bb9565b9050809150509392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f612764826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125b99092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506127f58260065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612d4390919063ffffffff16565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516128939190613191565b60405180910390a3600190509392505050565b6001601360166101000a81548160ff021916908315150217905550601160159054906101000a900460ff16156128dc5760105490505b5f4790506128e982612da0565b5f6128fd824761300f90919063ffffffff16565b90505f81111561296d5760115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561296b573d5f803e3d5ffd5b505b50505f601360166101000a81548160ff02191690831515021790555050565b5f60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612a28575060085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612a365760019050612ae2565b60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612ad1575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612ade575f9050612ae2565b5f90505b92915050565b5f8060095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612b6857612b616064612b536004548661305890919063ffffffff16565b6130cf90919063ffffffff16565b9050612c27565b60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612be657612bdf6064612bd16005548661305890919063ffffffff16565b6130cf90919063ffffffff16565b9050612c26565b601360159054906101000a900460ff1615612c2557612c226064612c1460638661305890919063ffffffff16565b6130cf90919063ffffffff16565b90505b5b5b5f811115612d2657612c7f8160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612d4390919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612d1d9190613191565b60405180910390a35b612d39818461300f90919063ffffffff16565b9150509392505050565b5f808284612d519190613bec565b905083811015612d96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d8d90613c69565b60405180910390fd5b8091505092915050565b5f600267ffffffffffffffff811115612dbc57612dbb613c87565b5b604051908082528060200260200182016040528015612dea5781602001602082028036833780820191505090505b50905030815f81518110612e0157612e00613962565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ea5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ec99190613cc8565b81600181518110612edd57612edc613962565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612f433060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611cbf565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612fa5959493929190613de3565b5f604051808303815f87803b158015612fbc575f80fd5b505af1158015612fce573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613003929190613e3b565b60405180910390a15050565b5f61305083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506125b9565b905092915050565b5f808303613068575f90506130c9565b5f82846130759190613e69565b90508284826130849190613ed7565b146130c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130bb90613f77565b60405180910390fd5b809150505b92915050565b5f61311083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613118565b905092915050565b5f808311829061315e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131559190613234565b60405180910390fd5b505f838561316c9190613ed7565b9050809150509392505050565b5f819050919050565b61318b81613179565b82525050565b5f6020820190506131a45f830184613182565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156131e15780820151818401526020810190506131c6565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613206826131aa565b61321081856131b4565b93506132208185602086016131c4565b613229816131ec565b840191505092915050565b5f6020820190508181035f83015261324c81846131fc565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61329661329161328c84613254565b613273565b613254565b9050919050565b5f6132a78261327c565b9050919050565b5f6132b88261329d565b9050919050565b6132c8816132ae565b82525050565b5f6020820190506132e15f8301846132bf565b92915050565b5f80fd5b5f80fd5b5f6132f982613254565b9050919050565b613309816132ef565b8114613313575f80fd5b50565b5f8135905061332481613300565b92915050565b61333381613179565b811461333d575f80fd5b50565b5f8135905061334e8161332a565b92915050565b5f806040838503121561336a576133696132e7565b5b5f61337785828601613316565b925050602061338885828601613340565b9150509250929050565b5f8115159050919050565b6133a681613392565b82525050565b5f6020820190506133bf5f83018461339d565b92915050565b6133ce81613392565b81146133d8575f80fd5b50565b5f813590506133e9816133c5565b92915050565b5f60208284031215613404576134036132e7565b5b5f613411848285016133db565b91505092915050565b5f805f60608486031215613431576134306132e7565b5b5f61343e86828701613316565b935050602061344f86828701613316565b925050604061346086828701613340565b9150509250925092565b5f60ff82169050919050565b61347f8161346a565b82525050565b5f6020820190506134985f830184613476565b92915050565b5f602082840312156134b3576134b26132e7565b5b5f6134c084828501613316565b91505092915050565b5f602082840312156134de576134dd6132e7565b5b5f6134eb84828501613340565b91505092915050565b5f806040838503121561350a576135096132e7565b5b5f61351785828601613316565b9250506020613528858286016133db565b9150509250929050565b61353b816132ef565b82525050565b5f6020820190506135545f830184613532565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261357b5761357a61355a565b5b8235905067ffffffffffffffff8111156135985761359761355e565b5b6020830191508360208202830111156135b4576135b3613562565b5b9250929050565b5f805f604084860312156135d2576135d16132e7565b5b5f84013567ffffffffffffffff8111156135ef576135ee6132eb565b5b6135fb86828701613566565b9350935050602061360e868287016133db565b9150509250925092565b5f805f6060848603121561362f5761362e6132e7565b5b5f61363c86828701613340565b935050602061364d868287016133db565b925050604061365e868287016133db565b9150509250925092565b5f806040838503121561367e5761367d6132e7565b5b5f61368b85828601613316565b925050602061369c85828601613316565b9150509250929050565b5f80604083850312156136bc576136bb6132e7565b5b5f6136c985828601613340565b92505060206136da85828601613340565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061372857607f821691505b60208210810361373b5761373a6136e4565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6137756020836131b4565b915061378082613741565b602082019050919050565b5f6020820190508181035f8301526137a281613769565b9050919050565b7f556e617574686f72697a656400000000000000000000000000000000000000005f82015250565b5f6137dd600c836131b4565b91506137e8826137a9565b602082019050919050565b5f6020820190508181035f83015261380a816137d1565b9050919050565b5f6040820190506138245f830185613532565b6138316020830184613182565b9392505050565b5f81519050919050565b5f81905092915050565b5f61385682613838565b6138608185613842565b93506138708185602086016131c4565b80840191505092915050565b5f613887828461384c565b915081905092915050565b7f546f6b656e207061796d656e74206661696c65640000000000000000000000005f82015250565b5f6138c66014836131b4565b91506138d182613892565b602082019050919050565b5f6020820190508181035f8301526138f3816138ba565b9050919050565b7f547261646520456e61626c6564210000000000000000000000000000000000005f82015250565b5f61392e600e836131b4565b9150613939826138fa565b602082019050919050565b5f6020820190508181035f83015261395b81613922565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b50565b5f61399d5f83613842565b91506139a88261398f565b5f82019050919050565b5f6139bc82613992565b9150819050919050565b7f5472616e73616374696f6e204661696c656421210000000000000000000000005f82015250565b5f6139fa6014836131b4565b9150613a05826139c6565b602082019050919050565b5f6020820190508181035f830152613a27816139ee565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613a886026836131b4565b9150613a9382613a2e565b604082019050919050565b5f6020820190508181035f830152613ab581613a7c565b9050919050565b7f45786365656473206d61785478416d6f756e74000000000000000000000000005f82015250565b5f613af06013836131b4565b9150613afb82613abc565b602082019050919050565b5f6020820190508181035f830152613b1d81613ae4565b9050919050565b7f457863656564732057616c6c65740000000000000000000000000000000000005f82015250565b5f613b58600e836131b4565b9150613b6382613b24565b602082019050919050565b5f6020820190508181035f830152613b8581613b4c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613bc382613179565b9150613bce83613179565b9250828203905081811115613be657613be5613b8c565b5b92915050565b5f613bf682613179565b9150613c0183613179565b9250828201905080821115613c1957613c18613b8c565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613c53601b836131b4565b9150613c5e82613c1f565b602082019050919050565b5f6020820190508181035f830152613c8081613c47565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81519050613cc281613300565b92915050565b5f60208284031215613cdd57613cdc6132e7565b5b5f613cea84828501613cb4565b91505092915050565b5f819050919050565b5f613d16613d11613d0c84613cf3565b613273565b613179565b9050919050565b613d2681613cfc565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613d5e816132ef565b82525050565b5f613d6f8383613d55565b60208301905092915050565b5f602082019050919050565b5f613d9182613d2c565b613d9b8185613d36565b9350613da683613d46565b805f5b83811015613dd6578151613dbd8882613d64565b9750613dc883613d7b565b925050600181019050613da9565b5085935050505092915050565b5f60a082019050613df65f830188613182565b613e036020830187613d1d565b8181036040830152613e158186613d87565b9050613e246060830185613532565b613e316080830184613182565b9695505050505050565b5f604082019050613e4e5f830185613182565b8181036020830152613e608184613d87565b90509392505050565b5f613e7382613179565b9150613e7e83613179565b9250828202613e8c81613179565b91508282048414831517613ea357613ea2613b8c565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613ee182613179565b9150613eec83613179565b925082613efc57613efb613eaa565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613f616021836131b4565b9150613f6c82613f07565b604082019050919050565b5f6020820190508181035f830152613f8e81613f55565b905091905056fea264697066735822122014bcc2f2dd7011690d6734a12f46d006be6b6c2997f165cf27cd50412b9d0a6e64736f6c63430008160033