Loading
[ { "inputs": [ { "internalType": "uint256", "name": "_taxRate", "type": "uint256" }, { "internalType": "address", "name": "_taxCollectorAddress", "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": true, "internalType": "address", "name": "previousOperator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOperator", "type": "address" } ], "name": "OperatorTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "oldAddress", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newAddress", "type": "address" } ], "name": "TaxOfficeTransferred", "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": "INITIAL_GENESIS_POOL_DISTRIBUTION", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "autoCalculateTax", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "burnThreshold", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "disableAutoCalculateTax", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_genesisPool", "type": "address" } ], "name": "distributeReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "enableAutoCalculateTax", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "excludeAddress", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "excludedAddresses", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTaxTiersRatesCount", "outputs": [ { "internalType": "uint256", "name": "count", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTaxTiersTwapsCount", "outputs": [ { "internalType": "uint256", "name": "count", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ghostOracle", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "contract IERC20", "name": "_token", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "address", "name": "_to", "type": "address" } ], "name": "governanceRecoverUnsupported", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "includeAddress", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "isAddressExcluded", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isOperator", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient_", "type": "address" }, { "internalType": "uint256", "name": "amount_", "type": "uint256" } ], "name": "mint", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "operator", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "rewardPoolDistributed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_burnThreshold", "type": "uint256" } ], "name": "setBurnThreshold", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_ghostOracle", "type": "address" } ], "name": "setGhostOracle", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_taxCollectorAddress", "type": "address" } ], "name": "setTaxCollectorAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_taxOffice", "type": "address" } ], "name": "setTaxOffice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_taxRate", "type": "uint256" } ], "name": "setTaxRate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "_index", "type": "uint8" }, { "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "setTaxTiersRate", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "_index", "type": "uint8" }, { "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "setTaxTiersTwap", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "taxCollectorAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "taxOffice", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "taxRate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "taxTiersRates", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "taxTiersTwaps", "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": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOperator_", "type": "address" } ], "name": "transferOperator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040526000600660146101000a81548160ff021916908315150217905550670f43fc2c04ee0000600a55604051806101c00160405280600067ffffffffffffffff1681526020016706f05b59d3b2000067ffffffffffffffff168152602001670853a0d2313c000067ffffffffffffffff1681526020016709b6e64a8ec6000067ffffffffffffffff168152602001670b1a2bc2ec50000067ffffffffffffffff168152602001670c7d713b49da000067ffffffffffffffff168152602001670d2f13f7789f000067ffffffffffffffff168152602001670de0b6b3a764000067ffffffffffffffff168152602001670e92596fd629000067ffffffffffffffff168152602001670f43fc2c04ee000067ffffffffffffffff1681526020016710a741a46278000067ffffffffffffffff16815260200167120a871cc002000067ffffffffffffffff16815260200167136dcc951d8c000067ffffffffffffffff1681526020016714d1120d7b16000067ffffffffffffffff16815250600c90600e6200019092919062000a8f565b50604051806101c001604052806107d061ffff16815260200161076c61ffff16815260200161070861ffff1681526020016106a461ffff16815260200161064061ffff1681526020016105dc61ffff1681526020016105dc61ffff1681526020016105dc61ffff1681526020016105dc61ffff16815260200161057861ffff16815260200161038461ffff16815260200161019061ffff16815260200160c861ffff168152602001606461ffff16815250600d90600e6200025392919062000aed565b503480156200026157600080fd5b50604051620050a7380380620050a7833981810160405260408110156200028757600080fd5b8101908080519060200190929190805190602001909291905050506040518060400160405280600b81526020017f47484f535420546f6b656e0000000000000000000000000000000000000000008152506040518060400160405280600581526020017f47484f535400000000000000000000000000000000000000000000000000000081525081600390805190602001906200032692919062000b45565b5080600490805190602001906200033f92919062000b45565b506012600560006101000a81548160ff021916908360ff1602179055505050600062000370620005d060201b60201c565b905080600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200041f620005d060201b60201c565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed60405160405180910390a3612710821062000554576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f74617820657175616c206f722062696767657220746f2031303025000000000081525060200191505060405180910390fd5b6200056530620005d860201b60201c565b506200058033670de0b6b3a7640000620007bc60201b60201c565b8160098190555080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062000beb565b600033905090565b6000620005ea6200099a60201b60201c565b806200064357503373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b6200069a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806200507b602c913960400191505060405180910390fd5b600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156200075b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f616464726573732063616e2774206265206578636c756465640000000000000081525060200191505060405180910390fd5b6001600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000860576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b620008746000838362000a0160201b60201c565b620008908160025462000a0660201b6200302e1790919060201c565b600281905550620008ee816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000a0660201b6200302e1790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16620009e5620005d060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b505050565b60008082840190508381101562000a85576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b82805482825590600052602060002090810192821562000ada579160200282015b8281111562000ad9578251829067ffffffffffffffff1690559160200191906001019062000ab0565b5b50905062000ae9919062000bcc565b5090565b82805482825590600052602060002090810192821562000b32579160200282015b8281111562000b31578251829061ffff1690559160200191906001019062000b0e565b5b50905062000b41919062000bcc565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000b8857805160ff191683800117855562000bb9565b8280016001018555821562000bb9579182015b8281111562000bb857825182559160200191906001019062000b9b565b5b50905062000bc8919062000bcc565b5090565b5b8082111562000be757600081600090555060010162000bcd565b5090565b6144808062000bfb6000396000f3fe608060405234801561001057600080fd5b50600436106102955760003560e01c806369356d4711610167578063a457c2d7116100ce578063cf011b2611610087578063cf011b2614610d29578063dd62ed3e14610d83578063ebca1bd914610dfb578063ee2a953514610e55578063f2fde38b14610e73578063ff87fc7c14610eb757610295565b8063a457c2d714610b90578063a6431bba14610bf4578063a9059cbb14610c12578063b87c5a4a14610c76578063c3bdf61314610cc7578063c6d69a3014610cfb57610295565b80638d3cc818116101205780638d3cc818146109fb5780638da5cb5b14610a1b57806393995d4b14610a4f57806395d89b4114610aa95780639662676c14610b2c5780639d6b5f2114610b4c57610295565b806369356d47146108b557806370a08231146108f9578063715018a614610951578063771a3a1d1461095b57806379cc6790146109795780637b093f79146109c757610295565b80633f07d76a1161020b5780634f6d38d0116101c45780634f6d38d01461075857806354575af414610776578063570ca735146107e45780635c29908d1461081857806365bbacd91461085a57806366206ce91461086457610295565b80633f07d76a1461060257806340c10f191461064657806342966c68146106aa57806342c6b4f1146106d85780634456eda21461071a5780634e20a02c1461073a57610295565b806323b872dd1161025d57806323b872dd1461042757806329605e77146104ab578063313ce567146104ef5780633758e6ce14610510578063395093511461056a5780633e5f13d4146105ce57610295565b806306fdde031461029a578063079358e31461031d578063092193ab14610361578063095ea7b3146103a557806318160ddd14610409575b600080fd5b6102a2610ec1565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102e25780820151818401526020810190506102c7565b50505050905090810190601f16801561030f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61035f6004803603602081101561033357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f63565b005b6103a36004803603602081101561037757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110e2565b005b6103f1600480360360408110156103bb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112e0565b60405180821515815260200191505060405180910390f35b6104116112fe565b6040518082815260200191505060405180910390f35b6104936004803603606081101561043d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611308565b60405180821515815260200191505060405180910390f35b6104ed600480360360208110156104c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611424565b005b6104f76114df565b604051808260ff16815260200191505060405180910390f35b6105526004803603602081101561052657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114f6565b60405180821515815260200191505060405180910390f35b6105b66004803603604081101561058057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116ce565b60405180821515815260200191505060405180910390f35b6105d6611781565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106446004803603602081101561061857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117a7565b005b6106926004803603604081101561065c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506119b3565b60405180821515815260200191505060405180910390f35b6106d6600480360360208110156106c057600080fd5b8101908080359060200190929190505050611a8c565b005b610704600480360360208110156106ee57600080fd5b8101908080359060200190929190505050611a98565b6040518082815260200191505060405180910390f35b610722611ab9565b60405180821515815260200191505060405180910390f35b610742611b18565b6040518082815260200191505060405180910390f35b610760611b26565b6040518082815260200191505060405180910390f35b6107e26004803603606081101561078c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b2c565b005b6107ec611c84565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108446004803603602081101561082e57600080fd5b8101908080359060200190929190505050611cae565b6040518082815260200191505060405180910390f35b610862611ccf565b005b61089d6004803603604081101561087a57600080fd5b81019080803560ff16906020019092919080359060200190929190505050611daf565b60405180821515815260200191505060405180910390f35b6108f7600480360360208110156108cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ffe565b005b61093b6004803603602081101561090f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061218b565b6040518082815260200191505060405180910390f35b6109596121d3565b005b610963612343565b6040518082815260200191505060405180910390f35b6109c56004803603604081101561098f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612349565b005b6109cf6123fd565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610a03612423565b60405180821515815260200191505060405180910390f35b610a23612436565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610a9160048036036020811015610a6557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612460565b60405180821515815260200191505060405180910390f35b610ab1612637565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610af1578082015181840152602081019050610ad6565b50505050905090810190601f168015610b1e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610b346126d9565b60405180821515815260200191505060405180910390f35b610b7860048036036020811015610b6257600080fd5b81019080803590602001909291905050506126ec565b60405180821515815260200191505060405180910390f35b610bdc60048036036040811015610ba657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506127bd565b60405180821515815260200191505060405180910390f35b610bfc61288a565b6040518082815260200191505060405180910390f35b610c5e60048036036040811015610c2857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612897565b60405180821515815260200191505060405180910390f35b610caf60048036036040811015610c8c57600080fd5b81019080803560ff169060200190929190803590602001909291905050506128b5565b60405180821515815260200191505060405180910390f35b610ccf612a7f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610d2760048036036020811015610d1157600080fd5b8101908080359060200190929190505050612aa5565b005b610d6b60048036036020811015610d3f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c4f565b60405180821515815260200191505060405180910390f35b610de560048036036040811015610d9957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c6f565b6040518082815260200191505060405180910390f35b610e3d60048036036020811015610e1157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612cf6565b60405180821515815260200191505060405180910390f35b610e5d612d4c565b6040518082815260200191505060405180910390f35b610eb560048036036020811015610e8957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d59565b005b610ebf612f4e565b005b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f595780601f10610f2e57610100808354040283529160200191610f59565b820191906000526020600020905b815481529060010190602001808311610f3c57829003601f168201915b5050505050905090565b610f6b611ab9565b80610fc357503373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b611018576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806143a8602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561109e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061433d6022913960400191505060405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611188576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806142ce6024913960400191505060405180910390fd5b600660149054906101000a900460ff161561120b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f6f6e6c792063616e2064697374726962757465206f6e6365000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156112ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f215f67656e65736973506f6f6c0000000000000000000000000000000000000081525060200191505060405180910390fd5b6001600660146101000a81548160ff0219169083151502179055506112dd8169054b40b1f852bda000006130b6565b50565b60006112f46112ed61327d565b8484613285565b6001905092915050565b6000600254905090565b600080600090506000600b60149054906101000a900460ff161561134e57600061133061347c565b905061133b816135bb565b9250600a5481101561134c57600191505b505b60008214806113a65750600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156113bb576113b686868661370a565b6113c9565b6113c7868686846139cb565b505b611417866113d561327d565b61141287604051806060016040528060288152602001614254602891396114038c6113fe61327d565b612c6f565b613a6c9092919063ffffffff16565b613285565b6001925050509392505050565b61142c61327d565b73ffffffffffffffffffffffffffffffffffffffff1661144a612436565b73ffffffffffffffffffffffffffffffffffffffff16146114d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6114dc81613b26565b50565b6000600560009054906101000a900460ff16905090565b6000611500611ab9565b8061155857503373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b6115ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806143a8602c913960400191505060405180910390fd5b600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561166d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f616464726573732063616e2774206265206578636c756465640000000000000081525060200191505060405180910390fd5b6001600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b60006117776116db61327d565b8461177285600160006116ec61327d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461302e90919063ffffffff16565b613285565b6001905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117af611ab9565b8061180757503373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b61185c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806143a8602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156118e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806141e06026913960400191505060405180910390fd5b7f75237613d1cfb394eb7979839ecbeacaca4592ef0cf96791979625803948a601600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a180600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60003373ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a5b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806142ce6024913960400191505060405180910390fd5b6000611a668461218b565b9050611a7284846130b6565b6000611a7d8561218b565b90508181119250505092915050565b611a9581613c4b565b50565b600c8181548110611aa557fe5b906000526020600020016000915090505481565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611afc61327d565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b69054b40b1f852bda0000081565b600a5481565b3373ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bd2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806142ce6024913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611c4357600080fd5b505af1158015611c57573d6000803e3d6000fd5b505050506040513d6020811015611c6d57600080fd5b810190808051906020019092919050505050505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d8181548110611cbb57fe5b906000526020600020016000915090505481565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f43616c6c6572206973206e6f742074686520746178206f66666963650000000081525060200191505060405180910390fd5b6000600b60146101000a81548160ff021916908315150217905550565b60003373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e74576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f43616c6c6572206973206e6f742074686520746178206f66666963650000000081525060200191505060405180910390fd5b60008360ff161015611eee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f496e6465782068617320746f20626520686967686572207468616e203000000081525060200191505060405180910390fd5b611ef661288a565b8360ff1610611f50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806142f2602a913960400191505060405180910390fd5b60008360ff161115611f8657600c6001840360ff1681548110611f6f57fe5b90600052602060002001548211611f8557600080fd5b5b611fa16001611f9361288a565b613c5f90919063ffffffff16565b8360ff161015611fd557600c6001840160ff1681548110611fbe57fe5b90600052602060002001548210611fd457600080fd5b5b81600c8460ff1681548110611fe657fe5b90600052602060002001819055506001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f43616c6c6572206973206e6f742074686520746178206f66666963650000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612147576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061427c602e913960400191505060405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6121db61327d565b73ffffffffffffffffffffffffffffffffffffffff166121f9612436565b73ffffffffffffffffffffffffffffffffffffffff1614612282576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60095481565b3373ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806142ce6024913960400191505060405180910390fd5b6123f98282613ce2565b5050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60149054906101000a900460ff1681565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600061246a611ab9565b806124c257503373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b612517576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806143a8602c913960400191505060405180910390fd5b600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166125d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f616464726573732063616e277420626520696e636c756465640000000000000081525060200191505060405180910390fd5b6000600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156126cf5780601f106126a4576101008083540402835291602001916126cf565b820191906000526020600020905b8154815290600101906020018083116126b257829003601f168201915b5050505050905090565b600660149054906101000a900460ff1681565b60003373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f43616c6c6572206973206e6f742074686520746178206f66666963650000000081525060200191505060405180910390fd5b81600a81905550919050565b60006128806127ca61327d565b8461287b856040518060600160405280602581526020016143f860259139600160006127f461327d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613a6c9092919063ffffffff16565b613285565b6001905092915050565b6000600c80549050905090565b60006128ab6128a461327d565b848461370a565b6001905092915050565b60003373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461297a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f43616c6c6572206973206e6f742074686520746178206f66666963650000000081525060200191505060405180910390fd5b60008360ff1610156129f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f496e6465782068617320746f20626520686967686572207468616e203000000081525060200191505060405180910390fd5b6129fc612d4c565b8360ff1610612a56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806142f2602a913960400191505060405180910390fd5b81600d8460ff1681548110612a6757fe5b90600052602060002001819055506001905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612b68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f43616c6c6572206973206e6f742074686520746178206f66666963650000000081525060200191505060405180910390fd5b600b60149054906101000a900460ff1615612bce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061435f6024913960400191505060405180910390fd5b6127108110612c45576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f74617820657175616c206f722062696767657220746f2031303025000000000081525060200191505060405180910390fd5b8060098190555050565b600e6020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600d80549050905090565b612d6161327d565b73ffffffffffffffffffffffffffffffffffffffff16612d7f612436565b73ffffffffffffffffffffffffffffffffffffffff1614612e08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612e8e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806141726026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613011576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f43616c6c6572206973206e6f742074686520746178206f66666963650000000081525060200191505060405180910390fd5b6001600b60146101000a81548160ff021916908315150217905550565b6000808284019050838110156130ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613159576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b61316560008383613d44565b61317a8160025461302e90919063ffffffff16565b6002819055506131d1816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461302e90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561330b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806143d46024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613391576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806141986022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633ddac95330670de0b6b3a76400006040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b15801561351757600080fd5b505afa92505050801561354b57506040513d602081101561353757600080fd5b810190808051906020019092919050505060015b6135a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061441d602e913960400191505060405180910390fd5b8071ffffffffffffffffffffffffffffffffffff1691505090565b6000600b60149054906101000a900460ff16156137045760006135f260016135e161288a565b60ff16613d4990919063ffffffff16565b90505b60008160ff161061370257600c8160ff168154811061361057fe5b906000526020600020015483106136f657612710600d8260ff168154811061363457fe5b9060005260206000200154106136b2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f74617820657175616c206f722062696767657220746f2031303025000000000081525060200191505060405180910390fd5b600d8160ff16815481106136c257fe5b9060005260206000200154600981905550600d8160ff16815481106136e357fe5b9060005260206000200154915050613705565b806001900390506135f5565b505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613790576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806143836025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061412d6023913960400191505060405180910390fd5b613821838383613d44565b61388c816040518060600160405280602681526020016141ba602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613a6c9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061391f816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461302e90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000806139f76127106139e960095487613d9390919063ffffffff16565b613e1990919063ffffffff16565b90506000613a0e8286613c5f90919063ffffffff16565b90508315613a2557613a208783613ce2565b613a53565b613a5287600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461370a565b5b613a5e87878361370a565b600192505050949350505050565b6000838311158290613b19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613ade578082015181840152602081019050613ac3565b50505050905090810190601f168015613b0b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415613bac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180614206602d913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed60405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b613c5c613c5661327d565b82613ea2565b50565b600082821115613cd7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b818303905092915050565b6000613d21826040518060600160405280602481526020016142aa60249139613d1286613d0d61327d565b612c6f565b613a6c9092919063ffffffff16565b9050613d3583613d2f61327d565b83613285565b613d3f8383613ea2565b505050565b505050565b6000613d8b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614066565b905092915050565b600080831415613da65760009050613e13565b6000828402905082848281613db757fe5b0414613e0e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806142336021913960400191505060405180910390fd5b809150505b92915050565b6000808211613e90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b818381613e9957fe5b04905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613f28576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061431c6021913960400191505060405180910390fd5b613f3482600083613d44565b613f9f81604051806060016040528060228152602001614150602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613a6c9092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613ff681600254613c5f90919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008360ff168360ff1611158290614119576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156140de5780820151818401526020810190506140c3565b50505050905090810190601f16801561410b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838503905080915050939250505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365746178206f666669636520616464726573732063616e6e6f74206265203020616464726573736f70657261746f723a207a65726f206164647265737320676976656e20666f72206e6577206f70657261746f72536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636574617820636f6c6c6563746f722061646472657373206d757374206265206e6f6e2d7a65726f206164647265737345524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e63656f70657261746f723a2063616c6c6572206973206e6f7420746865206f70657261746f72496e6465782068617320746f206c6f776572207468616e20636f756e74206f662074617820746965727345524332303a206275726e2066726f6d20746865207a65726f20616464726573736f7261636c6520616464726573732063616e6e6f74206265203020616464726573736175746f2063616c63756c617465207461782063616e6e6f7420626520656e61626c656445524332303a207472616e736665722066726f6d20746865207a65726f206164647265737343616c6c6572206973206e6f7420746865206f70657261746f72206f722074686520746178206f666669636545524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f47686f73743a206661696c656420746f2066657463682047484f53542070726963652066726f6d204f7261636c65a264697066735822122003072a525e7fd7256890826873fccefd0d89cca13d413cfb239b4becd8133c8064736f6c634300060c003343616c6c6572206973206e6f7420746865206f70657261746f72206f722074686520746178206f666669636500000000000000000000000000000000000000000000000000000000000000000000000000000000000000009317b235038c57894acdcc2dda2d3aae13badfec