diff --git a/contracts/zevm/ZRC20.sol b/contracts/zevm/ZRC20.sol index 10f25017..8887dbad 100644 --- a/contracts/zevm/ZRC20.sol +++ b/contracts/zevm/ZRC20.sol @@ -17,13 +17,8 @@ interface ZRC20Errors { error ZeroAddress(); } -<<<<<<< HEAD -contract ZRC20 is Context, IZRC20, IZRC20Metadata, ZRC20Errors { - /// @notice The fungible module address, this is maintained at the protocol level and is always constant -======= contract ZRC20 is IZRC20, IZRC20Metadata, ZRC20Errors { /// @notice Fungible address is always the same, maintained at the protocol level ->>>>>>> main address public constant FUNGIBLE_MODULE_ADDRESS = 0x735b14BB79463307AAcBED86DAf3322B1e6226aB; /// @notice Chain id.abi uint256 public immutable CHAIN_ID; diff --git a/pkg/contracts/zevm/zrc20.sol/zrc20.go b/pkg/contracts/zevm/zrc20.sol/zrc20.go index 30adbcdb..7a08a1b1 100644 --- a/pkg/contracts/zevm/zrc20.sol/zrc20.go +++ b/pkg/contracts/zevm/zrc20.sol/zrc20.go @@ -32,11 +32,7 @@ var ( // ZRC20MetaData contains all meta data concerning the ZRC20 contract. var ZRC20MetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"chainid_\",\"type\":\"uint256\"},{\"internalType\":\"enumCoinType\",\"name\":\"coinType_\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"systemContractAddress_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CallerIsNotFungibleModule\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GasFeeTransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LowAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LowBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroGasCoin\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroGasPrice\",\"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\":\"bytes\",\"name\":\"from\",\"type\":\"bytes\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"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\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"}],\"name\":\"UpdatedGasLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"protocolFlatFee\",\"type\":\"uint256\"}],\"name\":\"UpdatedProtocolFlatFee\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"systemContract\",\"type\":\"address\"}],\"name\":\"UpdatedSystemContract\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"to\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasfee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"protocolFlatFee\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COIN_TYPE\",\"outputs\":[{\"internalType\":\"enumCoinType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FUNGIBLE_MODULE_ADDRESS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROTOCOL_FLAT_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SYSTEM_CONTRACT_ADDRESS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"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\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"}],\"name\":\"updateGasLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"protocolFlatFee\",\"type\":\"uint256\"}],\"name\":\"updateProtocolFlatFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"updateSystemContractAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"to\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawGasFee\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", -<<<<<<< HEAD - Bin: "0x60c06040523480156200001157600080fd5b50604051620029ab380380620029ab833981810160405281019062000037919062000319565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614620000b1576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8660069080519060200190620000c99291906200018f565b508560079080519060200190620000e29291906200018f565b5084600860006101000a81548160ff021916908360ff16021790555083608081815250508260028111156200011c576200011b62000556565b5b60a081600281111562000134576200013362000556565b5b60f81b8152505081600181905550806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505062000667565b8280546200019d90620004ea565b90600052602060002090601f016020900481019282620001c157600085556200020d565b82601f10620001dc57805160ff19168380011785556200020d565b828001600101855582156200020d579182015b828111156200020c578251825591602001919060010190620001ef565b5b5090506200021c919062000220565b5090565b5b808211156200023b57600081600090555060010162000221565b5090565b600062000256620002508462000433565b6200040a565b905082815260208101848484011115620002755762000274620005e8565b5b62000282848285620004b4565b509392505050565b6000815190506200029b8162000608565b92915050565b600081519050620002b28162000622565b92915050565b600082601f830112620002d057620002cf620005e3565b5b8151620002e28482602086016200023f565b91505092915050565b600081519050620002fc8162000633565b92915050565b60008151905062000313816200064d565b92915050565b600080600080600080600060e0888a0312156200033b576200033a620005f2565b5b600088015167ffffffffffffffff8111156200035c576200035b620005ed565b5b6200036a8a828b01620002b8565b975050602088015167ffffffffffffffff8111156200038e576200038d620005ed565b5b6200039c8a828b01620002b8565b9650506040620003af8a828b0162000302565b9550506060620003c28a828b01620002eb565b9450506080620003d58a828b01620002a1565b93505060a0620003e88a828b01620002eb565b92505060c0620003fb8a828b016200028a565b91505092959891949750929550565b60006200041662000429565b905062000424828262000520565b919050565b6000604051905090565b600067ffffffffffffffff821115620004515762000450620005b4565b5b6200045c82620005f7565b9050602081019050919050565b600062000476826200047d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015620004d4578082015181840152602081019050620004b7565b83811115620004e4576000848401525b50505050565b600060028204905060018216806200050357607f821691505b602082108114156200051a576200051962000585565b5b50919050565b6200052b82620005f7565b810181811067ffffffffffffffff821117156200054d576200054c620005b4565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b620006138162000469565b81146200061f57600080fd5b50565b600381106200063057600080fd5b50565b6200063e816200049d565b81146200064a57600080fd5b50565b6200065881620004a7565b81146200066457600080fd5b50565b60805160a05160f81c61230d6200069e60003960006109f101526000818161093b01528181610e210152610f56015261230d6000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c806385e1f4d0116100c3578063c835d7cc1161007c578063c835d7cc1461041b578063d9eeebed14610437578063dd62ed3e14610456578063eddeb12314610486578063f2441b32146104a2578063f687d12a146104c057610158565b806385e1f4d01461033157806395d89b411461034f578063a3413d031461036d578063a457c2d71461038b578063a9059cbb146103bb578063c7012626146103eb57610158565b8063395093511161011557806339509351146102355780633ce4a5bc1461026557806342966c681461028357806347e7ef24146102b35780634d8943bb146102e357806370a082311461030157610158565b806306fdde031461015d578063091d27881461017b578063095ea7b31461019957806318160ddd146101c957806323b872dd146101e7578063313ce56714610217575b600080fd5b6101656104dc565b6040516101729190611e83565b60405180910390f35b61018361056e565b6040516101909190611ea5565b60405180910390f35b6101b360048036038101906101ae9190611b44565b610574565b6040516101c09190611dd1565b60405180910390f35b6101d1610592565b6040516101de9190611ea5565b60405180910390f35b61020160048036038101906101fc9190611af1565b61059c565b60405161020e9190611dd1565b60405180910390f35b61021f610694565b60405161022c9190611ec0565b60405180910390f35b61024f600480360381019061024a9190611b44565b6106ab565b60405161025c9190611dd1565b60405180910390f35b61026d610751565b60405161027a9190611d56565b60405180910390f35b61029d60048036038101906102989190611c0d565b610769565b6040516102aa9190611dd1565b60405180910390f35b6102cd60048036038101906102c89190611b44565b61077e565b6040516102da9190611dd1565b60405180910390f35b6102eb6108ea565b6040516102f89190611ea5565b60405180910390f35b61031b60048036038101906103169190611a57565b6108f0565b6040516103289190611ea5565b60405180910390f35b610339610939565b6040516103469190611ea5565b60405180910390f35b61035761095d565b6040516103649190611e83565b60405180910390f35b6103756109ef565b6040516103829190611e68565b60405180910390f35b6103a560048036038101906103a09190611b44565b610a13565b6040516103b29190611dd1565b60405180910390f35b6103d560048036038101906103d09190611b44565b610b76565b6040516103e29190611dd1565b60405180910390f35b61040560048036038101906104009190611bb1565b610b94565b6040516104129190611dd1565b60405180910390f35b61043560048036038101906104309190611a57565b610cea565b005b61043f610ddd565b60405161044d929190611da8565b60405180910390f35b610470600480360381019061046b9190611ab1565b61104a565b60405161047d9190611ea5565b60405180910390f35b6104a0600480360381019061049b9190611c0d565b6110d1565b005b6104aa61118b565b6040516104b79190611d56565b60405180910390f35b6104da60048036038101906104d59190611c0d565b6111af565b005b6060600680546104eb90612109565b80601f016020809104026020016040519081016040528092919081815260200182805461051790612109565b80156105645780601f1061053957610100808354040283529160200191610564565b820191906000526020600020905b81548152906001019060200180831161054757829003601f168201915b5050505050905090565b60015481565b6000610588610581611269565b8484611271565b6001905092915050565b6000600554905090565b60006105a984848461142a565b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105f4611269565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561066b576040517f10bad14700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61068885610677611269565b85846106839190612019565b611271565b60019150509392505050565b6000600860009054906101000a900460ff16905090565b600081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106f7611269565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107409190611f69565b925050819055506001905092915050565b73735b14bb79463307aacbed86daf3322b1e6226ab81565b60006107753383611686565b60019050919050565b600073735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561081c575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610853576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61085d838361183e565b8273ffffffffffffffffffffffffffffffffffffffff167f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab373735b14bb79463307aacbed86daf3322b1e6226ab6040516020016108ba9190611d3b565b604051602081830303815290604052846040516108d8929190611dec565b60405180910390a26001905092915050565b60025481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606007805461096c90612109565b80601f016020809104026020016040519081016040528092919081815260200182805461099890612109565b80156109e55780601f106109ba576101008083540402835291602001916109e5565b820191906000526020600020905b8154815290600101906020018083116109c857829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b600081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a5f611269565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610ad2576040517f10bad14700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b1c611269565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b659190612019565b925050819055506001905092915050565b6000610b8a610b83611269565b848461142a565b6001905092915050565b6000806000610ba1610ddd565b915091508173ffffffffffffffffffffffffffffffffffffffff166323b872dd3373735b14bb79463307aacbed86daf3322b1e6226ab846040518463ffffffff1660e01b8152600401610bf693929190611d71565b602060405180830381600087803b158015610c1057600080fd5b505af1158015610c24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c489190611b84565b610c7e576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c883385611686565b3373ffffffffffffffffffffffffffffffffffffffff167f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d955868684600254604051610cd69493929190611e1c565b60405180910390a260019250505092915050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d63576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae81604051610dd29190611d56565b60405180910390a150565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630be155477f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610e5c9190611ea5565b60206040518083038186803b158015610e7457600080fd5b505afa158015610e88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eac9190611a84565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f15576040517f78fff39600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d7fd7afb7f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610f919190611ea5565b60206040518083038186803b158015610fa957600080fd5b505afa158015610fbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe19190611c3a565b9050600081141561101e576040517fe661aed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600254600154836110319190611fbf565b61103b9190611f69565b90508281945094505050509091565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461114a576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806002819055507fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f816040516111809190611ea5565b60405180910390a150565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611228576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806001819055507fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a8160405161125e9190611ea5565b60405180910390a150565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112d8576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561133f576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161141d9190611ea5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611491576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114f8576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611576576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81816115829190612019565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116149190611f69565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116789190611ea5565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116ed576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561176b576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81816117779190612019565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008282546117cc9190612019565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118319190611ea5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118a5576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600560008282546118b79190611f69565b9250508190555080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461190d9190611f69565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119729190611ea5565b60405180910390a35050565b600061199161198c84611f00565b611edb565b9050828152602081018484840111156119ad576119ac612251565b5b6119b88482856120c7565b509392505050565b6000813590506119cf81612292565b92915050565b6000815190506119e481612292565b92915050565b6000815190506119f9816122a9565b92915050565b600082601f830112611a1457611a1361224c565b5b8135611a2484826020860161197e565b91505092915050565b600081359050611a3c816122c0565b92915050565b600081519050611a51816122c0565b92915050565b600060208284031215611a6d57611a6c61225b565b5b6000611a7b848285016119c0565b91505092915050565b600060208284031215611a9a57611a9961225b565b5b6000611aa8848285016119d5565b91505092915050565b60008060408385031215611ac857611ac761225b565b5b6000611ad6858286016119c0565b9250506020611ae7858286016119c0565b9150509250929050565b600080600060608486031215611b0a57611b0961225b565b5b6000611b18868287016119c0565b9350506020611b29868287016119c0565b9250506040611b3a86828701611a2d565b9150509250925092565b60008060408385031215611b5b57611b5a61225b565b5b6000611b69858286016119c0565b9250506020611b7a85828601611a2d565b9150509250929050565b600060208284031215611b9a57611b9961225b565b5b6000611ba8848285016119ea565b91505092915050565b60008060408385031215611bc857611bc761225b565b5b600083013567ffffffffffffffff811115611be657611be5612256565b5b611bf2858286016119ff565b9250506020611c0385828601611a2d565b9150509250929050565b600060208284031215611c2357611c2261225b565b5b6000611c3184828501611a2d565b91505092915050565b600060208284031215611c5057611c4f61225b565b5b6000611c5e84828501611a42565b91505092915050565b611c708161204d565b82525050565b611c87611c828261204d565b61216c565b82525050565b611c968161205f565b82525050565b6000611ca782611f31565b611cb18185611f47565b9350611cc18185602086016120d6565b611cca81612260565b840191505092915050565b611cde816120b5565b82525050565b6000611cef82611f3c565b611cf98185611f58565b9350611d098185602086016120d6565b611d1281612260565b840191505092915050565b611d268161209e565b82525050565b611d35816120a8565b82525050565b6000611d478284611c76565b60148201915081905092915050565b6000602082019050611d6b6000830184611c67565b92915050565b6000606082019050611d866000830186611c67565b611d936020830185611c67565b611da06040830184611d1d565b949350505050565b6000604082019050611dbd6000830185611c67565b611dca6020830184611d1d565b9392505050565b6000602082019050611de66000830184611c8d565b92915050565b60006040820190508181036000830152611e068185611c9c565b9050611e156020830184611d1d565b9392505050565b60006080820190508181036000830152611e368187611c9c565b9050611e456020830186611d1d565b611e526040830185611d1d565b611e5f6060830184611d1d565b95945050505050565b6000602082019050611e7d6000830184611cd5565b92915050565b60006020820190508181036000830152611e9d8184611ce4565b905092915050565b6000602082019050611eba6000830184611d1d565b92915050565b6000602082019050611ed56000830184611d2c565b92915050565b6000611ee5611ef6565b9050611ef1828261213b565b919050565b6000604051905090565b600067ffffffffffffffff821115611f1b57611f1a61221d565b5b611f2482612260565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611f748261209e565b9150611f7f8361209e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611fb457611fb3612190565b5b828201905092915050565b6000611fca8261209e565b9150611fd58361209e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561200e5761200d612190565b5b828202905092915050565b60006120248261209e565b915061202f8361209e565b92508282101561204257612041612190565b5b828203905092915050565b60006120588261207e565b9050919050565b60008115159050919050565b60008190506120798261227e565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006120c08261206b565b9050919050565b82818337600083830152505050565b60005b838110156120f45780820151818401526020810190506120d9565b83811115612103576000848401525b50505050565b6000600282049050600182168061212157607f821691505b60208210811415612135576121346121ee565b5b50919050565b61214482612260565b810181811067ffffffffffffffff821117156121635761216261221d565b5b80604052505050565b60006121778261217e565b9050919050565b600061218982612271565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b6003811061228f5761228e6121bf565b5b50565b61229b8161204d565b81146122a657600080fd5b50565b6122b28161205f565b81146122bd57600080fd5b50565b6122c98161209e565b81146122d457600080fd5b5056fea26469706673582212209cca3a6257f305d19e93c721734f70723fd0bd7b768c19d7724a905a73dddee664736f6c63430008070033", -======= - Bin: "0x60c06040523480156200001157600080fd5b50604051620029ab380380620029ab833981810160405281019062000037919062000319565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614620000b1576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8660069080519060200190620000c99291906200018f565b508560079080519060200190620000e29291906200018f565b5084600860006101000a81548160ff021916908360ff16021790555083608081815250508260028111156200011c576200011b62000556565b5b60a081600281111562000134576200013362000556565b5b60f81b8152505081600181905550806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505062000667565b8280546200019d90620004ea565b90600052602060002090601f016020900481019282620001c157600085556200020d565b82601f10620001dc57805160ff19168380011785556200020d565b828001600101855582156200020d579182015b828111156200020c578251825591602001919060010190620001ef565b5b5090506200021c919062000220565b5090565b5b808211156200023b57600081600090555060010162000221565b5090565b600062000256620002508462000433565b6200040a565b905082815260208101848484011115620002755762000274620005e8565b5b62000282848285620004b4565b509392505050565b6000815190506200029b8162000608565b92915050565b600081519050620002b28162000622565b92915050565b600082601f830112620002d057620002cf620005e3565b5b8151620002e28482602086016200023f565b91505092915050565b600081519050620002fc8162000633565b92915050565b60008151905062000313816200064d565b92915050565b600080600080600080600060e0888a0312156200033b576200033a620005f2565b5b600088015167ffffffffffffffff8111156200035c576200035b620005ed565b5b6200036a8a828b01620002b8565b975050602088015167ffffffffffffffff8111156200038e576200038d620005ed565b5b6200039c8a828b01620002b8565b9650506040620003af8a828b0162000302565b9550506060620003c28a828b01620002eb565b9450506080620003d58a828b01620002a1565b93505060a0620003e88a828b01620002eb565b92505060c0620003fb8a828b016200028a565b91505092959891949750929550565b60006200041662000429565b905062000424828262000520565b919050565b6000604051905090565b600067ffffffffffffffff821115620004515762000450620005b4565b5b6200045c82620005f7565b9050602081019050919050565b600062000476826200047d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015620004d4578082015181840152602081019050620004b7565b83811115620004e4576000848401525b50505050565b600060028204905060018216806200050357607f821691505b602082108114156200051a576200051962000585565b5b50919050565b6200052b82620005f7565b810181811067ffffffffffffffff821117156200054d576200054c620005b4565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b620006138162000469565b81146200061f57600080fd5b50565b600381106200063057600080fd5b50565b6200063e816200049d565b81146200064a57600080fd5b50565b6200065881620004a7565b81146200066457600080fd5b50565b60805160a05160f81c61230d6200069e60003960006109f101526000818161093b01528181610e210152610f56015261230d6000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c806385e1f4d0116100c3578063c835d7cc1161007c578063c835d7cc1461041b578063d9eeebed14610437578063dd62ed3e14610456578063eddeb12314610486578063f2441b32146104a2578063f687d12a146104c057610158565b806385e1f4d01461033157806395d89b411461034f578063a3413d031461036d578063a457c2d71461038b578063a9059cbb146103bb578063c7012626146103eb57610158565b8063395093511161011557806339509351146102355780633ce4a5bc1461026557806342966c681461028357806347e7ef24146102b35780634d8943bb146102e357806370a082311461030157610158565b806306fdde031461015d578063091d27881461017b578063095ea7b31461019957806318160ddd146101c957806323b872dd146101e7578063313ce56714610217575b600080fd5b6101656104dc565b6040516101729190611e83565b60405180910390f35b61018361056e565b6040516101909190611ea5565b60405180910390f35b6101b360048036038101906101ae9190611b44565b610574565b6040516101c09190611dd1565b60405180910390f35b6101d1610592565b6040516101de9190611ea5565b60405180910390f35b61020160048036038101906101fc9190611af1565b61059c565b60405161020e9190611dd1565b60405180910390f35b61021f610694565b60405161022c9190611ec0565b60405180910390f35b61024f600480360381019061024a9190611b44565b6106ab565b60405161025c9190611dd1565b60405180910390f35b61026d610751565b60405161027a9190611d56565b60405180910390f35b61029d60048036038101906102989190611c0d565b610769565b6040516102aa9190611dd1565b60405180910390f35b6102cd60048036038101906102c89190611b44565b61077e565b6040516102da9190611dd1565b60405180910390f35b6102eb6108ea565b6040516102f89190611ea5565b60405180910390f35b61031b60048036038101906103169190611a57565b6108f0565b6040516103289190611ea5565b60405180910390f35b610339610939565b6040516103469190611ea5565b60405180910390f35b61035761095d565b6040516103649190611e83565b60405180910390f35b6103756109ef565b6040516103829190611e68565b60405180910390f35b6103a560048036038101906103a09190611b44565b610a13565b6040516103b29190611dd1565b60405180910390f35b6103d560048036038101906103d09190611b44565b610b76565b6040516103e29190611dd1565b60405180910390f35b61040560048036038101906104009190611bb1565b610b94565b6040516104129190611dd1565b60405180910390f35b61043560048036038101906104309190611a57565b610cea565b005b61043f610ddd565b60405161044d929190611da8565b60405180910390f35b610470600480360381019061046b9190611ab1565b61104a565b60405161047d9190611ea5565b60405180910390f35b6104a0600480360381019061049b9190611c0d565b6110d1565b005b6104aa61118b565b6040516104b79190611d56565b60405180910390f35b6104da60048036038101906104d59190611c0d565b6111af565b005b6060600680546104eb90612109565b80601f016020809104026020016040519081016040528092919081815260200182805461051790612109565b80156105645780601f1061053957610100808354040283529160200191610564565b820191906000526020600020905b81548152906001019060200180831161054757829003601f168201915b5050505050905090565b60015481565b6000610588610581611269565b8484611271565b6001905092915050565b6000600554905090565b60006105a984848461142a565b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105f4611269565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561066b576040517f10bad14700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61068885610677611269565b85846106839190612019565b611271565b60019150509392505050565b6000600860009054906101000a900460ff16905090565b600081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106f7611269565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107409190611f69565b925050819055506001905092915050565b73735b14bb79463307aacbed86daf3322b1e6226ab81565b60006107753383611686565b60019050919050565b600073735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561081c575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610853576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61085d838361183e565b8273ffffffffffffffffffffffffffffffffffffffff167f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab373735b14bb79463307aacbed86daf3322b1e6226ab6040516020016108ba9190611d3b565b604051602081830303815290604052846040516108d8929190611dec565b60405180910390a26001905092915050565b60025481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606007805461096c90612109565b80601f016020809104026020016040519081016040528092919081815260200182805461099890612109565b80156109e55780601f106109ba576101008083540402835291602001916109e5565b820191906000526020600020905b8154815290600101906020018083116109c857829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b600081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a5f611269565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610ad2576040517f10bad14700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b1c611269565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b659190612019565b925050819055506001905092915050565b6000610b8a610b83611269565b848461142a565b6001905092915050565b6000806000610ba1610ddd565b915091508173ffffffffffffffffffffffffffffffffffffffff166323b872dd3373735b14bb79463307aacbed86daf3322b1e6226ab846040518463ffffffff1660e01b8152600401610bf693929190611d71565b602060405180830381600087803b158015610c1057600080fd5b505af1158015610c24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c489190611b84565b610c7e576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c883385611686565b3373ffffffffffffffffffffffffffffffffffffffff167f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d955868684600254604051610cd69493929190611e1c565b60405180910390a260019250505092915050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d63576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae81604051610dd29190611d56565b60405180910390a150565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630be155477f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610e5c9190611ea5565b60206040518083038186803b158015610e7457600080fd5b505afa158015610e88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eac9190611a84565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f15576040517f78fff39600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d7fd7afb7f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610f919190611ea5565b60206040518083038186803b158015610fa957600080fd5b505afa158015610fbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe19190611c3a565b9050600081141561101e576040517fe661aed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600254600154836110319190611fbf565b61103b9190611f69565b90508281945094505050509091565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461114a576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806002819055507fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f816040516111809190611ea5565b60405180910390a150565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611228576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806001819055507fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a8160405161125e9190611ea5565b60405180910390a150565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112d8576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561133f576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161141d9190611ea5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611491576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114f8576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611576576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81816115829190612019565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116149190611f69565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116789190611ea5565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116ed576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561176b576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81816117779190612019565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008282546117cc9190612019565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118319190611ea5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118a5576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600560008282546118b79190611f69565b9250508190555080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461190d9190611f69565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119729190611ea5565b60405180910390a35050565b600061199161198c84611f00565b611edb565b9050828152602081018484840111156119ad576119ac612251565b5b6119b88482856120c7565b509392505050565b6000813590506119cf81612292565b92915050565b6000815190506119e481612292565b92915050565b6000815190506119f9816122a9565b92915050565b600082601f830112611a1457611a1361224c565b5b8135611a2484826020860161197e565b91505092915050565b600081359050611a3c816122c0565b92915050565b600081519050611a51816122c0565b92915050565b600060208284031215611a6d57611a6c61225b565b5b6000611a7b848285016119c0565b91505092915050565b600060208284031215611a9a57611a9961225b565b5b6000611aa8848285016119d5565b91505092915050565b60008060408385031215611ac857611ac761225b565b5b6000611ad6858286016119c0565b9250506020611ae7858286016119c0565b9150509250929050565b600080600060608486031215611b0a57611b0961225b565b5b6000611b18868287016119c0565b9350506020611b29868287016119c0565b9250506040611b3a86828701611a2d565b9150509250925092565b60008060408385031215611b5b57611b5a61225b565b5b6000611b69858286016119c0565b9250506020611b7a85828601611a2d565b9150509250929050565b600060208284031215611b9a57611b9961225b565b5b6000611ba8848285016119ea565b91505092915050565b60008060408385031215611bc857611bc761225b565b5b600083013567ffffffffffffffff811115611be657611be5612256565b5b611bf2858286016119ff565b9250506020611c0385828601611a2d565b9150509250929050565b600060208284031215611c2357611c2261225b565b5b6000611c3184828501611a2d565b91505092915050565b600060208284031215611c5057611c4f61225b565b5b6000611c5e84828501611a42565b91505092915050565b611c708161204d565b82525050565b611c87611c828261204d565b61216c565b82525050565b611c968161205f565b82525050565b6000611ca782611f31565b611cb18185611f47565b9350611cc18185602086016120d6565b611cca81612260565b840191505092915050565b611cde816120b5565b82525050565b6000611cef82611f3c565b611cf98185611f58565b9350611d098185602086016120d6565b611d1281612260565b840191505092915050565b611d268161209e565b82525050565b611d35816120a8565b82525050565b6000611d478284611c76565b60148201915081905092915050565b6000602082019050611d6b6000830184611c67565b92915050565b6000606082019050611d866000830186611c67565b611d936020830185611c67565b611da06040830184611d1d565b949350505050565b6000604082019050611dbd6000830185611c67565b611dca6020830184611d1d565b9392505050565b6000602082019050611de66000830184611c8d565b92915050565b60006040820190508181036000830152611e068185611c9c565b9050611e156020830184611d1d565b9392505050565b60006080820190508181036000830152611e368187611c9c565b9050611e456020830186611d1d565b611e526040830185611d1d565b611e5f6060830184611d1d565b95945050505050565b6000602082019050611e7d6000830184611cd5565b92915050565b60006020820190508181036000830152611e9d8184611ce4565b905092915050565b6000602082019050611eba6000830184611d1d565b92915050565b6000602082019050611ed56000830184611d2c565b92915050565b6000611ee5611ef6565b9050611ef1828261213b565b919050565b6000604051905090565b600067ffffffffffffffff821115611f1b57611f1a61221d565b5b611f2482612260565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611f748261209e565b9150611f7f8361209e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611fb457611fb3612190565b5b828201905092915050565b6000611fca8261209e565b9150611fd58361209e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561200e5761200d612190565b5b828202905092915050565b60006120248261209e565b915061202f8361209e565b92508282101561204257612041612190565b5b828203905092915050565b60006120588261207e565b9050919050565b60008115159050919050565b60008190506120798261227e565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006120c08261206b565b9050919050565b82818337600083830152505050565b60005b838110156120f45780820151818401526020810190506120d9565b83811115612103576000848401525b50505050565b6000600282049050600182168061212157607f821691505b60208210811415612135576121346121ee565b5b50919050565b61214482612260565b810181811067ffffffffffffffff821117156121635761216261221d565b5b80604052505050565b60006121778261217e565b9050919050565b600061218982612271565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b6003811061228f5761228e6121bf565b5b50565b61229b8161204d565b81146122a657600080fd5b50565b6122b28161205f565b81146122bd57600080fd5b50565b6122c98161209e565b81146122d457600080fd5b5056fea264697066735822122035a0043de291e5a401f2c07041d1a69f4d2d6c711b7c96dc38976f69e5f9999f64736f6c63430008070033", ->>>>>>> main + Bin: "0x60c06040523480156200001157600080fd5b50604051620029ab380380620029ab833981810160405281019062000037919062000319565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614620000b1576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8660069080519060200190620000c99291906200018f565b508560079080519060200190620000e29291906200018f565b5084600860006101000a81548160ff021916908360ff16021790555083608081815250508260028111156200011c576200011b62000556565b5b60a081600281111562000134576200013362000556565b5b60f81b8152505081600181905550806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505062000667565b8280546200019d90620004ea565b90600052602060002090601f016020900481019282620001c157600085556200020d565b82601f10620001dc57805160ff19168380011785556200020d565b828001600101855582156200020d579182015b828111156200020c578251825591602001919060010190620001ef565b5b5090506200021c919062000220565b5090565b5b808211156200023b57600081600090555060010162000221565b5090565b600062000256620002508462000433565b6200040a565b905082815260208101848484011115620002755762000274620005e8565b5b62000282848285620004b4565b509392505050565b6000815190506200029b8162000608565b92915050565b600081519050620002b28162000622565b92915050565b600082601f830112620002d057620002cf620005e3565b5b8151620002e28482602086016200023f565b91505092915050565b600081519050620002fc8162000633565b92915050565b60008151905062000313816200064d565b92915050565b600080600080600080600060e0888a0312156200033b576200033a620005f2565b5b600088015167ffffffffffffffff8111156200035c576200035b620005ed565b5b6200036a8a828b01620002b8565b975050602088015167ffffffffffffffff8111156200038e576200038d620005ed565b5b6200039c8a828b01620002b8565b9650506040620003af8a828b0162000302565b9550506060620003c28a828b01620002eb565b9450506080620003d58a828b01620002a1565b93505060a0620003e88a828b01620002eb565b92505060c0620003fb8a828b016200028a565b91505092959891949750929550565b60006200041662000429565b905062000424828262000520565b919050565b6000604051905090565b600067ffffffffffffffff821115620004515762000450620005b4565b5b6200045c82620005f7565b9050602081019050919050565b600062000476826200047d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015620004d4578082015181840152602081019050620004b7565b83811115620004e4576000848401525b50505050565b600060028204905060018216806200050357607f821691505b602082108114156200051a576200051962000585565b5b50919050565b6200052b82620005f7565b810181811067ffffffffffffffff821117156200054d576200054c620005b4565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b620006138162000469565b81146200061f57600080fd5b50565b600381106200063057600080fd5b50565b6200063e816200049d565b81146200064a57600080fd5b50565b6200065881620004a7565b81146200066457600080fd5b50565b60805160a05160f81c61230d6200069e60003960006109f101526000818161093b01528181610e210152610f56015261230d6000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c806385e1f4d0116100c3578063c835d7cc1161007c578063c835d7cc1461041b578063d9eeebed14610437578063dd62ed3e14610456578063eddeb12314610486578063f2441b32146104a2578063f687d12a146104c057610158565b806385e1f4d01461033157806395d89b411461034f578063a3413d031461036d578063a457c2d71461038b578063a9059cbb146103bb578063c7012626146103eb57610158565b8063395093511161011557806339509351146102355780633ce4a5bc1461026557806342966c681461028357806347e7ef24146102b35780634d8943bb146102e357806370a082311461030157610158565b806306fdde031461015d578063091d27881461017b578063095ea7b31461019957806318160ddd146101c957806323b872dd146101e7578063313ce56714610217575b600080fd5b6101656104dc565b6040516101729190611e83565b60405180910390f35b61018361056e565b6040516101909190611ea5565b60405180910390f35b6101b360048036038101906101ae9190611b44565b610574565b6040516101c09190611dd1565b60405180910390f35b6101d1610592565b6040516101de9190611ea5565b60405180910390f35b61020160048036038101906101fc9190611af1565b61059c565b60405161020e9190611dd1565b60405180910390f35b61021f610694565b60405161022c9190611ec0565b60405180910390f35b61024f600480360381019061024a9190611b44565b6106ab565b60405161025c9190611dd1565b60405180910390f35b61026d610751565b60405161027a9190611d56565b60405180910390f35b61029d60048036038101906102989190611c0d565b610769565b6040516102aa9190611dd1565b60405180910390f35b6102cd60048036038101906102c89190611b44565b61077e565b6040516102da9190611dd1565b60405180910390f35b6102eb6108ea565b6040516102f89190611ea5565b60405180910390f35b61031b60048036038101906103169190611a57565b6108f0565b6040516103289190611ea5565b60405180910390f35b610339610939565b6040516103469190611ea5565b60405180910390f35b61035761095d565b6040516103649190611e83565b60405180910390f35b6103756109ef565b6040516103829190611e68565b60405180910390f35b6103a560048036038101906103a09190611b44565b610a13565b6040516103b29190611dd1565b60405180910390f35b6103d560048036038101906103d09190611b44565b610b76565b6040516103e29190611dd1565b60405180910390f35b61040560048036038101906104009190611bb1565b610b94565b6040516104129190611dd1565b60405180910390f35b61043560048036038101906104309190611a57565b610cea565b005b61043f610ddd565b60405161044d929190611da8565b60405180910390f35b610470600480360381019061046b9190611ab1565b61104a565b60405161047d9190611ea5565b60405180910390f35b6104a0600480360381019061049b9190611c0d565b6110d1565b005b6104aa61118b565b6040516104b79190611d56565b60405180910390f35b6104da60048036038101906104d59190611c0d565b6111af565b005b6060600680546104eb90612109565b80601f016020809104026020016040519081016040528092919081815260200182805461051790612109565b80156105645780601f1061053957610100808354040283529160200191610564565b820191906000526020600020905b81548152906001019060200180831161054757829003601f168201915b5050505050905090565b60015481565b6000610588610581611269565b8484611271565b6001905092915050565b6000600554905090565b60006105a984848461142a565b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105f4611269565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561066b576040517f10bad14700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61068885610677611269565b85846106839190612019565b611271565b60019150509392505050565b6000600860009054906101000a900460ff16905090565b600081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106f7611269565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107409190611f69565b925050819055506001905092915050565b73735b14bb79463307aacbed86daf3322b1e6226ab81565b60006107753383611686565b60019050919050565b600073735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561081c575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610853576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61085d838361183e565b8273ffffffffffffffffffffffffffffffffffffffff167f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab373735b14bb79463307aacbed86daf3322b1e6226ab6040516020016108ba9190611d3b565b604051602081830303815290604052846040516108d8929190611dec565b60405180910390a26001905092915050565b60025481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606007805461096c90612109565b80601f016020809104026020016040519081016040528092919081815260200182805461099890612109565b80156109e55780601f106109ba576101008083540402835291602001916109e5565b820191906000526020600020905b8154815290600101906020018083116109c857829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b600081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a5f611269565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610ad2576040517f10bad14700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b1c611269565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b659190612019565b925050819055506001905092915050565b6000610b8a610b83611269565b848461142a565b6001905092915050565b6000806000610ba1610ddd565b915091508173ffffffffffffffffffffffffffffffffffffffff166323b872dd3373735b14bb79463307aacbed86daf3322b1e6226ab846040518463ffffffff1660e01b8152600401610bf693929190611d71565b602060405180830381600087803b158015610c1057600080fd5b505af1158015610c24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c489190611b84565b610c7e576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c883385611686565b3373ffffffffffffffffffffffffffffffffffffffff167f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d955868684600254604051610cd69493929190611e1c565b60405180910390a260019250505092915050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d63576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae81604051610dd29190611d56565b60405180910390a150565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630be155477f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610e5c9190611ea5565b60206040518083038186803b158015610e7457600080fd5b505afa158015610e88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eac9190611a84565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f15576040517f78fff39600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d7fd7afb7f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610f919190611ea5565b60206040518083038186803b158015610fa957600080fd5b505afa158015610fbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe19190611c3a565b9050600081141561101e576040517fe661aed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600254600154836110319190611fbf565b61103b9190611f69565b90508281945094505050509091565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461114a576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806002819055507fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f816040516111809190611ea5565b60405180910390a150565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611228576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806001819055507fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a8160405161125e9190611ea5565b60405180910390a150565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112d8576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561133f576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161141d9190611ea5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611491576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114f8576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611576576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81816115829190612019565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116149190611f69565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116789190611ea5565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116ed576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561176b576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81816117779190612019565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008282546117cc9190612019565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118319190611ea5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118a5576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600560008282546118b79190611f69565b9250508190555080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461190d9190611f69565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119729190611ea5565b60405180910390a35050565b600061199161198c84611f00565b611edb565b9050828152602081018484840111156119ad576119ac612251565b5b6119b88482856120c7565b509392505050565b6000813590506119cf81612292565b92915050565b6000815190506119e481612292565b92915050565b6000815190506119f9816122a9565b92915050565b600082601f830112611a1457611a1361224c565b5b8135611a2484826020860161197e565b91505092915050565b600081359050611a3c816122c0565b92915050565b600081519050611a51816122c0565b92915050565b600060208284031215611a6d57611a6c61225b565b5b6000611a7b848285016119c0565b91505092915050565b600060208284031215611a9a57611a9961225b565b5b6000611aa8848285016119d5565b91505092915050565b60008060408385031215611ac857611ac761225b565b5b6000611ad6858286016119c0565b9250506020611ae7858286016119c0565b9150509250929050565b600080600060608486031215611b0a57611b0961225b565b5b6000611b18868287016119c0565b9350506020611b29868287016119c0565b9250506040611b3a86828701611a2d565b9150509250925092565b60008060408385031215611b5b57611b5a61225b565b5b6000611b69858286016119c0565b9250506020611b7a85828601611a2d565b9150509250929050565b600060208284031215611b9a57611b9961225b565b5b6000611ba8848285016119ea565b91505092915050565b60008060408385031215611bc857611bc761225b565b5b600083013567ffffffffffffffff811115611be657611be5612256565b5b611bf2858286016119ff565b9250506020611c0385828601611a2d565b9150509250929050565b600060208284031215611c2357611c2261225b565b5b6000611c3184828501611a2d565b91505092915050565b600060208284031215611c5057611c4f61225b565b5b6000611c5e84828501611a42565b91505092915050565b611c708161204d565b82525050565b611c87611c828261204d565b61216c565b82525050565b611c968161205f565b82525050565b6000611ca782611f31565b611cb18185611f47565b9350611cc18185602086016120d6565b611cca81612260565b840191505092915050565b611cde816120b5565b82525050565b6000611cef82611f3c565b611cf98185611f58565b9350611d098185602086016120d6565b611d1281612260565b840191505092915050565b611d268161209e565b82525050565b611d35816120a8565b82525050565b6000611d478284611c76565b60148201915081905092915050565b6000602082019050611d6b6000830184611c67565b92915050565b6000606082019050611d866000830186611c67565b611d936020830185611c67565b611da06040830184611d1d565b949350505050565b6000604082019050611dbd6000830185611c67565b611dca6020830184611d1d565b9392505050565b6000602082019050611de66000830184611c8d565b92915050565b60006040820190508181036000830152611e068185611c9c565b9050611e156020830184611d1d565b9392505050565b60006080820190508181036000830152611e368187611c9c565b9050611e456020830186611d1d565b611e526040830185611d1d565b611e5f6060830184611d1d565b95945050505050565b6000602082019050611e7d6000830184611cd5565b92915050565b60006020820190508181036000830152611e9d8184611ce4565b905092915050565b6000602082019050611eba6000830184611d1d565b92915050565b6000602082019050611ed56000830184611d2c565b92915050565b6000611ee5611ef6565b9050611ef1828261213b565b919050565b6000604051905090565b600067ffffffffffffffff821115611f1b57611f1a61221d565b5b611f2482612260565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611f748261209e565b9150611f7f8361209e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611fb457611fb3612190565b5b828201905092915050565b6000611fca8261209e565b9150611fd58361209e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561200e5761200d612190565b5b828202905092915050565b60006120248261209e565b915061202f8361209e565b92508282101561204257612041612190565b5b828203905092915050565b60006120588261207e565b9050919050565b60008115159050919050565b60008190506120798261227e565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006120c08261206b565b9050919050565b82818337600083830152505050565b60005b838110156120f45780820151818401526020810190506120d9565b83811115612103576000848401525b50505050565b6000600282049050600182168061212157607f821691505b60208210811415612135576121346121ee565b5b50919050565b61214482612260565b810181811067ffffffffffffffff821117156121635761216261221d565b5b80604052505050565b60006121778261217e565b9050919050565b600061218982612271565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b6003811061228f5761228e6121bf565b5b50565b61229b8161204d565b81146122a657600080fd5b50565b6122b28161205f565b81146122bd57600080fd5b50565b6122c98161209e565b81146122d457600080fd5b5056fea26469706673582212208357de1ed0d4d2f796fce64a99317bee3c27736e62c98ae3a61ca8b37436fbc564736f6c63430008070033", } // ZRC20ABI is the input ABI used to generate the binding from. diff --git a/typechain-types/factories/contracts/zevm/ZRC20.sol/ZRC20__factory.ts b/typechain-types/factories/contracts/zevm/ZRC20.sol/ZRC20__factory.ts index 347ebfd3..ed39b388 100644 --- a/typechain-types/factories/contracts/zevm/ZRC20.sol/ZRC20__factory.ts +++ b/typechain-types/factories/contracts/zevm/ZRC20.sol/ZRC20__factory.ts @@ -1,10 +1,20 @@ /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, BigNumberish, Overrides } from "ethers"; +import { + Signer, + utils, + Contract, + ContractFactory, + BigNumberish, + Overrides, +} from "ethers"; import type { Provider, TransactionRequest } from "@ethersproject/providers"; import type { PromiseOrValue } from "../../../../common"; -import type { ZRC20, ZRC20Interface } from "../../../../contracts/zevm/ZRC20.sol/ZRC20"; +import type { + ZRC20, + ZRC20Interface, +} from "../../../../contracts/zevm/ZRC20.sol/ZRC20"; const _abi = [ { @@ -664,11 +674,15 @@ const _abi = [ ] as const; const _bytecode = - "0x60c06040523480156200001157600080fd5b50604051620029ab380380620029ab833981810160405281019062000037919062000319565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614620000b1576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8660069080519060200190620000c99291906200018f565b508560079080519060200190620000e29291906200018f565b5084600860006101000a81548160ff021916908360ff16021790555083608081815250508260028111156200011c576200011b62000556565b5b60a081600281111562000134576200013362000556565b5b60f81b8152505081600181905550806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505062000667565b8280546200019d90620004ea565b90600052602060002090601f016020900481019282620001c157600085556200020d565b82601f10620001dc57805160ff19168380011785556200020d565b828001600101855582156200020d579182015b828111156200020c578251825591602001919060010190620001ef565b5b5090506200021c919062000220565b5090565b5b808211156200023b57600081600090555060010162000221565b5090565b600062000256620002508462000433565b6200040a565b905082815260208101848484011115620002755762000274620005e8565b5b62000282848285620004b4565b509392505050565b6000815190506200029b8162000608565b92915050565b600081519050620002b28162000622565b92915050565b600082601f830112620002d057620002cf620005e3565b5b8151620002e28482602086016200023f565b91505092915050565b600081519050620002fc8162000633565b92915050565b60008151905062000313816200064d565b92915050565b600080600080600080600060e0888a0312156200033b576200033a620005f2565b5b600088015167ffffffffffffffff8111156200035c576200035b620005ed565b5b6200036a8a828b01620002b8565b975050602088015167ffffffffffffffff8111156200038e576200038d620005ed565b5b6200039c8a828b01620002b8565b9650506040620003af8a828b0162000302565b9550506060620003c28a828b01620002eb565b9450506080620003d58a828b01620002a1565b93505060a0620003e88a828b01620002eb565b92505060c0620003fb8a828b016200028a565b91505092959891949750929550565b60006200041662000429565b905062000424828262000520565b919050565b6000604051905090565b600067ffffffffffffffff821115620004515762000450620005b4565b5b6200045c82620005f7565b9050602081019050919050565b600062000476826200047d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015620004d4578082015181840152602081019050620004b7565b83811115620004e4576000848401525b50505050565b600060028204905060018216806200050357607f821691505b602082108114156200051a576200051962000585565b5b50919050565b6200052b82620005f7565b810181811067ffffffffffffffff821117156200054d576200054c620005b4565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b620006138162000469565b81146200061f57600080fd5b50565b600381106200063057600080fd5b50565b6200063e816200049d565b81146200064a57600080fd5b50565b6200065881620004a7565b81146200066457600080fd5b50565b60805160a05160f81c61230d6200069e60003960006109f101526000818161093b01528181610e210152610f56015261230d6000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c806385e1f4d0116100c3578063c835d7cc1161007c578063c835d7cc1461041b578063d9eeebed14610437578063dd62ed3e14610456578063eddeb12314610486578063f2441b32146104a2578063f687d12a146104c057610158565b806385e1f4d01461033157806395d89b411461034f578063a3413d031461036d578063a457c2d71461038b578063a9059cbb146103bb578063c7012626146103eb57610158565b8063395093511161011557806339509351146102355780633ce4a5bc1461026557806342966c681461028357806347e7ef24146102b35780634d8943bb146102e357806370a082311461030157610158565b806306fdde031461015d578063091d27881461017b578063095ea7b31461019957806318160ddd146101c957806323b872dd146101e7578063313ce56714610217575b600080fd5b6101656104dc565b6040516101729190611e83565b60405180910390f35b61018361056e565b6040516101909190611ea5565b60405180910390f35b6101b360048036038101906101ae9190611b44565b610574565b6040516101c09190611dd1565b60405180910390f35b6101d1610592565b6040516101de9190611ea5565b60405180910390f35b61020160048036038101906101fc9190611af1565b61059c565b60405161020e9190611dd1565b60405180910390f35b61021f610694565b60405161022c9190611ec0565b60405180910390f35b61024f600480360381019061024a9190611b44565b6106ab565b60405161025c9190611dd1565b60405180910390f35b61026d610751565b60405161027a9190611d56565b60405180910390f35b61029d60048036038101906102989190611c0d565b610769565b6040516102aa9190611dd1565b60405180910390f35b6102cd60048036038101906102c89190611b44565b61077e565b6040516102da9190611dd1565b60405180910390f35b6102eb6108ea565b6040516102f89190611ea5565b60405180910390f35b61031b60048036038101906103169190611a57565b6108f0565b6040516103289190611ea5565b60405180910390f35b610339610939565b6040516103469190611ea5565b60405180910390f35b61035761095d565b6040516103649190611e83565b60405180910390f35b6103756109ef565b6040516103829190611e68565b60405180910390f35b6103a560048036038101906103a09190611b44565b610a13565b6040516103b29190611dd1565b60405180910390f35b6103d560048036038101906103d09190611b44565b610b76565b6040516103e29190611dd1565b60405180910390f35b61040560048036038101906104009190611bb1565b610b94565b6040516104129190611dd1565b60405180910390f35b61043560048036038101906104309190611a57565b610cea565b005b61043f610ddd565b60405161044d929190611da8565b60405180910390f35b610470600480360381019061046b9190611ab1565b61104a565b60405161047d9190611ea5565b60405180910390f35b6104a0600480360381019061049b9190611c0d565b6110d1565b005b6104aa61118b565b6040516104b79190611d56565b60405180910390f35b6104da60048036038101906104d59190611c0d565b6111af565b005b6060600680546104eb90612109565b80601f016020809104026020016040519081016040528092919081815260200182805461051790612109565b80156105645780601f1061053957610100808354040283529160200191610564565b820191906000526020600020905b81548152906001019060200180831161054757829003601f168201915b5050505050905090565b60015481565b6000610588610581611269565b8484611271565b6001905092915050565b6000600554905090565b60006105a984848461142a565b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105f4611269565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561066b576040517f10bad14700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61068885610677611269565b85846106839190612019565b611271565b60019150509392505050565b6000600860009054906101000a900460ff16905090565b600081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106f7611269565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107409190611f69565b925050819055506001905092915050565b73735b14bb79463307aacbed86daf3322b1e6226ab81565b60006107753383611686565b60019050919050565b600073735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561081c575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610853576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61085d838361183e565b8273ffffffffffffffffffffffffffffffffffffffff167f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab373735b14bb79463307aacbed86daf3322b1e6226ab6040516020016108ba9190611d3b565b604051602081830303815290604052846040516108d8929190611dec565b60405180910390a26001905092915050565b60025481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606007805461096c90612109565b80601f016020809104026020016040519081016040528092919081815260200182805461099890612109565b80156109e55780601f106109ba576101008083540402835291602001916109e5565b820191906000526020600020905b8154815290600101906020018083116109c857829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b600081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a5f611269565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610ad2576040517f10bad14700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b1c611269565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b659190612019565b925050819055506001905092915050565b6000610b8a610b83611269565b848461142a565b6001905092915050565b6000806000610ba1610ddd565b915091508173ffffffffffffffffffffffffffffffffffffffff166323b872dd3373735b14bb79463307aacbed86daf3322b1e6226ab846040518463ffffffff1660e01b8152600401610bf693929190611d71565b602060405180830381600087803b158015610c1057600080fd5b505af1158015610c24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c489190611b84565b610c7e576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c883385611686565b3373ffffffffffffffffffffffffffffffffffffffff167f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d955868684600254604051610cd69493929190611e1c565b60405180910390a260019250505092915050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d63576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae81604051610dd29190611d56565b60405180910390a150565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630be155477f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610e5c9190611ea5565b60206040518083038186803b158015610e7457600080fd5b505afa158015610e88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eac9190611a84565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f15576040517f78fff39600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d7fd7afb7f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610f919190611ea5565b60206040518083038186803b158015610fa957600080fd5b505afa158015610fbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe19190611c3a565b9050600081141561101e576040517fe661aed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600254600154836110319190611fbf565b61103b9190611f69565b90508281945094505050509091565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461114a576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806002819055507fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f816040516111809190611ea5565b60405180910390a150565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611228576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806001819055507fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a8160405161125e9190611ea5565b60405180910390a150565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112d8576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561133f576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161141d9190611ea5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611491576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114f8576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611576576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81816115829190612019565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116149190611f69565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116789190611ea5565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116ed576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561176b576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81816117779190612019565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008282546117cc9190612019565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118319190611ea5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118a5576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600560008282546118b79190611f69565b9250508190555080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461190d9190611f69565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119729190611ea5565b60405180910390a35050565b600061199161198c84611f00565b611edb565b9050828152602081018484840111156119ad576119ac612251565b5b6119b88482856120c7565b509392505050565b6000813590506119cf81612292565b92915050565b6000815190506119e481612292565b92915050565b6000815190506119f9816122a9565b92915050565b600082601f830112611a1457611a1361224c565b5b8135611a2484826020860161197e565b91505092915050565b600081359050611a3c816122c0565b92915050565b600081519050611a51816122c0565b92915050565b600060208284031215611a6d57611a6c61225b565b5b6000611a7b848285016119c0565b91505092915050565b600060208284031215611a9a57611a9961225b565b5b6000611aa8848285016119d5565b91505092915050565b60008060408385031215611ac857611ac761225b565b5b6000611ad6858286016119c0565b9250506020611ae7858286016119c0565b9150509250929050565b600080600060608486031215611b0a57611b0961225b565b5b6000611b18868287016119c0565b9350506020611b29868287016119c0565b9250506040611b3a86828701611a2d565b9150509250925092565b60008060408385031215611b5b57611b5a61225b565b5b6000611b69858286016119c0565b9250506020611b7a85828601611a2d565b9150509250929050565b600060208284031215611b9a57611b9961225b565b5b6000611ba8848285016119ea565b91505092915050565b60008060408385031215611bc857611bc761225b565b5b600083013567ffffffffffffffff811115611be657611be5612256565b5b611bf2858286016119ff565b9250506020611c0385828601611a2d565b9150509250929050565b600060208284031215611c2357611c2261225b565b5b6000611c3184828501611a2d565b91505092915050565b600060208284031215611c5057611c4f61225b565b5b6000611c5e84828501611a42565b91505092915050565b611c708161204d565b82525050565b611c87611c828261204d565b61216c565b82525050565b611c968161205f565b82525050565b6000611ca782611f31565b611cb18185611f47565b9350611cc18185602086016120d6565b611cca81612260565b840191505092915050565b611cde816120b5565b82525050565b6000611cef82611f3c565b611cf98185611f58565b9350611d098185602086016120d6565b611d1281612260565b840191505092915050565b611d268161209e565b82525050565b611d35816120a8565b82525050565b6000611d478284611c76565b60148201915081905092915050565b6000602082019050611d6b6000830184611c67565b92915050565b6000606082019050611d866000830186611c67565b611d936020830185611c67565b611da06040830184611d1d565b949350505050565b6000604082019050611dbd6000830185611c67565b611dca6020830184611d1d565b9392505050565b6000602082019050611de66000830184611c8d565b92915050565b60006040820190508181036000830152611e068185611c9c565b9050611e156020830184611d1d565b9392505050565b60006080820190508181036000830152611e368187611c9c565b9050611e456020830186611d1d565b611e526040830185611d1d565b611e5f6060830184611d1d565b95945050505050565b6000602082019050611e7d6000830184611cd5565b92915050565b60006020820190508181036000830152611e9d8184611ce4565b905092915050565b6000602082019050611eba6000830184611d1d565b92915050565b6000602082019050611ed56000830184611d2c565b92915050565b6000611ee5611ef6565b9050611ef1828261213b565b919050565b6000604051905090565b600067ffffffffffffffff821115611f1b57611f1a61221d565b5b611f2482612260565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611f748261209e565b9150611f7f8361209e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611fb457611fb3612190565b5b828201905092915050565b6000611fca8261209e565b9150611fd58361209e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561200e5761200d612190565b5b828202905092915050565b60006120248261209e565b915061202f8361209e565b92508282101561204257612041612190565b5b828203905092915050565b60006120588261207e565b9050919050565b60008115159050919050565b60008190506120798261227e565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006120c08261206b565b9050919050565b82818337600083830152505050565b60005b838110156120f45780820151818401526020810190506120d9565b83811115612103576000848401525b50505050565b6000600282049050600182168061212157607f821691505b60208210811415612135576121346121ee565b5b50919050565b61214482612260565b810181811067ffffffffffffffff821117156121635761216261221d565b5b80604052505050565b60006121778261217e565b9050919050565b600061218982612271565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b6003811061228f5761228e6121bf565b5b50565b61229b8161204d565b81146122a657600080fd5b50565b6122b28161205f565b81146122bd57600080fd5b50565b6122c98161209e565b81146122d457600080fd5b5056fea264697066735822122035a0043de291e5a401f2c07041d1a69f4d2d6c711b7c96dc38976f69e5f9999f64736f6c63430008070033"; + "0x60c06040523480156200001157600080fd5b50604051620029ab380380620029ab833981810160405281019062000037919062000319565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614620000b1576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8660069080519060200190620000c99291906200018f565b508560079080519060200190620000e29291906200018f565b5084600860006101000a81548160ff021916908360ff16021790555083608081815250508260028111156200011c576200011b62000556565b5b60a081600281111562000134576200013362000556565b5b60f81b8152505081600181905550806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505062000667565b8280546200019d90620004ea565b90600052602060002090601f016020900481019282620001c157600085556200020d565b82601f10620001dc57805160ff19168380011785556200020d565b828001600101855582156200020d579182015b828111156200020c578251825591602001919060010190620001ef565b5b5090506200021c919062000220565b5090565b5b808211156200023b57600081600090555060010162000221565b5090565b600062000256620002508462000433565b6200040a565b905082815260208101848484011115620002755762000274620005e8565b5b62000282848285620004b4565b509392505050565b6000815190506200029b8162000608565b92915050565b600081519050620002b28162000622565b92915050565b600082601f830112620002d057620002cf620005e3565b5b8151620002e28482602086016200023f565b91505092915050565b600081519050620002fc8162000633565b92915050565b60008151905062000313816200064d565b92915050565b600080600080600080600060e0888a0312156200033b576200033a620005f2565b5b600088015167ffffffffffffffff8111156200035c576200035b620005ed565b5b6200036a8a828b01620002b8565b975050602088015167ffffffffffffffff8111156200038e576200038d620005ed565b5b6200039c8a828b01620002b8565b9650506040620003af8a828b0162000302565b9550506060620003c28a828b01620002eb565b9450506080620003d58a828b01620002a1565b93505060a0620003e88a828b01620002eb565b92505060c0620003fb8a828b016200028a565b91505092959891949750929550565b60006200041662000429565b905062000424828262000520565b919050565b6000604051905090565b600067ffffffffffffffff821115620004515762000450620005b4565b5b6200045c82620005f7565b9050602081019050919050565b600062000476826200047d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015620004d4578082015181840152602081019050620004b7565b83811115620004e4576000848401525b50505050565b600060028204905060018216806200050357607f821691505b602082108114156200051a576200051962000585565b5b50919050565b6200052b82620005f7565b810181811067ffffffffffffffff821117156200054d576200054c620005b4565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b620006138162000469565b81146200061f57600080fd5b50565b600381106200063057600080fd5b50565b6200063e816200049d565b81146200064a57600080fd5b50565b6200065881620004a7565b81146200066457600080fd5b50565b60805160a05160f81c61230d6200069e60003960006109f101526000818161093b01528181610e210152610f56015261230d6000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c806385e1f4d0116100c3578063c835d7cc1161007c578063c835d7cc1461041b578063d9eeebed14610437578063dd62ed3e14610456578063eddeb12314610486578063f2441b32146104a2578063f687d12a146104c057610158565b806385e1f4d01461033157806395d89b411461034f578063a3413d031461036d578063a457c2d71461038b578063a9059cbb146103bb578063c7012626146103eb57610158565b8063395093511161011557806339509351146102355780633ce4a5bc1461026557806342966c681461028357806347e7ef24146102b35780634d8943bb146102e357806370a082311461030157610158565b806306fdde031461015d578063091d27881461017b578063095ea7b31461019957806318160ddd146101c957806323b872dd146101e7578063313ce56714610217575b600080fd5b6101656104dc565b6040516101729190611e83565b60405180910390f35b61018361056e565b6040516101909190611ea5565b60405180910390f35b6101b360048036038101906101ae9190611b44565b610574565b6040516101c09190611dd1565b60405180910390f35b6101d1610592565b6040516101de9190611ea5565b60405180910390f35b61020160048036038101906101fc9190611af1565b61059c565b60405161020e9190611dd1565b60405180910390f35b61021f610694565b60405161022c9190611ec0565b60405180910390f35b61024f600480360381019061024a9190611b44565b6106ab565b60405161025c9190611dd1565b60405180910390f35b61026d610751565b60405161027a9190611d56565b60405180910390f35b61029d60048036038101906102989190611c0d565b610769565b6040516102aa9190611dd1565b60405180910390f35b6102cd60048036038101906102c89190611b44565b61077e565b6040516102da9190611dd1565b60405180910390f35b6102eb6108ea565b6040516102f89190611ea5565b60405180910390f35b61031b60048036038101906103169190611a57565b6108f0565b6040516103289190611ea5565b60405180910390f35b610339610939565b6040516103469190611ea5565b60405180910390f35b61035761095d565b6040516103649190611e83565b60405180910390f35b6103756109ef565b6040516103829190611e68565b60405180910390f35b6103a560048036038101906103a09190611b44565b610a13565b6040516103b29190611dd1565b60405180910390f35b6103d560048036038101906103d09190611b44565b610b76565b6040516103e29190611dd1565b60405180910390f35b61040560048036038101906104009190611bb1565b610b94565b6040516104129190611dd1565b60405180910390f35b61043560048036038101906104309190611a57565b610cea565b005b61043f610ddd565b60405161044d929190611da8565b60405180910390f35b610470600480360381019061046b9190611ab1565b61104a565b60405161047d9190611ea5565b60405180910390f35b6104a0600480360381019061049b9190611c0d565b6110d1565b005b6104aa61118b565b6040516104b79190611d56565b60405180910390f35b6104da60048036038101906104d59190611c0d565b6111af565b005b6060600680546104eb90612109565b80601f016020809104026020016040519081016040528092919081815260200182805461051790612109565b80156105645780601f1061053957610100808354040283529160200191610564565b820191906000526020600020905b81548152906001019060200180831161054757829003601f168201915b5050505050905090565b60015481565b6000610588610581611269565b8484611271565b6001905092915050565b6000600554905090565b60006105a984848461142a565b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105f4611269565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561066b576040517f10bad14700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61068885610677611269565b85846106839190612019565b611271565b60019150509392505050565b6000600860009054906101000a900460ff16905090565b600081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106f7611269565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107409190611f69565b925050819055506001905092915050565b73735b14bb79463307aacbed86daf3322b1e6226ab81565b60006107753383611686565b60019050919050565b600073735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561081c575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610853576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61085d838361183e565b8273ffffffffffffffffffffffffffffffffffffffff167f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab373735b14bb79463307aacbed86daf3322b1e6226ab6040516020016108ba9190611d3b565b604051602081830303815290604052846040516108d8929190611dec565b60405180910390a26001905092915050565b60025481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606007805461096c90612109565b80601f016020809104026020016040519081016040528092919081815260200182805461099890612109565b80156109e55780601f106109ba576101008083540402835291602001916109e5565b820191906000526020600020905b8154815290600101906020018083116109c857829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b600081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a5f611269565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610ad2576040517f10bad14700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b1c611269565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b659190612019565b925050819055506001905092915050565b6000610b8a610b83611269565b848461142a565b6001905092915050565b6000806000610ba1610ddd565b915091508173ffffffffffffffffffffffffffffffffffffffff166323b872dd3373735b14bb79463307aacbed86daf3322b1e6226ab846040518463ffffffff1660e01b8152600401610bf693929190611d71565b602060405180830381600087803b158015610c1057600080fd5b505af1158015610c24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c489190611b84565b610c7e576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c883385611686565b3373ffffffffffffffffffffffffffffffffffffffff167f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d955868684600254604051610cd69493929190611e1c565b60405180910390a260019250505092915050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d63576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae81604051610dd29190611d56565b60405180910390a150565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630be155477f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610e5c9190611ea5565b60206040518083038186803b158015610e7457600080fd5b505afa158015610e88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eac9190611a84565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f15576040517f78fff39600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d7fd7afb7f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610f919190611ea5565b60206040518083038186803b158015610fa957600080fd5b505afa158015610fbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe19190611c3a565b9050600081141561101e576040517fe661aed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600254600154836110319190611fbf565b61103b9190611f69565b90508281945094505050509091565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461114a576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806002819055507fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f816040516111809190611ea5565b60405180910390a150565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611228576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806001819055507fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a8160405161125e9190611ea5565b60405180910390a150565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112d8576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561133f576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161141d9190611ea5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611491576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114f8576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611576576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81816115829190612019565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116149190611f69565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116789190611ea5565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116ed576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561176b576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81816117779190612019565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008282546117cc9190612019565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118319190611ea5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118a5576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600560008282546118b79190611f69565b9250508190555080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461190d9190611f69565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119729190611ea5565b60405180910390a35050565b600061199161198c84611f00565b611edb565b9050828152602081018484840111156119ad576119ac612251565b5b6119b88482856120c7565b509392505050565b6000813590506119cf81612292565b92915050565b6000815190506119e481612292565b92915050565b6000815190506119f9816122a9565b92915050565b600082601f830112611a1457611a1361224c565b5b8135611a2484826020860161197e565b91505092915050565b600081359050611a3c816122c0565b92915050565b600081519050611a51816122c0565b92915050565b600060208284031215611a6d57611a6c61225b565b5b6000611a7b848285016119c0565b91505092915050565b600060208284031215611a9a57611a9961225b565b5b6000611aa8848285016119d5565b91505092915050565b60008060408385031215611ac857611ac761225b565b5b6000611ad6858286016119c0565b9250506020611ae7858286016119c0565b9150509250929050565b600080600060608486031215611b0a57611b0961225b565b5b6000611b18868287016119c0565b9350506020611b29868287016119c0565b9250506040611b3a86828701611a2d565b9150509250925092565b60008060408385031215611b5b57611b5a61225b565b5b6000611b69858286016119c0565b9250506020611b7a85828601611a2d565b9150509250929050565b600060208284031215611b9a57611b9961225b565b5b6000611ba8848285016119ea565b91505092915050565b60008060408385031215611bc857611bc761225b565b5b600083013567ffffffffffffffff811115611be657611be5612256565b5b611bf2858286016119ff565b9250506020611c0385828601611a2d565b9150509250929050565b600060208284031215611c2357611c2261225b565b5b6000611c3184828501611a2d565b91505092915050565b600060208284031215611c5057611c4f61225b565b5b6000611c5e84828501611a42565b91505092915050565b611c708161204d565b82525050565b611c87611c828261204d565b61216c565b82525050565b611c968161205f565b82525050565b6000611ca782611f31565b611cb18185611f47565b9350611cc18185602086016120d6565b611cca81612260565b840191505092915050565b611cde816120b5565b82525050565b6000611cef82611f3c565b611cf98185611f58565b9350611d098185602086016120d6565b611d1281612260565b840191505092915050565b611d268161209e565b82525050565b611d35816120a8565b82525050565b6000611d478284611c76565b60148201915081905092915050565b6000602082019050611d6b6000830184611c67565b92915050565b6000606082019050611d866000830186611c67565b611d936020830185611c67565b611da06040830184611d1d565b949350505050565b6000604082019050611dbd6000830185611c67565b611dca6020830184611d1d565b9392505050565b6000602082019050611de66000830184611c8d565b92915050565b60006040820190508181036000830152611e068185611c9c565b9050611e156020830184611d1d565b9392505050565b60006080820190508181036000830152611e368187611c9c565b9050611e456020830186611d1d565b611e526040830185611d1d565b611e5f6060830184611d1d565b95945050505050565b6000602082019050611e7d6000830184611cd5565b92915050565b60006020820190508181036000830152611e9d8184611ce4565b905092915050565b6000602082019050611eba6000830184611d1d565b92915050565b6000602082019050611ed56000830184611d2c565b92915050565b6000611ee5611ef6565b9050611ef1828261213b565b919050565b6000604051905090565b600067ffffffffffffffff821115611f1b57611f1a61221d565b5b611f2482612260565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611f748261209e565b9150611f7f8361209e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611fb457611fb3612190565b5b828201905092915050565b6000611fca8261209e565b9150611fd58361209e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561200e5761200d612190565b5b828202905092915050565b60006120248261209e565b915061202f8361209e565b92508282101561204257612041612190565b5b828203905092915050565b60006120588261207e565b9050919050565b60008115159050919050565b60008190506120798261227e565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006120c08261206b565b9050919050565b82818337600083830152505050565b60005b838110156120f45780820151818401526020810190506120d9565b83811115612103576000848401525b50505050565b6000600282049050600182168061212157607f821691505b60208210811415612135576121346121ee565b5b50919050565b61214482612260565b810181811067ffffffffffffffff821117156121635761216261221d565b5b80604052505050565b60006121778261217e565b9050919050565b600061218982612271565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b6003811061228f5761228e6121bf565b5b50565b61229b8161204d565b81146122a657600080fd5b50565b6122b28161205f565b81146122bd57600080fd5b50565b6122c98161209e565b81146122d457600080fd5b5056fea26469706673582212208357de1ed0d4d2f796fce64a99317bee3c27736e62c98ae3a61ca8b37436fbc564736f6c63430008070033"; -type ZRC20ConstructorParams = [signer?: Signer] | ConstructorParameters; +type ZRC20ConstructorParams = + | [signer?: Signer] + | ConstructorParameters; -const isSuperArgs = (xs: ZRC20ConstructorParams): xs is ConstructorParameters => xs.length > 1; +const isSuperArgs = ( + xs: ZRC20ConstructorParams +): xs is ConstructorParameters => xs.length > 1; export class ZRC20__factory extends ContractFactory { constructor(...args: ZRC20ConstructorParams) {