Loading
[ { "inputs": [], "name": "AccessControlBadConfirmation", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes32", "name": "neededRole", "type": "bytes32" } ], "name": "AccessControlUnauthorizedAccount", "type": "error" }, { "inputs": [], "name": "ECDSAInvalidSignature", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "length", "type": "uint256" } ], "name": "ECDSAInvalidSignatureLength", "type": "error" }, { "inputs": [ { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "ECDSAInvalidSignatureS", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "inputs": [], "name": "InvalidInitialization", "type": "error" }, { "inputs": [], "name": "NotInitializing", "type": "error" }, { "inputs": [], "name": "ProofWasUsed", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" } ], "name": "Blacklisted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Burn", "type": "event" }, { "anonymous": false, "inputs": [], "name": "EIP712DomainChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "minter", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Mint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "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" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unblacklisted", "type": "event" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINIMUM_BLOCK_FOR_RESERVATION", "outputs": [ { "internalType": "uint64", "name": "", "type": "uint64" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "addAdmin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "addOperator", "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": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "blacklist", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "burner", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "fee", "type": "uint256" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "sig", "type": "bytes" } ], "name": "burn", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "chainId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "eip712Domain", "outputs": [ { "internalType": "bytes1", "name": "fields", "type": "bytes1" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "version", "type": "string" }, { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "verifyingContract", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256[]", "name": "extensions", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from_", "type": "address" }, { "internalType": "uint256", "name": "nonce_", "type": "uint256" } ], "name": "execute", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getMintingAuthorizationThreshold", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account_", "type": "address" }, { "internalType": "uint256", "name": "nonce_", "type": "uint256" } ], "name": "getReservation", "outputs": [ { "components": [ { "internalType": "uint96", "name": "amount", "type": "uint96" }, { "internalType": "uint96", "name": "fee", "type": "uint96" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "address", "name": "executor", "type": "address" }, { "internalType": "uint64", "name": "expiryBlockNum", "type": "uint64" }, { "internalType": "enum ERC20Reservable.ReservationStatus", "name": "status", "type": "uint8" } ], "internalType": "struct ERC20Reservable.Reservation", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "getRoleMember", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleMemberCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "admin", "type": "address" }, { "internalType": "uint256", "name": "supplyCap_", "type": "uint256" }, { "internalType": "uint8", "name": "mintingAuthorizationThreshold_", "type": "uint8" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isAdmin", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isBlacklisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "nonce", "type": "uint256" } ], "name": "isNonceUsed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isOperator", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes32", "name": "proofBlockHash", "type": "bytes32" }, { "internalType": "bytes32", "name": "proofTxnHash", "type": "bytes32" } ], "name": "mint", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes32", "name": "proofBlockHash", "type": "bytes32" }, { "internalType": "bytes32", "name": "proofTxnHash", "type": "bytes32" }, { "internalType": "uint256[]", "name": "gluwaNonces", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "expiries", "type": "uint256[]" }, { "internalType": "bytes[]", "name": "signatures", "type": "bytes[]" } ], "name": "mintByAuthorization", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "proofBlockHash", "type": "bytes32" }, { "internalType": "bytes32", "name": "proofTxnHash", "type": "bytes32" } ], "name": "mintedAmountByProof", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from_", "type": "address" }, { "internalType": "uint256", "name": "nonce_", "type": "uint256" } ], "name": "reclaim", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "removeOperator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceAdmin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOperator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "callerConfirmation", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "address", "name": "executor", "type": "address" }, { "internalType": "uint96", "name": "amount", "type": "uint96" }, { "internalType": "uint96", "name": "fee", "type": "uint96" }, { "internalType": "uint256", "name": "gluwaNonce", "type": "uint256" }, { "internalType": "uint64", "name": "deadline_", "type": "uint64" }, { "internalType": "bytes", "name": "sig", "type": "bytes" } ], "name": "reserve", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account_", "type": "address" } ], "name": "reserveOf", "outputs": [ { "internalType": "uint256", "name": "count", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "nonce", "type": "uint256" } ], "name": "revokeSignature", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "newThreshold", "type": "uint8" } ], "name": "setMintingAuthorizationThreshold", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" } ], "name": "setName", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "supplyCap_", "type": "uint256" } ], "name": "setSupplyCap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "supplyCap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "fee", "type": "uint256" }, { "internalType": "uint256", "name": "gluwaNonce", "type": "uint256" }, { "internalType": "bytes", "name": "sig", "type": "bytes" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "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": "account", "type": "address" } ], "name": "unblacklist", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "version", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" } ]
608060405234801561001057600080fd5b506137e8806100206000396000f3fe608060405234801561001057600080fd5b50600436106102f15760003560e01c8063837e76281161019d578063a9059cbb116100e9578063ca15c873116100a2578063dd62ed3e1161007c578063dd62ed3e146106f5578063ed2e93b214610708578063f9f92be41461071b578063fe575a871461072e57600080fd5b8063ca15c873146106bc578063d547741f146106cf578063d58fed98146106e257600080fd5b8063a9059cbb1461064a578063ac8a584a1461065d578063b49dc74114610670578063b6a3f59a14610683578063c47f002714610696578063c514fd0b146106a957600080fd5b806391d14854116101565780639a8a0592116101305780639a8a0592146105f25780639fa77b20146105f8578063a217fddf14610622578063a22ac5a91461062a57600080fd5b806391d14854146105ac57806395d89b41146105bf5780639870d7fe146105df57600080fd5b8063837e76281461050357806384b0196e146105245780638bad0c0a1461053f5780638bd317eb146105475780638f770ad01461055a5780639010d07c1461058157600080fd5b806336568abe1161025c5780635d00bb12116102155780636d70f7ae116101ef5780636d70f7ae146104b757806370480275146104ca57806370a08231146104dd57806375e3661e146104f057600080fd5b80635d00bb121461047e5780635eda9cbc1461049157806369cd5d3b146104a457600080fd5b806336568abe146104085780633b89bb861461041b5780633da1f79a1461042e57806342966c6814610441578063435d660d1461045457806354fd4d501461045f57600080fd5b8063248a9ca3116102ae578063248a9ca31461039d57806324d7806c146103b0578063277a4373146103c35780632ab6f8db146103d65780632f2ff15d146103e0578063313ce567146103f357600080fd5b806301ffc9a7146102f657806306fdde031461031e578063095ea7b3146103335780630982d5b01461034657806318160ddd1461035957806323b872dd1461038a575b600080fd5b610309610304366004612cba565b61075d565b60405190151581526020015b60405180910390f35b610326610788565b6040516103159190612d2a565b610309610341366004612d54565b61081b565b610309610354366004612dc6565b610833565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02545b604051908152602001610315565b610309610398366004612e47565b6108e1565b61037c6103ab366004612e83565b610905565b6103096103be366004612e9c565b610927565b6103096103d1366004612eb7565b610933565b6103de6109bb565b005b6103de6103ee366004612ef0565b6109d5565b60125b60405160ff9091168152602001610315565b6103de610416366004612ef0565b6109f7565b610309610429366004612d54565b610a2f565b61030961043c366004612e83565b610a67565b61030961044f366004612e83565b610a9f565b60fc5460ff166103f6565b604080518082019091526003815262302e3160e81b6020820152610326565b61030961048c366004612e83565b610aab565b61037c61049f366004612f1c565b610acf565b6103096104b2366004612f3e565b610af6565b6103096104c5366004612e9c565b610ba3565b6103de6104d8366004612e9c565b610bbd565b61037c6104eb366004612e9c565b610bf1565b6103096104fe366004612e9c565b610bfc565b61050c61384081565b6040516001600160401b039091168152602001610315565b61052c610c6b565b6040516103159796959493929190612fae565b6103de610cb1565b610309610555366004612d54565b610cd8565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace035461037c565b61059461058f366004612f1c565b610ec9565b6040516001600160a01b039091168152602001610315565b6103096105ba366004612ef0565b610ef8565b6040805180820190915260048152637743544360e01b6020820152610326565b6103de6105ed366004612e9c565b610f30565b4661037c565b61037c610606366004612e9c565b6001600160a01b03166000908152610130602052604090205490565b61037c600081565b61063d610638366004612d54565b610f6d565b604051610315919061305a565b610309610658366004612d54565b61105c565b6103de61066b366004612e9c565b611069565b6103de61067e3660046130f3565b6110a6565b6103de610691366004612e83565b6111c8565b6103de6106a4366004613145565b6111f6565b6103de6106b73660046131f5565b611285565b61037c6106ca366004612e83565b611320565b6103de6106dd366004612ef0565b61134d565b6103096106f0366004613254565b611369565b61037c61070336600461331d565b6114f8565b61030961071636600461335e565b611542565b610309610729366004612e9c565b6116a6565b61030961073c366004612e9c565b6001600160a01b031660009081526020819052604090205460ff1660011490565b60006001600160e01b03198216635a05180f60e01b1480610782575061078282611714565b92915050565b606061016480546107989061341c565b80601f01602080910402602001604051908101604052809291908181526020018280546107c49061341c565b80156108115780601f106107e657610100808354040283529160200191610811565b820191906000526020600020905b8154815290600101906020018083116107f457829003601f168201915b5050505050905090565b600033610829818585611749565b5060019392505050565b600061083f8885611756565b604051600360f81b60208201524660218201526001600160601b031930606090811b821660418401528a811b8216605584015289901b166069820152607d8101879052609d810186905260bd810185905260009060dd016040516020818303038152906040528051906020012090506108ba818a86866117e1565b506108c789335b886118b1565b6108d28989896118b1565b50600198975050505050505050565b6000336108ef858285611910565b6108fa8585856118b1565b506001949350505050565b6000908152600080516020613793833981519152602052604090206001015490565b60006107828183610ef8565b600061093e33610ba3565b6109635760405162461bcd60e51b815260040161095a90613456565b60405180910390fd5b61096e848484611970565b61097885856119c2565b60405184906001600160a01b0387169033907fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f890600090a4506001949350505050565b6109d3600080516020613773833981519152336109f7565b565b6109de82610905565b6109e7816119f8565b6109f18383611a02565b50505050565b6001600160a01b0381163314610a205760405163334bd91960e11b815260040160405180910390fd5b610a2a8282611a47565b505050565b6001600160a01b0382166000908152610131602090815260408083208484529091528120610a5e908490611a83565b50600192915050565b60006001606582610a783386611c7f565b81526020810191909152604001600020805460ff1916911515919091179055506001919050565b60006107823383611cc2565b6000610782610aba3384611c7f565b60009081526065602052604090205460ff1690565b600060fd6000610adf8585611d0d565b815260200190815260200160002054905092915050565b6000610b028785611756565b604051600160f81b60208201524660218201526001600160601b031930606090811b8216604184015289901b166055820152606981018790526089810186905260a9810185905260009060c901604051602081830303815290604052805190602001209050610b73818986866117e1565b508515610b8457610b8488336108c1565b50610b9887610b9387896134a3565b611cc2565b979650505050505050565b600061078260008051602061377383398151915283610ef8565b610bc633610927565b610be25760405162461bcd60e51b815260040161095a906134b6565b610bed600082611a02565b5050565b600061078282611d29565b6000610c0733610ba3565b610c235760405162461bcd60e51b815260040161095a90613456565b610c2e826000611d65565b6040516001600160a01b038316907f7534c63860313c46c473e4e98328f37017e9674e2162faf1a3ad7a96236c3b7b90600090a25060015b919050565b600060608060008060006060610c7f611d92565b610c87611da1565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b33610cbd6000826109f7565b610cd5600080516020613773833981519152826109f7565b50565b6001600160a01b03821660009081526101316020908152604080832084845290915281208133905060016002830154600160e01b900460ff166003811115610d2257610d22613044565b14610d8e5760405162461bcd60e51b815260206004820152603660248201527f455243323052657365727661626c653a20696e76616c6964207265736572766160448201527574696f6e2073746174757320746f207265636c61696d60501b606482015260840161095a565b846001600160a01b0316816001600160a01b03161480610ddc575060028201546001600160a01b038281169116148015610ddc57506002820154600160a01b90046001600160401b03164310155b610e695760405162461bcd60e51b815260206004820152605260248201527f455243323052657365727661626c653a206f6e6c79207468652073656e64657260448201527f206f72207468652065787069726564207265736572766174696f6e2773206578606482015271656375746f722063616e207265636c61696d60701b608482015260a40161095a565b6002828101805460ff60e01b1916600160e01b83021790555050546001600160a01b03841660009081526101306020526040902080546001600160601b03808416600160601b909404811693909301909216909103905550600192915050565b6000828152600080516020613733833981519152602081905260408220610ef09084611dc3565b949350505050565b6000918252600080516020613793833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b610f3933610927565b610f555760405162461bcd60e51b815260040161095a906134b6565b610bed60008051602061377383398151915282611a02565b610fa36040805160c08101825260008082526020820181905291810182905260608101829052608081018290529060a082015290565b6001600160a01b03838116600090815261013160209081526040808320868452825291829020825160c08101845281546001600160601b038082168352600160601b9091041692810192909252600181015484169282019290925260028201549283166060820152600160a01b83046001600160401b031660808201529160a0830190600160e01b900460ff16600381111561104157611041613044565b600381111561105257611052613044565b9052509392505050565b6000610a5e3384846118b1565b61107233610927565b61108e5760405162461bcd60e51b815260040161095a906134b6565b610bed60008051602061377383398151915282611a47565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03166000811580156110eb5750825b90506000826001600160401b031660011480156111075750303b155b905081158015611115575080155b156111335760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561115d57845460ff60401b1916600160401b1785555b61116688611dcf565b61116f87611e1c565b61117886611e48565b83156111be57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6111d133610927565b6111ed5760405162461bcd60e51b815260040161095a906134b6565b610cd581611e50565b6111ff33610927565b61121b5760405162461bcd60e51b815260040161095a906134b6565b61016480546112299061341c565b1590506112785760405162461bcd60e51b815260206004820152601e60248201527f476c757761636f696e3a204e616d6520697320616c7265616479207365740000604482015260640161095a565b610164610bed8282613533565b61128e33610ba3565b6112aa5760405162461bcd60e51b815260040161095a90613456565b60028160ff16101561130a5760405162461bcd60e51b8152602060048201526024808201527f4d696e7461626c653a206e6577207468726573686f6c6420697320746f6f20736044820152631b585b1b60e21b606482015260840161095a565b60fc805460ff191660ff92909216919091179055565b600081815260008051602061373383398151915260208190526040822061134690611f10565b9392505050565b61135682610905565b61135f816119f8565b6109f18383611a47565b60fc54600090849060ff168110156113c35760405162461bcd60e51b815260206004820152601f60248201527f4d696e7461626c653a206e6f7420656e6f756768207369676e61747572657300604482015260640161095a565b60005b81811015611498576114308d8d8d8d8d8d878181106113e7576113e76135f2565b905060200201358c8c88818110611400576114006135f2565b905060200201358b8b89818110611419576114196135f2565b905060200281019061142b9190613608565b611f1a565b6001600160a01b03168d6001600160a01b0316146114905760405162461bcd60e51b815260206004820152601b60248201527f4d696e7461626c653a207265636569766572206d69736d617463680000000000604482015260640161095a565b6001016113c6565b506114a48b8b8b611970565b6114ae8c8c6119c2565b6040518b906001600160a01b038e169033907fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f890600090a45060019b9a5050505050505050505050565b6001600160a01b0391821660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b60006001600160a01b0388166115b65760405162461bcd60e51b815260206004820152603360248201527f4574686c65737352657365727661626c653a2063616e6e6f7420657865637574604482015272652066726f6d207a65726f206164647265737360681b606482015260840161095a565b6115c26138404361364e565b846001600160401b031610156116315760405162461bcd60e51b815260206004820152602e60248201527f4574686c65737352657365727661626c653a20696e76616c696420626c6f636b60448201526d1032bc3834b93c90373ab6b132b960911b606482015260840161095a565b61163b8a86611756565b6000600446308d8d8d8d8d8d8d6040516020016116619a99989796959493929190613661565b604051602081830303815290604052805190602001209050611685818c86866117e1565b506116958b8b8b8b8b8b8b612085565b5060019a9950505050505050505050565b60006116b133610ba3565b6116cd5760405162461bcd60e51b815260040161095a90613456565b6116d8826001611d65565b6040516001600160a01b038316907fffa4e6181777692565cf28528fc88fd1516ea86b56da075235fa575af6a4b85590600090a2506001919050565b60006001600160e01b03198216637965db0b60e01b148061078257506301ffc9a760e01b6001600160e01b0319831614610782565b610a2a838383600161227f565b60006117628383611c7f565b60008181526065602052604090205490915060ff16156117c45760405162461bcd60e51b815260206004820152601a60248201527f5369676e65724e6f6e63653a20496e76616c6964204e6f6e6365000000000000604482015260640161095a565b6000908152606560205260409020805460ff191660011790555050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c859052603c81206001600160a01b0385169061185b9085858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061236792505050565b6001600160a01b0316146108fa5760405162461bcd60e51b815260206004820152601b60248201527f56616c69646174653a20696e76616c6964207369676e61747572650000000000604482015260640161095a565b6001600160a01b0383166118db57604051634b637e8f60e11b81526000600482015260240161095a565b6001600160a01b0382166119055760405163ec442f0560e01b81526000600482015260240161095a565b610a2a838383612391565b600061191c84846114f8565b905060001981146109f1578181101561196157604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161095a565b6109f18484848403600061227f565b600061197c8383611d0d565b600081815260fd6020526040902054909150156119ac576040516311bb1cd760e01b815260040160405180910390fd5b600090815260fd60205260409020929092555050565b6001600160a01b0382166119ec5760405163ec442f0560e01b81526000600482015260240161095a565b610bed60008383612391565b610cd581336124b2565b600060008051602061373383398151915281611a1e85856124eb565b90508015610ef0576000858152602083905260409020611a3e9085612597565b50949350505050565b600060008051602061373383398151915281611a6385856125ac565b90508015610ef0576000858152602083905260409020611a3e9085612628565b600281015433906001600160a01b0316811480611ab15750806001600160a01b0316836001600160a01b0316145b611b375760405162461bcd60e51b815260206004820152604b60248201527f455243323052657365727661626c653a2074686973206164647265737320697360448201527f206e6f7420617574686f72697a656420746f206578656375746520746869732060648201526a3932b9b2b93b30ba34b7b760a91b608482015260a40161095a565b600282015443600160a01b9091046001600160401b0316118015611b7a575060016002830154600160e01b900460ff166003811115611b7857611b78613044565b145b611bfb5760405162461bcd60e51b815260206004820152604660248201527f455243323052657365727661626c653a207265736572766174696f6e2068617360448201527f2065787069726564206f7220696e76616c6964207265736572766174696f6e2060648201526573746174757360d01b608482015260a40161095a565b8154600183015460028401805460ff60e01b198116600360e01b179091556001600160a01b038681166000908152610130602052604090208054600160601b86046001600160601b0390811696168681019091039091559281169116611c628782866118b1565b611c768783856001600160601b03166118b1565b50505050505050565b6040516001600160601b0319606084901b166020820152603481018290526000906054015b60405160208183030381529060405280519060200120905092915050565b6000611cce838361263d565b60405182906001600160a01b038516907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca590600090a350600192915050565b6040805160208101849052908101829052600090606001611ca4565b6001600160a01b0381166000908152610130602090815260408083205460008051602061375383398151915290925282205461078291906134a3565b6001600160a01b03919091166000908152602081905260409020805460ff191660ff909216919091179055565b6060611d9c610788565b905090565b6060611d9c604080518082019091526003815262302e3160e81b602082015290565b60006113468383612673565b611dd761269d565b611ddf6126e6565b611df860008051602061377383398151915260006126ee565b611e03600082611a02565b50610bed60008051602061377383398151915282611a02565b611e2461269d565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0355565b61130a61269d565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02547f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0382905560008051602061375383398151915290821015610bed5760405162461bcd60e51b815260206004820152603260248201527f45524332303a20546f74616c20737570706c79632063616e2774206265206d6f60448201527107265207468616e20737570706c79206361760741b606482015260840161095a565b6000610782825490565b600042841015611f805760405162461bcd60e51b815260206004820152602b60248201527f45524332305374616b6564566f7465735570677261646561626c653a2053696760448201526a081a5cc8195e1c1a5c995960aa1b606482015260840161095a565b604080517fc55f05749175b4ba324db46e3b27cb9e05ab693cb666c1a026cc96deb68d4cd960208201526001600160a01b038b1691810191909152606081018990526080810188905260a0810187905260c0810186905260e081018590526120789061203c90612009906101000160405160208183030381529060405280519060200120612751565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c91909152603c902090565b84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061236792505050565b9998505050505050505050565b61208f83856136fc565b6001600160601b03166120a188610bf1565b10156121075760405162461bcd60e51b815260206004820152602f60248201527f455243323052657365727661626c653a207265736572766520616d6f756e742060448201526e657863656564732062616c616e636560881b606482015260840161095a565b6040518060c00160405280856001600160601b03168152602001846001600160601b03168152602001876001600160a01b03168152602001866001600160a01b03168152602001826001600160401b031681526020016001600381111561217057612170613044565b90526001600160a01b0380891660009081526101316020908152604080832087845282529182902084518154928601516001600160601b03908116600160601b026001600160c01b0319909416911617919091178155908301516001820180549184166001600160a01b0319909216919091179055606083015160028201805460808601516001600160401b0316600160a01b026001600160e01b031990911692909416919091179290921780835560a084015191929060ff60e01b1916600160e01b83600381111561224557612245613044565b02179055505050506001600160a01b03959095166000908152610130602052604090208054919092016001600160601b0316019055505050565b6000805160206137538339815191526001600160a01b0385166122b85760405163e602df0560e01b81526000600482015260240161095a565b6001600160a01b0384166122e257604051634a1406b160e11b81526000600482015260240161095a565b6001600160a01b0380861660009081526001830160209081526040808320938816835292905220839055811561236057836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161235791815260200190565b60405180910390a35b5050505050565b600080600080612377868661277e565b92509250925061238782826127cb565b5090949350505050565b6123b6836001600160a01b031660009081526020819052604090205460ff1660011490565b1580156123e557506123e3826001600160a01b031660009081526020819052604090205460ff1660011490565b155b61243d5760405162461bcd60e51b8152602060048201526024808201527f476c757761636f696e3a2046726f6d206f7220546f20697320626c61636b6c696044820152631cdd195960e21b606482015260840161095a565b8061244784610bf1565b10158061245b57506001600160a01b038316155b6124a75760405162461bcd60e51b815260206004820152601f60248201527f476c757761636f696e3a20496e73756666696369656e742062616c616e636500604482015260640161095a565b610a2a838383612884565b6124bc8282610ef8565b610bed5760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161095a565b60006000805160206137938339815191526125068484610ef8565b612586576000848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905561253c3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610782565b6000915050610782565b5092915050565b6000611346836001600160a01b038416612a15565b60006000805160206137938339815191526125c78484610ef8565b15612586576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610782565b6000611346836001600160a01b038416612a64565b6001600160a01b03821661266757604051634b637e8f60e11b81526000600482015260240161095a565b610bed82600083612391565b600082600001828154811061268a5761268a6135f2565b9060005260206000200154905092915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166109d357604051631afcd79f60e31b815260040160405180910390fd5b6109d361269d565b600080516020613793833981519152600061270884610905565b600085815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b600061078261275e612b4d565b8360405161190160f01b8152600281019290925260228201526042902090565b600080600083516041036127b85760208401516040850151606086015160001a6127aa88828585612b57565b9550955095505050506127c4565b50508151600091506002905b9250925092565b60008260038111156127df576127df613044565b036127e8575050565b60018260038111156127fc576127fc613044565b0361281a5760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561282e5761282e613044565b0361284f5760405163fce698f760e01b81526004810182905260240161095a565b600382600381111561286357612863613044565b03610bed576040516335e2f38360e21b81526004810182905260240161095a565b6000805160206137538339815191526001600160a01b038416612913578060030154828260020160008282546128ba919061364e565b925050819055111561290e5760405162461bcd60e51b815260206004820152601b60248201527f45524332303a20457863656564696e6720737570706c79206361700000000000604482015260640161095a565b612985565b6001600160a01b038416600090815260208290526040902054828110156129665760405163391434e360e21b81526001600160a01b0386166004820152602481018290526044810184905260640161095a565b6001600160a01b03851660009081526020839052604090209083900390555b6001600160a01b0383166129a35760028101805483900390556129c2565b6001600160a01b03831660009081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a0791815260200190565b60405180910390a350505050565b6000818152600183016020526040812054612a5c57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610782565b506000610782565b60008181526001830160205260408120548015612586576000612a886001836134a3565b8554909150600090612a9c906001906134a3565b9050808214612b01576000866000018281548110612abc57612abc6135f2565b9060005260206000200154905080876000018481548110612adf57612adf6135f2565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612b1257612b1261371c565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610782565b6000611d9c612c26565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115612b925750600091506003905082612c1c565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612be6573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612c1257506000925060019150829050612c1c565b9250600091508190505b9450945094915050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f612c51612c9a565b612c59612cb0565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6000612ca4611d92565b80519060200120905090565b6000612ca4611da1565b600060208284031215612ccc57600080fd5b81356001600160e01b03198116811461134657600080fd5b6000815180845260005b81811015612d0a57602081850181015186830182015201612cee565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006113466020830184612ce4565b80356001600160a01b0381168114610c6657600080fd5b60008060408385031215612d6757600080fd5b612d7083612d3d565b946020939093013593505050565b60008083601f840112612d9057600080fd5b5081356001600160401b03811115612da757600080fd5b602083019150836020828501011115612dbf57600080fd5b9250929050565b600080600080600080600060c0888a031215612de157600080fd5b612dea88612d3d565b9650612df860208901612d3d565b955060408801359450606088013593506080880135925060a08801356001600160401b03811115612e2857600080fd5b612e348a828b01612d7e565b989b979a50959850939692959293505050565b600080600060608486031215612e5c57600080fd5b612e6584612d3d565b9250612e7360208501612d3d565b9150604084013590509250925092565b600060208284031215612e9557600080fd5b5035919050565b600060208284031215612eae57600080fd5b61134682612d3d565b60008060008060808587031215612ecd57600080fd5b612ed685612d3d565b966020860135965060408601359560600135945092505050565b60008060408385031215612f0357600080fd5b82359150612f1360208401612d3d565b90509250929050565b60008060408385031215612f2f57600080fd5b50508035926020909101359150565b60008060008060008060a08789031215612f5757600080fd5b612f6087612d3d565b955060208701359450604087013593506060870135925060808701356001600160401b03811115612f9057600080fd5b612f9c89828a01612d7e565b979a9699509497509295939492505050565b60ff60f81b881681526000602060e081840152612fce60e084018a612ce4565b8381036040850152612fe0818a612ce4565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b8181101561303257835183529284019291840191600101613016565b50909c9b505050505050505050505050565b634e487b7160e01b600052602160045260246000fd5b600060c0820190506001600160601b0380845116835280602085015116602084015250604083015160018060a01b03808216604085015280606086015116606085015250506001600160401b03608084015116608083015260a0830151600481106130d557634e487b7160e01b600052602160045260246000fd5b8060a08401525092915050565b803560ff81168114610c6657600080fd5b60008060006060848603121561310857600080fd5b61311184612d3d565b925060208401359150613126604085016130e2565b90509250925092565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561315757600080fd5b81356001600160401b038082111561316e57600080fd5b818401915084601f83011261318257600080fd5b8135818111156131945761319461312f565b604051601f8201601f19908116603f011681019083821181831017156131bc576131bc61312f565b816040528281528760208487010111156131d557600080fd5b826020860160208301376000928101602001929092525095945050505050565b60006020828403121561320757600080fd5b611346826130e2565b60008083601f84011261322257600080fd5b5081356001600160401b0381111561323957600080fd5b6020830191508360208260051b8501011115612dbf57600080fd5b60008060008060008060008060008060e08b8d03121561327357600080fd5b61327c8b612d3d565b995060208b0135985060408b0135975060608b0135965060808b01356001600160401b03808211156132ad57600080fd5b6132b98e838f01613210565b909850965060a08d01359150808211156132d257600080fd5b6132de8e838f01613210565b909650945060c08d01359150808211156132f757600080fd5b506133048d828e01613210565b915080935050809150509295989b9194979a5092959850565b6000806040838503121561333057600080fd5b61333983612d3d565b9150612f1360208401612d3d565b80356001600160601b0381168114610c6657600080fd5b60008060008060008060008060006101008a8c03121561337d57600080fd5b6133868a612d3d565b985061339460208b01612d3d565b97506133a260408b01612d3d565b96506133b060608b01613347565b95506133be60808b01613347565b945060a08a0135935060c08a01356001600160401b0380821682146133e257600080fd5b90935060e08b013590808211156133f857600080fd5b506134058c828d01612d7e565b915080935050809150509295985092959850929598565b600181811c9082168061343057607f821691505b60208210810361345057634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526018908201527f5265737472696374656420746f204f70657261746f72732e0000000000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156107825761078261348d565b6020808252601590820152742932b9ba3934b1ba32b2103a379020b236b4b7399760591b604082015260600190565b601f821115610a2a57600081815260208120601f850160051c8101602086101561350c5750805b601f850160051c820191505b8181101561352b57828155600101613518565b505050505050565b81516001600160401b0381111561354c5761354c61312f565b6135608161355a845461341c565b846134e5565b602080601f831160018114613595576000841561357d5750858301515b600019600386901b1c1916600185901b17855561352b565b600085815260208120601f198616915b828110156135c4578886015182559484019460019091019084016135a5565b50858210156135e25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261361f57600080fd5b8301803591506001600160401b0382111561363957600080fd5b602001915036819003821315612dbf57600080fd5b808201808211156107825761078261348d565b6001600160f81b031960f88c901b168152600181018a90526001600160601b031960608a811b8216602184015289811b8216603584015288811b8216604984015287901b16605d8201526001600160a01b031960a086811b8216607184015285901b16607d82015260008360898301526136ea60a983018460c01b6001600160c01b0319169052565b5060b1019a9950505050505050505050565b6001600160601b038181168382160190808211156125905761259061348d565b634e487b7160e01b600052603160045260246000fdfec1f6fe24621ce81ec5827caf0253cadb74709b061630e6b55e8237170593200052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00523a704056dcd17bcf83bed8b68c59416dac1119be77755efe3bde0a64e46e0c02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a2646970667358221220b8ec0bf8113c274f032bc21847ae13ae47983280dc8368cdb80880e5884bb10d64736f6c63430008150033