[ { "inputs": [ { "internalType": "address", "name": "_dexRouter", "type": "address" }, { "internalType": "address", "name": "_marketingAddress", "type": "address" }, { "internalType": "address", "name": "_wAVAX", "type": "address" }, { "internalType": "address", "name": "_distributor", "type": "address" } ], "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": "amountAVAX", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountBOG", "type": "uint256" } ], "name": "AutoLiquify", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "duration", "type": "uint256" } ], "name": "BuybackMultiplierActive", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "owner", "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": "MASK", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "Sweep", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "WAVAX", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "_isFree", "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": "_maxWallet", "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": "adr", "type": "address" } ], "name": "authorize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "autoBuybackEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "autoLiquidityReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" } ], "name": "checkFree", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "clearBuybackMultiplier", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "distributor", "outputs": [ { "internalType": "contract IDividendDistributor", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "distributorAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getCirculatingSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "accuracy", "type": "uint256" } ], "name": "getLiquidityBacking", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getMultipliedFee", "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": "bool", "name": "selling", "type": "bool" } ], "name": "getTotalFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "adr", "type": "address" } ], "name": "isAuthorized", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "target", "type": "uint256" }, { "internalType": "uint256", "name": "accuracy", "type": "uint256" } ], "name": "isOverLiquified", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isOwner", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "launch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "launchedAt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "launchedAtTimestamp", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "marketingFeeReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "router", "outputs": [ { "internalType": "contract IDEXRouter", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" }, { "internalType": "uint256", "name": "_cap", "type": "uint256" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "uint256", "name": "_period", "type": "uint256" } ], "name": "setAutoBuybackSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "numerator", "type": "uint256" }, { "internalType": "uint256", "name": "denominator", "type": "uint256" }, { "internalType": "uint256", "name": "length", "type": "uint256" } ], "name": "setBuybackMultiplierSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_minPeriod", "type": "uint256" }, { "internalType": "uint256", "name": "_minDistribution", "type": "uint256" } ], "name": "setDistributionCriteria", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "gas", "type": "uint256" } ], "name": "setDistributorSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_autoLiquidityReceiver", "type": "address" }, { "internalType": "address", "name": "_marketingFeeReceiver", "type": "address" } ], "name": "setFeeReceivers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_liquidityFee", "type": "uint256" }, { "internalType": "uint256", "name": "_buybackFee", "type": "uint256" }, { "internalType": "uint256", "name": "_reflectionFee", "type": "uint256" }, { "internalType": "uint256", "name": "_marketingFee", "type": "uint256" }, { "internalType": "uint256", "name": "_feeDenominator", "type": "uint256" } ], "name": "setFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" } ], "name": "setFree", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setIsDividendExempt", "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": "uint256", "name": "amount", "type": "uint256" } ], "name": "setMaxWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "setSwapBackSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_target", "type": "uint256" }, { "internalType": "uint256", "name": "_denominator", "type": "uint256" } ], "name": "setTargetLiquidity", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "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": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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 payable", "name": "adr", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bool", "name": "triggerBuybackMultiplier", "type": "bool" } ], "name": "triggerZeusBuyback", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" } ], "name": "unSetFree", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "adr", "type": "address" } ], "name": "unauthorize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
608060405273d586e7f844cea2f87f50152665bcbc2c279d8d70600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b31f66aa3c1e785363f0875a1b74e27b85fd66c7600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000186919062000ea2565b66038d7ea4c680006200019a919062000fdf565b600755620001ba601460075462000be860201b6200259e1790919060201c565b600855620001da601460075462000be860201b6200259e1790919060201c565b60095561012c60105560006011556102bc60125561012c60135560646014556105786015556127106016557357c69c79f303f68d463c11d4dd828dd97c3f49e4601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073cc6ad4b4356c10e28da7847fc5b70dae7f7553b1601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506019601a556064601b5560c860205560646021556107086023556000602460006101000a81548160ff0219169083151502179055506207a120602d556001602e60006101000a81548160ff0219169083151502179055506107d060075462000318919062000e0f565b602f553480156200032857600080fd5b5060405162005a5938038062005a5983398181016040528101906200034e919062000d37565b33806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505083601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620004d257600080fd5b505afa158015620004e7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200050d919062000d0b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539683306040518363ffffffff1660e01b81526004016200054992919062000dc5565b602060405180830381600087803b1580156200056457600080fd5b505af115801562000579573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200059f919062000d0b565b601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600754600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166373b295c26040518163ffffffff1660e01b815260040160206040518083038186803b158015620006ed57600080fd5b505afa15801562000702573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000728919062000d0b565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080602b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001602560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000af68460075462000c0060201b60201c565b5062000b2d601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660075462000c0060201b60201c565b50600754600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60075460405162000bd6919062000df2565b60405180910390a35050505062001110565b6000818362000bf8919062000e0f565b905092915050565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405162000ce2919062000df2565b60405180910390a36001905092915050565b60008151905062000d0581620010f6565b92915050565b60006020828403121562000d1e57600080fd5b600062000d2e8482850162000cf4565b91505092915050565b6000806000806080858703121562000d4e57600080fd5b600062000d5e8782880162000cf4565b945050602062000d718782880162000cf4565b935050604062000d848782880162000cf4565b925050606062000d978782880162000cf4565b91505092959194509250565b62000dae8162001040565b82525050565b62000dbf8162001074565b82525050565b600060408201905062000ddc600083018562000da3565b62000deb602083018462000da3565b9392505050565b600060208201905062000e09600083018462000db4565b92915050565b600062000e1c8262001074565b915062000e298362001074565b92508262000e3c5762000e3b620010ba565b5b828204905092915050565b6000808291508390505b600185111562000e995780860481111562000e715762000e706200108b565b5b600185161562000e815780820291505b808102905062000e9185620010e9565b945062000e51565b94509492505050565b600062000eaf8262001074565b915062000ebc836200107e565b925062000eeb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000ef3565b905092915050565b60008262000f05576001905062000fd8565b8162000f15576000905062000fd8565b816001811462000f2e576002811462000f395762000f6f565b600191505062000fd8565b60ff84111562000f4e5762000f4d6200108b565b5b8360020a91508482111562000f685762000f676200108b565b5b5062000fd8565b5060208310610133831016604e8410600b841016171562000fa95782820a90508381111562000fa35762000fa26200108b565b5b62000fd8565b62000fb8848484600162000e47565b9250905081840481111562000fd25762000fd16200108b565b5b81810290505b9392505050565b600062000fec8262001074565b915062000ff98362001074565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200103557620010346200108b565b5b828202905092915050565b60006200104d8262001054565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008160011c9050919050565b620011018162001040565b81146200110d57600080fd5b50565b61493980620011206000396000f3fe60806040526004361061037a5760003560e01c806382247ec0116101d1578063ca33e64c11610102578063f0b37c04116100a0578063f708a64f1161006f578063f708a64f14610ce7578063f84ba65d14610d10578063f887ea4014610d39578063fe9fbb8014610d6457610381565b8063f0b37c0414610c2f578063f1f3bca314610c58578063f2fde38b14610c95578063f5cfec0a14610cbe57610381565b8063dd62ed3e116100dc578063dd62ed3e14610b73578063df20fd4914610bb0578063e91f214e14610bd9578063e96fada214610c0457610381565b8063ca33e64c14610ae0578063d51ed1c814610b0b578063d806d12f14610b4857610381565b8063a8aa1b311161016f578063b6a5d7de11610149578063b6a5d7de14610a36578063bf56b37114610a5f578063bfe1092814610a8a578063c6d2577d14610ab557610381565b8063a8aa1b31146109b7578063a9059cbb146109e2578063b210b06d14610a1f57610381565b806395d89b41116101ab57806395d89b411461090f5780639d1944f51461093a578063a4b45c0014610963578063a51af4c51461098c57610381565b806382247ec014610890578063893d20e8146108bb57806389ef69f6146108e657610381565b80632d48e896116102ab5780635d0044ca116102495780637088fb7f116102235780637088fb7f146107e657806370a08231146107fd57806373b295c21461083a5780637d1db4a51461086557610381565b80635d0044ca14610769578063658d4b7f146107925780636ddd1713146107bb57610381565b80633425c001116102855780633425c001146106af5780633bb8a8d4146106d8578063571ac8b0146107035780635c85974f1461074057610381565b80632d48e8961461061e5780632f54bf6e14610647578063313ce5671461068457610381565b80631161ae39116103185780632375ce40116102f25780632375ce401461055057806323b872dd14610579578063296020e7146105b65780632b112e49146105f357610381565b80631161ae39146104bf57806318160ddd146104fc578063201e79911461052757610381565b806304a66b481161035457806304a66b48146103f157806306fdde031461041a57806307c89fe814610445578063095ea7b31461048257610381565b806301339c21146103865780630445b6671461039d578063048c7baf146103c857610381565b3661038157005b600080fd5b34801561039257600080fd5b5061039b610da1565b005b3480156103a957600080fd5b506103b2610e3e565b6040516103bf919061441e565b60405180910390f35b3480156103d457600080fd5b506103ef60048036038101906103ea9190613dd8565b610e44565b005b3480156103fd57600080fd5b5061041860048036038101906104139190613f7a565b610ed0565b005b34801561042657600080fd5b5061042f610f9b565b60405161043c919061435c565b60405180910390f35b34801561045157600080fd5b5061046c60048036038101906104679190613c1e565b610fd8565b60405161047991906142bf565b60405180910390f35b34801561048e57600080fd5b506104a960048036038101906104a49190613d37565b611076565b6040516104b691906142bf565b60405180910390f35b3480156104cb57600080fd5b506104e660048036038101906104e19190613ea0565b611168565b6040516104f391906142bf565b60405180910390f35b34801561050857600080fd5b5061051161117d565b60405161051e919061441e565b60405180910390f35b34801561053357600080fd5b5061054e60048036038101906105499190613ea0565b611187565b005b34801561055c57600080fd5b5061057760048036038101906105729190613edc565b6111e1565b005b34801561058557600080fd5b506105a0600480360381019061059b9190613cac565b611267565b6040516105ad91906142bf565b60405180910390f35b3480156105c257600080fd5b506105dd60048036038101906105d89190613c1e565b611449565b6040516105ea91906142bf565b60405180910390f35b3480156105ff57600080fd5b50610608611469565b604051610615919061441e565b60405180910390f35b34801561062a57600080fd5b5061064560048036038101906106409190613ea0565b6114eb565b005b34801561065357600080fd5b5061066e60048036038101906106699190613c1e565b6115c6565b60405161067b91906142bf565b60405180910390f35b34801561069057600080fd5b5061069961161f565b6040516106a691906144bc565b60405180910390f35b3480156106bb57600080fd5b506106d660048036038101906106d19190613c1e565b611628565b005b3480156106e457600080fd5b506106ed6116cb565b6040516106fa91906142bf565b60405180910390f35b34801561070f57600080fd5b5061072a60048036038101906107259190613c1e565b6116de565b60405161073791906142bf565b60405180910390f35b34801561074c57600080fd5b5061076760048036038101906107629190613e3b565b6116f3565b005b34801561077557600080fd5b50610790600480360381019061078b9190613e3b565b611761565b005b34801561079e57600080fd5b506107b960048036038101906107b49190613cfb565b6117cf565b005b3480156107c757600080fd5b506107d0611872565b6040516107dd91906142bf565b60405180910390f35b3480156107f257600080fd5b506107fb611885565b005b34801561080957600080fd5b50610824600480360381019061081f9190613c1e565b61191c565b604051610831919061441e565b60405180910390f35b34801561084657600080fd5b5061084f611965565b60405161085c91906141d6565b60405180910390f35b34801561087157600080fd5b5061087a61198b565b604051610887919061441e565b60405180910390f35b34801561089c57600080fd5b506108a5611991565b6040516108b2919061441e565b60405180910390f35b3480156108c757600080fd5b506108d0611997565b6040516108dd91906141d6565b60405180910390f35b3480156108f257600080fd5b5061090d60048036038101906109089190613c1e565b6119c0565b005b34801561091b57600080fd5b50610924611a63565b604051610931919061435c565b60405180910390f35b34801561094657600080fd5b50610961600480360381019061095c9190613e3b565b611aa0565b005b34801561096f57600080fd5b5061098a60048036038101906109859190613c70565b611b01565b005b34801561099857600080fd5b506109a1611bcf565b6040516109ae91906141d6565b60405180910390f35b3480156109c357600080fd5b506109cc611bf5565b6040516109d991906141d6565b60405180910390f35b3480156109ee57600080fd5b50610a096004803603810190610a049190613d37565b611c1b565b604051610a1691906142bf565b60405180910390f35b348015610a2b57600080fd5b50610a34611c30565b005b348015610a4257600080fd5b50610a5d6004803603810190610a589190613c1e565b611c82565b005b348015610a6b57600080fd5b50610a74611d24565b604051610a81919061441e565b60405180910390f35b348015610a9657600080fd5b50610a9f611d2a565b604051610aac91906142f5565b60405180910390f35b348015610ac157600080fd5b50610aca611d50565b604051610ad7919061441e565b60405180910390f35b348015610aec57600080fd5b50610af5611d56565b604051610b0291906141d6565b60405180910390f35b348015610b1757600080fd5b50610b326004803603810190610b2d9190613e3b565b611d7c565b604051610b3f919061441e565b60405180910390f35b348015610b5457600080fd5b50610b5d611dee565b604051610b6a919061441e565b60405180910390f35b348015610b7f57600080fd5b50610b9a6004803603810190610b959190613c70565b611df8565b604051610ba7919061441e565b60405180910390f35b348015610bbc57600080fd5b50610bd76004803603810190610bd29190613d9c565b611e7f565b005b348015610be557600080fd5b50610bee611eec565b604051610bfb919061441e565b60405180910390f35b348015610c1057600080fd5b50610c19611f02565b604051610c2691906141d6565b60405180910390f35b348015610c3b57600080fd5b50610c566004803603810190610c519190613c1e565b611f28565b005b348015610c6457600080fd5b50610c7f6004803603810190610c7a9190613d73565b611fcb565b604051610c8c919061441e565b60405180910390f35b348015610ca157600080fd5b50610cbc6004803603810190610cb79190613c47565b612007565b005b348015610cca57600080fd5b50610ce56004803603810190610ce09190613e64565b612120565b005b348015610cf357600080fd5b50610d0e6004803603810190610d099190613cfb565b6121df565b005b348015610d1c57600080fd5b50610d376004803603810190610d329190613cfb565b61247f565b005b348015610d4557600080fd5b50610d4e612522565b604051610d5b91906142da565b60405180910390f35b348015610d7057600080fd5b50610d8b6004803603810190610d869190613c1e565b612548565b604051610d9891906142bf565b60405180910390f35b610daa33612548565b610de9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de0906143fe565b60405180910390fd5b6000601e5414610e2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e25906143be565b60405180910390fd5b43601e8190555042601f81905550565b602f5481565b610e4d33612548565b610e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e83906143fe565b60405180910390fd5b83602460006101000a81548160ff021916908315150217905550826026819055506000602781905550816028819055508060298190555043602a8190555050505050565b610ed933612548565b610f18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0f906143fe565b60405180910390fd5b84601081905550836011819055508260128190555081601381905550610f6b82610f5d85610f4f888a6125b490919063ffffffff16565b6125b490919063ffffffff16565b6125b490919063ffffffff16565b601581905550806016819055506004601654610f879190614582565b60155410610f9457600080fd5b5050505050565b60606040518060400160405280600a81526020017f4172636164652050617900000000000000000000000000000000000000000000815250905090565b6000610fe3336115c6565b611022576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611019906143de565b60405180910390fd5b600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611156919061441e565b60405180910390a36001905092915050565b60008261117483611d7c565b11905092915050565b6000600754905090565b61119033612548565b6111cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c6906143fe565b60405180910390fd5b81601a8190555080601b819055505050565b6111ea33612548565b611229576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611220906143fe565b60405180910390fd5b600282846112379190614582565b1115801561124457508183115b61124d57600080fd5b826020819055508160218190555080602381905550505050565b6000600754600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611435576113b4826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ca9092919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61144084848461261f565b90509392505050565b600f6020528060005260406000206000915054906101000a900460ff1681565b60006114e6611499600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661191c565b6114d86114c7600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661191c565b600754612ce590919063ffffffff16565b612ce590919063ffffffff16565b905090565b6114f433612548565b611533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152a906143fe565b60405180910390fd5b602b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b8152600401611590929190614493565b600060405180830381600087803b1580156115aa57600080fd5b505af11580156115be573d6000803e3d6000fd5b505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b611631336115c6565b611670576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611667906143de565b60405180910390fd5b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602460009054906101000a900460ff1681565b60006116ec82600754611076565b9050919050565b6116fc33612548565b61173b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611732906143fe565b60405180910390fd5b6103e860075461174b9190614582565b81101561175757600080fd5b8060088190555050565b61176a33612548565b6117a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a0906143fe565b60405180910390fd5b6103e86007546117b99190614582565b8110156117c557600080fd5b8060098190555050565b6117d833612548565b611817576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180e906143fe565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602e60009054906101000a900460ff1681565b61188e336115c6565b6118cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c4906143de565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611918573d6000803e3d6000fd5b5050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6119c9336115c6565b611a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ff906143de565b60405180910390fd5b6001600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60606040518060400160405280600681526020017f4152435041590000000000000000000000000000000000000000000000000000815250905090565b611aa933612548565b611ae8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adf906143fe565b60405180910390fd5b620b71b08110611af757600080fd5b80602d8190555050565b611b0a33612548565b611b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b40906143fe565b60405180910390fd5b81601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611c2833848461261f565b905092915050565b611c3933612548565b611c78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6f906143fe565b60405180910390fd5b6000602281905550565b611c8b336115c6565b611cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc1906143de565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601e5481565b602b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601f5481565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611de7611d89611469565b611dd9611dca6002611dbc601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661191c565b612cfb90919063ffffffff16565b85612cfb90919063ffffffff16565b61259e90919063ffffffff16565b9050919050565b6000601554905090565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611e8833612548565b611ec7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebe906143fe565b60405180910390fd5b81602e60006101000a81548160ff02191690831515021790555080602f819055505050565b6fffffffffffffffffffffffffffffffff801681565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611f31336115c6565b611f70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f67906143de565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000436001601e54611fdd919061452c565b10611fec576015549050612002565b8115611ffc576015549050612002565b60155490505b919050565b612010336115c6565b61204f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612046906143de565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861638160405161211591906141f1565b60405180910390a150565b61212933612548565b612168576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215f906143fe565b60405180910390fd5b61219482600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612d11565b80156121db57426022819055507f39d2389ec5c1fa77b2c0d374bc61b6d7bd97ccba280fcdeb4e9c7644898d7c3a6023546040516121d2919061441e565b60405180910390a15b5050565b6121e833612548565b612227576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221e906143fe565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156122b15750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6122ba57600080fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156123ac57602b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b815260040161237592919061420c565b600060405180830381600087803b15801561238f57600080fd5b505af11580156123a3573d6000803e3d6000fd5b5050505061247b565b602b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612448929190614235565b600060405180830381600087803b15801561246257600080fd5b505af1158015612476573d6000803e3d6000fd5b505050505b5050565b61248833612548565b6124c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124be906143fe565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600081836125ac9190614582565b905092915050565b600081836125c2919061452c565b905092915050565b6000838311158290612612576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612609919061435c565b60405180910390fd5b5082840390509392505050565b6000603060009054906101000a900460ff161561264857612641848484612f61565b9050612cde565b60007360ae616a2155ee3d9a68541ba4544862310933d490506000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806126ea57508173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b90506126f686856130cf565b8015801561274e5750600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127e25760095484600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127a1919061452c565b106127e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d89061439e565b60405180910390fd5b5b8015612815576127f061316c565b156127fe576127fd613243565b5b612806613894565b1561281457612813613947565b5b5b61289e846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ca9092919063ffffffff16565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006128ec876139c3565b6128f65784612902565b612901878787613a1a565b5b905061295681600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125b490919063ffffffff16565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612abc57602b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9688600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612a86929190614235565b600060405180830381600087803b158015612aa057600080fd5b505af1925050508015612ab1575060015b612aba57612abb565b5b5b600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612bdf57602b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9687600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612ba9929190614235565b600060405180830381600087803b158015612bc357600080fd5b505af1925050508015612bd4575060015b612bdd57612bde565b5b5b602b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c479602d546040518263ffffffff1660e01b8152600401612c3c919061441e565b600060405180830381600087803b158015612c5657600080fd5b505af1925050508015612c67575060015b612c7057612c71565b5b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612cce919061441e565b60405180910390a3600193505050505b9392505050565b60008183612cf3919061460d565b905092915050565b60008183612d0991906145b3565b905092915050565b6001603060006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612d6f577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015612d9d5781602001602082028036833780820191505090505b509050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600081518110612dfd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250503081600181518110612e72577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c57559dd8460008486426040518663ffffffff1660e01b8152600401612f0f9493929190614310565b6000604051808303818588803b158015612f2857600080fd5b505af1158015612f3c573d6000803e3d6000fd5b5050505050506000603060006101000a81548160ff0219169083151502179055505050565b6000612fec826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ca9092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061308182600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125b490919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600190509392505050565b600854811115806131295750600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613168576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161315f9061437e565b60405180910390fd5b5050565b6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156131d95750603060009054906101000a900460ff16155b80156131f15750602e60009054906101000a900460ff165b801561323e5750602f54600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001603060006101000a81548160ff021916908315150217905550600061326e601a54601b54611168565b61327a5760105461327d565b60005b905060006132bd60026132af6015546132a186602f54612cfb90919063ffffffff16565b61259e90919063ffffffff16565b61259e90919063ffffffff16565b905060006132d682602f54612ce590919063ffffffff16565b90506000600267ffffffffffffffff81111561331b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156133495781602001602082028036833780820191505090505b5090503081600081518110613387577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061341e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663762b15628460008530426040518663ffffffff1660e01b81526004016134c1959493929190614439565b600060405180830381600087803b1580156134db57600080fd5b505af11580156134ef573d6000803e3d6000fd5b5050505060006135088247612ce590919063ffffffff16565b9050600061353461352360028961259e90919063ffffffff16565b601554612ce590919063ffffffff16565b905060006135706002613562846135548c88612cfb90919063ffffffff16565b61259e90919063ffffffff16565b61259e90919063ffffffff16565b9050600061359b8361358d60125487612cfb90919063ffffffff16565b61259e90919063ffffffff16565b905060006135c6846135b860135488612cfb90919063ffffffff16565b61259e90919063ffffffff16565b905060006135f1856135e360145489612cfb90919063ffffffff16565b61259e90919063ffffffff16565b9050602b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b15801561365d57600080fd5b505af19350505050801561366f575060015b61367857613679565b5b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156136e1573d6000803e3d6000fd5b50601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561374a573d6000803e3d6000fd5b5060008a111561386c57601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f91b3f7285308d600080601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016137dd9695949392919061425e565b6060604051808303818588803b1580156137f657600080fd5b505af115801561380a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061382f9190613f2b565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506848b604051613863929190614493565b60405180910390a15b50505050505050505050506000603060006101000a81548160ff021916908315150217905550565b6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156139015750603060009054906101000a900460ff16155b80156139195750602460009054906101000a900460ff165b8015613934575043602954602a54613931919061452c565b11155b801561394257506028544710155b905090565b613975602854600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612d11565b43602a819055506139936028546027546125b490919063ffffffff16565b60278190555060265460275411156139c1576000602460006101000a81548160ff0219169083151502179055505b565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080613a9c601654613a8e613a7f601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611fcb565b86612cfb90919063ffffffff16565b61259e90919063ffffffff16565b9050613af081600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125b490919063ffffffff16565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613b90919061441e565b60405180910390a3613bab8184612ce590919063ffffffff16565b9150509392505050565b600081359050613bc4816148a7565b92915050565b600081359050613bd9816148be565b92915050565b600081359050613bee816148d5565b92915050565b600081359050613c03816148ec565b92915050565b600081519050613c18816148ec565b92915050565b600060208284031215613c3057600080fd5b6000613c3e84828501613bb5565b91505092915050565b600060208284031215613c5957600080fd5b6000613c6784828501613bca565b91505092915050565b60008060408385031215613c8357600080fd5b6000613c9185828601613bb5565b9250506020613ca285828601613bb5565b9150509250929050565b600080600060608486031215613cc157600080fd5b6000613ccf86828701613bb5565b9350506020613ce086828701613bb5565b9250506040613cf186828701613bf4565b9150509250925092565b60008060408385031215613d0e57600080fd5b6000613d1c85828601613bb5565b9250506020613d2d85828601613bdf565b9150509250929050565b60008060408385031215613d4a57600080fd5b6000613d5885828601613bb5565b9250506020613d6985828601613bf4565b9150509250929050565b600060208284031215613d8557600080fd5b6000613d9384828501613bdf565b91505092915050565b60008060408385031215613daf57600080fd5b6000613dbd85828601613bdf565b9250506020613dce85828601613bf4565b9150509250929050565b60008060008060808587031215613dee57600080fd5b6000613dfc87828801613bdf565b9450506020613e0d87828801613bf4565b9350506040613e1e87828801613bf4565b9250506060613e2f87828801613bf4565b91505092959194509250565b600060208284031215613e4d57600080fd5b6000613e5b84828501613bf4565b91505092915050565b60008060408385031215613e7757600080fd5b6000613e8585828601613bf4565b9250506020613e9685828601613bdf565b9150509250929050565b60008060408385031215613eb357600080fd5b6000613ec185828601613bf4565b9250506020613ed285828601613bf4565b9150509250929050565b600080600060608486031215613ef157600080fd5b6000613eff86828701613bf4565b9350506020613f1086828701613bf4565b9250506040613f2186828701613bf4565b9150509250925092565b600080600060608486031215613f4057600080fd5b6000613f4e86828701613c09565b9350506020613f5f86828701613c09565b9250506040613f7086828701613c09565b9150509250925092565b600080600080600060a08688031215613f9257600080fd5b6000613fa088828901613bf4565b9550506020613fb188828901613bf4565b9450506040613fc288828901613bf4565b9350506060613fd388828901613bf4565b9250506080613fe488828901613bf4565b9150509295509295909350565b6000613ffd8383614018565b60208301905092915050565b614012816146a8565b82525050565b61402181614641565b82525050565b61403081614641565b82525050565b6000614041826144e7565b61404b818561450a565b9350614056836144d7565b8060005b8381101561408757815161406e8882613ff1565b9750614079836144fd565b92505060018101905061405a565b5085935050505092915050565b61409d81614665565b82525050565b6140ac816146ba565b82525050565b6140bb816146de565b82525050565b6140ca81614702565b82525050565b60006140db826144f2565b6140e5818561451b565b93506140f5818560208601614738565b6140fe816147c9565b840191505092915050565b600061411660118361451b565b9150614121826147da565b602082019050919050565b6000614139601d8361451b565b915061414482614803565b602082019050919050565b600061415c60148361451b565b91506141678261482c565b602082019050919050565b600061417f60068361451b565b915061418a82614855565b602082019050919050565b60006141a2600b8361451b565b91506141ad8261487e565b602082019050919050565b6141c181614691565b82525050565b6141d08161469b565b82525050565b60006020820190506141eb6000830184614027565b92915050565b60006020820190506142066000830184614009565b92915050565b60006040820190506142216000830185614027565b61422e60208301846140c1565b9392505050565b600060408201905061424a6000830185614027565b61425760208301846141b8565b9392505050565b600060c0820190506142736000830189614027565b61428060208301886141b8565b61428d60408301876140c1565b61429a60608301866140c1565b6142a76080830185614027565b6142b460a08301846141b8565b979650505050505050565b60006020820190506142d46000830184614094565b92915050565b60006020820190506142ef60008301846140a3565b92915050565b600060208201905061430a60008301846140b2565b92915050565b600060808201905061432560008301876140c1565b81810360208301526143378186614036565b90506143466040830185614027565b61435360608301846141b8565b95945050505050565b6000602082019050818103600083015261437681846140d0565b905092915050565b6000602082019050818103600083015261439781614109565b9050919050565b600060208201905081810360008301526143b78161412c565b9050919050565b600060208201905081810360008301526143d78161414f565b9050919050565b600060208201905081810360008301526143f781614172565b9050919050565b6000602082019050818103600083015261441781614195565b9050919050565b600060208201905061443360008301846141b8565b92915050565b600060a08201905061444e60008301886141b8565b61445b60208301876140c1565b818103604083015261446d8186614036565b905061447c6060830185614027565b61448960808301846141b8565b9695505050505050565b60006040820190506144a860008301856141b8565b6144b560208301846141b8565b9392505050565b60006020820190506144d160008301846141c7565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061453782614691565b915061454283614691565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156145775761457661476b565b5b828201905092915050565b600061458d82614691565b915061459883614691565b9250826145a8576145a761479a565b5b828204905092915050565b60006145be82614691565b91506145c983614691565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156146025761460161476b565b5b828202905092915050565b600061461882614691565b915061462383614691565b9250828210156146365761463561476b565b5b828203905092915050565b600061464c82614671565b9050919050565b600061465e82614671565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006146b382614714565b9050919050565b60006146c5826146cc565b9050919050565b60006146d782614671565b9050919050565b60006146e9826146f0565b9050919050565b60006146fb82614671565b9050919050565b600061470d82614691565b9050919050565b600061471f82614726565b9050919050565b600061473182614671565b9050919050565b60005b8381101561475657808201518184015260208101905061473b565b83811115614765576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f4d61782077616c6c657420686173206265656e20747269676765726564000000600082015250565b7f416c7265616479206c61756e6368656420626f69000000000000000000000000600082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b6148b081614641565b81146148bb57600080fd5b50565b6148c781614653565b81146148d257600080fd5b50565b6148de81614665565b81146148e957600080fd5b50565b6148f581614691565b811461490057600080fd5b5056fea26469706673582212203e8194ad3efedf5bfaa7e2cb117fa1e82d4a350e72e282e222b51caf277eee1464736f6c6343000804003300000000000000000000000060ae616a2155ee3d9a68541ba4544862310933d4000000000000000000000000fea4e3b776a7aaf6cfac5b2073027ca7c09f8bfa000000000000000000000000b31f66aa3c1e785363f0875a1b74e27b85fd66c70000000000000000000000002054df47d3cb4f51dd46009b9e5001c09f2e1a74