[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AmountExceedBacking", "type": "error" }, { "inputs": [], "name": "AmountIsZero", "type": "error" }, { "inputs": [], "name": "Blacklisted", "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": [ { "internalType": "uint256", "name": "deadline", "type": "uint256" } ], "name": "ERC2612ExpiredSignature", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "signer", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC2612InvalidSigner", "type": "error" }, { "inputs": [], "name": "EnforcedPause", "type": "error" }, { "inputs": [], "name": "ExpectedPause", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "currentNonce", "type": "uint256" } ], "name": "InvalidAccountNonce", "type": "error" }, { "inputs": [], "name": "InvalidInitialization", "type": "error" }, { "inputs": [], "name": "MathOverflowedMulDiv", "type": "error" }, { "inputs": [], "name": "NotAuthorized", "type": "error" }, { "inputs": [], "name": "NotInitializing", "type": "error" }, { "inputs": [], "name": "NullAddress", "type": "error" }, { "inputs": [], "name": "SameValue", "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": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Blacklist", "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": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "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": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "UnBlacklist", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "Usd0StorageV0Location", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "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": "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": [], "stateMutability": "nonpayable", "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": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "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": [], "name": "initializeV2", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isBlacklisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "unBlacklist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
608060405234801561000f575f80fd5b5061001861001d565b6100cf565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161561006d5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100cc5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611f44806100dc5f395ff3fe608060405234801561000f575f80fd5b5060043610610153575f3560e01c80635cd8a76b116100bf57806395d89b411161007957806395d89b41146102c5578063a9059cbb146102cd578063d505accf146102e0578063dd62ed3e146102f3578063f9f92be414610306578063fe575a8714610319575f80fd5b80635cd8a76b1461026157806370a082311461026957806379cc67901461027c5780637ecebe001461028f5780638456cb59146102a257806384b0196e146102aa575f80fd5b80633644e515116101105780633644e515146102005780633f4ba83a1461020857806340c10f191461021057806342966c681461022357806349decdce146102365780635c975abb1461024a575f80fd5b806306fdde0314610157578063095ea7b31461017557806318160ddd146101985780631a895266146101c957806323b872dd146101de578063313ce567146101f1575b5f80fd5b61015f610363565b60405161016c91906119b0565b60405180910390f35b6101886101833660046119d6565b610408565b604051901515815260200161016c565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02545b60405190815260200161016c565b6101dc6101d7366004611a00565b610421565b005b6101886101ec366004611a1b565b6104f8565b6040516012815260200161016c565b6101bb61051d565b6101dc61052b565b6101dc61021e3660046119d6565b610559565b6101dc610231366004611a59565b610953565b6101bb5f80516020611ecf83398151915281565b5f80516020611eef8339815191525460ff16610188565b6101dc6109a4565b6101bb610277366004611a00565b610b3d565b6101dc61028a3660046119d6565b610b6d565b6101bb61029d366004611a00565b610bbf565b6101dc610bc9565b6102b2610c14565b60405161016c9796959493929190611a70565b61015f610cc2565b6101886102db3660046119d6565b610d00565b6101dc6102ee366004611b12565b610d0d565b6101bb610301366004611b7e565b610e62565b6101dc610314366004611a00565b610eab565b610188610327366004611a00565b6001600160a01b03165f9081527f1d0cf51e4a8c83492710be318ea33bb77810af742c934c6b56e7b0fecb07db01602052604090205460ff1690565b60605f5f80516020611e8f8339815191525b905080600301805461038690611bb5565b80601f01602080910402602001604051908101604052809291908181526020018280546103b290611bb5565b80156103fd5780601f106103d4576101008083540402835291602001916103fd565b820191905f5260205f20905b8154815290600101906020018083116103e057829003601f168201915b505050505091505090565b5f33610415818585610fa7565b60019150505b92915050565b5f80516020611ecf8339815191528054610464906001600160a01b03167f22435ed027edf5f902dc0093fbc24cdb50c05b5fd5f311b78c67c1cbaff60e13610fb4565b6001600160a01b0382165f90815260018201602052604090205460ff1661049e5760405163c23f6ccb60e01b815260040160405180910390fd5b6001600160a01b0382165f818152600183016020908152604091829020805460ff1916905590519182527fc653d95790bb2472667b557ef27642a37cac57b69d6d5fddcaacef8f62589dcb91015b60405180910390a15050565b5f3361050585828561103e565b6105108585856110a1565b60019150505b9392505050565b5f6105266110fe565b905090565b5f80516020611ecf833981519152805461054e906001600160a01b03165f610fb4565b610556611107565b50565b805f03610579576040516310eb483f60e21b815260040160405180910390fd5b5f80516020611ecf83398151915280546105bc906001600160a01b03167f9b7abe177e3ff76cb5384e4149d60862d0c453103e85da99c4c3278d98adab4d610fb4565b6002810154604051631c2d8fb360e31b81527f08a02b53e24d28cef7a610d3b323d846e6838b67c9481a2daa3946df2bfd519960048201525f916001600160a01b03169063e16c7d9890602401602060405180830381865afa158015610624573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106489190611bfd565b6002830154604051631c2d8fb360e31b81527f3c74554757c1203534218042b8d76bc79e3c883a6630fe8cc9cc4374e80f386460048201529192505f916001600160a01b039091169063e16c7d9890602401602060405180830381865afa1580156106b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d99190611bfd565b90505f836003015f9054906101000a90046001600160a01b03166001600160a01b03166343069d466040518163ffffffff1660e01b81526004015f60405180830381865afa15801561072d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526107549190810190611c2c565b90505f805b82518110156108ec575f83828151811061077557610775611cec565b60209081029190910101516040516341976e0960e01b81526001600160a01b0380831660048301529192505f918816906341976e0990602401602060405180830381865afa1580156107c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ed9190611d00565b90505f826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561082c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108509190611d17565b6040516370a0823160e01b81526001600160a01b0389811660048301529192506108d2918491908616906370a0823190602401602060405180830381865afa15801561089e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108c29190611d00565b6108cd84600a611e26565b611166565b6108dc9086611e34565b9450836001019350505050610759565b5080866109177f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace025490565b6109219190611e34565b11156109405760405163b0448d5960e01b815260040160405180910390fd5b61094a8787611225565b50505050505050565b5f80516020611ecf8339815191528054610996906001600160a01b03167f630806a0763a149d5d301a1482346187adb05644278506ef5cc076862f090f66610fb4565b6109a03383611259565b5050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460039190600160401b900460ff16806109ee5750805467ffffffffffffffff808416911610155b15610a0c5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff191667ffffffffffffffff831617600160401b1781555f610a435f80516020611ecf83398151915290565b6002810154604051631c2d8fb360e31b81527f6de6f9dbfa610b51a304c3f4b3149844bf74ae4dc792a518d585f75ba15b0f8660048201529192506001600160a01b03169063e16c7d9890602401602060405180830381865afa158015610aac573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ad09190611bfd565b60039190910180546001600160a01b0319166001600160a01b03909216919091179055805468ff00000000000000001916815560405167ffffffffffffffff831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020016104ec565b5f805f80516020611e8f8339815191525b6001600160a01b039093165f9081526020939093525050604090205490565b5f80516020611ecf8339815191528054610bb0906001600160a01b03167f630806a0763a149d5d301a1482346187adb05644278506ef5cc076862f090f66610fb4565b610bba8383611259565b505050565b5f61041b8261128d565b5f80516020611ecf8339815191528054610c0c906001600160a01b03167fe40ef4c9f0881870a532466eceeb9426f92f3b4563aab91fc873619411dc7014610fb4565b6105566112b5565b5f60608082808083815f80516020611eaf8339815191528054909150158015610c3f57506001810154155b610c885760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b60448201526064015b60405180910390fd5b610c906112fd565b610c9861133b565b604080515f80825260208201909252600f60f81b9c939b5091995046985030975095509350915050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060915f80516020611e8f8339815191529161038690611bb5565b5f336104158185856110a1565b83421115610d315760405163313c898160e11b815260048101859052602401610c7f565b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610d9b8c6001600160a01b03165f9081527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb006020526040902080546001810190915590565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f610df582611351565b90505f610e048287878761137d565b9050896001600160a01b0316816001600160a01b031614610e4b576040516325c0072360e11b81526001600160a01b0380831660048301528b166024820152604401610c7f565b610e568a8a8a610fa7565b50505050505050505050565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b6001600160a01b038116610ed25760405163e99d5ac560e01b815260040160405180910390fd5b5f80516020611ecf8339815191528054610f15906001600160a01b03167f22435ed027edf5f902dc0093fbc24cdb50c05b5fd5f311b78c67c1cbaff60e13610fb4565b6001600160a01b0382165f90815260018201602052604090205460ff1615610f505760405163c23f6ccb60e01b815260040160405180910390fd5b6001600160a01b0382165f81815260018381016020908152604092839020805460ff191690921790915590519182527f7811ed4e4b787e4f0f046ffb4a5ec1e064b0eb6d191ffabb66270ed8be89b32591016104ec565b610bba83838360016113a9565b604051632474521560e21b8152600481018290523360248201526001600160a01b038316906391d1485490604401602060405180830381865afa158015610ffd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110219190611e47565b6109a05760405163ea8e4eb560e01b815260040160405180910390fd5b5f6110498484610e62565b90505f19811461109b578181101561108d57604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610c7f565b61109b84848484035f6113a9565b50505050565b6001600160a01b0383166110ca57604051634b637e8f60e11b81525f6004820152602401610c7f565b6001600160a01b0382166110f35760405163ec442f0560e01b81525f6004820152602401610c7f565b610bba83838361148d565b5f610526611523565b61110f611596565b5f80516020611eef833981519152805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b5f838302815f1985870982811083820303915050805f0361119a5783828161119057611190611e66565b0492505050610516565b8084116111ba5760405163227bc15360e01b815260040160405180910390fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b6001600160a01b03821661124e5760405163ec442f0560e01b81525f6004820152602401610c7f565b6109a05f838361148d565b6001600160a01b03821661128257604051634b637e8f60e11b81525f6004820152602401610c7f565b6109a0825f8361148d565b5f807f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00610b4e565b6112bd6115c7565b5f80516020611eef833981519152805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833611148565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10280546060915f80516020611eaf8339815191529161038690611bb5565b60605f5f80516020611eaf833981519152610375565b5f61041b61135d6110fe565b8360405161190160f01b8152600281019290925260228201526042902090565b5f805f8061138d888888886115f7565b92509250925061139d82826116bf565b50909695505050505050565b5f80516020611e8f8339815191526001600160a01b0385166113e05760405163e602df0560e01b81525f6004820152602401610c7f565b6001600160a01b03841661140957604051634a1406b160e11b81525f6004820152602401610c7f565b6001600160a01b038086165f9081526001830160209081526040808320938816835292905220839055811561148657836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161147d91815260200190565b60405180910390a35b5050505050565b6001600160a01b0383165f9081527f1d0cf51e4a8c83492710be318ea33bb77810af742c934c6b56e7b0fecb07db0160205260409020545f80516020611ecf8339815191529060ff16806114fa57506001600160a01b0383165f90815260018201602052604090205460ff165b15611518576040516309550c7760e01b815260040160405180910390fd5b61109b848484611777565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61154d61178a565b6115556117f2565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f80516020611eef8339815191525460ff166115c557604051638dfc202b60e01b815260040160405180910390fd5b565b5f80516020611eef8339815191525460ff16156115c55760405163d93c066560e01b815260040160405180910390fd5b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561163057505f915060039050826116b5565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015611681573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b0381166116ac57505f9250600191508290506116b5565b92505f91508190505b9450945094915050565b5f8260038111156116d2576116d2611e7a565b036116db575050565b60018260038111156116ef576116ef611e7a565b0361170d5760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561172157611721611e7a565b036117425760405163fce698f760e01b815260048101829052602401610c7f565b600382600381111561175657611756611e7a565b036109a0576040516335e2f38360e21b815260048101829052602401610c7f565b61177f6115c7565b610bba838383611834565b5f5f80516020611eaf833981519152816117a26112fd565b8051909150156117ba57805160209091012092915050565b815480156117c9579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b5f5f80516020611eaf8339815191528161180a61133b565b80519091501561182257805160209091012092915050565b600182015480156117c9579392505050565b5f80516020611e8f8339815191526001600160a01b03841661186e5781816002015f8282546118639190611e34565b909155506118de9050565b6001600160a01b0384165f90815260208290526040902054828110156118c05760405163391434e360e21b81526001600160a01b03861660048201526024810182905260448101849052606401610c7f565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b0383166118fc57600281018054839003905561191a565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161195f91815260200190565b60405180910390a350505050565b5f81518084525f5b8181101561199157602081850181015186830182015201611975565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610516602083018461196d565b6001600160a01b0381168114610556575f80fd5b5f80604083850312156119e7575f80fd5b82356119f2816119c2565b946020939093013593505050565b5f60208284031215611a10575f80fd5b8135610516816119c2565b5f805f60608486031215611a2d575f80fd5b8335611a38816119c2565b92506020840135611a48816119c2565b929592945050506040919091013590565b5f60208284031215611a69575f80fd5b5035919050565b60ff60f81b881681525f602060e081840152611a8f60e084018a61196d565b8381036040850152611aa1818a61196d565b606085018990526001600160a01b038816608086015260a0850187905284810360c086015285518082528387019250908301905f5b81811015611af257835183529284019291840191600101611ad6565b50909c9b505050505050505050505050565b60ff81168114610556575f80fd5b5f805f805f805f60e0888a031215611b28575f80fd5b8735611b33816119c2565b96506020880135611b43816119c2565b955060408801359450606088013593506080880135611b6181611b04565b9699959850939692959460a0840135945060c09093013592915050565b5f8060408385031215611b8f575f80fd5b8235611b9a816119c2565b91506020830135611baa816119c2565b809150509250929050565b600181811c90821680611bc957607f821691505b602082108103611be757634e487b7160e01b5f52602260045260245ffd5b50919050565b8051611bf8816119c2565b919050565b5f60208284031215611c0d575f80fd5b8151610516816119c2565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215611c3d575f80fd5b825167ffffffffffffffff80821115611c54575f80fd5b818501915085601f830112611c67575f80fd5b815181811115611c7957611c79611c18565b8060051b604051601f19603f83011681018181108582111715611c9e57611c9e611c18565b604052918252848201925083810185019188831115611cbb575f80fd5b938501935b82851015611ce057611cd185611bed565b84529385019392850192611cc0565b98975050505050505050565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611d10575f80fd5b5051919050565b5f60208284031215611d27575f80fd5b815161051681611b04565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611d8057815f1904821115611d6657611d66611d32565b80851615611d7357918102915b93841c9390800290611d4b565b509250929050565b5f82611d965750600161041b565b81611da257505f61041b565b8160018114611db85760028114611dc257611dde565b600191505061041b565b60ff841115611dd357611dd3611d32565b50506001821b61041b565b5060208310610133831016604e8410600b8410161715611e01575081810a61041b565b611e0b8383611d46565b805f1904821115611e1e57611e1e611d32565b029392505050565b5f61051660ff841683611d88565b8082018082111561041b5761041b611d32565b5f60208284031215611e57575f80fd5b81518015158114610516575f80fd5b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52602160045260245ffdfe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1001d0cf51e4a8c83492710be318ea33bb77810af742c934c6b56e7b0fecb07db00cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300a2646970667358221220143b349a8c27dc91a9842d25b5535df9f40b41c09a1597344da429c6a342ca7764736f6c63430008140033