[ { "inputs": [ { "internalType": "address", "name": "initialOwner", "type": "address" }, { "internalType": "uint256", "name": "initialSupply", "type": "uint256" }, { "internalType": "uint8", "name": "_decimals", "type": "uint8" }, { "internalType": "string", "name": "tokenName", "type": "string" }, { "internalType": "string", "name": "tokenSymbol", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "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": [], "name": "ERC1167FailedCreateClone", "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": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "currentNonce", "type": "uint256" } ], "name": "InvalidAccountNonce", "type": "error" }, { "inputs": [], "name": "InvalidInitialization", "type": "error" }, { "inputs": [], "name": "NotInitializing", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "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": [], "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": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "clone", "type": "address" }, { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "initialSupply", "type": "uint256" }, { "indexed": false, "internalType": "uint8", "name": "decimals", "type": "uint8" }, { "indexed": false, "internalType": "string", "name": "tokenName", "type": "string" }, { "indexed": false, "internalType": "string", "name": "tokenSymbol", "type": "string" } ], "name": "TokenCreated", "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": "DOMAIN_SEPARATOR", "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": "initialOwner", "type": "address" }, { "internalType": "uint256", "name": "initialSupply", "type": "uint256" }, { "internalType": "uint8", "name": "_decimals", "type": "uint8" }, { "internalType": "string", "name": "tokenName", "type": "string" }, { "internalType": "string", "name": "tokenSymbol", "type": "string" } ], "name": "cloneMe", "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": [ { "internalType": "address", "name": "initialOwner", "type": "address" }, { "internalType": "uint256", "name": "initialSupply", "type": "uint256" }, { "internalType": "uint8", "name": "_decimals", "type": "uint8" }, { "internalType": "string", "name": "tokenName", "type": "string" }, { "internalType": "string", "name": "tokenSymbol", "type": "string" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "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": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": "renounceOwnership", "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": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040523480156200001157600080fd5b50604051620024613803806200246183398101604081905262000034916200071f565b6200004385858585856200004e565b505050505062000a88565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff1615906001600160401b0316600081158015620000995750825b90506000826001600160401b03166001148015620000b65750303b155b905081158015620000c5575080155b15620000e45760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b031916600117855583156200011357845460ff60401b1916680100000000000000001785555b6000805460ff191660ff8a161790556200012e8787620001c4565b620001398a620001de565b6200014d62000147620001f6565b620002c2565b620001718a6200015f8a600a620008e3565b6200016b908c620008fb565b620002f7565b8315620001b857845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050565b620001ce62000335565b620001da828262000386565b5050565b620001e862000335565b620001f381620003e4565b50565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0380546060916000805160206200244183398151915291620002389062000915565b80601f0160208091040260200160405190810160405280929190818152602001828054620002669062000915565b8015620002b75780601f106200028b57610100808354040283529160200191620002b7565b820191906000526020600020905b8154815290600101906020018083116200029957829003601f168201915b505050505091505090565b620002cc62000335565b620001f381604051806040016040528060018152602001603160f81b8152506200042560201b60201c565b6001600160a01b038216620003275760405163ec442f0560e01b8152600060048201526024015b60405180910390fd5b620001da600083836200049e565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166200038457604051631afcd79f60e31b815260040160405180910390fd5b565b6200039062000335565b600080516020620024418339815191527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03620003cd8482620009a6565b5060048101620003de8382620009a6565b50505050565b620003ee62000335565b6001600160a01b0381166200041a57604051631e4fbdf760e01b8152600060048201526024016200031e565b620001f381620005e6565b6200042f62000335565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1026200047d8482620009a6565b50600381016200048e8382620009a6565b5060008082556001909101555050565b600080516020620024418339815191526001600160a01b038416620004df5781816002016000828254620004d3919062000a72565b90915550620005539050565b6001600160a01b03841660009081526020829052604090205482811015620005345760405163391434e360e21b81526001600160a01b038616600482015260248101829052604481018490526064016200031e565b6001600160a01b03851660009081526020839052604090209083900390555b6001600160a01b0383166200057357600281018054839003905562000592565b6001600160a01b03831660009081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051620005d891815260200190565b60405180910390a350505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200067f57600080fd5b81516001600160401b03808211156200069c576200069c62000657565b604051601f8301601f19908116603f01168101908282118183101715620006c757620006c762000657565b8160405283815260209250866020858801011115620006e557600080fd5b600091505b83821015620007095785820183015181830184015290820190620006ea565b6000602085830101528094505050505092915050565b600080600080600060a086880312156200073857600080fd5b85516001600160a01b03811681146200075057600080fd5b60208701516040880151919650945060ff811681146200076f57600080fd5b60608701519093506001600160401b03808211156200078d57600080fd5b6200079b89838a016200066d565b93506080880151915080821115620007b257600080fd5b50620007c1888289016200066d565b9150509295509295909350565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000825578160001904821115620008095762000809620007ce565b808516156200081757918102915b93841c9390800290620007e9565b509250929050565b6000826200083e57506001620008dd565b816200084d57506000620008dd565b8160018114620008665760028114620008715762000891565b6001915050620008dd565b60ff841115620008855762000885620007ce565b50506001821b620008dd565b5060208310610133831016604e8410600b8410161715620008b6575081810a620008dd565b620008c28383620007e4565b8060001904821115620008d957620008d9620007ce565b0290505b92915050565b6000620008f460ff8416836200082d565b9392505050565b8082028115828204841417620008dd57620008dd620007ce565b600181811c908216806200092a57607f821691505b6020821081036200094b57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620009a1576000816000526020600020601f850160051c810160208610156200097c5750805b601f850160051c820191505b818110156200099d5782815560010162000988565b5050505b505050565b81516001600160401b03811115620009c257620009c262000657565b620009da81620009d3845462000915565b8462000951565b602080601f83116001811462000a125760008415620009f95750858301515b600019600386901b1c1916600185901b1785556200099d565b600085815260208120601f198616915b8281101562000a435788860151825594840194600190910190840162000a22565b508582101562000a625787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80820180821115620008dd57620008dd620007ce565b6119a98062000a986000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806370a08231116100ad57806395d89b411161007157806395d89b4114610286578063a9059cbb1461028e578063d505accf146102a1578063dd62ed3e146102b4578063f2fde38b146102c757600080fd5b806370a0823114610203578063715018a6146102165780637ecebe001461021e57806384b0196e146102315780638da5cb5b1461024c57600080fd5b8063312f0620116100f4578063312f0620146101ab578063313ce567146101c05780633644e515146101d557806340c10f19146101dd5780635cfffc0a146101f057600080fd5b806306fdde0314610126578063095ea7b31461014457806318160ddd1461016757806323b872dd14610198575b600080fd5b61012e6102da565b60405161013b91906112e8565b60405180910390f35b610157610152366004611319565b610383565b604051901515815260200161013b565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02545b60405190815260200161013b565b6101576101a6366004611343565b61039d565b6101be6101b9366004611433565b6103c1565b005b60005460405160ff909116815260200161013b565b61018a6103d5565b6101be6101eb366004611319565b6103e4565b6101be6101fe366004611433565b6103fa565b61018a6102113660046114c2565b6104c7565b6101be6104fa565b61018a61022c3660046114c2565b61050e565b610239610519565b60405161013b97969594939291906114dd565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b03909116815260200161013b565b61012e6105ca565b61015761029c366004611319565b610609565b6101be6102af366004611576565b610617565b61018a6102c23660046115e0565b610770565b6101be6102d53660046114c2565b6107ba565b606060006000805160206119348339815191525b90508060030180546102ff90611613565b80601f016020809104026020016040519081016040528092919081815260200182805461032b90611613565b80156103785780601f1061034d57610100808354040283529160200191610378565b820191906000526020600020905b81548152906001019060200180831161035b57829003601f168201915b505050505091505090565b6000336103918185856107f8565b60019150505b92915050565b6000336103ab85828561080a565b6103b6858585610870565b506001949350505050565b6103ce85858585856108cf565b5050505050565b60006103df610a29565b905090565b6103ec610a33565b6103f68282610a8e565b5050565b600061040530610ac4565b604051630189783160e51b81529091506001600160a01b0382169063312f06209061043c908990899089908990899060040161164d565b600060405180830381600087803b15801561045657600080fd5b505af115801561046a573d6000803e3d6000fd5b50505050856001600160a01b0316816001600160a01b03167fae337fe462bb0db6e99d404e831acbfa70323280dbb113a7d212915a13c946bd878787876040516104b7949392919061169b565b60405180910390a3505050505050565b6000806000805160206119348339815191525b6001600160a01b0390931660009081526020939093525050604090205490565b610502610a33565b61050c6000610b36565b565b600061039782610ba7565b60006060808280808381600080516020611954833981519152805490915015801561054657506001810154155b61058f5760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b60448201526064015b60405180910390fd5b610597610bd0565b61059f610c0f565b60408051600080825260208201909252600f60f81b9c939b5091995046985030975095509350915050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace048054606091600080516020611934833981519152916102ff90611613565b600033610391818585610870565b8342111561063b5760405163313c898160e11b815260048101859052602401610586565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886106a78c6001600160a01b031660009081527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb006020526040902080546001810190915590565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e001604051602081830303815290604052805190602001209050600061070282610c27565b9050600061071282878787610c54565b9050896001600160a01b0316816001600160a01b031614610759576040516325c0072360e11b81526001600160a01b0380831660048301528b166024820152604401610586565b6107648a8a8a6107f8565b50505050505050505050565b6001600160a01b0391821660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b6107c2610a33565b6001600160a01b0381166107ec57604051631e4fbdf760e01b815260006004820152602401610586565b6107f581610b36565b50565b6108058383836001610c82565b505050565b60006108168484610770565b9050600019811461086a578181101561085b57604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610586565b61086a84848484036000610c82565b50505050565b6001600160a01b03831661089a57604051634b637e8f60e11b815260006004820152602401610586565b6001600160a01b0382166108c45760405163ec442f0560e01b815260006004820152602401610586565b610805838383610d69565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156109155750825b905060008267ffffffffffffffff1660011480156109325750303b155b905081158015610940575080155b1561095e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561098857845460ff60401b1916600160401b1785555b6000805460ff191660ff8a161790556109a18787610ea7565b6109aa8a610eb9565b6109ba6109b56102da565b610eca565b6109d88a6109c98a600a6117d4565b6109d3908c6117e3565b610a8e565b831561076457845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a150505050505050505050565b60006103df610ef5565b33610a657f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b03161461050c5760405163118cdaa760e01b8152336004820152602401610586565b6001600160a01b038216610ab85760405163ec442f0560e01b815260006004820152602401610586565b6103f660008383610d69565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008260601b60e81c176000526e5af43d82803e903d91602b57fd5bf38260781b17602052603760096000f090506001600160a01b038116610b31576040516330be1a3d60e21b815260040160405180910390fd5b919050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000807f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb006104da565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1028054606091600080516020611954833981519152916102ff90611613565b606060006000805160206119548339815191526102ee565b6000610397610c34610a29565b8360405161190160f01b8152600281019290925260228201526042902090565b600080600080610c6688888888610f69565b925092509250610c768282611038565b50909695505050505050565b6000805160206119348339815191526001600160a01b038516610cbb5760405163e602df0560e01b815260006004820152602401610586565b6001600160a01b038416610ce557604051634a1406b160e11b815260006004820152602401610586565b6001600160a01b038086166000908152600183016020908152604080832093881683529290522083905581156103ce57836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051610d5a91815260200190565b60405180910390a35050505050565b6000805160206119348339815191526001600160a01b038416610da55781816002016000828254610d9a91906117fa565b90915550610e179050565b6001600160a01b03841660009081526020829052604090205482811015610df85760405163391434e360e21b81526001600160a01b03861660048201526024810182905260448101849052606401610586565b6001600160a01b03851660009081526020839052604090209083900390555b6001600160a01b038316610e35576002810180548390039055610e54565b6001600160a01b03831660009081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e9991815260200190565b60405180910390a350505050565b610eaf6110f1565b6103f6828261113a565b610ec16110f1565b6107f58161118b565b610ed26110f1565b6107f581604051806040016040528060018152602001603160f81b815250611193565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f610f206111f4565b610f2861125e565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610fa4575060009150600390508261102e565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015610ff8573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166110245750600092506001915082905061102e565b9250600091508190505b9450945094915050565b600082600381111561104c5761104c61180d565b03611055575050565b60018260038111156110695761106961180d565b036110875760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561109b5761109b61180d565b036110bc5760405163fce698f760e01b815260048101829052602401610586565b60038260038111156110d0576110d061180d565b036103f6576040516335e2f38360e21b815260048101829052602401610586565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661050c57604051631afcd79f60e31b815260040160405180910390fd5b6111426110f1565b6000805160206119348339815191527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0361117c8482611873565b506004810161086a8382611873565b6107c26110f1565b61119b6110f1565b6000805160206119548339815191527fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1026111d58482611873565b50600381016111e48382611873565b5060008082556001909101555050565b60006000805160206119548339815191528161120e610bd0565b80519091501561122657805160209091012092915050565b81548015611235579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b600060008051602061195483398151915281611278610c0f565b80519091501561129057805160209091012092915050565b60018201548015611235579392505050565b6000815180845260005b818110156112c8576020818501810151868301820152016112ac565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006112fb60208301846112a2565b9392505050565b80356001600160a01b0381168114610b3157600080fd5b6000806040838503121561132c57600080fd5b61133583611302565b946020939093013593505050565b60008060006060848603121561135857600080fd5b61136184611302565b925061136f60208501611302565b9150604084013590509250925092565b803560ff81168114610b3157600080fd5b634e487b7160e01b600052604160045260246000fd5b600082601f8301126113b757600080fd5b813567ffffffffffffffff808211156113d2576113d2611390565b604051601f8301601f19908116603f011681019082821181831017156113fa576113fa611390565b8160405283815286602085880101111561141357600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a0868803121561144b57600080fd5b61145486611302565b9450602086013593506114696040870161137f565b9250606086013567ffffffffffffffff8082111561148657600080fd5b61149289838a016113a6565b935060808801359150808211156114a857600080fd5b506114b5888289016113a6565b9150509295509295909350565b6000602082840312156114d457600080fd5b6112fb82611302565b60ff60f81b881681526000602060e060208401526114fe60e084018a6112a2565b8381036040850152611510818a6112a2565b606085018990526001600160a01b038816608086015260a0850187905284810360c08601528551808252602080880193509091019060005b8181101561156457835183529284019291840191600101611548565b50909c9b505050505050505050505050565b600080600080600080600060e0888a03121561159157600080fd5b61159a88611302565b96506115a860208901611302565b955060408801359450606088013593506115c46080890161137f565b925060a0880135915060c0880135905092959891949750929550565b600080604083850312156115f357600080fd5b6115fc83611302565b915061160a60208401611302565b90509250929050565b600181811c9082168061162757607f821691505b60208210810361164757634e487b7160e01b600052602260045260246000fd5b50919050565b60018060a01b038616815284602082015260ff8416604082015260a06060820152600061167d60a08301856112a2565b828103608084015261168f81856112a2565b98975050505050505050565b84815260ff841660208201526080604082015260006116bd60808301856112a2565b82810360608401526116cf81856112a2565b979650505050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561172b578160001904821115611711576117116116da565b8085161561171e57918102915b93841c93908002906116f5565b509250929050565b60008261174257506001610397565b8161174f57506000610397565b8160018114611765576002811461176f5761178b565b6001915050610397565b60ff841115611780576117806116da565b50506001821b610397565b5060208310610133831016604e8410600b84101617156117ae575081810a610397565b6117b883836116f0565b80600019048211156117cc576117cc6116da565b029392505050565b60006112fb60ff841683611733565b8082028115828204841417610397576103976116da565b80820180821115610397576103976116da565b634e487b7160e01b600052602160045260246000fd5b601f821115610805576000816000526020600020601f850160051c8101602086101561184c5750805b601f850160051c820191505b8181101561186b57828155600101611858565b505050505050565b815167ffffffffffffffff81111561188d5761188d611390565b6118a18161189b8454611613565b84611823565b602080601f8311600181146118d657600084156118be5750858301515b600019600386901b1c1916600185901b17855561186b565b600085815260208120601f198616915b82811015611905578886015182559484019460019091019084016118e6565b50858210156119235787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100a2646970667358221220104d3934ea767ced7c7a6d15d925fc57e130dc135fe8a95ce80998794a41ffc664736f6c6343000817003352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00000000000000000000000000d71399e687f9ca63688ef12f34c6aa7e49b007ee0000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000854656d706c6174650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004544d504c00000000000000000000000000000000000000000000000000000000