[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "epoch", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "totalSupply", "type": "uint256" } ], "name": "LogRebase", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" } ], "name": "MinterAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" } ], "name": "MinterRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" } ], "name": "OwnershipRenounced", "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": "RiskFreeValue", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "RiskFreeValueReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "Treasury", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "TreasuryReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "addMinter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner_", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "autoLiquidityReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "who", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "blacklist", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_addr", "type": "address" } ], "name": "checkFeeExempt", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "checkSwapThreshold", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amountPercentage", "type": "uint256" }, { "internalType": "address", "name": "adr", "type": "address" } ], "name": "clearStuckBalance", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_addr", "type": "address" } ], "name": "enableTransfer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "feeDenominator", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "initialDistributionFinished", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isMinter", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isNotInSwap", "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": [], "name": "isOwner", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "liquidityFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "manualSync", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pairContract", "outputs": [ { "internalType": "contract InterfaceLP", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "epoch", "type": "uint256" }, { "internalType": "int256", "name": "supplyDelta", "type": "int256" } ], "name": "rebase", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "removeMinter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceMinter", "outputs": [], "stateMutability": "nonpayable", "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": "router", "outputs": [ { "internalType": "contract IDEXRouter", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sellFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "recipients", "type": "address[]" }, { "internalType": "uint256[]", "name": "values", "type": "uint256[]" } ], "name": "sendPresale", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_addr", "type": "address" } ], "name": "setFeeExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_autoLiquidityReceiver", "type": "address" }, { "internalType": "address", "name": "_TreasuryReceiver", "type": "address" }, { "internalType": "address", "name": "_RiskFreeValueReceiver", "type": "address" } ], "name": "setFeeReceivers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_liquidityFee", "type": "uint256" }, { "internalType": "uint256", "name": "_RiskFreeValue", "type": "uint256" }, { "internalType": "uint256", "name": "_Treasury", "type": "uint256" }, { "internalType": "uint256", "name": "_sellFee", "type": "uint256" }, { "internalType": "uint256", "name": "_feeDenominator", "type": "uint256" } ], "name": "setFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "setInitialDistributionFinished", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "setLP", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" }, { "internalType": "uint256", "name": "_num", "type": "uint256" }, { "internalType": "uint256", "name": "_denom", "type": "uint256" } ], "name": "setSwapBackSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "target", "type": "uint256" }, { "internalType": "uint256", "name": "accuracy", "type": "uint256" } ], "name": "setTargetLiquidity", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_user", "type": "address" }, { "internalType": "bool", "name": "_flag", "type": "bool" } ], "name": "updateBlacklist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60806040526004600755600260085560086009556004600a55620000516009546200003d6008546007546200099460201b620030bd1790919060201c565b6200099460201b620030bd1790919060201c565b600b556064600c5561dead600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550603260125560646013556001601560146101000a81548160ff021916908315150217905550612710600a6012600a0a63ee6b280002600019816200011e57fe5b066000190302816200012c57fe5b046016553480156200013d57600080fd5b506040518060400160405280600381526020017f52657800000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f526578000000000000000000000000000000000000000000000000000000000081525060128260009080519060200190620001c492919062000e5a565b508160019080519060200190620001dd92919062000e5a565b5080600260006101000a81548160ff021916908360ff16021790555050505033600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200024e3362000a1d60201b60201c565b731b02da8cb0d097eb8d57a175b88c7d8b47997506601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200030c57600080fd5b505afa15801562000321573d6000803e3d6000fd5b505050506040513d60208110156200033857600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c65396601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003cd57600080fd5b505afa158015620003e2573d6000803e3d6000fd5b505050506040513d6020811015620003f957600080fd5b8101908080519060200190929190505050306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156200047557600080fd5b505af11580156200048a573d6000803e3d6000fd5b505050506040513d6020811015620004a157600080fd5b8101908080519060200190929190505050601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073243a02892c573a02505fc038e2e30a83f82c01c8600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736a63c17c1fe3c548fd4f444026f4887e449b4549601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733a20e5ddb671c3299e992f170fc3da5d7c119293601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff601b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a0a63ee6b2800026018819055506012600a0a63ee6b280002600019816200073e57fe5b0660001903601a6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620007de6018546012600a0a63ee6b28000260001981620007c557fe5b066000190362000a7e60201b620031451790919060201c565b6019819055506000600460146101000a81548160ff021916908315150217905550600160066000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000904601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000ad060201b60201c565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6018546040518082815260200191505060405180910390a362000f10565b60008082840190508381101562000a13576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b62000a3881600362000bcb60201b6200318f1790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b600062000ac883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000caf60201b60201c565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141562000b0b57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b62000bdd828262000d7a60201b60201c565b1562000c51576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000808311829062000d5f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101562000d2357808201518184015260208101905062000d06565b50505050905090810190601f16801562000d515780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858162000d6c57fe5b049050809150509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000e03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806200570f6022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928262000e92576000855562000ede565b82601f1062000ead57805160ff191683800117855562000ede565b8280016001018555821562000ede579182015b8281111562000edd57825182559160200191906001019062000ec0565b5b50905062000eed919062000ef1565b5090565b5b8082111562000f0c57600081600090555060010162000ef2565b5090565b6147ef8062000f206000396000f3fe6080604052600436106103545760003560e01c80637a43e23f116101c6578063bda5c8bb116100f7578063d5938aac11610095578063dd62ed3e1161006f578063dd62ed3e146112d0578063f2fde38b14611355578063f887ea40146113a6578063f9f92be4146113e75761035b565b8063d5938aac146111ad578063d7ac6585146111fe578063d7c010321461123f5761035b565b8063d1fce264116100d1578063d1fce26414610fef578063d37e219d1461101c578063d4399790146110f7578063d51ed1c81461115e5761035b565b8063bda5c8bb14610f32578063ca33e64c14610f5d578063d088935814610f9e5761035b565b806398118cb411610164578063a457c2d71161013e578063a457c2d714610da8578063a8aa1b3114610e19578063a9059cbb14610e5a578063aa271e1a14610ecb5761035b565b806398118cb414610d15578063983b2d5614610d405780639865027514610d915761035b565b80638da5cb5b116101a05780638da5cb5b14610bba5780638f32d59b14610bfb5780639155e08314610c2857806395d89b4114610c855761035b565b80637a43e23f14610af3578063800cee5114610b4c57806383b4ac6814610b8d5761035b565b80633092afd5116102a057806356a227f21161023e57806370a082311161021857806370a0823114610a0f578063715018a614610a74578063749796a514610a8b578063753d02a114610adc5761035b565b806356a227f21461095c5780636d351d1a146109b75780636ddd1713146109e25761035b565b8063395093511161027a578063395093511461082457806340c10f19146108955780634d709adf146108f0578063563df32f146109315761035b565b80633092afd514610734578063313ce5671461078557806333f3d628146107b35761035b565b80631df4ccfc1161030d5780632b112e49116102e75780632b112e49146106765780632b14ca56146106a15780632be6937d146106cc5780632f34d282146106e35761035b565b80631df4ccfc14610575578063201e7991146105a057806323b872dd146105e55761035b565b806304a66b481461036057806306fdde03146103c3578063095ea7b3146104535780631161ae39146104c4578063180b0d7e1461051f57806318160ddd1461054a5761035b565b3661035b57005b600080fd5b34801561036c57600080fd5b506103c1600480360360a081101561038357600080fd5b81019080803590602001909291908035906020019092919080359060200190929190803590602001909291908035906020019092919050505061144e565b005b3480156103cf57600080fd5b506103d86114d4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104185780820151818401526020810190506103fd565b50505050905090810190601f1680156104455780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561045f57600080fd5b506104ac6004803603604081101561047657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611576565b60405180821515815260200191505060405180910390f35b3480156104d057600080fd5b50610507600480360360408110156104e757600080fd5b8101908080359060200190929190803590602001909291905050506116e4565b60405180821515815260200191505060405180910390f35b34801561052b57600080fd5b506105346116f9565b6040518082815260200191505060405180910390f35b34801561055657600080fd5b5061055f6116ff565b6040518082815260200191505060405180910390f35b34801561058157600080fd5b5061058a611709565b6040518082815260200191505060405180910390f35b3480156105ac57600080fd5b506105e3600480360360408110156105c357600080fd5b81019080803590602001909291908035906020019092919050505061170f565b005b3480156105f157600080fd5b5061065e6004803603606081101561060857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611732565b60405180821515815260200191505060405180910390f35b34801561068257600080fd5b5061068b611971565b6040518082815260200191505060405180910390f35b3480156106ad57600080fd5b506106b6611a8c565b6040518082815260200191505060405180910390f35b3480156106d857600080fd5b506106e1611a92565b005b3480156106ef57600080fd5b506107326004803603602081101561070657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ac0565b005b34801561074057600080fd5b506107836004803603602081101561075757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b60565b005b34801561079157600080fd5b5061079a611b7d565b604051808260ff16815260200191505060405180910390f35b3480156107bf57600080fd5b5061080c600480360360408110156107d657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b94565b60405180821515815260200191505060405180910390f35b34801561083057600080fd5b5061087d6004803603604081101561084757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c5b565b60405180821515815260200191505060405180910390f35b3480156108a157600080fd5b506108ee600480360360408110156108b857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ed3565b005b3480156108fc57600080fd5b506109056120d5565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561093d57600080fd5b506109466120fb565b6040518082815260200191505060405180910390f35b34801561096857600080fd5b506109b56004803603604081101561097f57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612101565b005b3480156109c357600080fd5b506109cc61216f565b6040518082815260200191505060405180910390f35b3480156109ee57600080fd5b506109f761218d565b60405180821515815260200191505060405180910390f35b348015610a1b57600080fd5b50610a5e60048036036020811015610a3257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121a0565b6040518082815260200191505060405180910390f35b348015610a8057600080fd5b50610a896121fd565b005b348015610a9757600080fd5b50610ada60048036036020811015610aae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506122b7565b005b348015610ae857600080fd5b50610af1612323565b005b348015610aff57600080fd5b50610b3660048036036040811015610b1657600080fd5b8101908080359060200190929190803590602001909291905050506123a7565b6040518082815260200191505060405180910390f35b348015610b5857600080fd5b50610b61612608565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b9957600080fd5b50610ba261262e565b60405180821515815260200191505060405180910390f35b348015610bc657600080fd5b50610bcf612646565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c0757600080fd5b50610c10612670565b60405180821515815260200191505060405180910390f35b348015610c3457600080fd5b50610c8360048036036040811015610c4b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506126c8565b005b348015610c9157600080fd5b50610c9a612734565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610cda578082015181840152602081019050610cbf565b50505050905090810190601f168015610d075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610d2157600080fd5b50610d2a6127d6565b6040518082815260200191505060405180910390f35b348015610d4c57600080fd5b50610d8f60048036036020811015610d6357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127dc565b005b348015610d9d57600080fd5b50610da66127f9565b005b348015610db457600080fd5b50610e0160048036036040811015610dcb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612804565b60405180821515815260200191505060405180910390f35b348015610e2557600080fd5b50610e2e612b11565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610e6657600080fd5b50610eb360048036036040811015610e7d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612b37565b60405180821515815260200191505060405180910390f35b348015610ed757600080fd5b50610f1a60048036036020811015610eee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c07565b60405180821515815260200191505060405180910390f35b348015610f3e57600080fd5b50610f47612c24565b6040518082815260200191505060405180910390f35b348015610f6957600080fd5b50610f72612c2a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610faa57600080fd5b50610fed60048036036060811015610fc157600080fd5b810190808035151590602001909291908035906020019092919080359060200190929190505050612c50565b005b348015610ffb57600080fd5b50611004612cc4565b60405180821515815260200191505060405180910390f35b34801561102857600080fd5b506110f56004803603604081101561103f57600080fd5b810190808035906020019064010000000081111561105c57600080fd5b82018360208201111561106e57600080fd5b8035906020019184602083028401116401000000008311171561109057600080fd5b9091929391929390803590602001906401000000008111156110b157600080fd5b8201836020820111156110c357600080fd5b803590602001918460208302840111640100000000831117156110e557600080fd5b9091929391929390505050612cd7565b005b34801561110357600080fd5b506111466004803603602081101561111a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d50565b60405180821515815260200191505060405180910390f35b34801561116a57600080fd5b506111976004803603602081101561118157600080fd5b8101908080359060200190929190505050612da6565b6040518082815260200191505060405180910390f35b3480156111b957600080fd5b506111fc600480360360208110156111d057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e68565b005b34801561120a57600080fd5b50611213612ed4565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561124b57600080fd5b506112ce6004803603606081101561126257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612efa565b005b3480156112dc57600080fd5b5061133f600480360360408110156112f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612fd3565b6040518082815260200191505060405180910390f35b34801561136157600080fd5b506113a46004803603602081101561137857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061305a565b005b3480156113b257600080fd5b506113bb613077565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156113f357600080fd5b506114366004803603602081101561140a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061309d565b60405180821515815260200191505060405180910390f35b611456612670565b61145f57600080fd5b84600781905550836009819055508260088190555081600a819055506114a66009546114986008546007546130bd90919063ffffffff16565b6130bd90919063ffffffff16565b600b8190555080600c819055506004600c54816114bf57fe5b04600b54106114cd57600080fd5b5050505050565b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561156c5780601f106115415761010080835404028352916020019161156c565b820191906000526020600020905b81548152906001019060200180831161154f57829003601f168201915b5050505050905090565b6000600460149054906101000a900460ff16806115975750611596612670565b5b806115eb5750600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6115f457600080fd5b81601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000826116f083612da6565b11905092915050565b600c5481565b6000601854905090565b600b5481565b611717612670565b61172057600080fd5b81601281905550806013819055505050565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561176f57600080fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff601b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611959576118d8836040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250601b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461326a9092919063ffffffff16565b601b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61196485858561332a565b5060019150509392505050565b6000611a87601954611a79601a6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a6b601a6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546012600a0a63ee6b28000260001981611a5857fe5b066000190361366d90919063ffffffff16565b61366d90919063ffffffff16565b61314590919063ffffffff16565b905090565b600a5481565b611a9a612670565b611aa357600080fd5b6001600460146101000a81548160ff021916908315150217905550565b611ac8612670565b611ad157600080fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90505050565b611b68612670565b611b7157600080fd5b611b7a816136b7565b50565b6000600260009054906101000a900460ff16905090565b6000611b9e612670565b611ba757600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611c1857600080fd5b505af1158015611c2c573d6000803e3d6000fd5b505050506040513d6020811015611c4257600080fd5b8101908080519060200190929190505050905092915050565b6000600460149054906101000a900460ff1680611c7c5750611c7b612670565b5b80611cd05750600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611cd957600080fd5b611d6882601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130bd90919063ffffffff16565b601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b611edc33612c07565b611f31576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806147266030913960400191505060405180910390fd5b611f46816018546130bd90919063ffffffff16565b6018819055506000196fffffffffffffffffffffffffffffffff166018541115611f86576000196fffffffffffffffffffffffffffffffff166018819055505b611fb46018546012600a0a63ee6b28000260001981611fa157fe5b066000190361314590919063ffffffff16565b601981905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561202457600080fd5b505af1158015612038573d6000803e3d6000fd5b5050505061208e81601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130bd90919063ffffffff16565b601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b612109612670565b61211257600080fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff166108fc60648584028161213d57fe5b049081150290604051600060405180830381858888f19350505050158015612169573d6000803e3d6000fd5b50505050565b600061218860195460165461314590919063ffffffff16565b905090565b601560149054906101000a900460ff1681565b60006121f6601954601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314590919063ffffffff16565b9050919050565b612205612670565b61220e57600080fd5b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6122bf612670565b6122c857600080fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561238d57600080fd5b505af11580156123a1573d6000803e3d6000fd5b50505050565b60006123b1612670565b6123ba57600080fd5b601760009054906101000a900460ff161561243d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f54727920616761696e000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600082141561248a57827f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f26018546040518082815260200191505060405180910390a26018549050612602565b60008212156124b6576124ab8260000360185461366d90919063ffffffff16565b6018819055506124d2565b6124cb826018546130bd90919063ffffffff16565b6018819055505b6000196fffffffffffffffffffffffffffffffff16601854111561250c576000196fffffffffffffffffffffffffffffffff166018819055505b61253a6018546012600a0a63ee6b2800026000198161252757fe5b066000190361314590919063ffffffff16565b601981905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156125aa57600080fd5b505af11580156125be573d6000803e3d6000fd5b50505050827f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f26018546040518082815260200191505060405180910390a260185490505b92915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601760009054906101000a900460ff1615905090565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6126d0612670565b6126d957600080fd5b80601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b606060018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127cc5780601f106127a1576101008083540402835291602001916127cc565b820191906000526020600020905b8154815290600101906020018083116127af57829003601f168201915b5050505050905090565b60075481565b6127e4612670565b6127ed57600080fd5b6127f681613711565b50565b612802336136b7565b565b6000600460149054906101000a900460ff16806128255750612824612670565b5b806128795750600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61288257600080fd5b6000601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808310612991576000601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a25565b6129a4838261366d90919063ffffffff16565b601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612b7457600080fd5b600460149054906101000a900460ff1680612b935750612b92612670565b5b80612be75750600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612bf057600080fd5b612bfb33858561332a565b50600191505092915050565b6000612c1d82600361376b90919063ffffffff16565b9050919050565b60095481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612c58612670565b612c6157600080fd5b82601560146101000a81548160ff021916908315150217905550612cb982612cab836012600a0a63ee6b28000260001981612c9857fe5b066000190361314590919063ffffffff16565b61384990919063ffffffff16565b601681905550505050565b600460149054906101000a900460ff1681565b612cdf612670565b612ce857600080fd5b60005b84849050811015612d4957612d3b33868684818110612d0657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16858585818110612d2f57fe5b9050602002013561332a565b508080600101915050612ceb565b5050505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080612e1f601954601a6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314590919063ffffffff16565b9050612e60612e2c611971565b612e52612e4360028561384990919063ffffffff16565b8661384990919063ffffffff16565b61314590919063ffffffff16565b915050919050565b612e70612670565b612e7957600080fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612f02612670565b612f0b57600080fd5b82600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b613062612670565b61306b57600080fd5b613074816138cf565b50565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c6020528060005260406000206000915054906101000a900460ff1681565b60008082840190508381101561313b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600061318783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506139c9565b905092915050565b613199828261376b565b1561320c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000838311158290613317576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156132dc5780820151818401526020810190506132c1565b50505050905090810190601f1680156133095780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000601c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156133d05750601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b613442576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f696e5f626c61636b6c697374000000000000000000000000000000000000000081525060200191505060405180910390fd5b601760009054906101000a900460ff161561346957613462848484613a8f565b9050613666565b60006134806019548461384990919063ffffffff16565b905061348a613bdf565b1561349857613497613cb6565b5b6134ea81601a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461366d90919063ffffffff16565b601a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006135398686614392565b613543578161354f565b61354e86868461449b565b5b90506135a381601a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130bd90919063ffffffff16565b601a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61364a6019548561314590919063ffffffff16565b6040518082815260200191505060405180910390a36001925050505b9392505050565b60006136af83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061326a565b905092915050565b6136cb81600361466890919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b61372581600361318f90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156137f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806147986022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60008083141561385c57600090506138c9565b600082840290508284828161386d57fe5b04146138c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806147776021913960400191505060405180910390fd5b809150505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561390957600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008083118290613a75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613a3a578082015181840152602081019050613a1f565b50505050905090810190601f168015613a675780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613a8157fe5b049050809150509392505050565b600080613aa76019548461384990919063ffffffff16565b9050613afb81601a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461366d90919063ffffffff16565b601a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613b9081601a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130bd90919063ffffffff16565b601a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019150509392505050565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015613c4c5750601760009054906101000a900460ff16155b8015613c645750601560149054906101000a900460ff165b8015613cb15750601654601a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601760006101000a81548160ff0219169083151502179055506000613ce16012546013546116e4565b613ced57600754613cf0565b60005b90506000613d48601954601a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314590919063ffffffff16565b90506000613d866002613d78600b54613d6a878761384990919063ffffffff16565b61314590919063ffffffff16565b61314590919063ffffffff16565b90506000613d9d828461366d90919063ffffffff16565b90506000600267ffffffffffffffff81118015613db957600080fd5b50604051908082528060200260200182016040528015613de85781602001602082028036833780820191505090505b5090503081600081518110613df957fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015613e9b57600080fd5b505afa158015613eaf573d6000803e3d6000fd5b505050506040513d6020811015613ec557600080fd5b810190808051906020019092919050505081600181518110613ee357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015613fe6578082015181840152602081019050613fcb565b505050509050019650505050505050600060405180830381600087803b15801561400f57600080fd5b505af1158015614023573d6000803e3d6000fd5b50505050600061403c824761366d90919063ffffffff16565b9050600061406861405760028a61314590919063ffffffff16565b600b5461366d90919063ffffffff16565b905060006140a46002614096846140888d8861384990919063ffffffff16565b61314590919063ffffffff16565b61314590919063ffffffff16565b905060006140cf836140c16009548761384990919063ffffffff16565b61314590919063ffffffff16565b905060006140fa846140ec6008548861384990919063ffffffff16565b61314590919063ffffffff16565b90506000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051806000019050600060405180830381858888f193505050503d8060008114614183576040519150601f19603f3d011682016040523d82523d6000602084013e614188565b606091505b50509050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d8060008114614211576040519150601f19603f3d011682016040523d82523d6000602084013e614216565b606091505b5050809150506000905060008a111561436957601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71985308d600080600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b15801561431557600080fd5b505af1158015614329573d6000803e3d6000fd5b50505050506040513d606081101561434057600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050505b5050505050505050505050506000601760006101000a81548160ff021916908315150217905550565b60008273ffffffffffffffffffffffffffffffffffffffff16601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061443d57508173ffffffffffffffffffffffffffffffffffffffff16601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80156144935750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b600080600b549050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156145115761450e600a54826130bd90919063ffffffff16565b90505b600061453a600c5461452c848761384990919063ffffffff16565b61314590919063ffffffff16565b905061458e81601a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130bd90919063ffffffff16565b601a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6146356019548561314590919063ffffffff16565b6040518082815260200191505060405180910390a361465d818561366d90919063ffffffff16565b925050509392505050565b614672828261376b565b6146c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806147566021913960400191505060405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505056fe4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a2646970667358221220a1004d55368f82d24a4bd10cbcbd06a37df9dd69e9e6380003145c3ca669228264736f6c63430007060033526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373