[ { "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": false, "internalType": "uint256", "name": "amountETH", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountBOG", "type": "uint256" } ], "name": "AutoLiquify", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": 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": "_maxWalletAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "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": "spender", "type": "address" } ], "name": "approveMax", "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": [ { "internalType": "uint256", "name": "amountPercentage", "type": "uint256" } ], "name": "clearStuckBalance", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "fullWhitelist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getCirculatingSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" }, { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "isAuth", "outputs": [], "stateMutability": "nonpayable", "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": "isPair", "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": [], "name": "launchedAt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "liquidityFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "marketingFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "nativeFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "openTrading", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenAddress", "type": "address" }, { "internalType": "uint256", "name": "tokens", "type": "uint256" } ], "name": "rescueToken", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "restrictWhales", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "router", "outputs": [ { "internalType": "contract DexRouter", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newMktWallet", "type": "address" }, { "internalType": "address", "name": "newLpWallet", "type": "address" }, { "internalType": "address", "name": "newNativeWallet", "type": "address" } ], "name": "setFeeReceivers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newLiqFee", "type": "uint256" }, { "internalType": "uint256", "name": "newMarketingFee", "type": "uint256" }, { "internalType": "uint256", "name": "newNativeFee", "type": "uint256" }, { "internalType": "uint256", "name": "extraSellFee", "type": "uint256" } ], "name": "setFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setIsFeeExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setIsTxLimitExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" }, { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "setPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "status", "type": "bool" }, { "internalType": "uint256", "name": "newAmount", "type": "uint256" } ], "name": "setSwapbackSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "setTakeBuyfee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "setTakeSellfee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "setTakeTransferfee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newLimit", "type": "uint256" } ], "name": "setTxLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newLimit", "type": "uint256" } ], "name": "setWalletLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapAndLiquifyByLimitOnly", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "takeBuyFee", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "takeSellFee", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "takeTransferFee", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "tradingOpen", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "newStatus", "type": "bool" } ], "name": "tradingStatus", "outputs": [], "stateMutability": "nonpayable", "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" }, { "stateMutability": "payable", "type": "receive" } ]
60806040526012600a62000014919062000ed0565b633b9aca0062000025919062000f21565b6002556103e860146002546200003c919062000f21565b62000048919062000f9b565b6003556103e860146002546200005f919062000f21565b6200006b919062000f9b565b600455737a250d5630b4cf539739df2c5dacb4c659f2488d600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560146101000a81548160ff0219169083151502179055506000600a556005600b556000600c556005600d556005600e556001600f60006101000a81548160ff0219169083151502179055506001600f60016101000a81548160ff0219169083151502179055506000600f60026101000a81548160ff0219169083151502179055506001601660006101000a81548160ff0219169083151502179055506001601660026101000a81548160ff0219169083151502179055506000601660036101000a81548160ff0219169083151502179055506107d06004600254620001ad919062000f21565b620001b9919062000f9b565b601755348015620001c957600080fd5b506000620001dc62000ccb60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e991906200103d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000472573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200049891906200103d565b306040518363ffffffff1660e01b8152600401620004b892919062001080565b6020604051808303816000875af1158015620004d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004fe91906200103d565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160146000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016009600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033600f60036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073e574253e7cc13f904a4b7db82f5445c92fb1c5d7601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073bafb2d008be439500d2616f7c302c74a00de73ab601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160086000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000c06600c5462000bf2600b54600a5462000cd360201b6200268a1790919060201c565b62000cd360201b6200268a1790919060201c565b600d81905550600d54600e81905550600254600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60025460405162000cbd9190620010be565b60405180910390a362001199565b600033905090565b600080828462000ce49190620010db565b90508381101562000d2c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d239062001177565b60405180910390fd5b8091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000dc45780860481111562000d9c5762000d9b62000d36565b5b600185161562000dac5780820291505b808102905062000dbc8562000d65565b945062000d7c565b94509492505050565b60008262000ddf576001905062000eb2565b8162000def576000905062000eb2565b816001811462000e08576002811462000e135762000e49565b600191505062000eb2565b60ff84111562000e285762000e2762000d36565b5b8360020a91508482111562000e425762000e4162000d36565b5b5062000eb2565b5060208310610133831016604e8410600b841016171562000e835782820a90508381111562000e7d5762000e7c62000d36565b5b62000eb2565b62000e92848484600162000d72565b9250905081840481111562000eac5762000eab62000d36565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000edd8262000eb9565b915062000eea8362000ec3565b925062000f197fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000dcd565b905092915050565b600062000f2e8262000eb9565b915062000f3b8362000eb9565b925082820262000f4b8162000eb9565b9150828204841483151762000f655762000f6462000d36565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000fa88262000eb9565b915062000fb58362000eb9565b92508262000fc85762000fc762000f6c565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620010058262000fd8565b9050919050565b620010178162000ff8565b81146200102357600080fd5b50565b60008151905062001037816200100c565b92915050565b60006020828403121562001056576200105562000fd3565b5b6000620010668482850162001026565b91505092915050565b6200107a8162000ff8565b82525050565b60006040820190506200109760008301856200106f565b620010a660208301846200106f565b9392505050565b620010b88162000eb9565b82525050565b6000602082019050620010d56000830184620010ad565b92915050565b6000620010e88262000eb9565b9150620010f58362000eb9565b925082820190508082111562001110576200110f62000d36565b5b92915050565b600082825260208201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006200115f601b8362001116565b91506200116c8262001127565b602082019050919050565b60006020820190508181036000830152620011928162001150565b9050919050565b614afd80620011a96000396000f3fe60806040526004361061031e5760003560e01c80637fa442ff116101ab578063bf56b371116100f7578063f0ef821f11610095578063f84ba65d1161006f578063f84ba65d14610bd5578063f887ea4014610bfe578063fbdec15314610c29578063ffb54a9914610c5257610325565b8063f0ef821f14610b58578063f1d5f51714610b83578063f2fde38b14610bac57610325565b8063d7c01032116100d1578063d7c0103214610a8a578063da00097d14610ab3578063dd62ed3e14610ade578063e5e31b1314610b1b57610325565b8063bf56b37114610a1d578063c9567bf914610a48578063ca987b0e14610a5f57610325565b806395d89b4111610164578063a53559891161013e578063a535598914610961578063a8aa1b311461098c578063a9059cbb146109b7578063aba1193d146109f457610325565b806395d89b41146108e057806398118cb41461090b578063996f79c01461093657610325565b80637fa442ff146107d257806386a22eff146107fb578063893d20e8146108245780638b42507f1461084f5780638da5cb5b1461088c5780639153eb6c146108b757610325565b806344de2e4c1161026a5780636c0a24eb1161022357806370a08231116101fd57806370a082311461072a578063715018a6146107675780637cc5d7eb1461077e5780637d1db4a5146107a757610325565b80636c0a24eb146106ab5780636fcba377146106d657806370540933146106ff57610325565b806344de2e4c1461059b5780634a74bb02146105c6578063571ac8b0146105f15780635c85974f1461062e578063658d4b7f146106575780636b67c4df1461068057610325565b80631df4ccfc116102d75780632b112e49116102b15780632b112e49146104cb578063313ce567146104f657806333f3d628146105215780633f4218e01461055e57610325565b80631df4ccfc1461043a57806323b872dd1461046557806329977491146104a257610325565b80630445b6671461032a57806306fdde0314610355578063095ea7b3146103805780630d295980146103bd57806318160ddd146103e65780631da1db5e1461041157610325565b3661032557005b600080fd5b34801561033657600080fd5b5061033f610c7d565b60405161034c9190613c21565b60405180910390f35b34801561036157600080fd5b5061036a610c83565b6040516103779190613ccc565b60405180910390f35b34801561038c57600080fd5b506103a760048036038101906103a29190613d7d565b610cc0565b6040516103b49190613dd8565b60405180910390f35b3480156103c957600080fd5b506103e460048036038101906103df9190613e1f565b610db2565b005b3480156103f257600080fd5b506103fb610e64565b6040516104089190613c21565b60405180910390f35b34801561041d57600080fd5b5061043860048036038101906104339190613e4c565b610e6e565b005b34801561044657600080fd5b5061044f610f6a565b60405161045c9190613c21565b60405180910390f35b34801561047157600080fd5b5061048c60048036038101906104879190613e79565b610f70565b6040516104999190613dd8565b60405180910390f35b3480156104ae57600080fd5b506104c960048036038101906104c49190613e1f565b611170565b005b3480156104d757600080fd5b506104e0611222565b6040516104ed9190613c21565b60405180910390f35b34801561050257600080fd5b5061050b611263565b6040516105189190613ee8565b60405180910390f35b34801561052d57600080fd5b5061054860048036038101906105439190613d7d565b61126c565b6040516105559190613dd8565b60405180910390f35b34801561056a57600080fd5b5061058560048036038101906105809190613f03565b6113f7565b6040516105929190613dd8565b60405180910390f35b3480156105a757600080fd5b506105b0611417565b6040516105bd9190613dd8565b60405180910390f35b3480156105d257600080fd5b506105db61142a565b6040516105e89190613dd8565b60405180910390f35b3480156105fd57600080fd5b5061061860048036038101906106139190613f03565b61143d565b6040516106259190613dd8565b60405180910390f35b34801561063a57600080fd5b5061065560048036038101906106509190613e4c565b611470565b005b34801561066357600080fd5b5061067e60048036038101906106799190613f30565b61156d565b005b34801561068c57600080fd5b5061069561165d565b6040516106a29190613c21565b60405180910390f35b3480156106b757600080fd5b506106c0611663565b6040516106cd9190613c21565b60405180910390f35b3480156106e257600080fd5b506106fd60048036038101906106f89190613f70565b611669565b005b34801561070b57600080fd5b5061071461177a565b6040516107219190613dd8565b60405180910390f35b34801561073657600080fd5b50610751600480360381019061074c9190613f03565b61178d565b60405161075e9190613c21565b60405180910390f35b34801561077357600080fd5b5061077c6117d6565b005b34801561078a57600080fd5b506107a560048036038101906107a09190613f30565b611929565b005b3480156107b357600080fd5b506107bc611a19565b6040516107c99190613c21565b60405180910390f35b3480156107de57600080fd5b506107f960048036038101906107f49190613e1f565b611a1f565b005b34801561080757600080fd5b50610822600480360381019061081d9190613f30565b611ad1565b005b34801561083057600080fd5b50610839611bc1565b6040516108469190613fe6565b60405180910390f35b34801561085b57600080fd5b5061087660048036038101906108719190613f03565b611bd0565b6040516108839190613dd8565b60405180910390f35b34801561089857600080fd5b506108a1611bf0565b6040516108ae9190613fe6565b60405180910390f35b3480156108c357600080fd5b506108de60048036038101906108d99190613f03565b611c19565b005b3480156108ec57600080fd5b506108f5611db8565b6040516109029190613ccc565b60405180910390f35b34801561091757600080fd5b50610920611df5565b60405161092d9190613c21565b60405180910390f35b34801561094257600080fd5b5061094b611dfb565b6040516109589190613c21565b60405180910390f35b34801561096d57600080fd5b50610976611e01565b6040516109839190613dd8565b60405180910390f35b34801561099857600080fd5b506109a1611e14565b6040516109ae9190613fe6565b60405180910390f35b3480156109c357600080fd5b506109de60048036038101906109d99190613d7d565b611e3a565b6040516109eb9190613dd8565b60405180910390f35b348015610a0057600080fd5b50610a1b6004803603810190610a169190614001565b611e4f565b005b348015610a2957600080fd5b50610a32611f09565b604051610a3f9190613c21565b60405180910390f35b348015610a5457600080fd5b50610a5d611f0f565b005b348015610a6b57600080fd5b50610a74611fc1565b604051610a819190613c21565b60405180910390f35b348015610a9657600080fd5b50610ab16004803603810190610aac9190614041565b611fc7565b005b348015610abf57600080fd5b50610ac8612124565b604051610ad59190613dd8565b60405180910390f35b348015610aea57600080fd5b50610b056004803603810190610b009190614094565b612137565b604051610b129190613c21565b60405180910390f35b348015610b2757600080fd5b50610b426004803603810190610b3d9190613f03565b6121be565b604051610b4f9190613dd8565b60405180910390f35b348015610b6457600080fd5b50610b6d6121de565b604051610b7a9190613dd8565b60405180910390f35b348015610b8f57600080fd5b50610baa6004803603810190610ba59190613e4c565b6121f1565b005b348015610bb857600080fd5b50610bd36004803603810190610bce9190613f03565b6122ee565b005b348015610be157600080fd5b50610bfc6004803603810190610bf79190613f30565b6124af565b005b348015610c0a57600080fd5b50610c1361259f565b604051610c209190614133565b60405180910390f35b348015610c3557600080fd5b50610c506004803603810190610c4b9190613e1f565b6125c5565b005b348015610c5e57600080fd5b50610c67612677565b604051610c749190613dd8565b60405180910390f35b60175481565b60606040518060400160405280600c81526020017f54726976414920437261636b0000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610da09190613c21565b60405180910390a36001905092915050565b610dba6126e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3e9061419a565b60405180910390fd5b80601660006101000a81548160ff02191690831515021790555050565b6000600254905090565b610e766126e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efa9061419a565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc60648484610f3091906141e9565b610f3a919061425a565b9081150290604051600060405180830381858888f19350505050158015610f65573d6000803e3d6000fd5b505050565b600d5481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461115c576110db826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f09092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611167848484612754565b90509392505050565b6111786126e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611205576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fc9061419a565b60405180910390fd5b80600f60016101000a81548160ff02191690831515021790555050565b600061125e611231600061178d565b61125061123f61dead61178d565b600254612e6990919063ffffffff16565b612e6990919063ffffffff16565b905090565b60006012905090565b60006112766126e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611303576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fa9061419a565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611371576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611368906142d7565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016113ac9291906142f7565b6020604051808303816000875af11580156113cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ef9190614335565b905092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b600560149054906101000a900460ff1681565b601660029054906101000a900460ff1681565b6000611469827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610cc0565b9050919050565b6114786126e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611505576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fc9061419a565b60405180910390fd5b6005811015611549576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611540906143d4565b60405180910390fd5b6103e88160025461155a91906141e9565b611564919061425a565b60038190555050565b6115756126e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611602576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f99061419a565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b5481565b60045481565b6116716126e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f59061419a565b60405180910390fd5b83600a8190555082600b8190555081600c8190555061173e600c54611730600b54600a5461268a90919063ffffffff16565b61268a90919063ffffffff16565b600d8190555080600d5461175291906143f4565b600e819055506019600d54600e5461176a91906143f4565b1061177457600080fd5b50505050565b600f60019054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6117de6126e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461186b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118629061419a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6119316126e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b59061419a565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60035481565b611a276126e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aab9061419a565b60405180910390fd5b80600f60026101000a81548160ff02191690831515021790555050565b611ad96126e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5d9061419a565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611bcb611bf0565b905090565b60096020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611c216126e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca59061419a565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60606040518060400160405280600681526020017f5452495641490000000000000000000000000000000000000000000000000000815250905090565b600a5481565b600c5481565b600f60029054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611e47338484612754565b905092915050565b611e576126e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ee4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edb9061419a565b60405180910390fd5b81601660026101000a81548160ff021916908315150217905550806017819055505050565b60155481565b611f176126e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9b9061419a565b60405180910390fd5b6001601660006101000a81548160ff021916908315150217905550565b600e5481565b611fcf6126e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461205c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120539061419a565b60405180910390fd5b81600f60036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b601660039054906101000a900460ff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60146020528060005260406000206000915054906101000a900460ff1681565b600f60009054906101000a900460ff1681565b6121f96126e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612286576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227d9061419a565b60405180910390fd5b60058110156122ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c1906143d4565b60405180910390fd5b6103e8816002546122db91906141e9565b6122e5919061425a565b60048190555050565b6122f66126e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612383576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237a9061419a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036123f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e99061449a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6124b76126e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253b9061419a565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6125cd6126e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461265a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126519061419a565b60405180910390fd5b80600f60006101000a81548160ff02191690831515021790555050565b601660009054906101000a900460ff1681565b600080828461269991906143f4565b9050838110156126de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d590614506565b60405180910390fd5b8091505092915050565b600033905090565b6000838311158290612738576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272f9190613ccc565b60405180910390fd5b50600083856127479190614526565b9050809150509392505050565b6000601660019054906101000a900460ff161561277d57612776848484612eb3565b9050612e62565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156128215750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561287657601660009054906101000a900460ff16612875576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286c906145a6565b60405180910390fd5b5b600354821115806128d05750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61290f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161290690614612565b60405180910390fd5b601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156129755750601660019054906101000a900460ff16155b801561298d5750601660029054906101000a900460ff165b80156129da5750601754600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b156129e8576129e7613086565b5b6129f06135e1565b158015612a465750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612ad6576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411612acd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac49061467e565b60405180910390fd5b612ad56135ee565b5b612b5f826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f09092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612c085750600560149054906101000a900460ff165b15612ca457600454612c6283600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268a90919063ffffffff16565b1115612ca3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c9a906146ea565b60405180910390fd5b5b6000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612d4a5750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612d545782612d60565b612d5f8585856135f7565b5b9050612db481600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268a90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e549190613c21565b60405180910390a360019150505b9392505050565b6000612eab83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506126f0565b905092915050565b6000612f3e826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f09092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fd382600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268a90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516130739190613c21565b60405180910390a3600190509392505050565b6001601660016101000a81548160ff0219169083151502179055506000600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006131376002613129613106600c54600d54612e6990919063ffffffff16565b61311b600a5487613ae190919063ffffffff16565b613b5b90919063ffffffff16565b613b5b90919063ffffffff16565b9050600061314e8284612e6990919063ffffffff16565b90506000600267ffffffffffffffff81111561316d5761316c61470a565b5b60405190808252806020026020018201604052801561319b5781602001602082028036833780820191505090505b50905030816000815181106131b3576131b2614739565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561325a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061327e919061477d565b8160018151811061329257613291614739565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016133309594939291906148a3565b600060405180830381600087803b15801561334a57600080fd5b505af115801561335e573d6000803e3d6000fd5b50505050600047905060006133a76133826002600a54613b5b90919063ffffffff16565b613399600c54600d54612e6990919063ffffffff16565b612e6990919063ffffffff16565b905060006133e560026133d7846133c9600a5488613ae190919063ffffffff16565b613b5b90919063ffffffff16565b613b5b90919063ffffffff16565b9050600061341083613402600b5487613ae190919063ffffffff16565b613b5b90919063ffffffff16565b90506000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826175309060405161345e9061492e565b600060405180830381858888f193505050503d806000811461349c576040519150601f19603f3d011682016040523d82523d6000602084013e6134a1565b606091505b505090506000905060008811156135bb57601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308b600080600f60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161353b96959493929190614943565b60606040518083038185885af1158015613559573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061357e91906149b9565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450683896040516135b2929190614a0c565b60405180910390a15b5050505050505050506000601660016101000a81548160ff021916908315150217905550565b6000806015541415905090565b43601581905550565b600080600090506000601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156136655750600f60019054906101000a900460ff165b1561368457613681600c54600e54612e6990919063ffffffff16565b91505b601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156136e95750600f60009054906101000a900460ff165b1561370857613705600c54600d54612e6990919063ffffffff16565b91505b601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156137ac5750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156137ea57600f60029054906101000a900460ff16156137e4576137dd600c54600e54612e6990919063ffffffff16565b91506137e9565b600091505b5b6000821180156137fc57506000600c54115b1561398c57613829606461381b600c5487613ae190919063ffffffff16565b613b5b90919063ffffffff16565b905061389f8160066000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268a90919063ffffffff16565b60066000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516139839190613c21565b60405180910390a35b60006139b460646139a68588613ae190919063ffffffff16565b613b5b90919063ffffffff16565b9050613a0881600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268a90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613aa89190613c21565b60405180910390a3613ad582613ac78388612e6990919063ffffffff16565b612e6990919063ffffffff16565b93505050509392505050565b6000808303613af35760009050613b55565b60008284613b0191906141e9565b9050828482613b10919061425a565b14613b50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b4790614aa7565b60405180910390fd5b809150505b92915050565b6000613b9d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613ba5565b905092915050565b60008083118290613bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613be39190613ccc565b60405180910390fd5b5060008385613bfb919061425a565b9050809150509392505050565b6000819050919050565b613c1b81613c08565b82525050565b6000602082019050613c366000830184613c12565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613c76578082015181840152602081019050613c5b565b60008484015250505050565b6000601f19601f8301169050919050565b6000613c9e82613c3c565b613ca88185613c47565b9350613cb8818560208601613c58565b613cc181613c82565b840191505092915050565b60006020820190508181036000830152613ce68184613c93565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613d1e82613cf3565b9050919050565b613d2e81613d13565b8114613d3957600080fd5b50565b600081359050613d4b81613d25565b92915050565b613d5a81613c08565b8114613d6557600080fd5b50565b600081359050613d7781613d51565b92915050565b60008060408385031215613d9457613d93613cee565b5b6000613da285828601613d3c565b9250506020613db385828601613d68565b9150509250929050565b60008115159050919050565b613dd281613dbd565b82525050565b6000602082019050613ded6000830184613dc9565b92915050565b613dfc81613dbd565b8114613e0757600080fd5b50565b600081359050613e1981613df3565b92915050565b600060208284031215613e3557613e34613cee565b5b6000613e4384828501613e0a565b91505092915050565b600060208284031215613e6257613e61613cee565b5b6000613e7084828501613d68565b91505092915050565b600080600060608486031215613e9257613e91613cee565b5b6000613ea086828701613d3c565b9350506020613eb186828701613d3c565b9250506040613ec286828701613d68565b9150509250925092565b600060ff82169050919050565b613ee281613ecc565b82525050565b6000602082019050613efd6000830184613ed9565b92915050565b600060208284031215613f1957613f18613cee565b5b6000613f2784828501613d3c565b91505092915050565b60008060408385031215613f4757613f46613cee565b5b6000613f5585828601613d3c565b9250506020613f6685828601613e0a565b9150509250929050565b60008060008060808587031215613f8a57613f89613cee565b5b6000613f9887828801613d68565b9450506020613fa987828801613d68565b9350506040613fba87828801613d68565b9250506060613fcb87828801613d68565b91505092959194509250565b613fe081613d13565b82525050565b6000602082019050613ffb6000830184613fd7565b92915050565b6000806040838503121561401857614017613cee565b5b600061402685828601613e0a565b925050602061403785828601613d68565b9150509250929050565b60008060006060848603121561405a57614059613cee565b5b600061406886828701613d3c565b935050602061407986828701613d3c565b925050604061408a86828701613d3c565b9150509250925092565b600080604083850312156140ab576140aa613cee565b5b60006140b985828601613d3c565b92505060206140ca85828601613d3c565b9150509250929050565b6000819050919050565b60006140f96140f46140ef84613cf3565b6140d4565b613cf3565b9050919050565b600061410b826140de565b9050919050565b600061411d82614100565b9050919050565b61412d81614112565b82525050565b60006020820190506141486000830184614124565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614184602083613c47565b915061418f8261414e565b602082019050919050565b600060208201905081810360008301526141b381614177565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006141f482613c08565b91506141ff83613c08565b925082820261420d81613c08565b91508282048414831517614224576142236141ba565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061426582613c08565b915061427083613c08565b9250826142805761427f61422b565b5b828204905092915050565b7f43616e742072656d6f766520746865206e617469766520746f6b656e00000000600082015250565b60006142c1601c83613c47565b91506142cc8261428b565b602082019050919050565b600060208201905081810360008301526142f0816142b4565b9050919050565b600060408201905061430c6000830185613fd7565b6143196020830184613c12565b9392505050565b60008151905061432f81613df3565b92915050565b60006020828403121561434b5761434a613cee565b5b600061435984828501614320565b91505092915050565b7f57616c6c6574204c696d6974206e6565647320746f206265206174206c65617360008201527f7420302e35250000000000000000000000000000000000000000000000000000602082015250565b60006143be602683613c47565b91506143c982614362565b604082019050919050565b600060208201905081810360008301526143ed816143b1565b9050919050565b60006143ff82613c08565b915061440a83613c08565b9250828201905080821115614422576144216141ba565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614484602683613c47565b915061448f82614428565b604082019050919050565b600060208201905081810360008301526144b381614477565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006144f0601b83613c47565b91506144fb826144ba565b602082019050919050565b6000602082019050818103600083015261451f816144e3565b9050919050565b600061453182613c08565b915061453c83613c08565b9250828203905081811115614554576145536141ba565b5b92915050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b6000614590601483613c47565b915061459b8261455a565b602082019050919050565b600060208201905081810360008301526145bf81614583565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006145fc601183613c47565b9150614607826145c6565b602082019050919050565b6000602082019050818103600083015261462b816145ef565b9050919050565b7f5a65726f2062616c616e63652076696f6c617465642100000000000000000000600082015250565b6000614668601683613c47565b915061467382614632565b602082019050919050565b600060208201905081810360008301526146978161465b565b9050919050565b7f4d61782077616c6c65742076696f6c6174696f6e000000000000000000000000600082015250565b60006146d4601483613c47565b91506146df8261469e565b602082019050919050565b60006020820190508181036000830152614703816146c7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061477781613d25565b92915050565b60006020828403121561479357614792613cee565b5b60006147a184828501614768565b91505092915050565b6000819050919050565b60006147cf6147ca6147c5846147aa565b6140d4565b613c08565b9050919050565b6147df816147b4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61481a81613d13565b82525050565b600061482c8383614811565b60208301905092915050565b6000602082019050919050565b6000614850826147e5565b61485a81856147f0565b935061486583614801565b8060005b8381101561489657815161487d8882614820565b975061488883614838565b925050600181019050614869565b5085935050505092915050565b600060a0820190506148b86000830188613c12565b6148c560208301876147d6565b81810360408301526148d78186614845565b90506148e66060830185613fd7565b6148f36080830184613c12565b9695505050505050565b600081905092915050565b50565b60006149186000836148fd565b915061492382614908565b600082019050919050565b60006149398261490b565b9150819050919050565b600060c0820190506149586000830189613fd7565b6149656020830188613c12565b61497260408301876147d6565b61497f60608301866147d6565b61498c6080830185613fd7565b61499960a0830184613c12565b979650505050505050565b6000815190506149b381613d51565b92915050565b6000806000606084860312156149d2576149d1613cee565b5b60006149e0868287016149a4565b93505060206149f1868287016149a4565b9250506040614a02868287016149a4565b9150509250925092565b6000604082019050614a216000830185613c12565b614a2e6020830184613c12565b9392505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a91602183613c47565b9150614a9c82614a35565b604082019050919050565b60006020820190508181036000830152614ac081614a84565b905091905056fea26469706673582212205a2f208fe05c7fdd96b9b5e7de55f681106a136e712ece31b04103c949902e4964736f6c63430008120033