diff --git a/artifacts/Account.json b/artifacts/Account.json index 3514140a..0605a893 100644 --- a/artifacts/Account.json +++ b/artifacts/Account.json @@ -23,6 +23,159 @@ "stateMutability": "nonpayable", "type": "fallback" }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__28344ffb", + "type": "bytes8" + } + ], + "name": "c_28344ffb", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__495bfa8b", + "type": "bytes8" + } + ], + "name": "c_495bfa8b", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__ac4285e3", + "type": "bytes8" + } + ], + "name": "c_ac4285e3", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__28344ffb", + "type": "bytes8" + } + ], + "name": "c_false28344ffb", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__495bfa8b", + "type": "bytes8" + } + ], + "name": "c_false495bfa8b", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__ac4285e3", + "type": "bytes8" + } + ], + "name": "c_falseac4285e3", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__28344ffb", + "type": "bytes8" + } + ], + "name": "c_true28344ffb", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__495bfa8b", + "type": "bytes8" + } + ], + "name": "c_true495bfa8b", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__ac4285e3", + "type": "bytes8" + } + ], + "name": "c_trueac4285e3", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [], "name": "controller", @@ -109,8 +262,8 @@ "type": "receive" } ], - "bytecode": "0x608060405234801561001057600080fd5b506040516107513803806107518339818101604052604081101561003357600080fd5b810190808051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050610630806101216000396000f3fe60806040526004361061004e5760003560e01c80633f579f42146100be5780635c60da1b146101e75780637b10399914610228578063d784d42614610269578063f77c4791146102ba57610055565b3661005557005b34801561006157600080fd5b50600080369050146100bc576000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050368060008037600080826000855af43d806000803e81600081146100b757816000f35b816000fd5b005b3480156100ca57600080fd5b5061016c600480360360608110156100e157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561012857600080fd5b82018360208201111561013a57600080fd5b8035906020019184600183028401116401000000008311171561015c57600080fd5b90919293919293905050506102fb565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ac578082015181840152602081019050610191565b50505050905090810190601f1680156101d95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101f357600080fd5b506101fc61049f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561023457600080fd5b5061023d6104c5565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561027557600080fd5b506102b86004803603602081101561028c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104eb565b005b3480156102c657600080fd5b506102cf6105d3565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b606060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806105f8602c913960400191505060405180910390fd5b606060008673ffffffffffffffffffffffffffffffffffffffff1686868660405180838380828437808301925050509250505060006040518083038185875af1925050503d8060008114610411576040519150601f19603f3d011682016040523d82523d6000602084013e610416565b606091505b50809350819250505080610492576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4163636f756e743a207472616e73616374696f6e20726576657274656400000081525060200191505060405180910390fd5b8192505050949350505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461058f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806105f8602c913960400191505060405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fe436f6e74726f6c6c65643a206d73672e73656e646572206973206e6f742074686520636f6e74726f6c6c6572a164736f6c634300060c000a", - "deployedBytecode": "0x60806040526004361061004e5760003560e01c80633f579f42146100be5780635c60da1b146101e75780637b10399914610228578063d784d42614610269578063f77c4791146102ba57610055565b3661005557005b34801561006157600080fd5b50600080369050146100bc576000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050368060008037600080826000855af43d806000803e81600081146100b757816000f35b816000fd5b005b3480156100ca57600080fd5b5061016c600480360360608110156100e157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561012857600080fd5b82018360208201111561013a57600080fd5b8035906020019184600183028401116401000000008311171561015c57600080fd5b90919293919293905050506102fb565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ac578082015181840152602081019050610191565b50505050905090810190601f1680156101d95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101f357600080fd5b506101fc61049f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561023457600080fd5b5061023d6104c5565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561027557600080fd5b506102b86004803603602081101561028c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104eb565b005b3480156102c657600080fd5b506102cf6105d3565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b606060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806105f8602c913960400191505060405180910390fd5b606060008673ffffffffffffffffffffffffffffffffffffffff1686868660405180838380828437808301925050509250505060006040518083038185875af1925050503d8060008114610411576040519150601f19603f3d011682016040523d82523d6000602084013e610416565b606091505b50809350819250505080610492576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4163636f756e743a207472616e73616374696f6e20726576657274656400000081525060200191505060405180910390fd5b8192505050949350505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461058f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806105f8602c913960400191505060405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fe436f6e74726f6c6c65643a206d73672e73656e646572206973206e6f742074686520636f6e74726f6c6c6572a164736f6c634300060c000a", + "bytecode": "0x608060405234801561001057600080fd5b50604051610f32380380610f328339818101604052604081101561003357600080fd5b810190808051906020019092919080519060200190929190505050610068674c05ed6aa1cd281960c01b61019960201b60201c565b610082675db0dfd7018850c360c01b61019960201b60201c565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506100dc6727cd07b305f6130f60c01b61019c60201b60201c565b6100f6673763e953c2595ed960c01b61019c60201b60201c565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610151679802ebbc23dba3ba60c01b61019c60201b60201c565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505061019f565b50565b50565b610d84806101ae6000396000f3fe6080604052600436106100e15760003560e01c80635c60da1b1161007f578063a42ea70811610059578063a42ea7081461067a578063d1c43eae146106d0578063d784d42614610726578063f77c479114610777576100e8565b80635c60da1b1461058c5780637b103999146105cd5780638f9bda6e1461060e576100e8565b80633f579f42116100bb5780633f579f421461031f57806344f9c9ec14610448578063550648ff146104b457806356c2fc6c14610520576100e8565b806310b90163146101f1578063221523e51461025d57806325afd90f146102c9576100e8565b366100e857005b3480156100f457600080fd5b5061010967d1c166158a76fd7860c01b6107b8565b61011d670a4a924f04604fe560c01b6107b8565b610131670ec1ea2f1a11078060c01b6107b8565b600080369050146101db57610150670366ed24f6d51c0d60c01b6107b8565b61016467583b5ef5a1a2fce260c01b6107b8565b61017867726acafc478ad1f860c01b6107b8565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506101b3673d8591565072bf1f60c01b6107b8565b368060008037600080826000855af43d806000803e81600081146101d657816000f35b816000fd5b6101ef67967eae13d5222be260c01b6107b8565b005b3480156101fd57600080fd5b506102456004803603602081101561021457600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107bb565b60405180821515815260200191505060405180910390f35b34801561026957600080fd5b506102b16004803603602081101561028057600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107c2565b60405180821515815260200191505060405180910390f35b3480156102d557600080fd5b5061031d600480360360208110156102ec57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107b8565b005b34801561032b57600080fd5b506103cd6004803603606081101561034257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561038957600080fd5b82018360208201111561039b57600080fd5b803590602001918460018302840111640100000000831117156103bd57600080fd5b90919293919293905050506107c9565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561040d5780820151818401526020810190506103f2565b50505050905090810190601f16801561043a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561045457600080fd5b5061049c6004803603602081101561046b57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610afd565b60405180821515815260200191505060405180910390f35b3480156104c057600080fd5b50610508600480360360208110156104d757600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b08565b60405180821515815260200191505060405180910390f35b34801561052c57600080fd5b506105746004803603602081101561054357600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b0f565b60405180821515815260200191505060405180910390f35b34801561059857600080fd5b506105a1610b1a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105d957600080fd5b506105e2610b40565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561061a57600080fd5b506106626004803603602081101561063157600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b66565b60405180821515815260200191505060405180910390f35b34801561068657600080fd5b506106ce6004803603602081101561069d57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b71565b005b3480156106dc57600080fd5b50610724600480360360208110156106f357600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b74565b005b34801561073257600080fd5b506107756004803603602081101561074957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b77565b005b34801561078357600080fd5b5061078c610d27565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b50565b6000919050565b6000919050565b60606107df6715e98a49f265557060c01b6107b8565b6107f367f6266a592c249da560c01b610b74565b6108076728279893f8537e1960c01b610b74565b61081b67d300d0a9ecbe6cac60c01b610b74565b61082f678d5c0caa285e3ec560c01b610b74565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180610d4c602c913960400191505060405180910390fd5b6108e76718b2e4dd03bc759a60c01b610b74565b6108fb67f8b65e28b897a44f60c01b610b74565b61090f67390c85347f6e2a2360c01b6107b8565b61092367d2a3446ca25e972660c01b6107b8565b61093767aca9b4091d5a9bc860c01b6107b8565b61094b67cce790cad14eb25260c01b6107b8565b606061096167b3adbec8c64c374360c01b6107b8565b6109756791d717b4dffb179d60c01b6107b8565b600061098b67310ff00dd2ac011060c01b6107b8565b8673ffffffffffffffffffffffffffffffffffffffff1686868660405180838380828437808301925050509250505060006040518083038185875af1925050503d80600081146109f7576040519150601f19603f3d011682016040523d82523d6000602084013e6109fc565b606091505b508093508192505050610a1967a450d3c3f63b6d4d60c01b6107b8565b610a2d679a3e7d330ffc414560c01b6107b8565b610a41671925c722e30d4f6d60c01b6107b8565b80610ab4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4163636f756e743a207472616e73616374696f6e20726576657274656400000081525060200191505060405180910390fd5b610ac867a7fa168288301d1c60c01b6107b8565b610adc6745320fb16320fa4a60c01b6107b8565b610af06779ce6fa2117b3f1e60c01b6107b8565b8192505050949350505050565b600060019050919050565b6000919050565b600060019050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019050919050565b50565b50565b610b8b6735cfec4d4a3972f660c01b6107b8565b610b9f67f6266a592c249da560c01b610b74565b610bb36728279893f8537e1960c01b610b74565b610bc767d300d0a9ecbe6cac60c01b610b74565b610bdb678d5c0caa285e3ec560c01b610b74565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180610d4c602c913960400191505060405180910390fd5b610c936718b2e4dd03bc759a60c01b610b74565b610ca767f8b65e28b897a44f60c01b610b74565b610cbb67dbd823a6f693c9e360c01b6107b8565b610ccf6759af4a1e64a734ae60c01b6107b8565b610ce367123d1e7dcae181d060c01b6107b8565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fe436f6e74726f6c6c65643a206d73672e73656e646572206973206e6f742074686520636f6e74726f6c6c6572a164736f6c634300060c000a", + "deployedBytecode": "0x6080604052600436106100e15760003560e01c80635c60da1b1161007f578063a42ea70811610059578063a42ea7081461067a578063d1c43eae146106d0578063d784d42614610726578063f77c479114610777576100e8565b80635c60da1b1461058c5780637b103999146105cd5780638f9bda6e1461060e576100e8565b80633f579f42116100bb5780633f579f421461031f57806344f9c9ec14610448578063550648ff146104b457806356c2fc6c14610520576100e8565b806310b90163146101f1578063221523e51461025d57806325afd90f146102c9576100e8565b366100e857005b3480156100f457600080fd5b5061010967d1c166158a76fd7860c01b6107b8565b61011d670a4a924f04604fe560c01b6107b8565b610131670ec1ea2f1a11078060c01b6107b8565b600080369050146101db57610150670366ed24f6d51c0d60c01b6107b8565b61016467583b5ef5a1a2fce260c01b6107b8565b61017867726acafc478ad1f860c01b6107b8565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506101b3673d8591565072bf1f60c01b6107b8565b368060008037600080826000855af43d806000803e81600081146101d657816000f35b816000fd5b6101ef67967eae13d5222be260c01b6107b8565b005b3480156101fd57600080fd5b506102456004803603602081101561021457600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107bb565b60405180821515815260200191505060405180910390f35b34801561026957600080fd5b506102b16004803603602081101561028057600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107c2565b60405180821515815260200191505060405180910390f35b3480156102d557600080fd5b5061031d600480360360208110156102ec57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107b8565b005b34801561032b57600080fd5b506103cd6004803603606081101561034257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561038957600080fd5b82018360208201111561039b57600080fd5b803590602001918460018302840111640100000000831117156103bd57600080fd5b90919293919293905050506107c9565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561040d5780820151818401526020810190506103f2565b50505050905090810190601f16801561043a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561045457600080fd5b5061049c6004803603602081101561046b57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610afd565b60405180821515815260200191505060405180910390f35b3480156104c057600080fd5b50610508600480360360208110156104d757600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b08565b60405180821515815260200191505060405180910390f35b34801561052c57600080fd5b506105746004803603602081101561054357600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b0f565b60405180821515815260200191505060405180910390f35b34801561059857600080fd5b506105a1610b1a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105d957600080fd5b506105e2610b40565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561061a57600080fd5b506106626004803603602081101561063157600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b66565b60405180821515815260200191505060405180910390f35b34801561068657600080fd5b506106ce6004803603602081101561069d57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b71565b005b3480156106dc57600080fd5b50610724600480360360208110156106f357600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b74565b005b34801561073257600080fd5b506107756004803603602081101561074957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b77565b005b34801561078357600080fd5b5061078c610d27565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b50565b6000919050565b6000919050565b60606107df6715e98a49f265557060c01b6107b8565b6107f367f6266a592c249da560c01b610b74565b6108076728279893f8537e1960c01b610b74565b61081b67d300d0a9ecbe6cac60c01b610b74565b61082f678d5c0caa285e3ec560c01b610b74565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180610d4c602c913960400191505060405180910390fd5b6108e76718b2e4dd03bc759a60c01b610b74565b6108fb67f8b65e28b897a44f60c01b610b74565b61090f67390c85347f6e2a2360c01b6107b8565b61092367d2a3446ca25e972660c01b6107b8565b61093767aca9b4091d5a9bc860c01b6107b8565b61094b67cce790cad14eb25260c01b6107b8565b606061096167b3adbec8c64c374360c01b6107b8565b6109756791d717b4dffb179d60c01b6107b8565b600061098b67310ff00dd2ac011060c01b6107b8565b8673ffffffffffffffffffffffffffffffffffffffff1686868660405180838380828437808301925050509250505060006040518083038185875af1925050503d80600081146109f7576040519150601f19603f3d011682016040523d82523d6000602084013e6109fc565b606091505b508093508192505050610a1967a450d3c3f63b6d4d60c01b6107b8565b610a2d679a3e7d330ffc414560c01b6107b8565b610a41671925c722e30d4f6d60c01b6107b8565b80610ab4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4163636f756e743a207472616e73616374696f6e20726576657274656400000081525060200191505060405180910390fd5b610ac867a7fa168288301d1c60c01b6107b8565b610adc6745320fb16320fa4a60c01b6107b8565b610af06779ce6fa2117b3f1e60c01b6107b8565b8192505050949350505050565b600060019050919050565b6000919050565b600060019050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019050919050565b50565b50565b610b8b6735cfec4d4a3972f660c01b6107b8565b610b9f67f6266a592c249da560c01b610b74565b610bb36728279893f8537e1960c01b610b74565b610bc767d300d0a9ecbe6cac60c01b610b74565b610bdb678d5c0caa285e3ec560c01b610b74565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180610d4c602c913960400191505060405180910390fd5b610c936718b2e4dd03bc759a60c01b610b74565b610ca767f8b65e28b897a44f60c01b610b74565b610cbb67dbd823a6f693c9e360c01b6107b8565b610ccf6759af4a1e64a734ae60c01b6107b8565b610ce367123d1e7dcae181d060c01b6107b8565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fe436f6e74726f6c6c65643a206d73672e73656e646572206973206e6f742074686520636f6e74726f6c6c6572a164736f6c634300060c000a", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/AccountBase.json b/artifacts/AccountBase.json index e0331744..f364a46a 100644 --- a/artifacts/AccountBase.json +++ b/artifacts/AccountBase.json @@ -3,6 +3,57 @@ "contractName": "AccountBase", "sourceName": "src/common/account/AccountBase.sol", "abi": [ + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__28344ffb", + "type": "bytes8" + } + ], + "name": "c_28344ffb", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__28344ffb", + "type": "bytes8" + } + ], + "name": "c_false28344ffb", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__28344ffb", + "type": "bytes8" + } + ], + "name": "c_true28344ffb", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [], "name": "registry", @@ -17,8 +68,8 @@ "type": "function" } ], - "bytecode": "0x6080604052348015600f57600080fd5b5060908061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80637b10399914602d575b600080fd5b6033605f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fea164736f6c634300060c000a", - "deployedBytecode": "0x6080604052348015600f57600080fd5b506004361060285760003560e01c80637b10399914602d575b600080fd5b6033605f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fea164736f6c634300060c000a", + "bytecode": "0x608060405234801561001057600080fd5b506101d2806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063221523e51461005157806344f9c9ec146100b05780637b1039991461010f578063a42ea70814610143575b600080fd5b6100986004803603602081101561006757600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061018c565b60405180821515815260200191505060405180910390f35b6100f7600480360360208110156100c657600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610193565b60405180821515815260200191505060405180910390f35b61011761019e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61018a6004803603602081101561015957600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506101c2565b005b6000919050565b600060019050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5056fea164736f6c634300060c000a", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c8063221523e51461005157806344f9c9ec146100b05780637b1039991461010f578063a42ea70814610143575b600080fd5b6100986004803603602081101561006757600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061018c565b60405180821515815260200191505060405180910390f35b6100f7600480360360208110156100c657600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610193565b60405180821515815260200191505060405180910390f35b61011761019e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61018a6004803603602081101561015957600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506101c2565b005b6000919050565b600060019050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5056fea164736f6c634300060c000a", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/AccountController.json b/artifacts/AccountController.json index daee1a93..bed29849 100644 --- a/artifacts/AccountController.json +++ b/artifacts/AccountController.json @@ -129,6 +129,57 @@ ], "stateMutability": "view", "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__bf6efb80", + "type": "bytes8" + } + ], + "name": "c_bf6efb80", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__bf6efb80", + "type": "bytes8" + } + ], + "name": "c_falsebf6efb80", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__bf6efb80", + "type": "bytes8" + } + ], + "name": "c_truebf6efb80", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" } ], "bytecode": "0x", diff --git a/artifacts/AccountImplementationV1.json b/artifacts/AccountImplementationV1.json index 5aef1d88..db195cd1 100644 --- a/artifacts/AccountImplementationV1.json +++ b/artifacts/AccountImplementationV1.json @@ -16,6 +16,159 @@ "name": "Initialized", "type": "event" }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__098c0657", + "type": "bytes8" + } + ], + "name": "c_098c0657", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__28344ffb", + "type": "bytes8" + } + ], + "name": "c_28344ffb", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__2860b96a", + "type": "bytes8" + } + ], + "name": "c_2860b96a", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__098c0657", + "type": "bytes8" + } + ], + "name": "c_false098c0657", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__28344ffb", + "type": "bytes8" + } + ], + "name": "c_false28344ffb", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__2860b96a", + "type": "bytes8" + } + ], + "name": "c_false2860b96a", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__098c0657", + "type": "bytes8" + } + ], + "name": "c_true098c0657", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__28344ffb", + "type": "bytes8" + } + ], + "name": "c_true28344ffb", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__2860b96a", + "type": "bytes8" + } + ], + "name": "c_true2860b96a", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [ { diff --git a/artifacts/AccountRegistry.json b/artifacts/AccountRegistry.json index 0eb937b9..831674f1 100644 --- a/artifacts/AccountRegistry.json +++ b/artifacts/AccountRegistry.json @@ -3,6 +3,57 @@ "contractName": "AccountRegistry", "sourceName": "src/common/account/AccountRegistry.sol", "abi": [ + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__9649d652", + "type": "bytes8" + } + ], + "name": "c_9649d652", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__9649d652", + "type": "bytes8" + } + ], + "name": "c_false9649d652", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__9649d652", + "type": "bytes8" + } + ], + "name": "c_true9649d652", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [ { diff --git a/artifacts/Address.json b/artifacts/Address.json index 38923bb5..a4d7598c 100644 --- a/artifacts/Address.json +++ b/artifacts/Address.json @@ -3,8 +3,8 @@ "contractName": "Address", "sourceName": "@openzeppelin/contracts/utils/Address.sol", "abi": [], - "bytecode": "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204be9bb072a81b187b69029143d2bb612bb4f05e89f0d92a4de1845adfba1a89564736f6c63430008110033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204be9bb072a81b187b69029143d2bb612bb4f05e89f0d92a4de1845adfba1a89564736f6c63430008110033", + "bytecode": "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201384a37cf367357b826c321894b16a1a02123120aa8bbe15cce8e5b765b1f8b364736f6c63430008110033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201384a37cf367357b826c321894b16a1a02123120aa8bbe15cce8e5b765b1f8b364736f6c63430008110033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/AddressUpgradeable.json b/artifacts/AddressUpgradeable.json deleted file mode 100644 index c35e8453..00000000 --- a/artifacts/AddressUpgradeable.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "AddressUpgradeable", - "sourceName": "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", - "abi": [], - "bytecode": "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207ebac623b5c0e66a1f7d51ceabb73a03088138ca3ce8fc0bfae515e4be5b9ff164736f6c63430008110033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207ebac623b5c0e66a1f7d51ceabb73a03088138ca3ce8fc0bfae515e4be5b9ff164736f6c63430008110033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/BalancesHelper.json b/artifacts/BalancesHelper.json index 80368055..7fa65e1a 100644 --- a/artifacts/BalancesHelper.json +++ b/artifacts/BalancesHelper.json @@ -3,6 +3,57 @@ "contractName": "BalancesHelper", "sourceName": "src/common/helpers/BalancesHelper.sol", "abi": [ + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__7989c7ce", + "type": "bytes8" + } + ], + "name": "c_7989c7ce", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__7989c7ce", + "type": "bytes8" + } + ], + "name": "c_false7989c7ce", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__7989c7ce", + "type": "bytes8" + } + ], + "name": "c_true7989c7ce", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [ { @@ -28,8 +79,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b506106a2806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063ef5bfc3714610030575b600080fd5b6100fc6004803603604081101561004657600080fd5b810190808035906020019064010000000081111561006357600080fd5b82018360208201111561007557600080fd5b8035906020019184602083028401116401000000008311171561009757600080fd5b9091929391929390803590602001906401000000008111156100b857600080fd5b8201836020820111156100ca57600080fd5b803590602001918460208302840111640100000000831117156100ec57600080fd5b9091929391929390505050610153565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561013f578082015181840152602081019050610124565b505050509050019250505060405180910390f35b60608061016f848490508787905061035490919063ffffffff16565b67ffffffffffffffff8111801561018557600080fd5b506040519080825280602002602001820160405280156101b45781602001602082028036833780820191505090505b50905060005b868690508110156103475760005b858590508110156103395760006101fd6101ee848989905061035490919063ffffffff16565b836103da90919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff1687878481811061022357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146102d2576102b589898581811061026a57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1688888581811061029357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16610462565b8482815181106102c157fe5b60200260200101818152505061032b565b8888848181106102de57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163184828151811061031e57fe5b6020026020010181815250505b5080806001019150506101c8565b5080806001019150506101ba565b5080915050949350505050565b60008083141561036757600090506103d4565b600082840290508284828161037857fe5b04146103cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806106726024913960400191505060405180910390fd5b809150505b92915050565b600080828401905083811015610458576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174684c69623a206164646974696f6e206f766572666c6f77000081525060200191505060405180910390fd5b8091505092915050565b600080600090506000833b905060008111156106665760008473ffffffffffffffffffffffffffffffffffffffff166370a0823160e01b87604051602401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b60208310610550578051825260208201915060208101905060208303925061052d565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d80600081146105b0576040519150601f19603f3d011682016040523d82523d6000602084013e6105b5565b606091505b505090508015610664578473ffffffffffffffffffffffffffffffffffffffff166370a08231876040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561062657600080fd5b505afa15801561063a573d6000803e3d6000fd5b505050506040513d602081101561065057600080fd5b810190808051906020019092919050505092505b505b81925050509291505056fe536166654d6174684c69623a206d756c7469706c69636174696f6e206f766572666c6f77a164736f6c634300060c000a", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063ef5bfc3714610030575b600080fd5b6100fc6004803603604081101561004657600080fd5b810190808035906020019064010000000081111561006357600080fd5b82018360208201111561007557600080fd5b8035906020019184602083028401116401000000008311171561009757600080fd5b9091929391929390803590602001906401000000008111156100b857600080fd5b8201836020820111156100ca57600080fd5b803590602001918460208302840111640100000000831117156100ec57600080fd5b9091929391929390505050610153565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561013f578082015181840152602081019050610124565b505050509050019250505060405180910390f35b60608061016f848490508787905061035490919063ffffffff16565b67ffffffffffffffff8111801561018557600080fd5b506040519080825280602002602001820160405280156101b45781602001602082028036833780820191505090505b50905060005b868690508110156103475760005b858590508110156103395760006101fd6101ee848989905061035490919063ffffffff16565b836103da90919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff1687878481811061022357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146102d2576102b589898581811061026a57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1688888581811061029357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16610462565b8482815181106102c157fe5b60200260200101818152505061032b565b8888848181106102de57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163184828151811061031e57fe5b6020026020010181815250505b5080806001019150506101c8565b5080806001019150506101ba565b5080915050949350505050565b60008083141561036757600090506103d4565b600082840290508284828161037857fe5b04146103cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806106726024913960400191505060405180910390fd5b809150505b92915050565b600080828401905083811015610458576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174684c69623a206164646974696f6e206f766572666c6f77000081525060200191505060405180910390fd5b8091505092915050565b600080600090506000833b905060008111156106665760008473ffffffffffffffffffffffffffffffffffffffff166370a0823160e01b87604051602401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b60208310610550578051825260208201915060208101905060208303925061052d565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d80600081146105b0576040519150601f19603f3d011682016040523d82523d6000602084013e6105b5565b606091505b505090508015610664578473ffffffffffffffffffffffffffffffffffffffff166370a08231876040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561062657600080fd5b505afa15801561063a573d6000803e3d6000fd5b505050506040513d602081101561065057600080fd5b810190808051906020019092919050505092505b505b81925050509291505056fe536166654d6174684c69623a206d756c7469706c69636174696f6e206f766572666c6f77a164736f6c634300060c000a", + "bytecode": "0x608060405234801561001057600080fd5b50610c9b806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063505c2304146100515780635290eaf9146100b0578063717e5771146100f9578063ef5bfc3714610158575b600080fd5b6100986004803603602081101561006757600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061027b565b60405180821515815260200191505060405180910390f35b6100f7600480360360208110156100c657600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610286565b005b6101406004803603602081101561010f57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610289565b60405180821515815260200191505060405180910390f35b6102246004803603604081101561016e57600080fd5b810190808035906020019064010000000081111561018b57600080fd5b82018360208201111561019d57600080fd5b803590602001918460208302840111640100000000831117156101bf57600080fd5b9091929391929390803590602001906401000000008111156101e057600080fd5b8201836020820111156101f257600080fd5b8035906020019184602083028401116401000000008311171561021457600080fd5b9091929391929390505050610290565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561026757808201518184015260208101905061024c565b505050509050019250505060405180910390f35b600060019050919050565b50565b6000919050565b60606102a6671996f7c7db2259ac60c01b610286565b6102ba672e4b787fb5dcd29b60c01b610286565b6102ce6707663e952ab1b04b60c01b610286565b60606102e984849050878790506105e690919063ffffffff16565b67ffffffffffffffff811180156102ff57600080fd5b5060405190808252806020026020018201604052801561032e5781602001602082028036833780820191505090505b509050610345671e9f866a219d807660c01b610286565b610359675ee4ced19174963160c01b610286565b60005b868690508110156105b15761037b673a8062ad6a5a9ae860c01b610286565b61038f676962c83948de6c6260c01b610286565b60005b858590508110156105a3576103b16756207a9aa498eb3760c01b610286565b6103c567b0f0d8f141dfc6e060c01b610286565b60006103ef6103e084898990506105e690919063ffffffff16565b8361079890919063ffffffff16565b9050610405677cd11da277f59b6f60c01b610286565b61041967788ca4d91656b03060c01b610286565b600073ffffffffffffffffffffffffffffffffffffffff1687878481811061043d57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610514576104896714199bc9d11db1d460c01b610286565b61049d67ad5235d8ec378d1760c01b610286565b6104f78989858181106104ac57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168888858181106104d557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff166108d5565b84828151811061050357fe5b602002602001018181525050610595565b6105286755d7cdbac043e98d60c01b610286565b61053c6712a6454d49d0a65960c01b610286565b88888481811061054857fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163184828151811061058857fe5b6020026020010181815250505b508080600101915050610392565b50808060010191505061035c565b506105c667048643c1a644649960c01b610286565b6105da67d43948735d9a2b3860c01b610286565b80915050949350505050565b60006105fc673c508ce9aa0e6e6760c01b610c67565b610610670fa17eaab328e08260c01b610c67565b6106246768dfb0ea208c8f4060c01b610c67565b60008314156106715761064167a98d3fc708d3c69860c01b610c67565b6106556734bd3093bb68e15860c01b610c67565b6106686624de95f54120b160c01b610c67565b60009050610792565b6106856717005ae97fd5de3160c01b610c67565b61069967612166ddcd06cb8660c01b610c67565b6106ad67fc456346581af9f960c01b610c67565b600082840290506106c86780b69eb24224e59560c01b610c67565b6106dc67143061fc1d33eebb60c01b610c67565b6106f0671e71cfc00112654d60c01b610c67565b828482816106fa57fe5b0414610751576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180610c6b6024913960400191505060405180910390fd5b61076567a0f4e2148fad644960c01b610c67565b610779674bf736a758111ab060c01b610c67565b61078d67acec17dbca3a62a460c01b610c67565b809150505b92915050565b60006107ae672797d9bbee8e685760c01b610c67565b6107c267e25930aa3032662f60c01b610c67565b6107d6673b804ace3fd44ea060c01b610c67565b600082840190506107f167e0d809daafe36a0460c01b610c67565b61080567d0d7b021c1a6823260c01b610c67565b6108196741f1099b5fa09b9360c01b610c67565b8381101561088f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174684c69623a206164646974696f6e206f766572666c6f77000081525060200191505060405180910390fd5b6108a36728a352a27e50889560c01b610c67565b6108b767f55e5f024a80111c60c01b610c67565b6108cb67d865abdcb752192460c01b610c67565b8091505092915050565b60006108eb67b2712729e87868b360c01b610286565b6108ff67227ce95247d1b4cc60c01b610286565b61091367b685489daeb71a5560c01b610286565b600061092967a6f8c0fb98cafeeb60c01b610286565b61093d67c3aca832f91352cc60c01b610286565b6000610953678be659e0485bcf1760c01b610286565b833b905061096b670b33b15ad270360060c01b610286565b61097f676603793ca1524bbd60c01b610286565b6000811115610c1f5761099c6734983df7d9a27ced60c01b610286565b6109b0673b2ddbbd2fe08b5060c01b610286565b6109c46718a8c4551090a02c60c01b610286565b60008473ffffffffffffffffffffffffffffffffffffffff166370a0823160e01b87604051602401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b60208310610a9c5780518252602082019150602081019050602083039250610a79565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114610afc576040519150601f19603f3d011682016040523d82523d6000602084013e610b01565b606091505b50509050610b1967c7fe3ced1711fc8b60c01b610286565b610b2d673b5f49e36a53cb9d60c01b610286565b8015610c0457610b47677def714ce110fcfc60c01b610286565b610b5b67eb520c752ccbf0a860c01b610286565b8473ffffffffffffffffffffffffffffffffffffffff166370a08231876040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610bc257600080fd5b505afa158015610bd6573d6000803e3d6000fd5b505050506040513d6020811015610bec57600080fd5b81019080805190602001909291905050509250610c19565b610c1867d71c6452d70f1f5d60c01b610286565b5b50610c34565b610c336774cc09ed764aea3760c01b610286565b5b610c4867d4139ac54b6cf02d60c01b610286565b610c5c679db125fba3c9713860c01b610286565b819250505092915050565b5056fe536166654d6174684c69623a206d756c7469706c69636174696f6e206f766572666c6f77a164736f6c634300060c000a", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c8063505c2304146100515780635290eaf9146100b0578063717e5771146100f9578063ef5bfc3714610158575b600080fd5b6100986004803603602081101561006757600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061027b565b60405180821515815260200191505060405180910390f35b6100f7600480360360208110156100c657600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610286565b005b6101406004803603602081101561010f57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610289565b60405180821515815260200191505060405180910390f35b6102246004803603604081101561016e57600080fd5b810190808035906020019064010000000081111561018b57600080fd5b82018360208201111561019d57600080fd5b803590602001918460208302840111640100000000831117156101bf57600080fd5b9091929391929390803590602001906401000000008111156101e057600080fd5b8201836020820111156101f257600080fd5b8035906020019184602083028401116401000000008311171561021457600080fd5b9091929391929390505050610290565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561026757808201518184015260208101905061024c565b505050509050019250505060405180910390f35b600060019050919050565b50565b6000919050565b60606102a6671996f7c7db2259ac60c01b610286565b6102ba672e4b787fb5dcd29b60c01b610286565b6102ce6707663e952ab1b04b60c01b610286565b60606102e984849050878790506105e690919063ffffffff16565b67ffffffffffffffff811180156102ff57600080fd5b5060405190808252806020026020018201604052801561032e5781602001602082028036833780820191505090505b509050610345671e9f866a219d807660c01b610286565b610359675ee4ced19174963160c01b610286565b60005b868690508110156105b15761037b673a8062ad6a5a9ae860c01b610286565b61038f676962c83948de6c6260c01b610286565b60005b858590508110156105a3576103b16756207a9aa498eb3760c01b610286565b6103c567b0f0d8f141dfc6e060c01b610286565b60006103ef6103e084898990506105e690919063ffffffff16565b8361079890919063ffffffff16565b9050610405677cd11da277f59b6f60c01b610286565b61041967788ca4d91656b03060c01b610286565b600073ffffffffffffffffffffffffffffffffffffffff1687878481811061043d57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610514576104896714199bc9d11db1d460c01b610286565b61049d67ad5235d8ec378d1760c01b610286565b6104f78989858181106104ac57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168888858181106104d557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff166108d5565b84828151811061050357fe5b602002602001018181525050610595565b6105286755d7cdbac043e98d60c01b610286565b61053c6712a6454d49d0a65960c01b610286565b88888481811061054857fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163184828151811061058857fe5b6020026020010181815250505b508080600101915050610392565b50808060010191505061035c565b506105c667048643c1a644649960c01b610286565b6105da67d43948735d9a2b3860c01b610286565b80915050949350505050565b60006105fc673c508ce9aa0e6e6760c01b610c67565b610610670fa17eaab328e08260c01b610c67565b6106246768dfb0ea208c8f4060c01b610c67565b60008314156106715761064167a98d3fc708d3c69860c01b610c67565b6106556734bd3093bb68e15860c01b610c67565b6106686624de95f54120b160c01b610c67565b60009050610792565b6106856717005ae97fd5de3160c01b610c67565b61069967612166ddcd06cb8660c01b610c67565b6106ad67fc456346581af9f960c01b610c67565b600082840290506106c86780b69eb24224e59560c01b610c67565b6106dc67143061fc1d33eebb60c01b610c67565b6106f0671e71cfc00112654d60c01b610c67565b828482816106fa57fe5b0414610751576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180610c6b6024913960400191505060405180910390fd5b61076567a0f4e2148fad644960c01b610c67565b610779674bf736a758111ab060c01b610c67565b61078d67acec17dbca3a62a460c01b610c67565b809150505b92915050565b60006107ae672797d9bbee8e685760c01b610c67565b6107c267e25930aa3032662f60c01b610c67565b6107d6673b804ace3fd44ea060c01b610c67565b600082840190506107f167e0d809daafe36a0460c01b610c67565b61080567d0d7b021c1a6823260c01b610c67565b6108196741f1099b5fa09b9360c01b610c67565b8381101561088f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174684c69623a206164646974696f6e206f766572666c6f77000081525060200191505060405180910390fd5b6108a36728a352a27e50889560c01b610c67565b6108b767f55e5f024a80111c60c01b610c67565b6108cb67d865abdcb752192460c01b610c67565b8091505092915050565b60006108eb67b2712729e87868b360c01b610286565b6108ff67227ce95247d1b4cc60c01b610286565b61091367b685489daeb71a5560c01b610286565b600061092967a6f8c0fb98cafeeb60c01b610286565b61093d67c3aca832f91352cc60c01b610286565b6000610953678be659e0485bcf1760c01b610286565b833b905061096b670b33b15ad270360060c01b610286565b61097f676603793ca1524bbd60c01b610286565b6000811115610c1f5761099c6734983df7d9a27ced60c01b610286565b6109b0673b2ddbbd2fe08b5060c01b610286565b6109c46718a8c4551090a02c60c01b610286565b60008473ffffffffffffffffffffffffffffffffffffffff166370a0823160e01b87604051602401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b60208310610a9c5780518252602082019150602081019050602083039250610a79565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114610afc576040519150601f19603f3d011682016040523d82523d6000602084013e610b01565b606091505b50509050610b1967c7fe3ced1711fc8b60c01b610286565b610b2d673b5f49e36a53cb9d60c01b610286565b8015610c0457610b47677def714ce110fcfc60c01b610286565b610b5b67eb520c752ccbf0a860c01b610286565b8473ffffffffffffffffffffffffffffffffffffffff166370a08231876040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610bc257600080fd5b505afa158015610bd6573d6000803e3d6000fd5b505050506040513d6020811015610bec57600080fd5b81019080805190602001909291905050509250610c19565b610c1867d71c6452d70f1f5d60c01b610286565b5b50610c34565b610c336774cc09ed764aea3760c01b610286565b5b610c4867d4139ac54b6cf02d60c01b610286565b610c5c679db125fba3c9713860c01b610286565b819250505092915050565b5056fe536166654d6174684c69623a206d756c7469706c69636174696f6e206f766572666c6f77a164736f6c634300060c000a", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/BalancesHelperV2.json b/artifacts/BalancesHelperV2.json index 4831464b..c627da71 100644 --- a/artifacts/BalancesHelperV2.json +++ b/artifacts/BalancesHelperV2.json @@ -40,6 +40,57 @@ "name": "TokenZeroAddress", "type": "error" }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__158c7976", + "type": "bytes8" + } + ], + "name": "c_158c7976", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__158c7976", + "type": "bytes8" + } + ], + "name": "c_false158c7976", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__158c7976", + "type": "bytes8" + } + ], + "name": "c_true158c7976", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [ { @@ -89,8 +140,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5061108a806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806350c5a7101461003b578063ef5bfc371461006b575b600080fd5b610055600480360381019061005091906109e6565b61009b565b6040516100629190610ce8565b60405180910390f35b610085600480360381019061008091906109e6565b610279565b6040516100929190610d0a565b60405180910390f35b6060600083839050868690506100b19190610e68565b67ffffffffffffffff8111156100f0577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561011e5781602001602082028036833780820191505090505b50905060005b8686905081101561026c5760005b85859050811015610258576000828787905061014e9190610e68565b826101599190610e12565b90506101ff898985818110610197577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906101ac91906109bd565b8888858181106101e5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906101fa91906109bd565b610457565b848281518110610238577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101818152505050808061025090610f3b565b915050610132565b50808061026490610f3b565b915050610124565b5080915050949350505050565b60606000838390508686905061028f9190610e68565b67ffffffffffffffff8111156102ce577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156102fc5781602001602082028036833780820191505090505b50905060005b8686905081101561044a5760005b85859050811015610436576000828787905061032c9190610e68565b826103379190610e12565b90506103dd898985818110610375577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201602081019061038a91906109bd565b8888858181106103c3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906103d891906109bd565b610608565b848281518110610416577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101818152505050808061042e90610f3b565b915050610310565b50808061044290610f3b565b915050610302565b5080915050949350505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156104cc5782826040517f484305ff0000000000000000000000000000000000000000000000000000000081526004016104c3929190610cbf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156105405782826040517f41f93bdf000000000000000000000000000000000000000000000000000000008152600401610537929190610cbf565b60405180910390fd5b60006105e0632ec8eec760e01b8560405160240161055e9190610ca4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050508473ffffffffffffffffffffffffffffffffffffffff166107b090919063ffffffff16565b90506000818060200190518101906105f89190610a5b565b5050509050809250505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561067d5782826040517f484305ff000000000000000000000000000000000000000000000000000000008152600401610674929190610cbf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156106f15782826040517f41f93bdf0000000000000000000000000000000000000000000000000000000081526004016106e8929190610cbf565b60405180910390fd5b60006107916370a0823160e01b8560405160240161070f9190610ca4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050508473ffffffffffffffffffffffffffffffffffffffff166107b090919063ffffffff16565b9050808060200190518101906107a79190610abe565b91505092915050565b60606107d58383604051806060016040528060258152602001611059602591396107dd565b905092915050565b60606107e8846108aa565b610827576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081e90610d4e565b60405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff168560405161084f9190610c8d565b600060405180830381855afa9150503d806000811461088a576040519150601f19603f3d011682016040523d82523d6000602084013e61088f565b606091505b509150915061089f8282866108cd565b925050509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b606083156108dd5782905061092d565b6000835111156108f05782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109249190610d2c565b60405180910390fd5b9392505050565b60008135905061094381611013565b92915050565b60008083601f84011261095b57600080fd5b8235905067ffffffffffffffff81111561097457600080fd5b60208301915083602082028301111561098c57600080fd5b9250929050565b6000815190506109a28161102a565b92915050565b6000815190506109b781611041565b92915050565b6000602082840312156109cf57600080fd5b60006109dd84828501610934565b91505092915050565b600080600080604085870312156109fc57600080fd5b600085013567ffffffffffffffff811115610a1657600080fd5b610a2287828801610949565b9450945050602085013567ffffffffffffffff811115610a4157600080fd5b610a4d87828801610949565b925092505092959194509250565b60008060008060808587031215610a7157600080fd5b6000610a7f87828801610993565b9450506020610a90878288016109a8565b9350506040610aa1878288016109a8565b9250506060610ab2878288016109a8565b91505092959194509250565b600060208284031215610ad057600080fd5b6000610ade848285016109a8565b91505092915050565b6000610af38383610c13565b60208301905092915050565b6000610b0b8383610c7e565b60208301905092915050565b610b2081610ec2565b82525050565b6000610b3182610d8e565b610b3b8185610dd4565b9350610b4683610d6e565b8060005b83811015610b77578151610b5e8882610ae7565b9750610b6983610dba565b925050600181019050610b4a565b5085935050505092915050565b6000610b8f82610d99565b610b998185610de5565b9350610ba483610d7e565b8060005b83811015610bd5578151610bbc8882610aff565b9750610bc783610dc7565b925050600181019050610ba8565b5085935050505092915050565b6000610bed82610da4565b610bf78185610df6565b9350610c07818560208601610f08565b80840191505092915050565b610c1c81610ed4565b82525050565b6000610c2d82610daf565b610c378185610e01565b9350610c47818560208601610f08565b610c5081610fb3565b840191505092915050565b6000610c68602483610e01565b9150610c7382610fc4565b604082019050919050565b610c8781610efe565b82525050565b6000610c998284610be2565b915081905092915050565b6000602082019050610cb96000830184610b17565b92915050565b6000604082019050610cd46000830185610b17565b610ce16020830184610b17565b9392505050565b60006020820190508181036000830152610d028184610b26565b905092915050565b60006020820190508181036000830152610d248184610b84565b905092915050565b60006020820190508181036000830152610d468184610c22565b905092915050565b60006020820190508181036000830152610d6781610c5b565b9050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000610e1d82610efe565b9150610e2883610efe565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610e5d57610e5c610f84565b5b828201905092915050565b6000610e7382610efe565b9150610e7e83610efe565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610eb757610eb6610f84565b5b828202905092915050565b6000610ecd82610ede565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015610f26578082015181840152602081019050610f0b565b83811115610f35576000848401525b50505050565b6000610f4682610efe565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610f7957610f78610f84565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000601f19601f8301169050919050565b7f416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7460008201527f7261637400000000000000000000000000000000000000000000000000000000602082015250565b61101c81610ec2565b811461102757600080fd5b50565b61103381610ed4565b811461103e57600080fd5b50565b61104a81610efe565b811461105557600080fd5b5056fe416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564a164736f6c6343000804000a", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c806350c5a7101461003b578063ef5bfc371461006b575b600080fd5b610055600480360381019061005091906109e6565b61009b565b6040516100629190610ce8565b60405180910390f35b610085600480360381019061008091906109e6565b610279565b6040516100929190610d0a565b60405180910390f35b6060600083839050868690506100b19190610e68565b67ffffffffffffffff8111156100f0577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561011e5781602001602082028036833780820191505090505b50905060005b8686905081101561026c5760005b85859050811015610258576000828787905061014e9190610e68565b826101599190610e12565b90506101ff898985818110610197577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906101ac91906109bd565b8888858181106101e5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906101fa91906109bd565b610457565b848281518110610238577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101818152505050808061025090610f3b565b915050610132565b50808061026490610f3b565b915050610124565b5080915050949350505050565b60606000838390508686905061028f9190610e68565b67ffffffffffffffff8111156102ce577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156102fc5781602001602082028036833780820191505090505b50905060005b8686905081101561044a5760005b85859050811015610436576000828787905061032c9190610e68565b826103379190610e12565b90506103dd898985818110610375577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201602081019061038a91906109bd565b8888858181106103c3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906103d891906109bd565b610608565b848281518110610416577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101818152505050808061042e90610f3b565b915050610310565b50808061044290610f3b565b915050610302565b5080915050949350505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156104cc5782826040517f484305ff0000000000000000000000000000000000000000000000000000000081526004016104c3929190610cbf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156105405782826040517f41f93bdf000000000000000000000000000000000000000000000000000000008152600401610537929190610cbf565b60405180910390fd5b60006105e0632ec8eec760e01b8560405160240161055e9190610ca4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050508473ffffffffffffffffffffffffffffffffffffffff166107b090919063ffffffff16565b90506000818060200190518101906105f89190610a5b565b5050509050809250505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561067d5782826040517f484305ff000000000000000000000000000000000000000000000000000000008152600401610674929190610cbf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156106f15782826040517f41f93bdf0000000000000000000000000000000000000000000000000000000081526004016106e8929190610cbf565b60405180910390fd5b60006107916370a0823160e01b8560405160240161070f9190610ca4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050508473ffffffffffffffffffffffffffffffffffffffff166107b090919063ffffffff16565b9050808060200190518101906107a79190610abe565b91505092915050565b60606107d58383604051806060016040528060258152602001611059602591396107dd565b905092915050565b60606107e8846108aa565b610827576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081e90610d4e565b60405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff168560405161084f9190610c8d565b600060405180830381855afa9150503d806000811461088a576040519150601f19603f3d011682016040523d82523d6000602084013e61088f565b606091505b509150915061089f8282866108cd565b925050509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b606083156108dd5782905061092d565b6000835111156108f05782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109249190610d2c565b60405180910390fd5b9392505050565b60008135905061094381611013565b92915050565b60008083601f84011261095b57600080fd5b8235905067ffffffffffffffff81111561097457600080fd5b60208301915083602082028301111561098c57600080fd5b9250929050565b6000815190506109a28161102a565b92915050565b6000815190506109b781611041565b92915050565b6000602082840312156109cf57600080fd5b60006109dd84828501610934565b91505092915050565b600080600080604085870312156109fc57600080fd5b600085013567ffffffffffffffff811115610a1657600080fd5b610a2287828801610949565b9450945050602085013567ffffffffffffffff811115610a4157600080fd5b610a4d87828801610949565b925092505092959194509250565b60008060008060808587031215610a7157600080fd5b6000610a7f87828801610993565b9450506020610a90878288016109a8565b9350506040610aa1878288016109a8565b9250506060610ab2878288016109a8565b91505092959194509250565b600060208284031215610ad057600080fd5b6000610ade848285016109a8565b91505092915050565b6000610af38383610c13565b60208301905092915050565b6000610b0b8383610c7e565b60208301905092915050565b610b2081610ec2565b82525050565b6000610b3182610d8e565b610b3b8185610dd4565b9350610b4683610d6e565b8060005b83811015610b77578151610b5e8882610ae7565b9750610b6983610dba565b925050600181019050610b4a565b5085935050505092915050565b6000610b8f82610d99565b610b998185610de5565b9350610ba483610d7e565b8060005b83811015610bd5578151610bbc8882610aff565b9750610bc783610dc7565b925050600181019050610ba8565b5085935050505092915050565b6000610bed82610da4565b610bf78185610df6565b9350610c07818560208601610f08565b80840191505092915050565b610c1c81610ed4565b82525050565b6000610c2d82610daf565b610c378185610e01565b9350610c47818560208601610f08565b610c5081610fb3565b840191505092915050565b6000610c68602483610e01565b9150610c7382610fc4565b604082019050919050565b610c8781610efe565b82525050565b6000610c998284610be2565b915081905092915050565b6000602082019050610cb96000830184610b17565b92915050565b6000604082019050610cd46000830185610b17565b610ce16020830184610b17565b9392505050565b60006020820190508181036000830152610d028184610b26565b905092915050565b60006020820190508181036000830152610d248184610b84565b905092915050565b60006020820190508181036000830152610d468184610c22565b905092915050565b60006020820190508181036000830152610d6781610c5b565b9050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000610e1d82610efe565b9150610e2883610efe565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610e5d57610e5c610f84565b5b828201905092915050565b6000610e7382610efe565b9150610e7e83610efe565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610eb757610eb6610f84565b5b828202905092915050565b6000610ecd82610ede565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015610f26578082015181840152602081019050610f0b565b83811115610f35576000848401525b50505050565b6000610f4682610efe565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610f7957610f78610f84565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000601f19601f8301169050919050565b7f416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7460008201527f7261637400000000000000000000000000000000000000000000000000000000602082015250565b61101c81610ec2565b811461102757600080fd5b50565b61103381610ed4565b811461103e57600080fd5b50565b61104a81610efe565b811461105557600080fd5b5056fe416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564a164736f6c6343000804000a", + "bytecode": "0x608060405234801561001057600080fd5b5061002b6709f30c992493712560c01b61003060201b60201c565b610033565b50565b611605806100426000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80632686e1591461005c57806350c5a71014610078578063598cebc2146100a857806385837775146100d8578063ef5bfc3714610108575b600080fd5b61007660048036038101906100719190610f34565b610138565b005b610092600480360381019061008d9190610ebf565b61013b565b60405161009f91906111f9565b60405180910390f35b6100c260048036038101906100bd9190610f34565b610409565b6040516100cf919061123d565b60405180910390f35b6100f260048036038101906100ed9190610f34565b610414565b6040516100ff919061123d565b60405180910390f35b610122600480360381019061011d9190610ebf565b61041b565b60405161012f919061121b565b60405180910390f35b50565b606061015167b7e5e1e9244e5e0160c01b610138565b610165672048521181b0f1cf60c01b610138565b61017967b4518694c34f490660c01b610138565b6000838390508686905061018d9190611394565b67ffffffffffffffff8111156101cc577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156101fa5781602001602082028036833780820191505090505b5090506102116757f4c382f00c5a8360c01b610138565b61022567e69f8d60c03d722d60c01b610138565b60005b868690508110156103d45761024767ab1fc139b6b2455a60c01b610138565b61025b6771d1b307fe59c4ba60c01b610138565b60005b858590508110156103c05761027d676fc8991df9fe527360c01b610138565b610291670d0d6fcdea937bbc60c01b610138565b600082878790506102a29190611394565b826102ad919061133e565b90506102c367691e1323cd6c34f260c01b610138565b6103678989858181106102ff577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906103149190610e96565b88888581811061034d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906103629190610e96565b6106e9565b8482815181106103a0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181815250505080806103b89061149f565b91505061025e565b5080806103cc9061149f565b915050610228565b506103e96705d2747fe66b15de60c01b610138565b6103fd6779537f854243435860c01b610138565b80915050949350505050565b600060019050919050565b6000919050565b60606104316757a851679897871060c01b610138565b61044567afca38cbaae3954b60c01b610138565b6104596717e61485e2adddae60c01b610138565b6000838390508686905061046d9190611394565b67ffffffffffffffff8111156104ac577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156104da5781602001602082028036833780820191505090505b5090506104f167a8fd47c736e098c660c01b610138565b6105056754a3a66a760471e260c01b610138565b60005b868690508110156106b457610527676020aede3cf0f24260c01b610138565b61053b677c74b1a46b3310a860c01b610138565b60005b858590508110156106a05761055d67a6e963d7511535f060c01b610138565b6105716767f1de8600063fdd60c01b610138565b600082878790506105829190611394565b8261058d919061133e565b90506105a367f267705018eace0d60c01b610138565b6106478989858181106105df577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906105f49190610e96565b88888581811061062d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906106429190610e96565b6109c7565b848281518110610680577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181815250505080806106989061149f565b91505061053e565b5080806106ac9061149f565b915050610508565b506106c967f5cb551b5203b64e60c01b610138565b6106dd67dcd6147ba89eec3960c01b610138565b80915050949350505050565b60006106ff6716015317cc44c1fe60c01b610138565b61071367d08a07da0c10fa6560c01b610138565b61072767904b2cf5eb3c41ad60c01b610138565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156107af5761077067f2daedce79a4ab6660c01b610138565b82826040517f484305ff0000000000000000000000000000000000000000000000000000000081526004016107a69291906111d0565b60405180910390fd5b6107c367dbfe044603cf7ed960c01b610138565b6107d767bcd8d2533bb37a4860c01b610138565b6107eb6704079fddbeeaca4960c01b610138565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561087357610834675e3fae1ce3835aac60c01b610138565b82826040517f41f93bdf00000000000000000000000000000000000000000000000000000000815260040161086a9291906111d0565b60405180910390fd5b6108876729109ed6e6803a3e60c01b610138565b61089b67df9d686a987d620260c01b610138565b6108af67ff1d584f0b3383ff60c01b610138565b600061094f632ec8eec760e01b856040516024016108cd91906111b5565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050508473ffffffffffffffffffffffffffffffffffffffff16610c7490919063ffffffff16565b90506109656734d8c5a7d10216ee60c01b610138565b6109796739c0f73afd5eb4ac60c01b610138565b60008180602001905181019061098f9190610f5d565b50505090506109a8674c52b5de12a9f5f860c01b610138565b6109bc6710cce64556abd10560c01b610138565b809250505092915050565b60006109dd678d7f6ae46953909760c01b610138565b6109f16770b374a1822c332460c01b610138565b610a056787145e489d3e328460c01b610138565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a8d57610a4e67873f8a37fca17e4360c01b610138565b82826040517f484305ff000000000000000000000000000000000000000000000000000000008152600401610a849291906111d0565b60405180910390fd5b610aa16770e4c54b166c57c260c01b610138565b610ab567c49ee77d5f48860260c01b610138565b610ac967ad0eade5d3d1ba8c60c01b610138565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b5157610b126749cab2b7bd90a8bc60c01b610138565b82826040517f41f93bdf000000000000000000000000000000000000000000000000000000008152600401610b489291906111d0565b60405180910390fd5b610b6567e85f3c08277b03f160c01b610138565b610b7967c26540d5beb682f560c01b610138565b610b8d67e1af98e33c8d159160c01b610138565b6000610c2d6370a0823160e01b85604051602401610bab91906111b5565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050508473ffffffffffffffffffffffffffffffffffffffff16610c7490919063ffffffff16565b9050610c4367779032358553ccd060c01b610138565b610c5767f3c5150d5508debe60c01b610138565b80806020019051810190610c6b9190610fc0565b91505092915050565b6060610c9983836040518060600160405280602581526020016115d460259139610ca1565b905092915050565b6060610cac84610d6e565b610ceb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce29061127a565b60405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1685604051610d13919061119e565b600060405180830381855afa9150503d8060008114610d4e576040519150601f19603f3d011682016040523d82523d6000602084013e610d53565b606091505b5091509150610d63828286610d91565b925050509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60608315610da157829050610df1565b600083511115610db45782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de89190611258565b60405180910390fd5b9392505050565b600081359050610e0781611577565b92915050565b60008083601f840112610e1f57600080fd5b8235905067ffffffffffffffff811115610e3857600080fd5b602083019150836020820283011115610e5057600080fd5b9250929050565b600081359050610e668161158e565b92915050565b600081519050610e7b816115a5565b92915050565b600081519050610e90816115bc565b92915050565b600060208284031215610ea857600080fd5b6000610eb684828501610df8565b91505092915050565b60008060008060408587031215610ed557600080fd5b600085013567ffffffffffffffff811115610eef57600080fd5b610efb87828801610e0d565b9450945050602085013567ffffffffffffffff811115610f1a57600080fd5b610f2687828801610e0d565b925092505092959194509250565b600060208284031215610f4657600080fd5b6000610f5484828501610e57565b91505092915050565b60008060008060808587031215610f7357600080fd5b6000610f8187828801610e6c565b9450506020610f9287828801610e81565b9350506040610fa387828801610e81565b9250506060610fb487828801610e81565b91505092959194509250565b600060208284031215610fd257600080fd5b6000610fe084828501610e81565b91505092915050565b6000610ff58383611124565b60208301905092915050565b600061100d838361118f565b60208301905092915050565b611022816113ee565b82525050565b6000611033826112ba565b61103d8185611300565b93506110488361129a565b8060005b838110156110795781516110608882610fe9565b975061106b836112e6565b92505060018101905061104c565b5085935050505092915050565b6000611091826112c5565b61109b8185611311565b93506110a6836112aa565b8060005b838110156110d75781516110be8882611001565b97506110c9836112f3565b9250506001810190506110aa565b5085935050505092915050565b6110ed81611400565b82525050565b60006110fe826112d0565b6111088185611322565b935061111881856020860161146c565b80840191505092915050565b61112d81611438565b82525050565b600061113e826112db565b611148818561132d565b935061115881856020860161146c565b61116181611517565b840191505092915050565b600061117960248361132d565b915061118482611528565b604082019050919050565b61119881611462565b82525050565b60006111aa82846110f3565b915081905092915050565b60006020820190506111ca6000830184611019565b92915050565b60006040820190506111e56000830185611019565b6111f26020830184611019565b9392505050565b600060208201905081810360008301526112138184611028565b905092915050565b600060208201905081810360008301526112358184611086565b905092915050565b600060208201905061125260008301846110e4565b92915050565b600060208201905081810360008301526112728184611133565b905092915050565b600060208201905081810360008301526112938161116c565b9050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061134982611462565b915061135483611462565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611389576113886114e8565b5b828201905092915050565b600061139f82611462565b91506113aa83611462565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156113e3576113e26114e8565b5b828202905092915050565b60006113f982611442565b9050919050565b60008115159050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101561148a57808201518184015260208101905061146f565b83811115611499576000848401525b50505050565b60006114aa82611462565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156114dd576114dc6114e8565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000601f19601f8301169050919050565b7f416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7460008201527f7261637400000000000000000000000000000000000000000000000000000000602082015250565b611580816113ee565b811461158b57600080fd5b50565b6115978161140c565b81146115a257600080fd5b50565b6115ae81611438565b81146115b957600080fd5b50565b6115c581611462565b81146115d057600080fd5b5056fe416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564a164736f6c6343000804000a", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c80632686e1591461005c57806350c5a71014610078578063598cebc2146100a857806385837775146100d8578063ef5bfc3714610108575b600080fd5b61007660048036038101906100719190610f34565b610138565b005b610092600480360381019061008d9190610ebf565b61013b565b60405161009f91906111f9565b60405180910390f35b6100c260048036038101906100bd9190610f34565b610409565b6040516100cf919061123d565b60405180910390f35b6100f260048036038101906100ed9190610f34565b610414565b6040516100ff919061123d565b60405180910390f35b610122600480360381019061011d9190610ebf565b61041b565b60405161012f919061121b565b60405180910390f35b50565b606061015167b7e5e1e9244e5e0160c01b610138565b610165672048521181b0f1cf60c01b610138565b61017967b4518694c34f490660c01b610138565b6000838390508686905061018d9190611394565b67ffffffffffffffff8111156101cc577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156101fa5781602001602082028036833780820191505090505b5090506102116757f4c382f00c5a8360c01b610138565b61022567e69f8d60c03d722d60c01b610138565b60005b868690508110156103d45761024767ab1fc139b6b2455a60c01b610138565b61025b6771d1b307fe59c4ba60c01b610138565b60005b858590508110156103c05761027d676fc8991df9fe527360c01b610138565b610291670d0d6fcdea937bbc60c01b610138565b600082878790506102a29190611394565b826102ad919061133e565b90506102c367691e1323cd6c34f260c01b610138565b6103678989858181106102ff577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906103149190610e96565b88888581811061034d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906103629190610e96565b6106e9565b8482815181106103a0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181815250505080806103b89061149f565b91505061025e565b5080806103cc9061149f565b915050610228565b506103e96705d2747fe66b15de60c01b610138565b6103fd6779537f854243435860c01b610138565b80915050949350505050565b600060019050919050565b6000919050565b60606104316757a851679897871060c01b610138565b61044567afca38cbaae3954b60c01b610138565b6104596717e61485e2adddae60c01b610138565b6000838390508686905061046d9190611394565b67ffffffffffffffff8111156104ac577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156104da5781602001602082028036833780820191505090505b5090506104f167a8fd47c736e098c660c01b610138565b6105056754a3a66a760471e260c01b610138565b60005b868690508110156106b457610527676020aede3cf0f24260c01b610138565b61053b677c74b1a46b3310a860c01b610138565b60005b858590508110156106a05761055d67a6e963d7511535f060c01b610138565b6105716767f1de8600063fdd60c01b610138565b600082878790506105829190611394565b8261058d919061133e565b90506105a367f267705018eace0d60c01b610138565b6106478989858181106105df577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906105f49190610e96565b88888581811061062d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906106429190610e96565b6109c7565b848281518110610680577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181815250505080806106989061149f565b91505061053e565b5080806106ac9061149f565b915050610508565b506106c967f5cb551b5203b64e60c01b610138565b6106dd67dcd6147ba89eec3960c01b610138565b80915050949350505050565b60006106ff6716015317cc44c1fe60c01b610138565b61071367d08a07da0c10fa6560c01b610138565b61072767904b2cf5eb3c41ad60c01b610138565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156107af5761077067f2daedce79a4ab6660c01b610138565b82826040517f484305ff0000000000000000000000000000000000000000000000000000000081526004016107a69291906111d0565b60405180910390fd5b6107c367dbfe044603cf7ed960c01b610138565b6107d767bcd8d2533bb37a4860c01b610138565b6107eb6704079fddbeeaca4960c01b610138565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561087357610834675e3fae1ce3835aac60c01b610138565b82826040517f41f93bdf00000000000000000000000000000000000000000000000000000000815260040161086a9291906111d0565b60405180910390fd5b6108876729109ed6e6803a3e60c01b610138565b61089b67df9d686a987d620260c01b610138565b6108af67ff1d584f0b3383ff60c01b610138565b600061094f632ec8eec760e01b856040516024016108cd91906111b5565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050508473ffffffffffffffffffffffffffffffffffffffff16610c7490919063ffffffff16565b90506109656734d8c5a7d10216ee60c01b610138565b6109796739c0f73afd5eb4ac60c01b610138565b60008180602001905181019061098f9190610f5d565b50505090506109a8674c52b5de12a9f5f860c01b610138565b6109bc6710cce64556abd10560c01b610138565b809250505092915050565b60006109dd678d7f6ae46953909760c01b610138565b6109f16770b374a1822c332460c01b610138565b610a056787145e489d3e328460c01b610138565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a8d57610a4e67873f8a37fca17e4360c01b610138565b82826040517f484305ff000000000000000000000000000000000000000000000000000000008152600401610a849291906111d0565b60405180910390fd5b610aa16770e4c54b166c57c260c01b610138565b610ab567c49ee77d5f48860260c01b610138565b610ac967ad0eade5d3d1ba8c60c01b610138565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b5157610b126749cab2b7bd90a8bc60c01b610138565b82826040517f41f93bdf000000000000000000000000000000000000000000000000000000008152600401610b489291906111d0565b60405180910390fd5b610b6567e85f3c08277b03f160c01b610138565b610b7967c26540d5beb682f560c01b610138565b610b8d67e1af98e33c8d159160c01b610138565b6000610c2d6370a0823160e01b85604051602401610bab91906111b5565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050508473ffffffffffffffffffffffffffffffffffffffff16610c7490919063ffffffff16565b9050610c4367779032358553ccd060c01b610138565b610c5767f3c5150d5508debe60c01b610138565b80806020019051810190610c6b9190610fc0565b91505092915050565b6060610c9983836040518060600160405280602581526020016115d460259139610ca1565b905092915050565b6060610cac84610d6e565b610ceb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce29061127a565b60405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1685604051610d13919061119e565b600060405180830381855afa9150503d8060008114610d4e576040519150601f19603f3d011682016040523d82523d6000602084013e610d53565b606091505b5091509150610d63828286610d91565b925050509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60608315610da157829050610df1565b600083511115610db45782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de89190611258565b60405180910390fd5b9392505050565b600081359050610e0781611577565b92915050565b60008083601f840112610e1f57600080fd5b8235905067ffffffffffffffff811115610e3857600080fd5b602083019150836020820283011115610e5057600080fd5b9250929050565b600081359050610e668161158e565b92915050565b600081519050610e7b816115a5565b92915050565b600081519050610e90816115bc565b92915050565b600060208284031215610ea857600080fd5b6000610eb684828501610df8565b91505092915050565b60008060008060408587031215610ed557600080fd5b600085013567ffffffffffffffff811115610eef57600080fd5b610efb87828801610e0d565b9450945050602085013567ffffffffffffffff811115610f1a57600080fd5b610f2687828801610e0d565b925092505092959194509250565b600060208284031215610f4657600080fd5b6000610f5484828501610e57565b91505092915050565b60008060008060808587031215610f7357600080fd5b6000610f8187828801610e6c565b9450506020610f9287828801610e81565b9350506040610fa387828801610e81565b9250506060610fb487828801610e81565b91505092959194509250565b600060208284031215610fd257600080fd5b6000610fe084828501610e81565b91505092915050565b6000610ff58383611124565b60208301905092915050565b600061100d838361118f565b60208301905092915050565b611022816113ee565b82525050565b6000611033826112ba565b61103d8185611300565b93506110488361129a565b8060005b838110156110795781516110608882610fe9565b975061106b836112e6565b92505060018101905061104c565b5085935050505092915050565b6000611091826112c5565b61109b8185611311565b93506110a6836112aa565b8060005b838110156110d75781516110be8882611001565b97506110c9836112f3565b9250506001810190506110aa565b5085935050505092915050565b6110ed81611400565b82525050565b60006110fe826112d0565b6111088185611322565b935061111881856020860161146c565b80840191505092915050565b61112d81611438565b82525050565b600061113e826112db565b611148818561132d565b935061115881856020860161146c565b61116181611517565b840191505092915050565b600061117960248361132d565b915061118482611528565b604082019050919050565b61119881611462565b82525050565b60006111aa82846110f3565b915081905092915050565b60006020820190506111ca6000830184611019565b92915050565b60006040820190506111e56000830185611019565b6111f26020830184611019565b9392505050565b600060208201905081810360008301526112138184611028565b905092915050565b600060208201905081810360008301526112358184611086565b905092915050565b600060208201905061125260008301846110e4565b92915050565b600060208201905081810360008301526112728184611133565b905092915050565b600060208201905081810360008301526112938161116c565b9050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061134982611462565b915061135483611462565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611389576113886114e8565b5b828201905092915050565b600061139f82611462565b91506113aa83611462565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156113e3576113e26114e8565b5b828202905092915050565b60006113f982611442565b9050919050565b60008115159050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101561148a57808201518184015260208101905061146f565b83811115611499576000848401525b50505050565b60006114aa82611462565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156114dd576114dc6114e8565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000601f19601f8301169050919050565b7f416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7460008201527f7261637400000000000000000000000000000000000000000000000000000000602082015250565b611580816113ee565b811461158b57600080fd5b50565b6115978161140c565b81146115a257600080fd5b50565b6115ae81611438565b81146115b957600080fd5b50565b6115c581611462565b81146115d057600080fd5b5056fe416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564a164736f6c6343000804000a", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/CBridgeFacet.json b/artifacts/CBridgeFacet.json index 49ec8bf1..68829a3b 100644 --- a/artifacts/CBridgeFacet.json +++ b/artifacts/CBridgeFacet.json @@ -121,6 +121,108 @@ "name": "CBUpdatedSlippageTolerance", "type": "event" }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__82a0834b", + "type": "bytes8" + } + ], + "name": "c_82a0834b", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__9296fc39", + "type": "bytes8" + } + ], + "name": "c_9296fc39", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__82a0834b", + "type": "bytes8" + } + ], + "name": "c_false82a0834b", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__9296fc39", + "type": "bytes8" + } + ], + "name": "c_false9296fc39", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__82a0834b", + "type": "bytes8" + } + ], + "name": "c_true82a0834b", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__9296fc39", + "type": "bytes8" + } + ], + "name": "c_true9296fc39", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [ { @@ -201,8 +303,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b506115ab806100206000396000f3fe60806040526004361061003f5760003560e01c806340d280a21461004457806352434c6e1461006d5780636f395e60146100895780639e32e2e6146100b2575b600080fd5b34801561005057600080fd5b5061006b60048036038101906100669190610dac565b6100db565b005b61008760048036038101906100829190610dfe565b610204565b005b34801561009557600080fd5b506100b060048036038101906100ab9190610dac565b6105f6565b005b3480156100be57600080fd5b506100d960048036038101906100d49190610e50565b6106ef565b005b6100e36107a2565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561014a576040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061015461083d565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504681600101819055506127108160020160006101000a81548163ffffffff021916908363ffffffff1602179055507fcbfd47a07530fc4fffba96f5686a7127e5661fe26dd01503239ca2f66fcad99082466040516101f892919061112b565b60405180910390a15050565b600061020e61086a565b905060018160000154141561024f576040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001816000018190555081600001602081019061026c9190610e79565b67ffffffffffffffff164614156102af576040517f4ac09ad300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168260600160208101906102da9190610dac565b73ffffffffffffffffffffffffffffffffffffffff161415610328576040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000826040013511610366576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168260800160208101906103919190610dac565b73ffffffffffffffffffffffffffffffffffffffff1614156103df576040517fdc2e5e8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006103e961083d565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050610457333086604001358760800160208101906104319190610dac565b73ffffffffffffffffffffffffffffffffffffffff16610897909392919063ffffffff16565b6104988185604001358660800160208101906104739190610dac565b73ffffffffffffffffffffffffffffffffffffffff166109209092919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff1663a5977fbb8560600160208101906104c79190610dac565b8660800160208101906104da9190610dac565b87604001358860000160208101906104f29190610e79565b8960200160208101906105059190610e79565b8860020160009054906101000a900463ffffffff166040518763ffffffff1660e01b815260040161053b969594939291906110ca565b600060405180830381600087803b15801561055557600080fd5b505af1158015610569573d6000803e3d6000fd5b505050507fd565a5cf794050de1a171170c91acd5d14cbf11877dc3fa020e9975495ab17578460800160208101906105a19190610dac565b338660600160208101906105b59190610dac565b87604001358860000160208101906105cd9190610e79565b6040516105de9594939291906111b6565b60405180910390a15050600081600001819055505050565b6105fe6107a2565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610665576040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061066f61083d565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f4ae67faf3cf135d9eca1b5490d3613096d2d0610fca7496112fa46ef019fbd4e826040516106e3919061104f565b60405180910390a15050565b6113888163ffffffff1611610730576040517f9ff4125000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107386107a2565b600061074261083d565b9050818160020160006101000a81548163ffffffff021916908363ffffffff1602179055507f8d5e80c35df41e151b58f1a100ad605ae1ebcda3d0c329b22820b232767a773082604051610796919061127c565b60405180910390a15050565b6107aa610a7e565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461083b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083290611176565b60405180910390fd5b565b6000807f9d7253cc9498e9cc54011bbbe9471a68adbc99d0ac1eef42369f5a452e814c4a90508091505090565b6000807fc59b5acc5a6673a6c49ca2de898f87adbd9fdfdff36f689476b1c9e0c50964b490508091505090565b61091a846323b872dd60e01b8585856040516024016108b893929190611093565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610aab565b50505050565b60008114806109b9575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b815260040161096792919061106a565b60206040518083038186803b15801561097f57600080fd5b505afa158015610993573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b79190610e27565b145b6109f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ef9061125c565b60405180910390fd5b610a798363095ea7b360e01b8484604051602401610a1792919061112b565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610aab565b505050565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b6000610b0d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16610b729092919063ffffffff16565b9050600081511115610b6d5780806020019051810190610b2d9190610dd5565b610b6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b639061123c565b60405180910390fd5b5b505050565b6060610b818484600085610b8a565b90509392505050565b606082471015610bcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc690611196565b60405180910390fd5b610bd885610c9e565b610c17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0e9061121c565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051610c409190611038565b60006040518083038185875af1925050503d8060008114610c7d576040519150601f19603f3d011682016040523d82523d6000602084013e610c82565b606091505b5091509150610c92828286610cc1565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60608315610cd157829050610d21565b600083511115610ce45782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d189190611154565b60405180910390fd5b9392505050565b600081359050610d378161152b565b92915050565b600081519050610d4c81611542565b92915050565b600060a08284031215610d6457600080fd5b81905092915050565b600081519050610d7c81611559565b92915050565b600081359050610d9181611570565b92915050565b600081359050610da681611587565b92915050565b600060208284031215610dbe57600080fd5b6000610dcc84828501610d28565b91505092915050565b600060208284031215610de757600080fd5b6000610df584828501610d3d565b91505092915050565b600060a08284031215610e1057600080fd5b6000610e1e84828501610d52565b91505092915050565b600060208284031215610e3957600080fd5b6000610e4784828501610d6d565b91505092915050565b600060208284031215610e6257600080fd5b6000610e7084828501610d82565b91505092915050565b600060208284031215610e8b57600080fd5b6000610e9984828501610d97565b91505092915050565b610eab816112c9565b82525050565b6000610ebc82611297565b610ec681856112ad565b9350610ed6818560208601611359565b80840191505092915050565b6000610eed826112a2565b610ef781856112b8565b9350610f07818560208601611359565b610f108161138c565b840191505092915050565b6000610f286022836112b8565b9150610f338261139d565b604082019050919050565b6000610f4b6026836112b8565b9150610f56826113ec565b604082019050919050565b6000610f6e6007836112b8565b9150610f798261143b565b602082019050919050565b6000610f91601d836112b8565b9150610f9c82611464565b602082019050919050565b6000610fb4602a836112b8565b9150610fbf8261148d565b604082019050919050565b6000610fd76036836112b8565b9150610fe2826114dc565b604082019050919050565b610ff681611307565b82525050565b61100581611335565b82525050565b61101481611311565b82525050565b61102381611347565b82525050565b61103281611321565b82525050565b60006110448284610eb1565b915081905092915050565b60006020820190506110646000830184610ea2565b92915050565b600060408201905061107f6000830185610ea2565b61108c6020830184610ea2565b9392505050565b60006060820190506110a86000830186610ea2565b6110b56020830185610ea2565b6110c26040830184610fed565b949350505050565b600060c0820190506110df6000830189610ea2565b6110ec6020830188610ea2565b6110f96040830187610fed565b6111066060830186611029565b6111136080830185611029565b61112060a083018461100b565b979650505050505050565b60006040820190506111406000830185610ea2565b61114d6020830184610fed565b9392505050565b6000602082019050818103600083015261116e8184610ee2565b905092915050565b6000602082019050818103600083015261118f81610f1b565b9050919050565b600060208201905081810360008301526111af81610f3e565b9050919050565b600060c08201905081810360008301526111cf81610f61565b90506111de6020830188610ea2565b6111eb6040830187610ea2565b6111f86060830186610ea2565b6112056080830185610fed565b61121260a083018461101a565b9695505050505050565b6000602082019050818103600083015261123581610f84565b9050919050565b6000602082019050818103600083015261125581610fa7565b9050919050565b6000602082019050818103600083015261127581610fca565b9050919050565b60006020820190506112916000830184610ffc565b92915050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b60006112d4826112e7565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600067ffffffffffffffff82169050919050565b600061134082611311565b9050919050565b600061135282611321565b9050919050565b60005b8381101561137757808201518184015260208101905061135c565b83811115611386576000848401525b50505050565b6000601f19601f8301169050919050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f6362726964676500000000000000000000000000000000000000000000000000600082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b611534816112c9565b811461153f57600080fd5b50565b61154b816112db565b811461155657600080fd5b50565b61156281611307565b811461156d57600080fd5b50565b61157981611311565b811461158457600080fd5b50565b61159081611321565b811461159b57600080fd5b5056fea164736f6c6343000804000a", - "deployedBytecode": "0x60806040526004361061003f5760003560e01c806340d280a21461004457806352434c6e1461006d5780636f395e60146100895780639e32e2e6146100b2575b600080fd5b34801561005057600080fd5b5061006b60048036038101906100669190610dac565b6100db565b005b61008760048036038101906100829190610dfe565b610204565b005b34801561009557600080fd5b506100b060048036038101906100ab9190610dac565b6105f6565b005b3480156100be57600080fd5b506100d960048036038101906100d49190610e50565b6106ef565b005b6100e36107a2565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561014a576040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061015461083d565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504681600101819055506127108160020160006101000a81548163ffffffff021916908363ffffffff1602179055507fcbfd47a07530fc4fffba96f5686a7127e5661fe26dd01503239ca2f66fcad99082466040516101f892919061112b565b60405180910390a15050565b600061020e61086a565b905060018160000154141561024f576040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001816000018190555081600001602081019061026c9190610e79565b67ffffffffffffffff164614156102af576040517f4ac09ad300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168260600160208101906102da9190610dac565b73ffffffffffffffffffffffffffffffffffffffff161415610328576040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000826040013511610366576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168260800160208101906103919190610dac565b73ffffffffffffffffffffffffffffffffffffffff1614156103df576040517fdc2e5e8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006103e961083d565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050610457333086604001358760800160208101906104319190610dac565b73ffffffffffffffffffffffffffffffffffffffff16610897909392919063ffffffff16565b6104988185604001358660800160208101906104739190610dac565b73ffffffffffffffffffffffffffffffffffffffff166109209092919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff1663a5977fbb8560600160208101906104c79190610dac565b8660800160208101906104da9190610dac565b87604001358860000160208101906104f29190610e79565b8960200160208101906105059190610e79565b8860020160009054906101000a900463ffffffff166040518763ffffffff1660e01b815260040161053b969594939291906110ca565b600060405180830381600087803b15801561055557600080fd5b505af1158015610569573d6000803e3d6000fd5b505050507fd565a5cf794050de1a171170c91acd5d14cbf11877dc3fa020e9975495ab17578460800160208101906105a19190610dac565b338660600160208101906105b59190610dac565b87604001358860000160208101906105cd9190610e79565b6040516105de9594939291906111b6565b60405180910390a15050600081600001819055505050565b6105fe6107a2565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610665576040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061066f61083d565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f4ae67faf3cf135d9eca1b5490d3613096d2d0610fca7496112fa46ef019fbd4e826040516106e3919061104f565b60405180910390a15050565b6113888163ffffffff1611610730576040517f9ff4125000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107386107a2565b600061074261083d565b9050818160020160006101000a81548163ffffffff021916908363ffffffff1602179055507f8d5e80c35df41e151b58f1a100ad605ae1ebcda3d0c329b22820b232767a773082604051610796919061127c565b60405180910390a15050565b6107aa610a7e565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461083b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083290611176565b60405180910390fd5b565b6000807f9d7253cc9498e9cc54011bbbe9471a68adbc99d0ac1eef42369f5a452e814c4a90508091505090565b6000807fc59b5acc5a6673a6c49ca2de898f87adbd9fdfdff36f689476b1c9e0c50964b490508091505090565b61091a846323b872dd60e01b8585856040516024016108b893929190611093565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610aab565b50505050565b60008114806109b9575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b815260040161096792919061106a565b60206040518083038186803b15801561097f57600080fd5b505afa158015610993573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b79190610e27565b145b6109f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ef9061125c565b60405180910390fd5b610a798363095ea7b360e01b8484604051602401610a1792919061112b565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610aab565b505050565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b6000610b0d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16610b729092919063ffffffff16565b9050600081511115610b6d5780806020019051810190610b2d9190610dd5565b610b6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b639061123c565b60405180910390fd5b5b505050565b6060610b818484600085610b8a565b90509392505050565b606082471015610bcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc690611196565b60405180910390fd5b610bd885610c9e565b610c17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0e9061121c565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051610c409190611038565b60006040518083038185875af1925050503d8060008114610c7d576040519150601f19603f3d011682016040523d82523d6000602084013e610c82565b606091505b5091509150610c92828286610cc1565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60608315610cd157829050610d21565b600083511115610ce45782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d189190611154565b60405180910390fd5b9392505050565b600081359050610d378161152b565b92915050565b600081519050610d4c81611542565b92915050565b600060a08284031215610d6457600080fd5b81905092915050565b600081519050610d7c81611559565b92915050565b600081359050610d9181611570565b92915050565b600081359050610da681611587565b92915050565b600060208284031215610dbe57600080fd5b6000610dcc84828501610d28565b91505092915050565b600060208284031215610de757600080fd5b6000610df584828501610d3d565b91505092915050565b600060a08284031215610e1057600080fd5b6000610e1e84828501610d52565b91505092915050565b600060208284031215610e3957600080fd5b6000610e4784828501610d6d565b91505092915050565b600060208284031215610e6257600080fd5b6000610e7084828501610d82565b91505092915050565b600060208284031215610e8b57600080fd5b6000610e9984828501610d97565b91505092915050565b610eab816112c9565b82525050565b6000610ebc82611297565b610ec681856112ad565b9350610ed6818560208601611359565b80840191505092915050565b6000610eed826112a2565b610ef781856112b8565b9350610f07818560208601611359565b610f108161138c565b840191505092915050565b6000610f286022836112b8565b9150610f338261139d565b604082019050919050565b6000610f4b6026836112b8565b9150610f56826113ec565b604082019050919050565b6000610f6e6007836112b8565b9150610f798261143b565b602082019050919050565b6000610f91601d836112b8565b9150610f9c82611464565b602082019050919050565b6000610fb4602a836112b8565b9150610fbf8261148d565b604082019050919050565b6000610fd76036836112b8565b9150610fe2826114dc565b604082019050919050565b610ff681611307565b82525050565b61100581611335565b82525050565b61101481611311565b82525050565b61102381611347565b82525050565b61103281611321565b82525050565b60006110448284610eb1565b915081905092915050565b60006020820190506110646000830184610ea2565b92915050565b600060408201905061107f6000830185610ea2565b61108c6020830184610ea2565b9392505050565b60006060820190506110a86000830186610ea2565b6110b56020830185610ea2565b6110c26040830184610fed565b949350505050565b600060c0820190506110df6000830189610ea2565b6110ec6020830188610ea2565b6110f96040830187610fed565b6111066060830186611029565b6111136080830185611029565b61112060a083018461100b565b979650505050505050565b60006040820190506111406000830185610ea2565b61114d6020830184610fed565b9392505050565b6000602082019050818103600083015261116e8184610ee2565b905092915050565b6000602082019050818103600083015261118f81610f1b565b9050919050565b600060208201905081810360008301526111af81610f3e565b9050919050565b600060c08201905081810360008301526111cf81610f61565b90506111de6020830188610ea2565b6111eb6040830187610ea2565b6111f86060830186610ea2565b6112056080830185610fed565b61121260a083018461101a565b9695505050505050565b6000602082019050818103600083015261123581610f84565b9050919050565b6000602082019050818103600083015261125581610fa7565b9050919050565b6000602082019050818103600083015261127581610fca565b9050919050565b60006020820190506112916000830184610ffc565b92915050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b60006112d4826112e7565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600067ffffffffffffffff82169050919050565b600061134082611311565b9050919050565b600061135282611321565b9050919050565b60005b8381101561137757808201518184015260208101905061135c565b83811115611386576000848401525b50505050565b6000601f19601f8301169050919050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f6362726964676500000000000000000000000000000000000000000000000000600082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b611534816112c9565b811461153f57600080fd5b50565b61154b816112db565b811461155657600080fd5b50565b61156281611307565b811461156d57600080fd5b50565b61157981611311565b811461158457600080fd5b50565b61159081611321565b811461159b57600080fd5b5056fea164736f6c6343000804000a", + "bytecode": "0x608060405234801561001057600080fd5b50611fb2806100206000396000f3fe6080604052600436106100915760003560e01c80636f395e60116100595780636f395e601461017e5780639e32e2e6146101a75780639f91c7fd146101d0578063ac0d2b131461020d578063e31fa1af1461024a57610091565b806314917f99146100965780631dcb855a146100bf57806340d280a2146100fc5780634a6f22c41461012557806352434c6e14610162575b600080fd5b3480156100a257600080fd5b506100bd60048036038101906100b8919061176f565b610273565b005b3480156100cb57600080fd5b506100e660048036038101906100e1919061176f565b610276565b6040516100f39190611afd565b60405180910390f35b34801561010857600080fd5b50610123600480360381019061011e919061171d565b61027d565b005b34801561013157600080fd5b5061014c6004803603810190610147919061176f565b6104be565b6040516101599190611afd565b60405180910390f35b61017c60048036038101906101779190611798565b6104c9565b005b34801561018a57600080fd5b506101a560048036038101906101a0919061171d565b610c03565b005b3480156101b357600080fd5b506101ce60048036038101906101c991906117ea565b610dec565b005b3480156101dc57600080fd5b506101f760048036038101906101f2919061176f565b610f8f565b6040516102049190611afd565b60405180910390f35b34801561021957600080fd5b50610234600480360381019061022f919061176f565b610f9a565b6040516102419190611afd565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c919061176f565b610fa1565b005b50565b6000919050565b6102916797d4a79c6e8da8fc60c01b610fa1565b6102a5670e2f2c8a5311f67460c01b610fa1565b6102b9675b13a1991c267f1c60c01b610fa1565b6102c1610fa4565b6102d5677ee86732d55ff95260c01b610fa1565b6102e9674d33e4f9b9612d8d60c01b610fa1565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561036457610332676d6a428ac068619060c01b610fa1565b6040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610378671b6d9165f559dd9060c01b610fa1565b61038c67dd59355fd48e644160c01b610fa1565b6103a067b3b032f8c8c9f6a160c01b610fa1565b60006103aa6110a3565b90506103c06731d19ee530be69ef60c01b610fa1565b818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061041767fe86263d0e8940c660c01b610fa1565b46816001018190555061043467314b893e78a144b760c01b610fa1565b6127108160020160006101000a81548163ffffffff021916908363ffffffff16021790555061046d676ad2b17f4918fdfa60c01b610fa1565b61048167d1d40b0589cebbdf60c01b610fa1565b7fcbfd47a07530fc4fffba96f5686a7127e5661fe26dd01503239ca2f66fcad99082466040516104b2929190611ad4565b60405180910390a15050565b600060019050919050565b6104dd677f1d47e894864aaa60c01b610fa1565b6104f16770f43b674d4e55d060c01b610273565b61050567fdb58b8d5e8c5bd260c01b610273565b61051967f88563faceb9065260c01b610273565b6000610523611121565b905061053967f5511ed184b06f9d60c01b610273565b61054d675fe6356e9bb02e7e60c01b610273565b6001816000015414156105a05761056e67c2bf72a01148a95560c01b610273565b6040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105b46759328cc6ac1a5b8460c01b610273565b6105c8676585023ebf8de8b060c01b610273565b600181600001819055506105e66794e629fc71d8c79e60c01b610273565b6105fa6715242012ce96c7f160c01b610fa1565b61060e678eb6f4db737f4b7360c01b610fa1565b61062267c457076ac82718fc60c01b610fa1565b61063667cfdca50ae33020dc60c01b610fa1565b8160000160208101906106499190611813565b67ffffffffffffffff164614156106b45761066e67b59b8ab41c16feab60c01b610fa1565b61068267d0ad4a309013922660c01b610fa1565b6040517f4ac09ad300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106c86756f8932bd4555ad760c01b610fa1565b6106dc6764fb57761461897360c01b610fa1565b6106f0675f0446559da0f55960c01b610fa1565b600073ffffffffffffffffffffffffffffffffffffffff1682606001602081019061071b919061171d565b73ffffffffffffffffffffffffffffffffffffffff16141561077d5761074b672203e1af5929465760c01b610fa1565b6040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107916728a865aea8258ceb60c01b610fa1565b6107a5676fe46105247774d560c01b610fa1565b6107b9678f7510e1a7192ffb60c01b610fa1565b600082604001351161080b576107d967af20204004d2c86560c01b610fa1565b6040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61081f67c235e2a5916e216e60c01b610fa1565b61083367c34c8b0197b67e6c60c01b610fa1565b61084767676e00839b9a5a8060c01b610fa1565b600073ffffffffffffffffffffffffffffffffffffffff16826080016020810190610872919061171d565b73ffffffffffffffffffffffffffffffffffffffff1614156108d4576108a267245d22043cdb3d0c60c01b610fa1565b6040517fdc2e5e8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108e86718ff5e19da60343860c01b610fa1565b6108fc67bedceb4db841a53e60c01b610fa1565b61091067cda8ba86a5e6ee9860c01b610fa1565b600061091a6110a3565b9050610930673f5fa8242b94796e60c01b610fa1565b61094467681ec17cea69b30660c01b610fa1565b60008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061098167c92843e9e9460b5460c01b610fa1565b61099567dccd0c487d1fe6f660c01b610fa1565b6109d8333086604001358760800160208101906109b2919061171d565b73ffffffffffffffffffffffffffffffffffffffff1661119f909392919063ffffffff16565b6109ec67e80d1d6748997c0260c01b610fa1565b610a0067400f0c5be983a9b760c01b610fa1565b610a41818560400135866080016020810190610a1c919061171d565b73ffffffffffffffffffffffffffffffffffffffff166112289092919063ffffffff16565b610a5567b0a7fc2efbeee0d760c01b610fa1565b610a6967c07b9de819409a3c60c01b610fa1565b8073ffffffffffffffffffffffffffffffffffffffff1663a5977fbb856060016020810190610a98919061171d565b866080016020810190610aab919061171d565b8760400135886000016020810190610ac39190611813565b896020016020810190610ad69190611813565b8860020160009054906101000a900463ffffffff166040518763ffffffff1660e01b8152600401610b0c96959493929190611a73565b600060405180830381600087803b158015610b2657600080fd5b505af1158015610b3a573d6000803e3d6000fd5b50505050610b5267c9b43804a582003960c01b610fa1565b610b6667d699a6191c59138260c01b610fa1565b7fd565a5cf794050de1a171170c91acd5d14cbf11877dc3fa020e9975495ab1757846080016020810190610b9a919061171d565b33866060016020810190610bae919061171d565b8760400135886000016020810190610bc69190611813565b604051610bd7959493929190611b7a565b60405180910390a15050610bf567441391ce80e99b6c60c01b610273565b600081600001819055505050565b610c1767d3a2494a835102c160c01b610fa1565b610c2b670c9b2f19ad78ba2d60c01b610fa1565b610c3f67285a34703cb3897d60c01b610fa1565b610c47610fa4565b610c5b679941e4eb5c2e085a60c01b610fa1565b610c6f674a3f870b19eeb0f860c01b610fa1565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cea57610cb8679f1850b2b41a922760c01b610fa1565b6040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610cfe67088b159fcf23024f60c01b610fa1565b610d1267bcee72259e25a4d760c01b610fa1565b610d2667f6343277fc69a82e60c01b610fa1565b6000610d306110a3565b9050610d4667cd0ef56dfe642dd060c01b610fa1565b818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d9d67e8752783a7430db760c01b610fa1565b610db1672bc4e9b6619b7ce260c01b610fa1565b7f4ae67faf3cf135d9eca1b5490d3613096d2d0610fca7496112fa46ef019fbd4e82604051610de091906119f8565b60405180910390a15050565b610e0067456d55e4c0f14d4760c01b610fa1565b610e14673174e49db9a5ddea60c01b610fa1565b610e2867192813406d0b2a1e60c01b610fa1565b6113888163ffffffff1611610e7d57610e4b67549ef105040999b860c01b610fa1565b6040517f9ff4125000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e916751434f62a0bf406a60c01b610fa1565b610ea5675b61e57e6bbb740860c01b610fa1565b610eb9676d54701b66ab59d160c01b610fa1565b610ec1610fa4565b610ed5675845cbbdeb29872860c01b610fa1565b610ee967ed9b116e321da9eb60c01b610fa1565b6000610ef36110a3565b9050610f09671a742eb68541c25c60c01b610fa1565b818160020160006101000a81548163ffffffff021916908363ffffffff160217905550610f40675d88c84e2624c04460c01b610fa1565b610f5467eaa1be02d588fb4460c01b610fa1565b7f8d5e80c35df41e151b58f1a100ad605ae1ebcda3d0c329b22820b232767a773082604051610f839190611c40565b60405180910390a15050565b600060019050919050565b6000919050565b50565b610fb86721b40df6734b4e6460c01b611386565b610fcc677276b6d1bbf7b68b60c01b611386565b610fe067f8611dbcb55a1f7860c01b611386565b610ff4676cedf54251a3375160c01b611386565b610ffc611389565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461108d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108490611b3a565b60405180910390fd5b6110a167e452355b21bbd41e60c01b611386565b565b60006110b96746874ce4b0fd162b60c01b610fa1565b6110cd67c48ee095da74410560c01b610fa1565b6110e167a1033010cec72c2460c01b610fa1565b60007f9d7253cc9498e9cc54011bbbe9471a68adbc99d0ac1eef42369f5a452e814c4a905061111a674e1695596a4af8ef60c01b610fa1565b8091505090565b600061113767fa11c344c1ec53a860c01b610273565b61114b670fd7b7008acdbf5460c01b610273565b61115f679fbd6d57c5d665d460c01b610273565b60007fc59b5acc5a6673a6c49ca2de898f87adbd9fdfdff36f689476b1c9e0c50964b4905061119867a9235c9a8268ed9060c01b610273565b8091505090565b611222846323b872dd60e01b8585856040516024016111c093929190611a3c565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611407565b50505050565b60008114806112c1575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b815260040161126f929190611a13565b60206040518083038186803b15801561128757600080fd5b505afa15801561129b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112bf91906117c1565b145b611300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f790611c20565b60405180910390fd5b6113818363095ea7b360e01b848460405160240161131f929190611ad4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611407565b505050565b50565b600061139f674f9afbb757d80e6360c01b611386565b6113b3674b823103125da15660c01b611386565b6113c7674ab715c231c1608d60c01b611386565b60007fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c905061140067982d9bb86701efa860c01b611386565b8091505090565b6000611469826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166114ce9092919063ffffffff16565b90506000815111156114c957808060200190518101906114899190611746565b6114c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bf90611c00565b60405180910390fd5b5b505050565b60606114dd84846000856114e6565b90509392505050565b60608247101561152b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152290611b5a565b60405180910390fd5b611534856115fa565b611573576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156a90611be0565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161159c91906119e1565b60006040518083038185875af1925050503d80600081146115d9576040519150601f19603f3d011682016040523d82523d6000602084013e6115de565b606091505b50915091506115ee82828661161d565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6060831561162d5782905061167d565b6000835111156116405782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116749190611b18565b60405180910390fd5b9392505050565b60008135905061169381611f1b565b92915050565b6000815190506116a881611f32565b92915050565b6000813590506116bd81611f49565b92915050565b600060a082840312156116d557600080fd5b81905092915050565b6000815190506116ed81611f60565b92915050565b60008135905061170281611f77565b92915050565b60008135905061171781611f8e565b92915050565b60006020828403121561172f57600080fd5b600061173d84828501611684565b91505092915050565b60006020828403121561175857600080fd5b600061176684828501611699565b91505092915050565b60006020828403121561178157600080fd5b600061178f848285016116ae565b91505092915050565b600060a082840312156117aa57600080fd5b60006117b8848285016116c3565b91505092915050565b6000602082840312156117d357600080fd5b60006117e1848285016116de565b91505092915050565b6000602082840312156117fc57600080fd5b600061180a848285016116f3565b91505092915050565b60006020828403121561182557600080fd5b600061183384828501611708565b91505092915050565b61184581611c8d565b82525050565b61185481611c9f565b82525050565b600061186582611c5b565b61186f8185611c71565b935061187f818560208601611d49565b80840191505092915050565b600061189682611c66565b6118a08185611c7c565b93506118b0818560208601611d49565b6118b981611d7c565b840191505092915050565b60006118d1602283611c7c565b91506118dc82611d8d565b604082019050919050565b60006118f4602683611c7c565b91506118ff82611ddc565b604082019050919050565b6000611917600783611c7c565b915061192282611e2b565b602082019050919050565b600061193a601d83611c7c565b915061194582611e54565b602082019050919050565b600061195d602a83611c7c565b915061196882611e7d565b604082019050919050565b6000611980603683611c7c565b915061198b82611ecc565b604082019050919050565b61199f81611cf7565b82525050565b6119ae81611d25565b82525050565b6119bd81611d01565b82525050565b6119cc81611d37565b82525050565b6119db81611d11565b82525050565b60006119ed828461185a565b915081905092915050565b6000602082019050611a0d600083018461183c565b92915050565b6000604082019050611a28600083018561183c565b611a35602083018461183c565b9392505050565b6000606082019050611a51600083018661183c565b611a5e602083018561183c565b611a6b6040830184611996565b949350505050565b600060c082019050611a88600083018961183c565b611a95602083018861183c565b611aa26040830187611996565b611aaf60608301866119d2565b611abc60808301856119d2565b611ac960a08301846119b4565b979650505050505050565b6000604082019050611ae9600083018561183c565b611af66020830184611996565b9392505050565b6000602082019050611b12600083018461184b565b92915050565b60006020820190508181036000830152611b32818461188b565b905092915050565b60006020820190508181036000830152611b53816118c4565b9050919050565b60006020820190508181036000830152611b73816118e7565b9050919050565b600060c0820190508181036000830152611b938161190a565b9050611ba2602083018861183c565b611baf604083018761183c565b611bbc606083018661183c565b611bc96080830185611996565b611bd660a08301846119c3565b9695505050505050565b60006020820190508181036000830152611bf98161192d565b9050919050565b60006020820190508181036000830152611c1981611950565b9050919050565b60006020820190508181036000830152611c3981611973565b9050919050565b6000602082019050611c5560008301846119a5565b92915050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b6000611c9882611cd7565b9050919050565b60008115159050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600067ffffffffffffffff82169050919050565b6000611d3082611d01565b9050919050565b6000611d4282611d11565b9050919050565b60005b83811015611d67578082015181840152602081019050611d4c565b83811115611d76576000848401525b50505050565b6000601f19601f8301169050919050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f6362726964676500000000000000000000000000000000000000000000000000600082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b611f2481611c8d565b8114611f2f57600080fd5b50565b611f3b81611c9f565b8114611f4657600080fd5b50565b611f5281611cab565b8114611f5d57600080fd5b50565b611f6981611cf7565b8114611f7457600080fd5b50565b611f8081611d01565b8114611f8b57600080fd5b50565b611f9781611d11565b8114611fa257600080fd5b5056fea164736f6c6343000804000a", + "deployedBytecode": "0x6080604052600436106100915760003560e01c80636f395e60116100595780636f395e601461017e5780639e32e2e6146101a75780639f91c7fd146101d0578063ac0d2b131461020d578063e31fa1af1461024a57610091565b806314917f99146100965780631dcb855a146100bf57806340d280a2146100fc5780634a6f22c41461012557806352434c6e14610162575b600080fd5b3480156100a257600080fd5b506100bd60048036038101906100b8919061176f565b610273565b005b3480156100cb57600080fd5b506100e660048036038101906100e1919061176f565b610276565b6040516100f39190611afd565b60405180910390f35b34801561010857600080fd5b50610123600480360381019061011e919061171d565b61027d565b005b34801561013157600080fd5b5061014c6004803603810190610147919061176f565b6104be565b6040516101599190611afd565b60405180910390f35b61017c60048036038101906101779190611798565b6104c9565b005b34801561018a57600080fd5b506101a560048036038101906101a0919061171d565b610c03565b005b3480156101b357600080fd5b506101ce60048036038101906101c991906117ea565b610dec565b005b3480156101dc57600080fd5b506101f760048036038101906101f2919061176f565b610f8f565b6040516102049190611afd565b60405180910390f35b34801561021957600080fd5b50610234600480360381019061022f919061176f565b610f9a565b6040516102419190611afd565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c919061176f565b610fa1565b005b50565b6000919050565b6102916797d4a79c6e8da8fc60c01b610fa1565b6102a5670e2f2c8a5311f67460c01b610fa1565b6102b9675b13a1991c267f1c60c01b610fa1565b6102c1610fa4565b6102d5677ee86732d55ff95260c01b610fa1565b6102e9674d33e4f9b9612d8d60c01b610fa1565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561036457610332676d6a428ac068619060c01b610fa1565b6040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610378671b6d9165f559dd9060c01b610fa1565b61038c67dd59355fd48e644160c01b610fa1565b6103a067b3b032f8c8c9f6a160c01b610fa1565b60006103aa6110a3565b90506103c06731d19ee530be69ef60c01b610fa1565b818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061041767fe86263d0e8940c660c01b610fa1565b46816001018190555061043467314b893e78a144b760c01b610fa1565b6127108160020160006101000a81548163ffffffff021916908363ffffffff16021790555061046d676ad2b17f4918fdfa60c01b610fa1565b61048167d1d40b0589cebbdf60c01b610fa1565b7fcbfd47a07530fc4fffba96f5686a7127e5661fe26dd01503239ca2f66fcad99082466040516104b2929190611ad4565b60405180910390a15050565b600060019050919050565b6104dd677f1d47e894864aaa60c01b610fa1565b6104f16770f43b674d4e55d060c01b610273565b61050567fdb58b8d5e8c5bd260c01b610273565b61051967f88563faceb9065260c01b610273565b6000610523611121565b905061053967f5511ed184b06f9d60c01b610273565b61054d675fe6356e9bb02e7e60c01b610273565b6001816000015414156105a05761056e67c2bf72a01148a95560c01b610273565b6040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105b46759328cc6ac1a5b8460c01b610273565b6105c8676585023ebf8de8b060c01b610273565b600181600001819055506105e66794e629fc71d8c79e60c01b610273565b6105fa6715242012ce96c7f160c01b610fa1565b61060e678eb6f4db737f4b7360c01b610fa1565b61062267c457076ac82718fc60c01b610fa1565b61063667cfdca50ae33020dc60c01b610fa1565b8160000160208101906106499190611813565b67ffffffffffffffff164614156106b45761066e67b59b8ab41c16feab60c01b610fa1565b61068267d0ad4a309013922660c01b610fa1565b6040517f4ac09ad300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106c86756f8932bd4555ad760c01b610fa1565b6106dc6764fb57761461897360c01b610fa1565b6106f0675f0446559da0f55960c01b610fa1565b600073ffffffffffffffffffffffffffffffffffffffff1682606001602081019061071b919061171d565b73ffffffffffffffffffffffffffffffffffffffff16141561077d5761074b672203e1af5929465760c01b610fa1565b6040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107916728a865aea8258ceb60c01b610fa1565b6107a5676fe46105247774d560c01b610fa1565b6107b9678f7510e1a7192ffb60c01b610fa1565b600082604001351161080b576107d967af20204004d2c86560c01b610fa1565b6040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61081f67c235e2a5916e216e60c01b610fa1565b61083367c34c8b0197b67e6c60c01b610fa1565b61084767676e00839b9a5a8060c01b610fa1565b600073ffffffffffffffffffffffffffffffffffffffff16826080016020810190610872919061171d565b73ffffffffffffffffffffffffffffffffffffffff1614156108d4576108a267245d22043cdb3d0c60c01b610fa1565b6040517fdc2e5e8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108e86718ff5e19da60343860c01b610fa1565b6108fc67bedceb4db841a53e60c01b610fa1565b61091067cda8ba86a5e6ee9860c01b610fa1565b600061091a6110a3565b9050610930673f5fa8242b94796e60c01b610fa1565b61094467681ec17cea69b30660c01b610fa1565b60008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061098167c92843e9e9460b5460c01b610fa1565b61099567dccd0c487d1fe6f660c01b610fa1565b6109d8333086604001358760800160208101906109b2919061171d565b73ffffffffffffffffffffffffffffffffffffffff1661119f909392919063ffffffff16565b6109ec67e80d1d6748997c0260c01b610fa1565b610a0067400f0c5be983a9b760c01b610fa1565b610a41818560400135866080016020810190610a1c919061171d565b73ffffffffffffffffffffffffffffffffffffffff166112289092919063ffffffff16565b610a5567b0a7fc2efbeee0d760c01b610fa1565b610a6967c07b9de819409a3c60c01b610fa1565b8073ffffffffffffffffffffffffffffffffffffffff1663a5977fbb856060016020810190610a98919061171d565b866080016020810190610aab919061171d565b8760400135886000016020810190610ac39190611813565b896020016020810190610ad69190611813565b8860020160009054906101000a900463ffffffff166040518763ffffffff1660e01b8152600401610b0c96959493929190611a73565b600060405180830381600087803b158015610b2657600080fd5b505af1158015610b3a573d6000803e3d6000fd5b50505050610b5267c9b43804a582003960c01b610fa1565b610b6667d699a6191c59138260c01b610fa1565b7fd565a5cf794050de1a171170c91acd5d14cbf11877dc3fa020e9975495ab1757846080016020810190610b9a919061171d565b33866060016020810190610bae919061171d565b8760400135886000016020810190610bc69190611813565b604051610bd7959493929190611b7a565b60405180910390a15050610bf567441391ce80e99b6c60c01b610273565b600081600001819055505050565b610c1767d3a2494a835102c160c01b610fa1565b610c2b670c9b2f19ad78ba2d60c01b610fa1565b610c3f67285a34703cb3897d60c01b610fa1565b610c47610fa4565b610c5b679941e4eb5c2e085a60c01b610fa1565b610c6f674a3f870b19eeb0f860c01b610fa1565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cea57610cb8679f1850b2b41a922760c01b610fa1565b6040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610cfe67088b159fcf23024f60c01b610fa1565b610d1267bcee72259e25a4d760c01b610fa1565b610d2667f6343277fc69a82e60c01b610fa1565b6000610d306110a3565b9050610d4667cd0ef56dfe642dd060c01b610fa1565b818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d9d67e8752783a7430db760c01b610fa1565b610db1672bc4e9b6619b7ce260c01b610fa1565b7f4ae67faf3cf135d9eca1b5490d3613096d2d0610fca7496112fa46ef019fbd4e82604051610de091906119f8565b60405180910390a15050565b610e0067456d55e4c0f14d4760c01b610fa1565b610e14673174e49db9a5ddea60c01b610fa1565b610e2867192813406d0b2a1e60c01b610fa1565b6113888163ffffffff1611610e7d57610e4b67549ef105040999b860c01b610fa1565b6040517f9ff4125000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e916751434f62a0bf406a60c01b610fa1565b610ea5675b61e57e6bbb740860c01b610fa1565b610eb9676d54701b66ab59d160c01b610fa1565b610ec1610fa4565b610ed5675845cbbdeb29872860c01b610fa1565b610ee967ed9b116e321da9eb60c01b610fa1565b6000610ef36110a3565b9050610f09671a742eb68541c25c60c01b610fa1565b818160020160006101000a81548163ffffffff021916908363ffffffff160217905550610f40675d88c84e2624c04460c01b610fa1565b610f5467eaa1be02d588fb4460c01b610fa1565b7f8d5e80c35df41e151b58f1a100ad605ae1ebcda3d0c329b22820b232767a773082604051610f839190611c40565b60405180910390a15050565b600060019050919050565b6000919050565b50565b610fb86721b40df6734b4e6460c01b611386565b610fcc677276b6d1bbf7b68b60c01b611386565b610fe067f8611dbcb55a1f7860c01b611386565b610ff4676cedf54251a3375160c01b611386565b610ffc611389565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461108d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108490611b3a565b60405180910390fd5b6110a167e452355b21bbd41e60c01b611386565b565b60006110b96746874ce4b0fd162b60c01b610fa1565b6110cd67c48ee095da74410560c01b610fa1565b6110e167a1033010cec72c2460c01b610fa1565b60007f9d7253cc9498e9cc54011bbbe9471a68adbc99d0ac1eef42369f5a452e814c4a905061111a674e1695596a4af8ef60c01b610fa1565b8091505090565b600061113767fa11c344c1ec53a860c01b610273565b61114b670fd7b7008acdbf5460c01b610273565b61115f679fbd6d57c5d665d460c01b610273565b60007fc59b5acc5a6673a6c49ca2de898f87adbd9fdfdff36f689476b1c9e0c50964b4905061119867a9235c9a8268ed9060c01b610273565b8091505090565b611222846323b872dd60e01b8585856040516024016111c093929190611a3c565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611407565b50505050565b60008114806112c1575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b815260040161126f929190611a13565b60206040518083038186803b15801561128757600080fd5b505afa15801561129b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112bf91906117c1565b145b611300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f790611c20565b60405180910390fd5b6113818363095ea7b360e01b848460405160240161131f929190611ad4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611407565b505050565b50565b600061139f674f9afbb757d80e6360c01b611386565b6113b3674b823103125da15660c01b611386565b6113c7674ab715c231c1608d60c01b611386565b60007fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c905061140067982d9bb86701efa860c01b611386565b8091505090565b6000611469826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166114ce9092919063ffffffff16565b90506000815111156114c957808060200190518101906114899190611746565b6114c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bf90611c00565b60405180910390fd5b5b505050565b60606114dd84846000856114e6565b90509392505050565b60608247101561152b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152290611b5a565b60405180910390fd5b611534856115fa565b611573576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156a90611be0565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161159c91906119e1565b60006040518083038185875af1925050503d80600081146115d9576040519150601f19603f3d011682016040523d82523d6000602084013e6115de565b606091505b50915091506115ee82828661161d565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6060831561162d5782905061167d565b6000835111156116405782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116749190611b18565b60405180910390fd5b9392505050565b60008135905061169381611f1b565b92915050565b6000815190506116a881611f32565b92915050565b6000813590506116bd81611f49565b92915050565b600060a082840312156116d557600080fd5b81905092915050565b6000815190506116ed81611f60565b92915050565b60008135905061170281611f77565b92915050565b60008135905061171781611f8e565b92915050565b60006020828403121561172f57600080fd5b600061173d84828501611684565b91505092915050565b60006020828403121561175857600080fd5b600061176684828501611699565b91505092915050565b60006020828403121561178157600080fd5b600061178f848285016116ae565b91505092915050565b600060a082840312156117aa57600080fd5b60006117b8848285016116c3565b91505092915050565b6000602082840312156117d357600080fd5b60006117e1848285016116de565b91505092915050565b6000602082840312156117fc57600080fd5b600061180a848285016116f3565b91505092915050565b60006020828403121561182557600080fd5b600061183384828501611708565b91505092915050565b61184581611c8d565b82525050565b61185481611c9f565b82525050565b600061186582611c5b565b61186f8185611c71565b935061187f818560208601611d49565b80840191505092915050565b600061189682611c66565b6118a08185611c7c565b93506118b0818560208601611d49565b6118b981611d7c565b840191505092915050565b60006118d1602283611c7c565b91506118dc82611d8d565b604082019050919050565b60006118f4602683611c7c565b91506118ff82611ddc565b604082019050919050565b6000611917600783611c7c565b915061192282611e2b565b602082019050919050565b600061193a601d83611c7c565b915061194582611e54565b602082019050919050565b600061195d602a83611c7c565b915061196882611e7d565b604082019050919050565b6000611980603683611c7c565b915061198b82611ecc565b604082019050919050565b61199f81611cf7565b82525050565b6119ae81611d25565b82525050565b6119bd81611d01565b82525050565b6119cc81611d37565b82525050565b6119db81611d11565b82525050565b60006119ed828461185a565b915081905092915050565b6000602082019050611a0d600083018461183c565b92915050565b6000604082019050611a28600083018561183c565b611a35602083018461183c565b9392505050565b6000606082019050611a51600083018661183c565b611a5e602083018561183c565b611a6b6040830184611996565b949350505050565b600060c082019050611a88600083018961183c565b611a95602083018861183c565b611aa26040830187611996565b611aaf60608301866119d2565b611abc60808301856119d2565b611ac960a08301846119b4565b979650505050505050565b6000604082019050611ae9600083018561183c565b611af66020830184611996565b9392505050565b6000602082019050611b12600083018461184b565b92915050565b60006020820190508181036000830152611b32818461188b565b905092915050565b60006020820190508181036000830152611b53816118c4565b9050919050565b60006020820190508181036000830152611b73816118e7565b9050919050565b600060c0820190508181036000830152611b938161190a565b9050611ba2602083018861183c565b611baf604083018761183c565b611bbc606083018661183c565b611bc96080830185611996565b611bd660a08301846119c3565b9695505050505050565b60006020820190508181036000830152611bf98161192d565b9050919050565b60006020820190508181036000830152611c1981611950565b9050919050565b60006020820190508181036000830152611c3981611973565b9050919050565b6000602082019050611c5560008301846119a5565b92915050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b6000611c9882611cd7565b9050919050565b60008115159050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600067ffffffffffffffff82169050919050565b6000611d3082611d01565b9050919050565b6000611d4282611d11565b9050919050565b60005b83811015611d67578082015181840152602081019050611d4c565b83811115611d76576000848401525b50505050565b6000601f19601f8301169050919050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f6362726964676500000000000000000000000000000000000000000000000000600082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b611f2481611c8d565b8114611f2f57600080fd5b50565b611f3b81611c9f565b8114611f4657600080fd5b50565b611f5281611cab565b8114611f5d57600080fd5b50565b611f6981611cf7565b8114611f7457600080fd5b50565b611f8081611d01565b8114611f8b57600080fd5b50565b611f9781611d11565b8114611fa257600080fd5b5056fea164736f6c6343000804000a", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/ConnextFacet.json b/artifacts/ConnextFacet.json index 06525e78..79b535d4 100644 --- a/artifacts/ConnextFacet.json +++ b/artifacts/ConnextFacet.json @@ -108,6 +108,57 @@ "name": "ConnextTokenSwap", "type": "event" }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__4f0a9270", + "type": "bytes8" + } + ], + "name": "c_4f0a9270", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__4f0a9270", + "type": "bytes8" + } + ], + "name": "c_false4f0a9270", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__4f0a9270", + "type": "bytes8" + } + ], + "name": "c_true4f0a9270", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [ { @@ -208,8 +259,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50611b37806100206000396000f3fe6080604052600436106100345760003560e01c80633205dc691461003957806351b401b914610062578063da328d541461007e575b600080fd5b34801561004557600080fd5b50610060600480360381019061005b9190611055565b61009a565b005b61007c600480360381019061007791906110de565b61029c565b005b610098600480360381019061009391906110de565b61064f565b005b6100a26109e3565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610111576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610108906111c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610180576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610177906111c8565b60405180910390fd5b600061018a610a7e565b9050838160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550828160000160146101000a81548163ffffffff021916908363ffffffff160217905550818160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168363ffffffff168573ffffffffffffffffffffffffffffffffffffffff167fe23ac138025651e2fb684be9a5c635424d4dac7fc73449494c24c4955e79027860405160405180910390a450505050565b60006102a6610aab565b90506000879050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff160361031c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610313906111c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361038b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610382906111c8565b60405180910390fd5b610393610ade565b63ffffffff168563ffffffff16036103e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d79061125a565b60405180910390fd5b823414610422576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610419906112c6565b60405180910390fd5b868173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b815260040161045e9291906112f5565b602060405180830381865afa15801561047b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049f9190611333565b10156104e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d7906113d2565b60405180910390fd5b61050d3330898473ffffffffffffffffffffffffffffffffffffffff16610b01909392919063ffffffff16565b61053882888373ffffffffffffffffffffffffffffffffffffffff16610b8a9092919063ffffffff16565b60008273ffffffffffffffffffffffffffffffffffffffff16638aac16ba85888a8d338e8c604051806020016040528060008152506040518963ffffffff1660e01b815260040161058f97969594939291906114a0565b60206040518083038185885af11580156105ad573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105d2919061154c565b90508873ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168763ffffffff167f1a0290ac7c224ab0140c811403ba545f80e92404b9979b69e52b3f589bc1c1e08b888660405161063c93929190611588565b60405180910390a4505050505050505050565b6000610659610aab565b90506000610665610cd9565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16036106d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106cd906111c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603610745576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073c906111c8565b60405180910390fd5b61074d610ade565b63ffffffff168563ffffffff160361079a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107919061125a565b60405180910390fd5b82876107a691906115ee565b34146107e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107de90611694565b60405180910390fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0896040518263ffffffff1660e01b81526004016000604051808303818588803b15801561083457600080fd5b505af1158015610848573d6000803e3d6000fd5b50505050508073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3848a6040518363ffffffff1660e01b81526004016108889291906116b4565b6020604051808303816000875af11580156108a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108cb9190611715565b50506000866040516020016108e09190611742565b604051602081830303815290604052905060008373ffffffffffffffffffffffffffffffffffffffff16638aac16ba86898d87338f8d8a6040518963ffffffff1660e01b815260040161093997969594939291906114a0565b60206040518083038185885af1158015610957573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061097c919061154c565b90508773ffffffffffffffffffffffffffffffffffffffff168763ffffffff167fe16c7dcc828782adcdd94aaeb1d07c3ae5a6d593a6b851ab5e023f9c961436873488856040516109cf93929190611588565b60405180910390a350505050505050505050565b6109eb610d0c565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a73906117cf565b60405180910390fd5b565b6000807ffa2e9c22c7fe2104814a1d7e2c66c58d10a2d7989d5bcf01173a2564aa59c04d90508091505090565b6000610ab5610a7e565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610ae8610a7e565b60000160149054906101000a900463ffffffff16905090565b610b84846323b872dd60e01b858585604051602401610b22939291906117ef565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610d39565b50505050565b6000811480610c14575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401610bd19291906112f5565b602060405180830381865afa158015610bee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c129190611333565b145b610c53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4a90611898565b60405180910390fd5b610cd48363095ea7b360e01b8484604051602401610c729291906116b4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610d39565b505050565b6000610ce3610a7e565b60010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b6000610d9b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16610e009092919063ffffffff16565b9050600081511115610dfb5780806020019051810190610dbb9190611715565b610dfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df19061192a565b60405180910390fd5b5b505050565b6060610e0f8484600085610e18565b90509392505050565b606082471015610e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e54906119bc565b60405180910390fd5b610e6685610f2c565b610ea5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9c90611a28565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051610ece9190611a84565b60006040518083038185875af1925050503d8060008114610f0b576040519150601f19603f3d011682016040523d82523d6000602084013e610f10565b606091505b5091509150610f20828286610f4f565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60608315610f5f57829050610faf565b600083511115610f725782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa69190611adf565b60405180910390fd5b9392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610fe682610fbb565b9050919050565b610ff681610fdb565b811461100157600080fd5b50565b60008135905061101381610fed565b92915050565b600063ffffffff82169050919050565b61103281611019565b811461103d57600080fd5b50565b60008135905061104f81611029565b92915050565b60008060006060848603121561106e5761106d610fb6565b5b600061107c86828701611004565b935050602061108d86828701611040565b925050604061109e86828701611004565b9150509250925092565b6000819050919050565b6110bb816110a8565b81146110c657600080fd5b50565b6000813590506110d8816110b2565b92915050565b60008060008060008060c087890312156110fb576110fa610fb6565b5b600061110989828a01611004565b965050602061111a89828a016110c9565b955050604061112b89828a01611004565b945050606061113c89828a01611040565b935050608061114d89828a016110c9565b92505060a061115e89828a016110c9565b9150509295509295509295565b600082825260208201905092915050565b7f436f6e6e6578743a20696e76616c696420616464726573730000000000000000600082015250565b60006111b260188361116b565b91506111bd8261117c565b602082019050919050565b600060208201905081810360008301526111e1816111a5565b9050919050565b7f436f6e6e6578743a2043616e6e6f742062726964676520746f2073616d65206460008201527f6f6d61696e000000000000000000000000000000000000000000000000000000602082015250565b600061124460258361116b565b915061124f826111e8565b604082019050919050565b6000602082019050818103600083015261127381611237565b9050919050565b7f436f6e6e6578743a2072656c6179657246656520213d206d73672e76616c7565600082015250565b60006112b060208361116b565b91506112bb8261127a565b602082019050919050565b600060208201905081810360008301526112df816112a3565b9050919050565b6112ef81610fdb565b82525050565b600060408201905061130a60008301856112e6565b61131760208301846112e6565b9392505050565b60008151905061132d816110b2565b92915050565b60006020828403121561134957611348610fb6565b5b60006113578482850161131e565b91505092915050565b7f436f6e6e6578743a2055736572206d75737420617070726f766520616d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b60006113bc60218361116b565b91506113c782611360565b604082019050919050565b600060208201905081810360008301526113eb816113af565b9050919050565b6113fb81611019565b82525050565b61140a816110a8565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561144a57808201518184015260208101905061142f565b60008484015250505050565b6000601f19601f8301169050919050565b600061147282611410565b61147c818561141b565b935061148c81856020860161142c565b61149581611456565b840191505092915050565b600060e0820190506114b5600083018a6113f2565b6114c260208301896112e6565b6114cf60408301886112e6565b6114dc60608301876112e6565b6114e96080830186611401565b6114f660a0830185611401565b81810360c08301526115088184611467565b905098975050505050505050565b6000819050919050565b61152981611516565b811461153457600080fd5b50565b60008151905061154681611520565b92915050565b60006020828403121561156257611561610fb6565b5b600061157084828501611537565b91505092915050565b61158281611516565b82525050565b600060608201905061159d6000830186611401565b6115aa6020830185611401565b6115b76040830184611579565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115f9826110a8565b9150611604836110a8565b925082820190508082111561161c5761161b6115bf565b5b92915050565b7f436f6e6e6578743a20616d6f756e74202b2072656c6179657246656520213d2060008201527f6d73672e76616c75650000000000000000000000000000000000000000000000602082015250565b600061167e60298361116b565b915061168982611622565b604082019050919050565b600060208201905081810360008301526116ad81611671565b9050919050565b60006040820190506116c960008301856112e6565b6116d66020830184611401565b9392505050565b60008115159050919050565b6116f2816116dd565b81146116fd57600080fd5b50565b60008151905061170f816116e9565b92915050565b60006020828403121561172b5761172a610fb6565b5b600061173984828501611700565b91505092915050565b600060208201905061175760008301846112e6565b92915050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b60006117b960228361116b565b91506117c48261175d565b604082019050919050565b600060208201905081810360008301526117e8816117ac565b9050919050565b600060608201905061180460008301866112e6565b61181160208301856112e6565b61181e6040830184611401565b949350505050565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b600061188260368361116b565b915061188d82611826565b604082019050919050565b600060208201905081810360008301526118b181611875565b9050919050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000611914602a8361116b565b915061191f826118b8565b604082019050919050565b6000602082019050818103600083015261194381611907565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006119a660268361116b565b91506119b18261194a565b604082019050919050565b600060208201905081810360008301526119d581611999565b9050919050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000611a12601d8361116b565b9150611a1d826119dc565b602082019050919050565b60006020820190508181036000830152611a4181611a05565b9050919050565b600081905092915050565b6000611a5e82611410565b611a688185611a48565b9350611a7881856020860161142c565b80840191505092915050565b6000611a908284611a53565b915081905092915050565b600081519050919050565b6000611ab182611a9b565b611abb818561116b565b9350611acb81856020860161142c565b611ad481611456565b840191505092915050565b60006020820190508181036000830152611af98184611aa6565b90509291505056fea2646970667358221220f3dc4951c58ae8b44cd9ca16d9356178d872e081900d417184103d3d1d4fc9ed64736f6c63430008110033", - "deployedBytecode": "0x6080604052600436106100345760003560e01c80633205dc691461003957806351b401b914610062578063da328d541461007e575b600080fd5b34801561004557600080fd5b50610060600480360381019061005b9190611055565b61009a565b005b61007c600480360381019061007791906110de565b61029c565b005b610098600480360381019061009391906110de565b61064f565b005b6100a26109e3565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610111576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610108906111c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610180576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610177906111c8565b60405180910390fd5b600061018a610a7e565b9050838160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550828160000160146101000a81548163ffffffff021916908363ffffffff160217905550818160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168363ffffffff168573ffffffffffffffffffffffffffffffffffffffff167fe23ac138025651e2fb684be9a5c635424d4dac7fc73449494c24c4955e79027860405160405180910390a450505050565b60006102a6610aab565b90506000879050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff160361031c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610313906111c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361038b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610382906111c8565b60405180910390fd5b610393610ade565b63ffffffff168563ffffffff16036103e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d79061125a565b60405180910390fd5b823414610422576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610419906112c6565b60405180910390fd5b868173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b815260040161045e9291906112f5565b602060405180830381865afa15801561047b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049f9190611333565b10156104e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d7906113d2565b60405180910390fd5b61050d3330898473ffffffffffffffffffffffffffffffffffffffff16610b01909392919063ffffffff16565b61053882888373ffffffffffffffffffffffffffffffffffffffff16610b8a9092919063ffffffff16565b60008273ffffffffffffffffffffffffffffffffffffffff16638aac16ba85888a8d338e8c604051806020016040528060008152506040518963ffffffff1660e01b815260040161058f97969594939291906114a0565b60206040518083038185885af11580156105ad573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105d2919061154c565b90508873ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168763ffffffff167f1a0290ac7c224ab0140c811403ba545f80e92404b9979b69e52b3f589bc1c1e08b888660405161063c93929190611588565b60405180910390a4505050505050505050565b6000610659610aab565b90506000610665610cd9565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16036106d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106cd906111c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603610745576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073c906111c8565b60405180910390fd5b61074d610ade565b63ffffffff168563ffffffff160361079a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107919061125a565b60405180910390fd5b82876107a691906115ee565b34146107e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107de90611694565b60405180910390fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0896040518263ffffffff1660e01b81526004016000604051808303818588803b15801561083457600080fd5b505af1158015610848573d6000803e3d6000fd5b50505050508073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3848a6040518363ffffffff1660e01b81526004016108889291906116b4565b6020604051808303816000875af11580156108a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108cb9190611715565b50506000866040516020016108e09190611742565b604051602081830303815290604052905060008373ffffffffffffffffffffffffffffffffffffffff16638aac16ba86898d87338f8d8a6040518963ffffffff1660e01b815260040161093997969594939291906114a0565b60206040518083038185885af1158015610957573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061097c919061154c565b90508773ffffffffffffffffffffffffffffffffffffffff168763ffffffff167fe16c7dcc828782adcdd94aaeb1d07c3ae5a6d593a6b851ab5e023f9c961436873488856040516109cf93929190611588565b60405180910390a350505050505050505050565b6109eb610d0c565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a73906117cf565b60405180910390fd5b565b6000807ffa2e9c22c7fe2104814a1d7e2c66c58d10a2d7989d5bcf01173a2564aa59c04d90508091505090565b6000610ab5610a7e565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610ae8610a7e565b60000160149054906101000a900463ffffffff16905090565b610b84846323b872dd60e01b858585604051602401610b22939291906117ef565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610d39565b50505050565b6000811480610c14575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401610bd19291906112f5565b602060405180830381865afa158015610bee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c129190611333565b145b610c53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4a90611898565b60405180910390fd5b610cd48363095ea7b360e01b8484604051602401610c729291906116b4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610d39565b505050565b6000610ce3610a7e565b60010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b6000610d9b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16610e009092919063ffffffff16565b9050600081511115610dfb5780806020019051810190610dbb9190611715565b610dfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df19061192a565b60405180910390fd5b5b505050565b6060610e0f8484600085610e18565b90509392505050565b606082471015610e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e54906119bc565b60405180910390fd5b610e6685610f2c565b610ea5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9c90611a28565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051610ece9190611a84565b60006040518083038185875af1925050503d8060008114610f0b576040519150601f19603f3d011682016040523d82523d6000602084013e610f10565b606091505b5091509150610f20828286610f4f565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60608315610f5f57829050610faf565b600083511115610f725782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa69190611adf565b60405180910390fd5b9392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610fe682610fbb565b9050919050565b610ff681610fdb565b811461100157600080fd5b50565b60008135905061101381610fed565b92915050565b600063ffffffff82169050919050565b61103281611019565b811461103d57600080fd5b50565b60008135905061104f81611029565b92915050565b60008060006060848603121561106e5761106d610fb6565b5b600061107c86828701611004565b935050602061108d86828701611040565b925050604061109e86828701611004565b9150509250925092565b6000819050919050565b6110bb816110a8565b81146110c657600080fd5b50565b6000813590506110d8816110b2565b92915050565b60008060008060008060c087890312156110fb576110fa610fb6565b5b600061110989828a01611004565b965050602061111a89828a016110c9565b955050604061112b89828a01611004565b945050606061113c89828a01611040565b935050608061114d89828a016110c9565b92505060a061115e89828a016110c9565b9150509295509295509295565b600082825260208201905092915050565b7f436f6e6e6578743a20696e76616c696420616464726573730000000000000000600082015250565b60006111b260188361116b565b91506111bd8261117c565b602082019050919050565b600060208201905081810360008301526111e1816111a5565b9050919050565b7f436f6e6e6578743a2043616e6e6f742062726964676520746f2073616d65206460008201527f6f6d61696e000000000000000000000000000000000000000000000000000000602082015250565b600061124460258361116b565b915061124f826111e8565b604082019050919050565b6000602082019050818103600083015261127381611237565b9050919050565b7f436f6e6e6578743a2072656c6179657246656520213d206d73672e76616c7565600082015250565b60006112b060208361116b565b91506112bb8261127a565b602082019050919050565b600060208201905081810360008301526112df816112a3565b9050919050565b6112ef81610fdb565b82525050565b600060408201905061130a60008301856112e6565b61131760208301846112e6565b9392505050565b60008151905061132d816110b2565b92915050565b60006020828403121561134957611348610fb6565b5b60006113578482850161131e565b91505092915050565b7f436f6e6e6578743a2055736572206d75737420617070726f766520616d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b60006113bc60218361116b565b91506113c782611360565b604082019050919050565b600060208201905081810360008301526113eb816113af565b9050919050565b6113fb81611019565b82525050565b61140a816110a8565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561144a57808201518184015260208101905061142f565b60008484015250505050565b6000601f19601f8301169050919050565b600061147282611410565b61147c818561141b565b935061148c81856020860161142c565b61149581611456565b840191505092915050565b600060e0820190506114b5600083018a6113f2565b6114c260208301896112e6565b6114cf60408301886112e6565b6114dc60608301876112e6565b6114e96080830186611401565b6114f660a0830185611401565b81810360c08301526115088184611467565b905098975050505050505050565b6000819050919050565b61152981611516565b811461153457600080fd5b50565b60008151905061154681611520565b92915050565b60006020828403121561156257611561610fb6565b5b600061157084828501611537565b91505092915050565b61158281611516565b82525050565b600060608201905061159d6000830186611401565b6115aa6020830185611401565b6115b76040830184611579565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115f9826110a8565b9150611604836110a8565b925082820190508082111561161c5761161b6115bf565b5b92915050565b7f436f6e6e6578743a20616d6f756e74202b2072656c6179657246656520213d2060008201527f6d73672e76616c75650000000000000000000000000000000000000000000000602082015250565b600061167e60298361116b565b915061168982611622565b604082019050919050565b600060208201905081810360008301526116ad81611671565b9050919050565b60006040820190506116c960008301856112e6565b6116d66020830184611401565b9392505050565b60008115159050919050565b6116f2816116dd565b81146116fd57600080fd5b50565b60008151905061170f816116e9565b92915050565b60006020828403121561172b5761172a610fb6565b5b600061173984828501611700565b91505092915050565b600060208201905061175760008301846112e6565b92915050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b60006117b960228361116b565b91506117c48261175d565b604082019050919050565b600060208201905081810360008301526117e8816117ac565b9050919050565b600060608201905061180460008301866112e6565b61181160208301856112e6565b61181e6040830184611401565b949350505050565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b600061188260368361116b565b915061188d82611826565b604082019050919050565b600060208201905081810360008301526118b181611875565b9050919050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000611914602a8361116b565b915061191f826118b8565b604082019050919050565b6000602082019050818103600083015261194381611907565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006119a660268361116b565b91506119b18261194a565b604082019050919050565b600060208201905081810360008301526119d581611999565b9050919050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000611a12601d8361116b565b9150611a1d826119dc565b602082019050919050565b60006020820190508181036000830152611a4181611a05565b9050919050565b600081905092915050565b6000611a5e82611410565b611a688185611a48565b9350611a7881856020860161142c565b80840191505092915050565b6000611a908284611a53565b915081905092915050565b600081519050919050565b6000611ab182611a9b565b611abb818561116b565b9350611acb81856020860161142c565b611ad481611456565b840191505092915050565b60006020820190508181036000830152611af98184611aa6565b90509291505056fea2646970667358221220f3dc4951c58ae8b44cd9ca16d9356178d872e081900d417184103d3d1d4fc9ed64736f6c63430008110033", + "bytecode": "0x608060405234801561001057600080fd5b50612533806100206000396000f3fe6080604052600436106100555760003560e01c80631e127d9e1461005a5780633205dc691461009757806351b401b9146100c0578063da328d54146100dc578063e59cff6a146100f8578063ff578afd14610121575b600080fd5b34801561006657600080fd5b50610081600480360381019061007c9190611960565b61015e565b60405161008e91906119a8565b60405180910390f35b3480156100a357600080fd5b506100be60048036038101906100b99190611a5d565b610169565b005b6100da60048036038101906100d59190611ae6565b6104d3565b005b6100f660048036038101906100f19190611ae6565b610b2e565b005b34801561010457600080fd5b5061011f600480360381019061011a9190611960565b61116a565b005b34801561012d57600080fd5b5061014860048036038101906101439190611960565b61116d565b60405161015591906119a8565b60405180910390f35b600060019050919050565b61017d67da66d5c76eb6198060c01b61116a565b6101916707107aa74081ad9a60c01b61116a565b6101a56709e536b31d2b284560c01b61116a565b6101ad611174565b6101c16724b3a7fbd5a0555c60c01b61116a565b6101d5673158d971c7fdb0ca60c01b61116a565b6101e96703c9330b53674b1760c01b61116a565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610258576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161024f90611bd0565b60405180910390fd5b61026c67fcc5147cdd4ebd8960c01b61116a565b610280674fdb424e77c2592f60c01b61116a565b61029467f9d795c7c5682b1d60c01b61116a565b6102a8671cbbd1c5e3f278ca60c01b61116a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161030e90611bd0565b60405180910390fd5b61032b67016ab0db5906bbb360c01b61116a565b61033f67169c7e53c5b97e3360c01b61116a565b610353679cab345ad0dd8ce860c01b61116a565b600061035d611273565b9050610373672902fe7e7f2d9cda60c01b61116a565b838160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103ca6792d47aeff096fb8f60c01b61116a565b828160000160146101000a81548163ffffffff021916908363ffffffff16021790555061040167dae0b6432f92708c60c01b61116a565b818160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061045867a5bbad863e87472960c01b61116a565b61046c6730c01a8ab946fa6060c01b61116a565b8173ffffffffffffffffffffffffffffffffffffffff168363ffffffff168573ffffffffffffffffffffffffffffffffffffffff167fe23ac138025651e2fb684be9a5c635424d4dac7fc73449494c24c4955e79027860405160405180910390a450505050565b6104e767acf0e9b35b4e65cd60c01b61116a565b6104fb6738c37d6ca422220660c01b61116a565b61050f6755a23b34dbcae5e460c01b61116a565b60006105196112f0565b905061052f675672b2448cdaf2f660c01b61116a565b61054367dd45662776e9485560c01b61116a565b600087905061055c674cbc6907ea07364660c01b61116a565b61057067628a6a1dae6e92c660c01b61116a565b61058467cdd5c254132cf2e360c01b61116a565b600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16036105f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ea90611bd0565b60405180910390fd5b61060767200b5f32b92e177c60c01b61116a565b61061b674f3206500b7d2d5b60c01b61116a565b61062f67d6ea1b1f01245e9160c01b61116a565b61064367da795a7d1d76ed2960c01b61116a565b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036106b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a990611bd0565b60405180910390fd5b6106c6674bb3f49be13dfadd60c01b61116a565b6106da671a6e4c979fc59d1360c01b61116a565b6106ee6718797eb7b093482c60c01b61116a565b6107026744a98e3e169b2f3460c01b61116a565b61070a61135f565b63ffffffff168563ffffffff1603610757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074e90611c62565b60405180910390fd5b61076b673ce249b64835bbe560c01b61116a565b61077f67b9f72ba69a763c2760c01b61116a565b610793679fda6d2ebebf2fc360c01b61116a565b6107a7673cc29b0d572e7d7760c01b61116a565b8234146107e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e090611cce565b60405180910390fd5b6107fd673d2b8fad77a6165f60c01b61116a565b61081167ea2297dd4a98c52260c01b61116a565b61082567e468230f90149a5c60c01b61116a565b610839672b6ca90b2121025860c01b61116a565b868173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b8152600401610875929190611cfd565b602060405180830381865afa158015610892573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b69190611d3b565b10156108f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ee90611dda565b60405180910390fd5b61090b67eeae8774d4737f9b60c01b61116a565b61091f6777f92ef958d33eb060c01b61116a565b6109336724476b17f224827760c01b61116a565b610947676472c6d9ab3589b760c01b61116a565b6109743330898473ffffffffffffffffffffffffffffffffffffffff166113be909392919063ffffffff16565b6109886774bf09dfa548e53660c01b61116a565b61099c6760a91e4e3a8ac2d960c01b61116a565b6109c782888373ffffffffffffffffffffffffffffffffffffffff166114479092919063ffffffff16565b6109db67ed56f35d7f2b828060c01b61116a565b6109ef67e38f566121b8c22660c01b61116a565b60008273ffffffffffffffffffffffffffffffffffffffff16638aac16ba85888a8d338e8c604051806020016040528060008152506040518963ffffffff1660e01b8152600401610a469796959493929190611ea8565b60206040518083038185885af1158015610a64573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a899190611f54565b9050610a9f67db5256f5193ef69260c01b61116a565b610ab367faca73967507dca660c01b61116a565b8873ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168763ffffffff167f1a0290ac7c224ab0140c811403ba545f80e92404b9979b69e52b3f589bc1c1e08b8886604051610b1b93929190611f90565b60405180910390a4505050505050505050565b610b4267c472042bb0a39b6f60c01b61116a565b610b5667e8d23992abac163d60c01b61116a565b610b6a67b48086d5ae77200760c01b61116a565b6000610b746112f0565b9050610b8a67ce9c305cc02b1c1160c01b61116a565b610b9e674c7274a33eb2813c60c01b61116a565b6000610ba8611596565b9050610bbe67bdf25af44a249b6560c01b61116a565b610bd267b444096f935769e960c01b61116a565b610be667bc5e5dc4ce769c2c60c01b61116a565b600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1603610c55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4c90611bd0565b60405180910390fd5b610c69671cc12e0b11e5007760c01b61116a565b610c7d67fa05b4e6612f0dc660c01b61116a565b610c9167a91b4fcfcd68b0e660c01b61116a565b610ca5671bbdb3490f019f5c60c01b61116a565b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603610d14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0b90611bd0565b60405180910390fd5b610d286771179656948a2b0060c01b61116a565b610d3c67a3e2bdd52726bafd60c01b61116a565b610d5067046edd65ee4f553060c01b61116a565b610d64678c8ce874ae9b9de860c01b61116a565b610d6c61135f565b63ffffffff168563ffffffff1603610db9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db090611c62565b60405180910390fd5b610dcd67aef6da0e6fe9d52160c01b61116a565b610de167740f381fd2151cb260c01b61116a565b610df567346b3c8880b2c3da60c01b61116a565b610e09674ad7b107080662c360c01b61116a565b8287610e159190611ff6565b3414610e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4d9061209c565b60405180910390fd5b610e6a6789871c2781989c6d60c01b61116a565b610e7e67060d638a4435f2cb60c01b61116a565b610e926708b41563644eea3e60c01b61116a565b610ea66755a072def3c33fb160c01b61116a565b6000819050610ebf673d4cc8668bbb681860c01b61116a565b610ed367508afb80f9f91eff60c01b61116a565b8073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0896040518263ffffffff1660e01b81526004016000604051808303818588803b158015610f1b57600080fd5b505af1158015610f2f573d6000803e3d6000fd5b5050505050610f4867d240007acf4daa6460c01b61116a565b610f5c67e3df34b53866cb7760c01b61116a565b8073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3848a6040518363ffffffff1660e01b8152600401610f979291906120bc565b6020604051808303816000875af1158015610fb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fda9190612111565b5050610ff06737adbf910b3ee50360c01b61116a565b611004672a586681e374b5d660c01b61116a565b600086604051602001611017919061213e565b604051602081830303815290604052905061103c67199e92c28f9b407560c01b61116a565b6110506704c4ce9f5de15da560c01b61116a565b60008373ffffffffffffffffffffffffffffffffffffffff16638aac16ba86898d87338f8d8a6040518963ffffffff1660e01b81526004016110989796959493929190611ea8565b60206040518083038185885af11580156110b6573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110db9190611f54565b90506110f167a170e2544473341460c01b61116a565b61110567feb2f7a200bc2b9760c01b61116a565b8773ffffffffffffffffffffffffffffffffffffffff168763ffffffff167fe16c7dcc828782adcdd94aaeb1d07c3ae5a6d593a6b851ab5e023f9c9614368734888560405161115693929190611f90565b60405180910390a350505050505050505050565b50565b6000919050565b6111886721b40df6734b4e6460c01b611605565b61119c677276b6d1bbf7b68b60c01b611605565b6111b067f8611dbcb55a1f7860c01b611605565b6111c4676cedf54251a3375160c01b611605565b6111cc611608565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461125d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611254906121cb565b60405180910390fd5b61127167e452355b21bbd41e60c01b611605565b565b60006112886686de270f8eb5ee60c01b61116a565b61129c67e91f6aa427e7a86260c01b61116a565b6112b067f9fa26a73cd597f060c01b61116a565b60007ffa2e9c22c7fe2104814a1d7e2c66c58d10a2d7989d5bcf01173a2564aa59c04d90506112e967b96cba4c6f0b350c60c01b61116a565b8091505090565b600061130667ac00b124db4b589260c01b61116a565b61131a67fe1df3e726aaef2f60c01b61116a565b61132e67ac13fce227ef532760c01b61116a565b611336611273565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006113756799a5fb6e1d2eed7160c01b61116a565b6113896743d580f33e0df2b160c01b61116a565b61139d67e8552e2d8af2b48e60c01b61116a565b6113a5611273565b60000160149054906101000a900463ffffffff16905090565b611441846323b872dd60e01b8585856040516024016113df939291906121eb565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611686565b50505050565b60008114806114d1575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b815260040161148e929190611cfd565b602060405180830381865afa1580156114ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114cf9190611d3b565b145b611510576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150790612294565b60405180910390fd5b6115918363095ea7b360e01b848460405160240161152f9291906120bc565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611686565b505050565b60006115ac672d586a34e5abb5b460c01b61116a565b6115c067260fb297e7aa153460c01b61116a565b6115d46760d293c4377d5b2c60c01b61116a565b6115dc611273565b60010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b50565b600061161e674f9afbb757d80e6360c01b611605565b611632674b823103125da15660c01b611605565b611646674ab715c231c1608d60c01b611605565b60007fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c905061167f67982d9bb86701efa860c01b611605565b8091505090565b60006116e8826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661174d9092919063ffffffff16565b905060008151111561174857808060200190518101906117089190612111565b611747576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173e90612326565b60405180910390fd5b5b505050565b606061175c8484600085611765565b90509392505050565b6060824710156117aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a1906123b8565b60405180910390fd5b6117b385611879565b6117f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e990612424565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161181b9190612480565b60006040518083038185875af1925050503d8060008114611858576040519150601f19603f3d011682016040523d82523d6000602084013e61185d565b606091505b509150915061186d82828661189c565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b606083156118ac578290506118fc565b6000835111156118bf5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f391906124db565b60405180910390fd5b9392505050565b600080fd5b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b61193d81611908565b811461194857600080fd5b50565b60008135905061195a81611934565b92915050565b60006020828403121561197657611975611903565b5b60006119848482850161194b565b91505092915050565b60008115159050919050565b6119a28161198d565b82525050565b60006020820190506119bd6000830184611999565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119ee826119c3565b9050919050565b6119fe816119e3565b8114611a0957600080fd5b50565b600081359050611a1b816119f5565b92915050565b600063ffffffff82169050919050565b611a3a81611a21565b8114611a4557600080fd5b50565b600081359050611a5781611a31565b92915050565b600080600060608486031215611a7657611a75611903565b5b6000611a8486828701611a0c565b9350506020611a9586828701611a48565b9250506040611aa686828701611a0c565b9150509250925092565b6000819050919050565b611ac381611ab0565b8114611ace57600080fd5b50565b600081359050611ae081611aba565b92915050565b60008060008060008060c08789031215611b0357611b02611903565b5b6000611b1189828a01611a0c565b9650506020611b2289828a01611ad1565b9550506040611b3389828a01611a0c565b9450506060611b4489828a01611a48565b9350506080611b5589828a01611ad1565b92505060a0611b6689828a01611ad1565b9150509295509295509295565b600082825260208201905092915050565b7f436f6e6e6578743a20696e76616c696420616464726573730000000000000000600082015250565b6000611bba601883611b73565b9150611bc582611b84565b602082019050919050565b60006020820190508181036000830152611be981611bad565b9050919050565b7f436f6e6e6578743a2043616e6e6f742062726964676520746f2073616d65206460008201527f6f6d61696e000000000000000000000000000000000000000000000000000000602082015250565b6000611c4c602583611b73565b9150611c5782611bf0565b604082019050919050565b60006020820190508181036000830152611c7b81611c3f565b9050919050565b7f436f6e6e6578743a2072656c6179657246656520213d206d73672e76616c7565600082015250565b6000611cb8602083611b73565b9150611cc382611c82565b602082019050919050565b60006020820190508181036000830152611ce781611cab565b9050919050565b611cf7816119e3565b82525050565b6000604082019050611d126000830185611cee565b611d1f6020830184611cee565b9392505050565b600081519050611d3581611aba565b92915050565b600060208284031215611d5157611d50611903565b5b6000611d5f84828501611d26565b91505092915050565b7f436f6e6e6578743a2055736572206d75737420617070726f766520616d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b6000611dc4602183611b73565b9150611dcf82611d68565b604082019050919050565b60006020820190508181036000830152611df381611db7565b9050919050565b611e0381611a21565b82525050565b611e1281611ab0565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e52578082015181840152602081019050611e37565b60008484015250505050565b6000601f19601f8301169050919050565b6000611e7a82611e18565b611e848185611e23565b9350611e94818560208601611e34565b611e9d81611e5e565b840191505092915050565b600060e082019050611ebd600083018a611dfa565b611eca6020830189611cee565b611ed76040830188611cee565b611ee46060830187611cee565b611ef16080830186611e09565b611efe60a0830185611e09565b81810360c0830152611f108184611e6f565b905098975050505050505050565b6000819050919050565b611f3181611f1e565b8114611f3c57600080fd5b50565b600081519050611f4e81611f28565b92915050565b600060208284031215611f6a57611f69611903565b5b6000611f7884828501611f3f565b91505092915050565b611f8a81611f1e565b82525050565b6000606082019050611fa56000830186611e09565b611fb26020830185611e09565b611fbf6040830184611f81565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061200182611ab0565b915061200c83611ab0565b925082820190508082111561202457612023611fc7565b5b92915050565b7f436f6e6e6578743a20616d6f756e74202b2072656c6179657246656520213d2060008201527f6d73672e76616c75650000000000000000000000000000000000000000000000602082015250565b6000612086602983611b73565b91506120918261202a565b604082019050919050565b600060208201905081810360008301526120b581612079565b9050919050565b60006040820190506120d16000830185611cee565b6120de6020830184611e09565b9392505050565b6120ee8161198d565b81146120f957600080fd5b50565b60008151905061210b816120e5565b92915050565b60006020828403121561212757612126611903565b5b6000612135848285016120fc565b91505092915050565b60006020820190506121536000830184611cee565b92915050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b60006121b5602283611b73565b91506121c082612159565b604082019050919050565b600060208201905081810360008301526121e4816121a8565b9050919050565b60006060820190506122006000830186611cee565b61220d6020830185611cee565b61221a6040830184611e09565b949350505050565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b600061227e603683611b73565b915061228982612222565b604082019050919050565b600060208201905081810360008301526122ad81612271565b9050919050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000612310602a83611b73565b915061231b826122b4565b604082019050919050565b6000602082019050818103600083015261233f81612303565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006123a2602683611b73565b91506123ad82612346565b604082019050919050565b600060208201905081810360008301526123d181612395565b9050919050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b600061240e601d83611b73565b9150612419826123d8565b602082019050919050565b6000602082019050818103600083015261243d81612401565b9050919050565b600081905092915050565b600061245a82611e18565b6124648185612444565b9350612474818560208601611e34565b80840191505092915050565b600061248c828461244f565b915081905092915050565b600081519050919050565b60006124ad82612497565b6124b78185611b73565b93506124c7818560208601611e34565b6124d081611e5e565b840191505092915050565b600060208201905081810360008301526124f581846124a2565b90509291505056fea26469706673582212204da084d29f2b1f49110a7e2136c1f929f1a0ef590b5b88f05fb2d02502daf9f664736f6c63430008110033", + "deployedBytecode": "0x6080604052600436106100555760003560e01c80631e127d9e1461005a5780633205dc691461009757806351b401b9146100c0578063da328d54146100dc578063e59cff6a146100f8578063ff578afd14610121575b600080fd5b34801561006657600080fd5b50610081600480360381019061007c9190611960565b61015e565b60405161008e91906119a8565b60405180910390f35b3480156100a357600080fd5b506100be60048036038101906100b99190611a5d565b610169565b005b6100da60048036038101906100d59190611ae6565b6104d3565b005b6100f660048036038101906100f19190611ae6565b610b2e565b005b34801561010457600080fd5b5061011f600480360381019061011a9190611960565b61116a565b005b34801561012d57600080fd5b5061014860048036038101906101439190611960565b61116d565b60405161015591906119a8565b60405180910390f35b600060019050919050565b61017d67da66d5c76eb6198060c01b61116a565b6101916707107aa74081ad9a60c01b61116a565b6101a56709e536b31d2b284560c01b61116a565b6101ad611174565b6101c16724b3a7fbd5a0555c60c01b61116a565b6101d5673158d971c7fdb0ca60c01b61116a565b6101e96703c9330b53674b1760c01b61116a565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610258576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161024f90611bd0565b60405180910390fd5b61026c67fcc5147cdd4ebd8960c01b61116a565b610280674fdb424e77c2592f60c01b61116a565b61029467f9d795c7c5682b1d60c01b61116a565b6102a8671cbbd1c5e3f278ca60c01b61116a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161030e90611bd0565b60405180910390fd5b61032b67016ab0db5906bbb360c01b61116a565b61033f67169c7e53c5b97e3360c01b61116a565b610353679cab345ad0dd8ce860c01b61116a565b600061035d611273565b9050610373672902fe7e7f2d9cda60c01b61116a565b838160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103ca6792d47aeff096fb8f60c01b61116a565b828160000160146101000a81548163ffffffff021916908363ffffffff16021790555061040167dae0b6432f92708c60c01b61116a565b818160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061045867a5bbad863e87472960c01b61116a565b61046c6730c01a8ab946fa6060c01b61116a565b8173ffffffffffffffffffffffffffffffffffffffff168363ffffffff168573ffffffffffffffffffffffffffffffffffffffff167fe23ac138025651e2fb684be9a5c635424d4dac7fc73449494c24c4955e79027860405160405180910390a450505050565b6104e767acf0e9b35b4e65cd60c01b61116a565b6104fb6738c37d6ca422220660c01b61116a565b61050f6755a23b34dbcae5e460c01b61116a565b60006105196112f0565b905061052f675672b2448cdaf2f660c01b61116a565b61054367dd45662776e9485560c01b61116a565b600087905061055c674cbc6907ea07364660c01b61116a565b61057067628a6a1dae6e92c660c01b61116a565b61058467cdd5c254132cf2e360c01b61116a565b600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16036105f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ea90611bd0565b60405180910390fd5b61060767200b5f32b92e177c60c01b61116a565b61061b674f3206500b7d2d5b60c01b61116a565b61062f67d6ea1b1f01245e9160c01b61116a565b61064367da795a7d1d76ed2960c01b61116a565b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036106b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a990611bd0565b60405180910390fd5b6106c6674bb3f49be13dfadd60c01b61116a565b6106da671a6e4c979fc59d1360c01b61116a565b6106ee6718797eb7b093482c60c01b61116a565b6107026744a98e3e169b2f3460c01b61116a565b61070a61135f565b63ffffffff168563ffffffff1603610757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074e90611c62565b60405180910390fd5b61076b673ce249b64835bbe560c01b61116a565b61077f67b9f72ba69a763c2760c01b61116a565b610793679fda6d2ebebf2fc360c01b61116a565b6107a7673cc29b0d572e7d7760c01b61116a565b8234146107e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e090611cce565b60405180910390fd5b6107fd673d2b8fad77a6165f60c01b61116a565b61081167ea2297dd4a98c52260c01b61116a565b61082567e468230f90149a5c60c01b61116a565b610839672b6ca90b2121025860c01b61116a565b868173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b8152600401610875929190611cfd565b602060405180830381865afa158015610892573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b69190611d3b565b10156108f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ee90611dda565b60405180910390fd5b61090b67eeae8774d4737f9b60c01b61116a565b61091f6777f92ef958d33eb060c01b61116a565b6109336724476b17f224827760c01b61116a565b610947676472c6d9ab3589b760c01b61116a565b6109743330898473ffffffffffffffffffffffffffffffffffffffff166113be909392919063ffffffff16565b6109886774bf09dfa548e53660c01b61116a565b61099c6760a91e4e3a8ac2d960c01b61116a565b6109c782888373ffffffffffffffffffffffffffffffffffffffff166114479092919063ffffffff16565b6109db67ed56f35d7f2b828060c01b61116a565b6109ef67e38f566121b8c22660c01b61116a565b60008273ffffffffffffffffffffffffffffffffffffffff16638aac16ba85888a8d338e8c604051806020016040528060008152506040518963ffffffff1660e01b8152600401610a469796959493929190611ea8565b60206040518083038185885af1158015610a64573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a899190611f54565b9050610a9f67db5256f5193ef69260c01b61116a565b610ab367faca73967507dca660c01b61116a565b8873ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168763ffffffff167f1a0290ac7c224ab0140c811403ba545f80e92404b9979b69e52b3f589bc1c1e08b8886604051610b1b93929190611f90565b60405180910390a4505050505050505050565b610b4267c472042bb0a39b6f60c01b61116a565b610b5667e8d23992abac163d60c01b61116a565b610b6a67b48086d5ae77200760c01b61116a565b6000610b746112f0565b9050610b8a67ce9c305cc02b1c1160c01b61116a565b610b9e674c7274a33eb2813c60c01b61116a565b6000610ba8611596565b9050610bbe67bdf25af44a249b6560c01b61116a565b610bd267b444096f935769e960c01b61116a565b610be667bc5e5dc4ce769c2c60c01b61116a565b600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1603610c55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4c90611bd0565b60405180910390fd5b610c69671cc12e0b11e5007760c01b61116a565b610c7d67fa05b4e6612f0dc660c01b61116a565b610c9167a91b4fcfcd68b0e660c01b61116a565b610ca5671bbdb3490f019f5c60c01b61116a565b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603610d14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0b90611bd0565b60405180910390fd5b610d286771179656948a2b0060c01b61116a565b610d3c67a3e2bdd52726bafd60c01b61116a565b610d5067046edd65ee4f553060c01b61116a565b610d64678c8ce874ae9b9de860c01b61116a565b610d6c61135f565b63ffffffff168563ffffffff1603610db9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db090611c62565b60405180910390fd5b610dcd67aef6da0e6fe9d52160c01b61116a565b610de167740f381fd2151cb260c01b61116a565b610df567346b3c8880b2c3da60c01b61116a565b610e09674ad7b107080662c360c01b61116a565b8287610e159190611ff6565b3414610e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4d9061209c565b60405180910390fd5b610e6a6789871c2781989c6d60c01b61116a565b610e7e67060d638a4435f2cb60c01b61116a565b610e926708b41563644eea3e60c01b61116a565b610ea66755a072def3c33fb160c01b61116a565b6000819050610ebf673d4cc8668bbb681860c01b61116a565b610ed367508afb80f9f91eff60c01b61116a565b8073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0896040518263ffffffff1660e01b81526004016000604051808303818588803b158015610f1b57600080fd5b505af1158015610f2f573d6000803e3d6000fd5b5050505050610f4867d240007acf4daa6460c01b61116a565b610f5c67e3df34b53866cb7760c01b61116a565b8073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3848a6040518363ffffffff1660e01b8152600401610f979291906120bc565b6020604051808303816000875af1158015610fb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fda9190612111565b5050610ff06737adbf910b3ee50360c01b61116a565b611004672a586681e374b5d660c01b61116a565b600086604051602001611017919061213e565b604051602081830303815290604052905061103c67199e92c28f9b407560c01b61116a565b6110506704c4ce9f5de15da560c01b61116a565b60008373ffffffffffffffffffffffffffffffffffffffff16638aac16ba86898d87338f8d8a6040518963ffffffff1660e01b81526004016110989796959493929190611ea8565b60206040518083038185885af11580156110b6573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110db9190611f54565b90506110f167a170e2544473341460c01b61116a565b61110567feb2f7a200bc2b9760c01b61116a565b8773ffffffffffffffffffffffffffffffffffffffff168763ffffffff167fe16c7dcc828782adcdd94aaeb1d07c3ae5a6d593a6b851ab5e023f9c9614368734888560405161115693929190611f90565b60405180910390a350505050505050505050565b50565b6000919050565b6111886721b40df6734b4e6460c01b611605565b61119c677276b6d1bbf7b68b60c01b611605565b6111b067f8611dbcb55a1f7860c01b611605565b6111c4676cedf54251a3375160c01b611605565b6111cc611608565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461125d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611254906121cb565b60405180910390fd5b61127167e452355b21bbd41e60c01b611605565b565b60006112886686de270f8eb5ee60c01b61116a565b61129c67e91f6aa427e7a86260c01b61116a565b6112b067f9fa26a73cd597f060c01b61116a565b60007ffa2e9c22c7fe2104814a1d7e2c66c58d10a2d7989d5bcf01173a2564aa59c04d90506112e967b96cba4c6f0b350c60c01b61116a565b8091505090565b600061130667ac00b124db4b589260c01b61116a565b61131a67fe1df3e726aaef2f60c01b61116a565b61132e67ac13fce227ef532760c01b61116a565b611336611273565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006113756799a5fb6e1d2eed7160c01b61116a565b6113896743d580f33e0df2b160c01b61116a565b61139d67e8552e2d8af2b48e60c01b61116a565b6113a5611273565b60000160149054906101000a900463ffffffff16905090565b611441846323b872dd60e01b8585856040516024016113df939291906121eb565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611686565b50505050565b60008114806114d1575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b815260040161148e929190611cfd565b602060405180830381865afa1580156114ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114cf9190611d3b565b145b611510576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150790612294565b60405180910390fd5b6115918363095ea7b360e01b848460405160240161152f9291906120bc565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611686565b505050565b60006115ac672d586a34e5abb5b460c01b61116a565b6115c067260fb297e7aa153460c01b61116a565b6115d46760d293c4377d5b2c60c01b61116a565b6115dc611273565b60010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b50565b600061161e674f9afbb757d80e6360c01b611605565b611632674b823103125da15660c01b611605565b611646674ab715c231c1608d60c01b611605565b60007fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c905061167f67982d9bb86701efa860c01b611605565b8091505090565b60006116e8826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661174d9092919063ffffffff16565b905060008151111561174857808060200190518101906117089190612111565b611747576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173e90612326565b60405180910390fd5b5b505050565b606061175c8484600085611765565b90509392505050565b6060824710156117aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a1906123b8565b60405180910390fd5b6117b385611879565b6117f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e990612424565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161181b9190612480565b60006040518083038185875af1925050503d8060008114611858576040519150601f19603f3d011682016040523d82523d6000602084013e61185d565b606091505b509150915061186d82828661189c565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b606083156118ac578290506118fc565b6000835111156118bf5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f391906124db565b60405180910390fd5b9392505050565b600080fd5b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b61193d81611908565b811461194857600080fd5b50565b60008135905061195a81611934565b92915050565b60006020828403121561197657611975611903565b5b60006119848482850161194b565b91505092915050565b60008115159050919050565b6119a28161198d565b82525050565b60006020820190506119bd6000830184611999565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119ee826119c3565b9050919050565b6119fe816119e3565b8114611a0957600080fd5b50565b600081359050611a1b816119f5565b92915050565b600063ffffffff82169050919050565b611a3a81611a21565b8114611a4557600080fd5b50565b600081359050611a5781611a31565b92915050565b600080600060608486031215611a7657611a75611903565b5b6000611a8486828701611a0c565b9350506020611a9586828701611a48565b9250506040611aa686828701611a0c565b9150509250925092565b6000819050919050565b611ac381611ab0565b8114611ace57600080fd5b50565b600081359050611ae081611aba565b92915050565b60008060008060008060c08789031215611b0357611b02611903565b5b6000611b1189828a01611a0c565b9650506020611b2289828a01611ad1565b9550506040611b3389828a01611a0c565b9450506060611b4489828a01611a48565b9350506080611b5589828a01611ad1565b92505060a0611b6689828a01611ad1565b9150509295509295509295565b600082825260208201905092915050565b7f436f6e6e6578743a20696e76616c696420616464726573730000000000000000600082015250565b6000611bba601883611b73565b9150611bc582611b84565b602082019050919050565b60006020820190508181036000830152611be981611bad565b9050919050565b7f436f6e6e6578743a2043616e6e6f742062726964676520746f2073616d65206460008201527f6f6d61696e000000000000000000000000000000000000000000000000000000602082015250565b6000611c4c602583611b73565b9150611c5782611bf0565b604082019050919050565b60006020820190508181036000830152611c7b81611c3f565b9050919050565b7f436f6e6e6578743a2072656c6179657246656520213d206d73672e76616c7565600082015250565b6000611cb8602083611b73565b9150611cc382611c82565b602082019050919050565b60006020820190508181036000830152611ce781611cab565b9050919050565b611cf7816119e3565b82525050565b6000604082019050611d126000830185611cee565b611d1f6020830184611cee565b9392505050565b600081519050611d3581611aba565b92915050565b600060208284031215611d5157611d50611903565b5b6000611d5f84828501611d26565b91505092915050565b7f436f6e6e6578743a2055736572206d75737420617070726f766520616d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b6000611dc4602183611b73565b9150611dcf82611d68565b604082019050919050565b60006020820190508181036000830152611df381611db7565b9050919050565b611e0381611a21565b82525050565b611e1281611ab0565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e52578082015181840152602081019050611e37565b60008484015250505050565b6000601f19601f8301169050919050565b6000611e7a82611e18565b611e848185611e23565b9350611e94818560208601611e34565b611e9d81611e5e565b840191505092915050565b600060e082019050611ebd600083018a611dfa565b611eca6020830189611cee565b611ed76040830188611cee565b611ee46060830187611cee565b611ef16080830186611e09565b611efe60a0830185611e09565b81810360c0830152611f108184611e6f565b905098975050505050505050565b6000819050919050565b611f3181611f1e565b8114611f3c57600080fd5b50565b600081519050611f4e81611f28565b92915050565b600060208284031215611f6a57611f69611903565b5b6000611f7884828501611f3f565b91505092915050565b611f8a81611f1e565b82525050565b6000606082019050611fa56000830186611e09565b611fb26020830185611e09565b611fbf6040830184611f81565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061200182611ab0565b915061200c83611ab0565b925082820190508082111561202457612023611fc7565b5b92915050565b7f436f6e6e6578743a20616d6f756e74202b2072656c6179657246656520213d2060008201527f6d73672e76616c75650000000000000000000000000000000000000000000000602082015250565b6000612086602983611b73565b91506120918261202a565b604082019050919050565b600060208201905081810360008301526120b581612079565b9050919050565b60006040820190506120d16000830185611cee565b6120de6020830184611e09565b9392505050565b6120ee8161198d565b81146120f957600080fd5b50565b60008151905061210b816120e5565b92915050565b60006020828403121561212757612126611903565b5b6000612135848285016120fc565b91505092915050565b60006020820190506121536000830184611cee565b92915050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b60006121b5602283611b73565b91506121c082612159565b604082019050919050565b600060208201905081810360008301526121e4816121a8565b9050919050565b60006060820190506122006000830186611cee565b61220d6020830185611cee565b61221a6040830184611e09565b949350505050565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b600061227e603683611b73565b915061228982612222565b604082019050919050565b600060208201905081810360008301526122ad81612271565b9050919050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000612310602a83611b73565b915061231b826122b4565b604082019050919050565b6000602082019050818103600083015261233f81612303565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006123a2602683611b73565b91506123ad82612346565b604082019050919050565b600060208201905081810360008301526123d181612395565b9050919050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b600061240e601d83611b73565b9150612419826123d8565b602082019050919050565b6000602082019050818103600083015261243d81612401565b9050919050565b600081905092915050565b600061245a82611e18565b6124648185612444565b9350612474818560208601611e34565b80840191505092915050565b600061248c828461244f565b915081905092915050565b600081519050919050565b60006124ad82612497565b6124b78185611b73565b93506124c7818560208601611e34565b6124d081611e5e565b840191505092915050565b600060208201905081810360008301526124f581846124a2565b90509291505056fea26469706673582212204da084d29f2b1f49110a7e2136c1f929f1a0ef590b5b88f05fb2d02502daf9f664736f6c63430008110033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/ContextUpgradeable.json b/artifacts/ContextUpgradeable.json deleted file mode 100644 index e154d607..00000000 --- a/artifacts/ContextUpgradeable.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ContextUpgradeable", - "sourceName": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/Controlled.json b/artifacts/Controlled.json index 6d4ff1fb..f10c2b35 100644 --- a/artifacts/Controlled.json +++ b/artifacts/Controlled.json @@ -3,6 +3,57 @@ "contractName": "Controlled", "sourceName": "src/common/access/Controlled.sol", "abi": [ + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__495bfa8b", + "type": "bytes8" + } + ], + "name": "c_495bfa8b", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__495bfa8b", + "type": "bytes8" + } + ], + "name": "c_false495bfa8b", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__495bfa8b", + "type": "bytes8" + } + ], + "name": "c_true495bfa8b", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [], "name": "controller", diff --git a/artifacts/Diamond.json b/artifacts/Diamond.json index e4dd1325..c5779caa 100644 --- a/artifacts/Diamond.json +++ b/artifacts/Diamond.json @@ -23,13 +23,64 @@ "stateMutability": "payable", "type": "fallback" }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__e3a4c27e", + "type": "bytes8" + } + ], + "name": "c_e3a4c27e", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__e3a4c27e", + "type": "bytes8" + } + ], + "name": "c_falsee3a4c27e", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__e3a4c27e", + "type": "bytes8" + } + ], + "name": "c_truee3a4c27e", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "stateMutability": "payable", "type": "receive" } ], - "bytecode": "0x60806040526040516200497d3803806200497d8339818101604052810190620000299190620018d0565b6200003f82620001f760201b620001671760201c565b6000600167ffffffffffffffff8111156200005f576200005e62001917565b5b6040519080825280602002602001820160405280156200009c57816020015b620000886200181a565b8152602001906001900390816200007e5790505b5090506000600167ffffffffffffffff811115620000bf57620000be62001917565b5b604051908082528060200260200182016040528015620000ee5781602001602082028036833780820191505090505b509050631f931c1c60e01b8160008151811062000110576200010f62001946565b5b60200260200101907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152505060405180606001604052808473ffffffffffffffffffffffffffffffffffffffff168152602001600060028111156200019a576200019962001975565b5b81526020018281525082600081518110620001ba57620001b962001946565b5b6020026020010181905250620001ed82600060405180602001604052806000815250620002d660201b6200023e1760201c565b50505050620025c1565b6000620002096200055a60201b60201c565b905060008160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b60005b835181101562000505576000848281518110620002fb57620002fa62001946565b5b60200260200101516020015190506000600281111562000320576200031f62001975565b5b81600281111562000336576200033562001975565b5b0362000396576200039085838151811062000356576200035562001946565b5b60200260200101516000015186848151811062000378576200037762001946565b5b6020026020010151604001516200058760201b60201c565b620004ee565b60016002811115620003ad57620003ac62001975565b5b816002811115620003c357620003c262001975565b5b0362000423576200041d858381518110620003e357620003e262001946565b5b60200260200101516000015186848151811062000405576200040462001946565b5b6020026020010151604001516200082960201b60201c565b620004ed565b60028081111562000439576200043862001975565b5b8160028111156200044f576200044e62001975565b5b03620004af57620004a98583815181106200046f576200046e62001946565b5b60200260200101516000015186848151811062000491576200049062001946565b5b60200260200101516040015162000add60201b60201c565b620004ec565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004e39062001a2b565b60405180910390fd5b5b5b508080620004fc9062001a86565b915050620002d9565b507f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6738383836040516200053b9392919062001e00565b60405180910390a162000555828262000c8560201b60201c565b505050565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b6000815111620005ce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005c59062001ec1565b60405180910390fd5b6000620005e06200055a60201b60201c565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000654576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200064b9062001f59565b60405180910390fd5b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905090506000816bffffffffffffffffffffffff1603620006ca57620006c9828562000eb360201b60201c565b5b60005b835181101562000822576000848281518110620006ef57620006ee62001946565b5b602002602001015190506000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614620007e6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007dd9062001ff1565b60405180910390fd5b620007fa8583868a62000f9760201b60201c565b838062000807906200202b565b94505050508080620008199062001a86565b915050620006cd565b5050505050565b600081511162000870576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008679062001ec1565b60405180910390fd5b6000620008826200055a60201b60201c565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620008f6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008ed9062001f59565b60405180910390fd5b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905090506000816bffffffffffffffffffffffff16036200096c576200096b828562000eb360201b60201c565b5b60005b835181101562000ad657600084828151811062000991576200099062001946565b5b602002602001015190506000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000a87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a7e90620020da565b60405180910390fd5b62000a9a8582846200114460201b60201c565b62000aae8583868a62000f9760201b60201c565b838062000abb906200202b565b9450505050808062000acd9062001a86565b9150506200096f565b5050505050565b600081511162000b24576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b1b9062001ec1565b60405180910390fd5b600062000b366200055a60201b60201c565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161462000baa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ba19062002172565b60405180910390fd5b60005b825181101562000c7f57600083828151811062000bcf5762000bce62001946565b5b602002602001015190506000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905062000c678482846200114460201b60201c565b5050808062000c769062001a86565b91505062000bad565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000d0757600081511462000d01576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000cf8906200220a565b60405180910390fd5b62000eaf565b600081511162000d4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d4590620022a2565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161462000dae5762000dad826040518060600160405280602881526020016200493160289139620017c560201b60201c565b5b6000808373ffffffffffffffffffffffffffffffffffffffff168360405162000dd8919062002306565b600060405180830381855af49150503d806000811462000e15576040519150601f19603f3d011682016040523d82523d6000602084013e62000e1a565b606091505b50915091508162000eac5760008151111562000e6f57806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000e6691906200236b565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ea39062002405565b60405180910390fd5b50505b5050565b62000ede816040518060600160405280602481526020016200495960249139620017c560201b60201c565b81600201805490508260010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555081600201819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b81846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508360010160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018390806001815401808255809150506001900390600052602060002090600891828204019190066004029091909190916101000a81548163ffffffff021916908360e01c021790555080846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620011b6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620011ad906200249d565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362001227576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200121e9062002535565b60405180910390fd5b6000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050600060018560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905062001300919062002557565b90508082146200149b5760008560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001828154811062001365576200136462001946565b5b90600052602060002090600891828204019190066004029054906101000a900460e01b9050808660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018481548110620013e457620013e362001946565b5b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908360e01c021790555082866000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550505b8460010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805480620014f257620014f162002592565b5b60019003818190600052602060002090600891828204019190066004026101000a81549063ffffffff02191690559055846000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a8154906bffffffffffffffffffffffff0219169055505060008103620017be57600060018660020180549050620015df919062002557565b905060008660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050818114620017275760008760020183815481106200164d576200164c62001946565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508088600201838154811062001694576200169362001946565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818860010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550505b866002018054806200173e576200173d62002592565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590558660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000905550505b5050505050565b6000823b905060008111829062001814576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200180b91906200236b565b60405180910390fd5b50505050565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016000600281111562001859576200185862001975565b5b8152602001606081525090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062001898826200186b565b9050919050565b620018aa816200188b565b8114620018b657600080fd5b50565b600081519050620018ca816200189f565b92915050565b60008060408385031215620018ea57620018e962001866565b5b6000620018fa85828601620018b9565b92505060206200190d85828601620018b9565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600082825260208201905092915050565b7f4c69624469616d6f6e644375743a20496e636f7272656374204661636574437560008201527f74416374696f6e00000000000000000000000000000000000000000000000000602082015250565b600062001a13602783620019a4565b915062001a2082620019b5565b604082019050919050565b6000602082019050818103600083015262001a468162001a04565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b600062001a938262001a7c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820362001ac85762001ac762001a4d565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b62001b0a816200188b565b82525050565b6003811062001b245762001b2362001975565b5b50565b600081905062001b378262001b10565b919050565b600062001b498262001b27565b9050919050565b62001b5b8162001b3c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b62001bc48162001b8d565b82525050565b600062001bd8838362001bb9565b60208301905092915050565b6000602082019050919050565b600062001bfe8262001b61565b62001c0a818562001b6c565b935062001c178362001b7d565b8060005b8381101562001c4e57815162001c32888262001bca565b975062001c3f8362001be4565b92505060018101905062001c1b565b5085935050505092915050565b600060608301600083015162001c75600086018262001aff565b50602083015162001c8a602086018262001b50565b506040830151848203604086015262001ca4828262001bf1565b9150508091505092915050565b600062001cbf838362001c5b565b905092915050565b6000602082019050919050565b600062001ce18262001ad3565b62001ced818562001ade565b93508360208202850162001d018562001aef565b8060005b8581101562001d43578484038952815162001d21858262001cb1565b945062001d2e8362001cc7565b925060208a0199505060018101905062001d05565b50829750879550505050505092915050565b62001d60816200188b565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b8381101562001da257808201518184015260208101905062001d85565b60008484015250505050565b6000601f19601f8301169050919050565b600062001dcc8262001d66565b62001dd8818562001d71565b935062001dea81856020860162001d82565b62001df58162001dae565b840191505092915050565b6000606082019050818103600083015262001e1c818662001cd4565b905062001e2d602083018562001d55565b818103604083015262001e41818462001dbf565b9050949350505050565b7f4c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e206660008201527f6163657420746f20637574000000000000000000000000000000000000000000602082015250565b600062001ea9602b83620019a4565b915062001eb68262001e4b565b604082019050919050565b6000602082019050818103600083015262001edc8162001e9a565b9050919050565b7f4c69624469616d6f6e644375743a204164642066616365742063616e2774206260008201527f6520616464726573732830290000000000000000000000000000000000000000602082015250565b600062001f41602c83620019a4565b915062001f4e8262001ee3565b604082019050919050565b6000602082019050818103600083015262001f748162001f32565b9050919050565b7f4c69624469616d6f6e644375743a2043616e2774206164642066756e6374696f60008201527f6e207468617420616c7265616479206578697374730000000000000000000000602082015250565b600062001fd9603583620019a4565b915062001fe68262001f7b565b604082019050919050565b600060208201905081810360008301526200200c8162001fca565b9050919050565b60006bffffffffffffffffffffffff82169050919050565b6000620020388262002013565b91506bffffffffffffffffffffffff820362002059576200205862001a4d565b5b600182019050919050565b7f4c69624469616d6f6e644375743a2043616e2774207265706c6163652066756e60008201527f6374696f6e20776974682073616d652066756e6374696f6e0000000000000000602082015250565b6000620020c2603883620019a4565b9150620020cf8262002064565b604082019050919050565b60006020820190508181036000830152620020f581620020b3565b9050919050565b7f4c69624469616d6f6e644375743a2052656d6f7665206661636574206164647260008201527f657373206d757374206265206164647265737328302900000000000000000000602082015250565b60006200215a603683620019a4565b91506200216782620020fc565b604082019050919050565b600060208201905081810360008301526200218d816200214b565b9050919050565b7f4c69624469616d6f6e644375743a205f696e697420697320616464726573732860008201527f3029206275745f63616c6c64617461206973206e6f7420656d70747900000000602082015250565b6000620021f2603c83620019a4565b9150620021ff8262002194565b604082019050919050565b600060208201905081810360008301526200222581620021e3565b9050919050565b7f4c69624469616d6f6e644375743a205f63616c6c6461746120697320656d707460008201527f7920627574205f696e6974206973206e6f742061646472657373283029000000602082015250565b60006200228a603d83620019a4565b915062002297826200222c565b604082019050919050565b60006020820190508181036000830152620022bd816200227b565b9050919050565b600081905092915050565b6000620022dc8262001d66565b620022e88185620022c4565b9350620022fa81856020860162001d82565b80840191505092915050565b6000620023148284620022cf565b915081905092915050565b600081519050919050565b600062002337826200231f565b620023438185620019a4565b93506200235581856020860162001d82565b620023608162001dae565b840191505092915050565b600060208201905081810360008301526200238781846200232a565b905092915050565b7f4c69624469616d6f6e644375743a205f696e69742066756e6374696f6e20726560008201527f7665727465640000000000000000000000000000000000000000000000000000602082015250565b6000620023ed602683620019a4565b9150620023fa826200238f565b604082019050919050565b600060208201905081810360008301526200242081620023de565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f76652066756e6360008201527f74696f6e207468617420646f65736e2774206578697374000000000000000000602082015250565b600062002485603783620019a4565b9150620024928262002427565b604082019050919050565b60006020820190508181036000830152620024b88162002476565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f766520696d6d7560008201527f7461626c652066756e6374696f6e000000000000000000000000000000000000602082015250565b60006200251d602e83620019a4565b91506200252a82620024bf565b604082019050919050565b6000602082019050818103600083015262002550816200250e565b9050919050565b6000620025648262001a7c565b9150620025718362001a7c565b92508282039050818111156200258c576200258b62001a4d565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b61236080620025d16000396000f3fe60806040523661000b57005b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c9050809150600082600001600080357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610141576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610138906116c8565b60405180910390fd5b3660008037600080366000845af43d6000803e8060008114610162573d6000f35b3d6000fd5b600061017161046d565b905060008160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b60005b835181101561042257600084828151811061025f5761025e6116e8565b5b60200260200101516020015190506000600281111561028157610280611717565b5b81600281111561029457610293611717565b5b036102e4576102df8583815181106102af576102ae6116e8565b5b6020026020010151600001518684815181106102ce576102cd6116e8565b5b60200260200101516040015161049a565b61040e565b600160028111156102f8576102f7611717565b5b81600281111561030b5761030a611717565b5b0361035b57610356858381518110610326576103256116e8565b5b602002602001015160000151868481518110610345576103446116e8565b5b602002602001015160400151610711565b61040d565b60028081111561036e5761036d611717565b5b81600281111561038157610380611717565b5b036103d1576103cc85838151811061039c5761039b6116e8565b5b6020026020010151600001518684815181106103bb576103ba6116e8565b5b602002602001015160400151610992565b61040c565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610403906117b8565b60405180910390fd5b5b5b50808061041a90611811565b915050610241565b507f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67383838360405161045693929190611b7d565b60405180910390a16104688282610b1d565b505050565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b60008151116104de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d590611c34565b60405180910390fd5b60006104e861046d565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610559576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055090611cc6565b60405180910390fd5b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905090506000816bffffffffffffffffffffffff16036105c6576105c58285610d2f565b5b60005b835181101561070a5760008482815181106105e7576105e66116e8565b5b602002602001015190506000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d290611d58565b60405180910390fd5b6106e78583868a610e0a565b83806106f290611d90565b9450505050808061070290611811565b9150506105c9565b5050505050565b6000815111610755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074c90611c34565b60405180910390fd5b600061075f61046d565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c790611cc6565b60405180910390fd5b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905090506000816bffffffffffffffffffffffff160361083d5761083c8285610d2f565b5b60005b835181101561098b57600084828151811061085e5761085d6116e8565b5b602002602001015190506000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610951576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094890611e36565b60405180910390fd5b61095c858284610fb7565b6109688583868a610e0a565b838061097390611d90565b9450505050808061098390611811565b915050610840565b5050505050565b60008151116109d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cd90611c34565b60405180910390fd5b60006109e061046d565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610a51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4890611ec8565b60405180910390fd5b60005b8251811015610b17576000838281518110610a7257610a716116e8565b5b602002602001015190506000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050610b02848284610fb7565b50508080610b0f90611811565b915050610a54565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b9a576000815114610b95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8c90611f5a565b60405180910390fd5b610d2b565b6000815111610bde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd590611fec565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610c3457610c33826040518060600160405280602881526020016122df60289139611619565b5b6000808373ffffffffffffffffffffffffffffffffffffffff1683604051610c5c9190612048565b600060405180830381855af49150503d8060008114610c97576040519150601f19603f3d011682016040523d82523d6000602084013e610c9c565b606091505b509150915081610d2857600081511115610ced57806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce491906120a3565b60405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1f90612137565b60405180910390fd5b50505b5050565b610d518160405180606001604052806024815260200161230760249139611619565b81600201805490508260010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555081600201819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b81846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508360010160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018390806001815401808255809150506001900390600052602060002090600891828204019190066004029091909190916101000a81548163ffffffff021916908360e01c021790555080846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611026576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101d906121c9565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108b9061225b565b60405180910390fd5b6000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050600060018560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905061116b919061227b565b90508082146112ff5760008560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000182815481106111cc576111cb6116e8565b5b90600052602060002090600891828204019190066004029054906101000a900460e01b9050808660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018481548110611248576112476116e8565b5b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908360e01c021790555082866000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550505b8460010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805480611353576113526122af565b5b60019003818190600052602060002090600891828204019190066004026101000a81549063ffffffff02191690559055846000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a8154906bffffffffffffffffffffffff02191690555050600081036116125760006001866002018054905061143d919061227b565b905060008660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154905081811461157e5760008760020183815481106114a7576114a66116e8565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050808860020183815481106114eb576114ea6116e8565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818860010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550505b86600201805480611592576115916122af565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590558660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000905550505b5050505050565b6000823b9050600081118290611665576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165c91906120a3565b60405180910390fd5b50505050565b600082825260208201905092915050565b7f4469616d6f6e643a2046756e6374696f6e20646f6573206e6f74206578697374600082015250565b60006116b260208361166b565b91506116bd8261167c565b602082019050919050565b600060208201905081810360008301526116e1816116a5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4c69624469616d6f6e644375743a20496e636f7272656374204661636574437560008201527f74416374696f6e00000000000000000000000000000000000000000000000000602082015250565b60006117a260278361166b565b91506117ad82611746565b604082019050919050565b600060208201905081810360008301526117d181611795565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b600061181c82611807565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361184e5761184d6117d8565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006118b082611885565b9050919050565b6118c0816118a5565b82525050565b600381106118d7576118d6611717565b5b50565b60008190506118e8826118c6565b919050565b60006118f8826118da565b9050919050565b611908816118ed565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61196f8161193a565b82525050565b60006119818383611966565b60208301905092915050565b6000602082019050919050565b60006119a58261190e565b6119af8185611919565b93506119ba8361192a565b8060005b838110156119eb5781516119d28882611975565b97506119dd8361198d565b9250506001810190506119be565b5085935050505092915050565b6000606083016000830151611a1060008601826118b7565b506020830151611a2360208601826118ff565b5060408301518482036040860152611a3b828261199a565b9150508091505092915050565b6000611a5483836119f8565b905092915050565b6000602082019050919050565b6000611a7482611859565b611a7e8185611864565b935083602082028501611a9085611875565b8060005b85811015611acc5784840389528151611aad8582611a48565b9450611ab883611a5c565b925060208a01995050600181019050611a94565b50829750879550505050505092915050565b611ae7816118a5565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b27578082015181840152602081019050611b0c565b60008484015250505050565b6000601f19601f8301169050919050565b6000611b4f82611aed565b611b598185611af8565b9350611b69818560208601611b09565b611b7281611b33565b840191505092915050565b60006060820190508181036000830152611b978186611a69565b9050611ba66020830185611ade565b8181036040830152611bb88184611b44565b9050949350505050565b7f4c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e206660008201527f6163657420746f20637574000000000000000000000000000000000000000000602082015250565b6000611c1e602b8361166b565b9150611c2982611bc2565b604082019050919050565b60006020820190508181036000830152611c4d81611c11565b9050919050565b7f4c69624469616d6f6e644375743a204164642066616365742063616e2774206260008201527f6520616464726573732830290000000000000000000000000000000000000000602082015250565b6000611cb0602c8361166b565b9150611cbb82611c54565b604082019050919050565b60006020820190508181036000830152611cdf81611ca3565b9050919050565b7f4c69624469616d6f6e644375743a2043616e2774206164642066756e6374696f60008201527f6e207468617420616c7265616479206578697374730000000000000000000000602082015250565b6000611d4260358361166b565b9150611d4d82611ce6565b604082019050919050565b60006020820190508181036000830152611d7181611d35565b9050919050565b60006bffffffffffffffffffffffff82169050919050565b6000611d9b82611d78565b91506bffffffffffffffffffffffff8203611db957611db86117d8565b5b600182019050919050565b7f4c69624469616d6f6e644375743a2043616e2774207265706c6163652066756e60008201527f6374696f6e20776974682073616d652066756e6374696f6e0000000000000000602082015250565b6000611e2060388361166b565b9150611e2b82611dc4565b604082019050919050565b60006020820190508181036000830152611e4f81611e13565b9050919050565b7f4c69624469616d6f6e644375743a2052656d6f7665206661636574206164647260008201527f657373206d757374206265206164647265737328302900000000000000000000602082015250565b6000611eb260368361166b565b9150611ebd82611e56565b604082019050919050565b60006020820190508181036000830152611ee181611ea5565b9050919050565b7f4c69624469616d6f6e644375743a205f696e697420697320616464726573732860008201527f3029206275745f63616c6c64617461206973206e6f7420656d70747900000000602082015250565b6000611f44603c8361166b565b9150611f4f82611ee8565b604082019050919050565b60006020820190508181036000830152611f7381611f37565b9050919050565b7f4c69624469616d6f6e644375743a205f63616c6c6461746120697320656d707460008201527f7920627574205f696e6974206973206e6f742061646472657373283029000000602082015250565b6000611fd6603d8361166b565b9150611fe182611f7a565b604082019050919050565b6000602082019050818103600083015261200581611fc9565b9050919050565b600081905092915050565b600061202282611aed565b61202c818561200c565b935061203c818560208601611b09565b80840191505092915050565b60006120548284612017565b915081905092915050565b600081519050919050565b60006120758261205f565b61207f818561166b565b935061208f818560208601611b09565b61209881611b33565b840191505092915050565b600060208201905081810360008301526120bd818461206a565b905092915050565b7f4c69624469616d6f6e644375743a205f696e69742066756e6374696f6e20726560008201527f7665727465640000000000000000000000000000000000000000000000000000602082015250565b600061212160268361166b565b915061212c826120c5565b604082019050919050565b6000602082019050818103600083015261215081612114565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f76652066756e6360008201527f74696f6e207468617420646f65736e2774206578697374000000000000000000602082015250565b60006121b360378361166b565b91506121be82612157565b604082019050919050565b600060208201905081810360008301526121e2816121a6565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f766520696d6d7560008201527f7461626c652066756e6374696f6e000000000000000000000000000000000000602082015250565b6000612245602e8361166b565b9150612250826121e9565b604082019050919050565b6000602082019050818103600083015261227481612238565b9050919050565b600061228682611807565b915061229183611807565b92508282039050818111156122a9576122a86117d8565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfe4c69624469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f64654c69624469616d6f6e644375743a204e657720666163657420686173206e6f20636f6465a2646970667358221220305eabd09a504968137ac5539dead05c9347b2777b97892556acd6bd25b9766a64736f6c634300081100334c69624469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f64654c69624469616d6f6e644375743a204e657720666163657420686173206e6f20636f6465", - "deployedBytecode": "0x60806040523661000b57005b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c9050809150600082600001600080357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610141576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610138906116c8565b60405180910390fd5b3660008037600080366000845af43d6000803e8060008114610162573d6000f35b3d6000fd5b600061017161046d565b905060008160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b60005b835181101561042257600084828151811061025f5761025e6116e8565b5b60200260200101516020015190506000600281111561028157610280611717565b5b81600281111561029457610293611717565b5b036102e4576102df8583815181106102af576102ae6116e8565b5b6020026020010151600001518684815181106102ce576102cd6116e8565b5b60200260200101516040015161049a565b61040e565b600160028111156102f8576102f7611717565b5b81600281111561030b5761030a611717565b5b0361035b57610356858381518110610326576103256116e8565b5b602002602001015160000151868481518110610345576103446116e8565b5b602002602001015160400151610711565b61040d565b60028081111561036e5761036d611717565b5b81600281111561038157610380611717565b5b036103d1576103cc85838151811061039c5761039b6116e8565b5b6020026020010151600001518684815181106103bb576103ba6116e8565b5b602002602001015160400151610992565b61040c565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610403906117b8565b60405180910390fd5b5b5b50808061041a90611811565b915050610241565b507f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67383838360405161045693929190611b7d565b60405180910390a16104688282610b1d565b505050565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b60008151116104de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d590611c34565b60405180910390fd5b60006104e861046d565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610559576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055090611cc6565b60405180910390fd5b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905090506000816bffffffffffffffffffffffff16036105c6576105c58285610d2f565b5b60005b835181101561070a5760008482815181106105e7576105e66116e8565b5b602002602001015190506000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d290611d58565b60405180910390fd5b6106e78583868a610e0a565b83806106f290611d90565b9450505050808061070290611811565b9150506105c9565b5050505050565b6000815111610755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074c90611c34565b60405180910390fd5b600061075f61046d565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c790611cc6565b60405180910390fd5b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905090506000816bffffffffffffffffffffffff160361083d5761083c8285610d2f565b5b60005b835181101561098b57600084828151811061085e5761085d6116e8565b5b602002602001015190506000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610951576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094890611e36565b60405180910390fd5b61095c858284610fb7565b6109688583868a610e0a565b838061097390611d90565b9450505050808061098390611811565b915050610840565b5050505050565b60008151116109d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cd90611c34565b60405180910390fd5b60006109e061046d565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610a51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4890611ec8565b60405180910390fd5b60005b8251811015610b17576000838281518110610a7257610a716116e8565b5b602002602001015190506000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050610b02848284610fb7565b50508080610b0f90611811565b915050610a54565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b9a576000815114610b95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8c90611f5a565b60405180910390fd5b610d2b565b6000815111610bde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd590611fec565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610c3457610c33826040518060600160405280602881526020016122df60289139611619565b5b6000808373ffffffffffffffffffffffffffffffffffffffff1683604051610c5c9190612048565b600060405180830381855af49150503d8060008114610c97576040519150601f19603f3d011682016040523d82523d6000602084013e610c9c565b606091505b509150915081610d2857600081511115610ced57806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce491906120a3565b60405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1f90612137565b60405180910390fd5b50505b5050565b610d518160405180606001604052806024815260200161230760249139611619565b81600201805490508260010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555081600201819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b81846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508360010160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018390806001815401808255809150506001900390600052602060002090600891828204019190066004029091909190916101000a81548163ffffffff021916908360e01c021790555080846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611026576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101d906121c9565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108b9061225b565b60405180910390fd5b6000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050600060018560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905061116b919061227b565b90508082146112ff5760008560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000182815481106111cc576111cb6116e8565b5b90600052602060002090600891828204019190066004029054906101000a900460e01b9050808660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018481548110611248576112476116e8565b5b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908360e01c021790555082866000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550505b8460010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805480611353576113526122af565b5b60019003818190600052602060002090600891828204019190066004026101000a81549063ffffffff02191690559055846000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a8154906bffffffffffffffffffffffff02191690555050600081036116125760006001866002018054905061143d919061227b565b905060008660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154905081811461157e5760008760020183815481106114a7576114a66116e8565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050808860020183815481106114eb576114ea6116e8565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818860010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550505b86600201805480611592576115916122af565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590558660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000905550505b5050505050565b6000823b9050600081118290611665576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165c91906120a3565b60405180910390fd5b50505050565b600082825260208201905092915050565b7f4469616d6f6e643a2046756e6374696f6e20646f6573206e6f74206578697374600082015250565b60006116b260208361166b565b91506116bd8261167c565b602082019050919050565b600060208201905081810360008301526116e1816116a5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4c69624469616d6f6e644375743a20496e636f7272656374204661636574437560008201527f74416374696f6e00000000000000000000000000000000000000000000000000602082015250565b60006117a260278361166b565b91506117ad82611746565b604082019050919050565b600060208201905081810360008301526117d181611795565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b600061181c82611807565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361184e5761184d6117d8565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006118b082611885565b9050919050565b6118c0816118a5565b82525050565b600381106118d7576118d6611717565b5b50565b60008190506118e8826118c6565b919050565b60006118f8826118da565b9050919050565b611908816118ed565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61196f8161193a565b82525050565b60006119818383611966565b60208301905092915050565b6000602082019050919050565b60006119a58261190e565b6119af8185611919565b93506119ba8361192a565b8060005b838110156119eb5781516119d28882611975565b97506119dd8361198d565b9250506001810190506119be565b5085935050505092915050565b6000606083016000830151611a1060008601826118b7565b506020830151611a2360208601826118ff565b5060408301518482036040860152611a3b828261199a565b9150508091505092915050565b6000611a5483836119f8565b905092915050565b6000602082019050919050565b6000611a7482611859565b611a7e8185611864565b935083602082028501611a9085611875565b8060005b85811015611acc5784840389528151611aad8582611a48565b9450611ab883611a5c565b925060208a01995050600181019050611a94565b50829750879550505050505092915050565b611ae7816118a5565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b27578082015181840152602081019050611b0c565b60008484015250505050565b6000601f19601f8301169050919050565b6000611b4f82611aed565b611b598185611af8565b9350611b69818560208601611b09565b611b7281611b33565b840191505092915050565b60006060820190508181036000830152611b978186611a69565b9050611ba66020830185611ade565b8181036040830152611bb88184611b44565b9050949350505050565b7f4c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e206660008201527f6163657420746f20637574000000000000000000000000000000000000000000602082015250565b6000611c1e602b8361166b565b9150611c2982611bc2565b604082019050919050565b60006020820190508181036000830152611c4d81611c11565b9050919050565b7f4c69624469616d6f6e644375743a204164642066616365742063616e2774206260008201527f6520616464726573732830290000000000000000000000000000000000000000602082015250565b6000611cb0602c8361166b565b9150611cbb82611c54565b604082019050919050565b60006020820190508181036000830152611cdf81611ca3565b9050919050565b7f4c69624469616d6f6e644375743a2043616e2774206164642066756e6374696f60008201527f6e207468617420616c7265616479206578697374730000000000000000000000602082015250565b6000611d4260358361166b565b9150611d4d82611ce6565b604082019050919050565b60006020820190508181036000830152611d7181611d35565b9050919050565b60006bffffffffffffffffffffffff82169050919050565b6000611d9b82611d78565b91506bffffffffffffffffffffffff8203611db957611db86117d8565b5b600182019050919050565b7f4c69624469616d6f6e644375743a2043616e2774207265706c6163652066756e60008201527f6374696f6e20776974682073616d652066756e6374696f6e0000000000000000602082015250565b6000611e2060388361166b565b9150611e2b82611dc4565b604082019050919050565b60006020820190508181036000830152611e4f81611e13565b9050919050565b7f4c69624469616d6f6e644375743a2052656d6f7665206661636574206164647260008201527f657373206d757374206265206164647265737328302900000000000000000000602082015250565b6000611eb260368361166b565b9150611ebd82611e56565b604082019050919050565b60006020820190508181036000830152611ee181611ea5565b9050919050565b7f4c69624469616d6f6e644375743a205f696e697420697320616464726573732860008201527f3029206275745f63616c6c64617461206973206e6f7420656d70747900000000602082015250565b6000611f44603c8361166b565b9150611f4f82611ee8565b604082019050919050565b60006020820190508181036000830152611f7381611f37565b9050919050565b7f4c69624469616d6f6e644375743a205f63616c6c6461746120697320656d707460008201527f7920627574205f696e6974206973206e6f742061646472657373283029000000602082015250565b6000611fd6603d8361166b565b9150611fe182611f7a565b604082019050919050565b6000602082019050818103600083015261200581611fc9565b9050919050565b600081905092915050565b600061202282611aed565b61202c818561200c565b935061203c818560208601611b09565b80840191505092915050565b60006120548284612017565b915081905092915050565b600081519050919050565b60006120758261205f565b61207f818561166b565b935061208f818560208601611b09565b61209881611b33565b840191505092915050565b600060208201905081810360008301526120bd818461206a565b905092915050565b7f4c69624469616d6f6e644375743a205f696e69742066756e6374696f6e20726560008201527f7665727465640000000000000000000000000000000000000000000000000000602082015250565b600061212160268361166b565b915061212c826120c5565b604082019050919050565b6000602082019050818103600083015261215081612114565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f76652066756e6360008201527f74696f6e207468617420646f65736e2774206578697374000000000000000000602082015250565b60006121b360378361166b565b91506121be82612157565b604082019050919050565b600060208201905081810360008301526121e2816121a6565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f766520696d6d7560008201527f7461626c652066756e6374696f6e000000000000000000000000000000000000602082015250565b6000612245602e8361166b565b9150612250826121e9565b604082019050919050565b6000602082019050818103600083015261227481612238565b9050919050565b600061228682611807565b915061229183611807565b92508282039050818111156122a9576122a86117d8565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfe4c69624469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f64654c69624469616d6f6e644375743a204e657720666163657420686173206e6f20636f6465a2646970667358221220305eabd09a504968137ac5539dead05c9347b2777b97892556acd6bd25b9766a64736f6c63430008110033", + "bytecode": "0x6080604052604051620076bd380380620076bd833981810160405281019062000029919062003222565b6200004567a7e6b32f9d93319460c01b6200032b60201b60201c565b620000616768f3360c480f308760c01b6200032b60201b60201c565b6200007d67cdf01ba336a2e7bb60c01b6200032b60201b60201c565b62000093826200032e60201b620003581760201c565b620000af67754cde6603f9473d60c01b6200032b60201b60201c565b620000cb67018e4e083eeab8c760c01b6200032b60201b60201c565b6000600167ffffffffffffffff811115620000eb57620000ea62003269565b5b6040519080825280602002602001820160405280156200012857816020015b620001146200316c565b8152602001906001900390816200010a5790505b5090506200014767dc402a1637fb2d5960c01b6200032b60201b60201c565b6200016367996371118cc6c3f760c01b6200032b60201b60201c565b6000600167ffffffffffffffff81111562000183576200018262003269565b5b604051908082528060200260200182016040528015620001b25781602001602082028036833780820191505090505b509050620001d167f99be39acddb239160c01b6200032b60201b60201c565b631f931c1c60e01b81600081518110620001f057620001ef62003298565b5b60200260200101907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815250506200025867e6bc06d236aa92e560c01b6200032b60201b60201c565b60405180606001604052808473ffffffffffffffffffffffffffffffffffffffff16815260200160006002811115620002965762000295620032c7565b5b81526020018281525082600081518110620002b657620002b562003298565b5b6020026020010181905250620002dd6753ea75fc60a9c1e960c01b6200032b60201b60201c565b620002f9678817ef405cc7854460c01b6200032b60201b60201c565b6200032182600060405180602001604052806000815250620004ed60201b620004cf1760201c565b5050505062003f13565b50565b6200034a674f69fffccbea1a6060c01b62000a6560201b60201c565b6200036667254a8afedf49a2bd60c01b62000a6560201b60201c565b620003826764ae761eae80994a60c01b62000a6560201b60201c565b60006200039462000a6860201b60201c565b9050620003b26728cf10db04b3ce6a60c01b62000a6560201b60201c565b620003ce67254c9c1d52a21ebf60c01b62000a6560201b60201c565b60008160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506200041367f8cb9d02f213dad260c01b62000a6560201b60201c565b828260040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200047267320b257c7ea8cea760c01b62000a6560201b60201c565b6200048e67a1ef30c006aa278260c01b62000a6560201b60201c565b8273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6200050967a19105344d9f01ff60c01b62000a6560201b60201c565b6200052567b64c935a270824d460c01b62000a6560201b60201c565b6200054167472298b363a8ccd460c01b62000a6560201b60201c565b60005b8351811015620009a0576200056a679f2b3e118cce749f60c01b62000a6560201b60201c565b6200058667d896c15712e4c99e60c01b62000a6560201b60201c565b60008482815181106200059e576200059d62003298565b5b6020026020010151602001519050620005c867e9e9e49fe14a781e60c01b62000a6560201b60201c565b620005e467c54028706882e3fd60c01b62000a6560201b60201c565b60006002811115620005fb57620005fa620032c7565b5b816002811115620006115762000610620032c7565b5b03620006c5576200063367f4728512f8de3aa360c01b62000a6560201b60201c565b6200064f6740469cb01cf2faa260c01b62000a6560201b60201c565b6200066b6721754418551a963060c01b62000a6560201b60201c565b620006bf85838151811062000685576200068462003298565b5b602002602001015160000151868481518110620006a757620006a662003298565b5b60200260200101516040015162000b0660201b60201c565b62000989565b620006e167964166c6a112694260c01b62000a6560201b60201c565b620006fd675cddae6a9e8d84f060c01b62000a6560201b60201c565b60016002811115620007145762000713620032c7565b5b8160028111156200072a5762000729620032c7565b5b03620007de576200074c676469914f5066ffc460c01b62000a6560201b60201c565b6200076867cf470716cadf00df60c01b62000a6560201b60201c565b6200078467f4605d17f3b1301c60c01b62000a6560201b60201c565b620007d88583815181106200079e576200079d62003298565b5b602002602001015160000151868481518110620007c057620007bf62003298565b5b6020026020010151604001516200112e60201b60201c565b62000988565b620007fa67e72a92bcd515975b60c01b62000a6560201b60201c565b6200081667b1e174fb1bb1b85360c01b62000a6560201b60201c565b6002808111156200082c576200082b620032c7565b5b816002811115620008425762000841620032c7565b5b03620008f6576200086467db0f598297fb7fbc60c01b62000a6560201b60201c565b62000880671a55e89439142ee060c01b62000a6560201b60201c565b6200089c6711513d20488a52e060c01b62000a6560201b60201c565b620008f0858381518110620008b657620008b562003298565b5b602002602001015160000151868481518110620008d857620008d762003298565b5b602002602001015160400151620017a060201b60201c565b62000987565b6200091267cf3e056f531577e760c01b62000a6560201b60201c565b6200092e671903ab370305c25960c01b62000a6560201b60201c565b6200094a676af2c3acde0bf38760c01b62000a6560201b60201c565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200097e906200337d565b60405180910390fd5b5b5b5080806200099790620033d8565b91505062000544565b50620009bd67dc19ebbaa4095b3160c01b62000a6560201b60201c565b620009d9678571dd875084a3e060c01b62000a6560201b60201c565b7f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67383838360405162000a0e9392919062003752565b60405180910390a162000a3267faecfc839f48e07b60c01b62000a6560201b60201c565b62000a4e6792cae661f317b4ce60c01b62000a6560201b60201c565b62000a60828262001b5c60201b60201c565b505050565b50565b600062000a86674f9afbb757d80e6360c01b62000a6560201b60201c565b62000aa2674b823103125da15660c01b62000a6560201b60201c565b62000abe674ab715c231c1608d60c01b62000a6560201b60201c565b60007fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c905062000aff67982d9bb86701efa860c01b62000a6560201b60201c565b8091505090565b62000b2267cc97399e32da22a560c01b62000a6560201b60201c565b62000b3e67021d8eb4be5452a860c01b62000a6560201b60201c565b62000b5a678748409130ac41fa60c01b62000a6560201b60201c565b62000b7667ccd015372bd45b9c60c01b62000a6560201b60201c565b600081511162000bbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000bb49062003813565b60405180910390fd5b62000bd967d0bcd87037df4e5a60c01b62000a6560201b60201c565b62000bf56777b6df3c8e2ebf4660c01b62000a6560201b60201c565b62000c116755a810a63d06fcdd60c01b62000a6560201b60201c565b600062000c2362000a6860201b60201c565b905062000c416747e187c4c65f108c60c01b62000a6560201b60201c565b62000c5d670bde1222440aa4dd60c01b62000a6560201b60201c565b62000c7967f7810a880d4fe12d60c01b62000a6560201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000ceb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ce290620038ab565b60405180910390fd5b62000d07676e4814773ca1e6f960c01b62000a6560201b60201c565b62000d2367abb5961c588ff7dc60c01b62000a6560201b60201c565b62000d3f6775b1393f5ceb0a4860c01b62000a6560201b60201c565b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050905062000da76779cb28ccf660334260c01b62000a6560201b60201c565b62000dc3671a64ec3fd612cafd60c01b62000a6560201b60201c565b6000816bffffffffffffffffffffffff160362000e465762000df6672a23378c0ae85db760c01b62000a6560201b60201c565b62000e12670288376b7f20f78660c01b62000a6560201b60201c565b62000e2e67d14bbd8396b718cd60c01b62000a6560201b60201c565b62000e4082856200212c60201b60201c565b62000e63565b62000e62675eb466f90a620b0f60c01b62000a6560201b60201c565b5b62000e7f67fcd8a57751c34a1160c01b62000a6560201b60201c565b62000e9b67c014c8ff907100cb60c01b62000a6560201b60201c565b60005b8351811015620011275762000ec4677134da3b2ea217c360c01b62000a6560201b60201c565b62000ee0678ef84b1f8594c55e60c01b62000a6560201b60201c565b600084828151811062000ef85762000ef762003298565b5b6020026020010151905062000f1e67e6627f219f43163560c01b62000a6560201b60201c565b62000f3a672b0989e1ce351d2c60c01b62000a6560201b60201c565b6000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905062000fd1678edc0ee3600e6f7160c01b62000a6560201b60201c565b62000fed67acff68f00aaf198060c01b62000a6560201b60201c565b62001009678e7e9da0f87df0c460c01b62000a6560201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146200107b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620010729062003943565b60405180910390fd5b6200109767de5c2f108b7a76ad60c01b62000a6560201b60201c565b620010b3679df301acb4b4e7b560c01b62000a6560201b60201c565b620010cf67d5dd90cfdfe4af7760c01b62000a6560201b60201c565b620010e38583868a620022b860201b60201c565b620010ff67b77905e3474e693060c01b62000a6560201b60201c565b83806200110c906200397d565b945050505080806200111e90620033d8565b91505062000e9e565b5050505050565b6200114a672faab333134f8f2b60c01b62000a6560201b60201c565b6200116667f1aef7c8a9655d5360c01b62000a6560201b60201c565b6200118267d203ed109c17319660c01b62000a6560201b60201c565b6200119e67f4734d8378f4311060c01b62000a6560201b60201c565b6000815111620011e5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620011dc9062003813565b60405180910390fd5b620012016754602ce0fe5a43bf60c01b62000a6560201b60201c565b6200121d67f46efb4b2c2c709e60c01b62000a6560201b60201c565b6200123967610110a281fa82c760c01b62000a6560201b60201c565b60006200124b62000a6860201b60201c565b90506200126967edc9c99031ecb10d60c01b62000a6560201b60201c565b620012856767fe440300c94a3460c01b62000a6560201b60201c565b620012a16784ec279df893a23160c01b62000a6560201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362001313576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200130a90620038ab565b60405180910390fd5b6200132f678fb1a303062b7c3660c01b62000a6560201b60201c565b6200134b672659fafa49e6fe9a60c01b62000a6560201b60201c565b6200136767151721b3adf3095360c01b62000a6560201b60201c565b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805490509050620013cf6747aaf74cd533212060c01b62000a6560201b60201c565b620013eb6703de6b9bbbb4e65460c01b62000a6560201b60201c565b6000816bffffffffffffffffffffffff16036200146e576200141e677f40383c8703753660c01b62000a6560201b60201c565b6200143a67bee7ffe190c4ad3c60c01b62000a6560201b60201c565b620014566755bd06ec28bd8be360c01b62000a6560201b60201c565b6200146882856200212c60201b60201c565b6200148b565b6200148a67dd6dd2122982fcbd60c01b62000a6560201b60201c565b5b620014a767c00fc6f5b3cfec0760c01b62000a6560201b60201c565b620014c36712c602b6c749bc1660c01b62000a6560201b60201c565b60005b83518110156200179957620014ec67b01c581fb6bf76d460c01b62000a6560201b60201c565b620015086772bf81d7d68cd5cc60c01b62000a6560201b60201c565b600084828151811062001520576200151f62003298565b5b602002602001015190506200154667f378c2c5d2ac591860c01b62000a6560201b60201c565b62001562672abe9487f14424bf60c01b62000a6560201b60201c565b6000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050620015f967c938893e73b6cc8660c01b62000a6560201b60201c565b6200161567b830452a6260fe5860c01b62000a6560201b60201c565b6200163167732490d4bd014f1160c01b62000a6560201b60201c565b8673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620016a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620016999062003a2c565b60405180910390fd5b620016be67307ef01dc603673f60c01b62000a6560201b60201c565b620016da67df9b9ad53f3498bb60c01b62000a6560201b60201c565b620016f667ef74a1c742a2ef4b60c01b62000a6560201b60201c565b62001709858284620024f160201b60201c565b620017256709eba8384d15433760c01b62000a6560201b60201c565b6200174167eb34f0e39cc002be60c01b62000a6560201b60201c565b620017558583868a620022b860201b60201c565b6200177167c8e26e167d4df53e60c01b62000a6560201b60201c565b83806200177e906200397d565b945050505080806200179090620033d8565b915050620014c6565b5050505050565b620017bc67484f249b41b9afdf60c01b62000a6560201b60201c565b620017d8672afee721a436189e60c01b62000a6560201b60201c565b620017f46790c0f4303981d53860c01b62000a6560201b60201c565b6200181067b69809b50e9b29b160c01b62000a6560201b60201c565b600081511162001857576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200184e9062003813565b60405180910390fd5b620018736703449e0de1d16e1460c01b62000a6560201b60201c565b6200188f67043931a3bf63a76460c01b62000a6560201b60201c565b620018ab6783eac4de134a189760c01b62000a6560201b60201c565b6000620018bd62000a6860201b60201c565b9050620018db676fa9503e3a33edf160c01b62000a6560201b60201c565b620018f767565ff8422e73f48260c01b62000a6560201b60201c565b6200191367a43a53c1c8fdb01860c01b62000a6560201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161462001985576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200197c9062003ac4565b60405180910390fd5b620019a167a83ec82cf318ce9960c01b62000a6560201b60201c565b620019bd6729de67dbee8a781960c01b62000a6560201b60201c565b620019d96778ae44bab32ab16d60c01b62000a6560201b60201c565b60005b825181101562001b565762001a0267c86ec2c930ebf39060c01b62000a6560201b60201c565b62001a1e67bb2f8bac9067d0d960c01b62000a6560201b60201c565b600083828151811062001a365762001a3562003298565b5b6020026020010151905062001a5c67afdb7f7eafa2419160c01b62000a6560201b60201c565b62001a7867336a3f69f07dbd0a60c01b62000a6560201b60201c565b6000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905062001b0f67a9a5f6b739625a6060c01b62000a6560201b60201c565b62001b2b67fd046ea59cd94d2a60c01b62000a6560201b60201c565b62001b3e848284620024f160201b60201c565b5050808062001b4d90620033d8565b915050620019dc565b50505050565b62001b7867029e1a56337e048460c01b62000a6560201b60201c565b62001b9467165337675d3a848660c01b62000a6560201b60201c565b62001bb0674613682e59aed10a60c01b62000a6560201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362001cbe5762001c016788e41d767c30804a60c01b62000a6560201b60201c565b62001c1d67509782c75193bd1560c01b62000a6560201b60201c565b62001c39677c55baba9bedefc760c01b62000a6560201b60201c565b62001c556779b630e4a1a501b160c01b62000a6560201b60201c565b600081511462001c9c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162001c939062003b5c565b60405180910390fd5b62001cb8671cf5cba47462738c60c01b62000a6560201b60201c565b62002128565b62001cda67d87fba57f9fd56d260c01b62000a6560201b60201c565b62001cf66785ecbfea545b551c60c01b62000a6560201b60201c565b62001d12675a99520875f542d360c01b62000a6560201b60201c565b62001d2e677335d4909eb3f6ed60c01b62000a6560201b60201c565b600081511162001d75576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162001d6c9062003bf4565b60405180910390fd5b62001d9167e2308116fde49ef660c01b62000a6560201b60201c565b62001dad67e68a1e15bfb15c1560c01b62000a6560201b60201c565b62001dc967e2f9c57761f027da60c01b62000a6560201b60201c565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161462001e825762001e19677e43db5cf3dda55a60c01b62000a6560201b60201c565b62001e3567f9079825f16296d860c01b62000a6560201b60201c565b62001e516722169a84f6e6288860c01b62000a6560201b60201c565b62001e7c8260405180606001604052806028815260200162007671602891396200303760201b60201c565b62001e9f565b62001e9e6756028f6713aeb61660c01b62000a6560201b60201c565b5b62001ebb678b5d37b494e8790c60c01b62000a6560201b60201c565b62001ed76732f3ff1c4d01de4c60c01b62000a6560201b60201c565b6000808373ffffffffffffffffffffffffffffffffffffffff168360405162001f01919062003c58565b600060405180830381855af49150503d806000811462001f3e576040519150601f19603f3d011682016040523d82523d6000602084013e62001f43565b606091505b509150915062001f6467cb519b28cdf2316460c01b62000a6560201b60201c565b62001f8067d3126d202060687460c01b62000a6560201b60201c565b81620021095762001fa26713957e4282cdd48760c01b62000a6560201b60201c565b62001fbe676bcab06e51e2612c60c01b62000a6560201b60201c565b62001fda67d3bfca2e5aa4d84960c01b62000a6560201b60201c565b600081511115620020785762002001673aa967c1a865c9c260c01b62000a6560201b60201c565b6200201d67f27acd53282addda60c01b62000a6560201b60201c565b620020396780ab759cddda78d060c01b62000a6560201b60201c565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200206f919062003cbd565b60405180910390fd5b6200209467a434d1c24e3903bc60c01b62000a6560201b60201c565b620020b067d32e3505412c44c560c01b62000a6560201b60201c565b620020cc677d8323cb74d7c2d860c01b62000a6560201b60201c565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620021009062003d57565b60405180910390fd5b6200212567bc6651a6d16ea71460c01b62000a6560201b60201c565b50505b5050565b620021486745cff900de072b7660c01b62000a6560201b60201c565b6200216467ac3e31ef1ea5c74960c01b62000a6560201b60201c565b62002180673364688f11db6d0d60c01b62000a6560201b60201c565b620021ab8160405180606001604052806024815260200162007699602491396200303760201b60201c565b620021c767b9f39a1cc8adecc260c01b62000a6560201b60201c565b81600201805490508260010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550620022336718823160317e019160c01b62000a6560201b60201c565b6200224f676ae1118a96d2a90560c01b62000a6560201b60201c565b81600201819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b620022d467a2899c53551cdd3760c01b62000a6560201b60201c565b620022f0678197d74e06e4145f60c01b62000a6560201b60201c565b81846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555062002391677d99602b18ea589060c01b62000a6560201b60201c565b620023ad67351b6ed487ae748960c01b62000a6560201b60201c565b8360010160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018390806001815401808255809150506001900390600052602060002090600891828204019190066004029091909190916101000a81548163ffffffff021916908360e01c02179055506200245667c24c5f99c230f00760c01b62000a6560201b60201c565b80846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6200250d6787c03a3a3424540460c01b62000a6560201b60201c565b62002529672e3806f37bc3a9d460c01b62000a6560201b60201c565b62002545678d411e0bbad3542c60c01b62000a6560201b60201c565b620025616726e5377f8db7750360c01b62000a6560201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620025d3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620025ca9062003def565b60405180910390fd5b620025ef67ebcad92e55ad094460c01b62000a6560201b60201c565b6200260b6751364413e637bba560c01b62000a6560201b60201c565b620026276792673f376289e6e260c01b62000a6560201b60201c565b6200264367f72487d3a8cf4ac460c01b62000a6560201b60201c565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620026b4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620026ab9062003e87565b60405180910390fd5b620026d067a4c3c236bcab394860c01b62000a6560201b60201c565b620026ec677e1962b66805ad7060c01b62000a6560201b60201c565b62002708670d999328d8a5d9c360c01b62000a6560201b60201c565b6000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050620027a567d10337e1e2ecfc3960c01b62000a6560201b60201c565b620027c1677b893f30fdd7ad7060c01b62000a6560201b60201c565b600060018560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905062002819919062003ea9565b90506200283767bb5bf925ceece87660c01b62000a6560201b60201c565b62002853676df862371a13aaa560c01b62000a6560201b60201c565b80821462002a7d576200287767156a8665fdd7526f60c01b62000a6560201b60201c565b62002893673cefa8bc28e7d12860c01b62000a6560201b60201c565b620028af67bdc380bd85401db960c01b62000a6560201b60201c565b60008560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000182815481106200290a576200290962003298565b5b90600052602060002090600891828204019190066004029054906101000a900460e01b90506200294b671de77bf8f010eaec60c01b62000a6560201b60201c565b808660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018481548110620029a557620029a462003298565b5b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908360e01c0217905550620029f1673af62f9c8f759fb160c01b62000a6560201b60201c565b82866000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055505062002a9a565b62002a99671d9b423266d067f060c01b62000a6560201b60201c565b5b62002ab667018034db5579529460c01b62000a6560201b60201c565b62002ad267a1c9b3117b7c6ab660c01b62000a6560201b60201c565b8460010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180548062002b295762002b2862003ee4565b5b60019003818190600052602060002090600891828204019190066004026101000a81549063ffffffff0219169055905562002b7567559997c386b3648460c01b62000a6560201b60201c565b846000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a8154906bffffffffffffffffffffffff0219169055505062002c2d6760a723ea0e7e1d4860c01b62000a6560201b60201c565b62002c4967ff433d7c2e2ac4be60c01b62000a6560201b60201c565b60008103620030135762002c6e6762db4abf7f19cb2060c01b62000a6560201b60201c565b62002c8a67efe6f413d09d1ebd60c01b62000a6560201b60201c565b62002ca667ec471a641a3edf7960c01b62000a6560201b60201c565b60006001866002018054905062002cbe919062003ea9565b905062002cdb6622a131c51aff2c60c01b62000a6560201b60201c565b62002cf767919cfbc3e76423a760c01b62000a6560201b60201c565b60008660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154905062002d5c674e9eba62f8a28b9860c01b62000a6560201b60201c565b62002d786799c973d204243fa060c01b62000a6560201b60201c565b81811462002f065762002d9c673c79f4e3584d9a5960c01b62000a6560201b60201c565b62002db867990168f15e45b6b860c01b62000a6560201b60201c565b62002dd4678582ef208a32dc4260c01b62000a6560201b60201c565b600087600201838154811062002def5762002dee62003298565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905062002e38671085af932ae9ef7260c01b62000a6560201b60201c565b8088600201838154811062002e525762002e5162003298565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062002eb667ad58108eb86eb21760c01b62000a6560201b60201c565b818860010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505062002f23565b62002f2267804be83a13f0191a60c01b62000a6560201b60201c565b5b62002f3f67b1f28e33128b33c960c01b62000a6560201b60201c565b62002f5b67c4cd68f75da79ff060c01b62000a6560201b60201c565b8660020180548062002f725762002f7162003ee4565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905562002fc367a379df54f7bb9fb460c01b62000a6560201b60201c565b8660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009055505062003030565b6200302f671627b1de00b56a1b60c01b62000a6560201b60201c565b5b5050505050565b6200305367f91685f166b890e160c01b62000a6560201b60201c565b6200306f672a44665c1fa886a160c01b62000a6560201b60201c565b6200308b6756e8a556d62b0f5e60c01b62000a6560201b60201c565b6000620030a967996ed809f12ff03160c01b62000a6560201b60201c565b823b9050620030c96709c9d04de4f50a1e60c01b62000a6560201b60201c565b620030e567b71747c1488d4acd60c01b62000a6560201b60201c565b6200310167f052a96327eb0abf60c01b62000a6560201b60201c565b6000811182906200314a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162003141919062003cbd565b60405180910390fd5b506200316767b956b25dc409113860c01b62000a6560201b60201c565b505050565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160006002811115620031ab57620031aa620032c7565b5b8152602001606081525090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620031ea82620031bd565b9050919050565b620031fc81620031dd565b81146200320857600080fd5b50565b6000815190506200321c81620031f1565b92915050565b600080604083850312156200323c576200323b620031b8565b5b60006200324c858286016200320b565b92505060206200325f858286016200320b565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600082825260208201905092915050565b7f4c69624469616d6f6e644375743a20496e636f7272656374204661636574437560008201527f74416374696f6e00000000000000000000000000000000000000000000000000602082015250565b600062003365602783620032f6565b9150620033728262003307565b604082019050919050565b60006020820190508181036000830152620033988162003356565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000620033e582620033ce565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036200341a57620034196200339f565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6200345c81620031dd565b82525050565b60038110620034765762003475620032c7565b5b50565b6000819050620034898262003462565b919050565b60006200349b8262003479565b9050919050565b620034ad816200348e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6200351681620034df565b82525050565b60006200352a83836200350b565b60208301905092915050565b6000602082019050919050565b60006200355082620034b3565b6200355c8185620034be565b93506200356983620034cf565b8060005b83811015620035a05781516200358488826200351c565b9750620035918362003536565b9250506001810190506200356d565b5085935050505092915050565b6000606083016000830151620035c7600086018262003451565b506020830151620035dc6020860182620034a2565b5060408301518482036040860152620035f6828262003543565b9150508091505092915050565b6000620036118383620035ad565b905092915050565b6000602082019050919050565b6000620036338262003425565b6200363f818562003430565b935083602082028501620036538562003441565b8060005b8581101562003695578484038952815162003673858262003603565b9450620036808362003619565b925060208a0199505060018101905062003657565b50829750879550505050505092915050565b620036b281620031dd565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015620036f4578082015181840152602081019050620036d7565b60008484015250505050565b6000601f19601f8301169050919050565b60006200371e82620036b8565b6200372a8185620036c3565b93506200373c818560208601620036d4565b620037478162003700565b840191505092915050565b600060608201905081810360008301526200376e818662003626565b90506200377f6020830185620036a7565b818103604083015262003793818462003711565b9050949350505050565b7f4c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e206660008201527f6163657420746f20637574000000000000000000000000000000000000000000602082015250565b6000620037fb602b83620032f6565b915062003808826200379d565b604082019050919050565b600060208201905081810360008301526200382e81620037ec565b9050919050565b7f4c69624469616d6f6e644375743a204164642066616365742063616e2774206260008201527f6520616464726573732830290000000000000000000000000000000000000000602082015250565b600062003893602c83620032f6565b9150620038a08262003835565b604082019050919050565b60006020820190508181036000830152620038c68162003884565b9050919050565b7f4c69624469616d6f6e644375743a2043616e2774206164642066756e6374696f60008201527f6e207468617420616c7265616479206578697374730000000000000000000000602082015250565b60006200392b603583620032f6565b91506200393882620038cd565b604082019050919050565b600060208201905081810360008301526200395e816200391c565b9050919050565b60006bffffffffffffffffffffffff82169050919050565b60006200398a8262003965565b91506bffffffffffffffffffffffff8203620039ab57620039aa6200339f565b5b600182019050919050565b7f4c69624469616d6f6e644375743a2043616e2774207265706c6163652066756e60008201527f6374696f6e20776974682073616d652066756e6374696f6e0000000000000000602082015250565b600062003a14603883620032f6565b915062003a2182620039b6565b604082019050919050565b6000602082019050818103600083015262003a478162003a05565b9050919050565b7f4c69624469616d6f6e644375743a2052656d6f7665206661636574206164647260008201527f657373206d757374206265206164647265737328302900000000000000000000602082015250565b600062003aac603683620032f6565b915062003ab98262003a4e565b604082019050919050565b6000602082019050818103600083015262003adf8162003a9d565b9050919050565b7f4c69624469616d6f6e644375743a205f696e697420697320616464726573732860008201527f3029206275745f63616c6c64617461206973206e6f7420656d70747900000000602082015250565b600062003b44603c83620032f6565b915062003b518262003ae6565b604082019050919050565b6000602082019050818103600083015262003b778162003b35565b9050919050565b7f4c69624469616d6f6e644375743a205f63616c6c6461746120697320656d707460008201527f7920627574205f696e6974206973206e6f742061646472657373283029000000602082015250565b600062003bdc603d83620032f6565b915062003be98262003b7e565b604082019050919050565b6000602082019050818103600083015262003c0f8162003bcd565b9050919050565b600081905092915050565b600062003c2e82620036b8565b62003c3a818562003c16565b935062003c4c818560208601620036d4565b80840191505092915050565b600062003c66828462003c21565b915081905092915050565b600081519050919050565b600062003c898262003c71565b62003c958185620032f6565b935062003ca7818560208601620036d4565b62003cb28162003700565b840191505092915050565b6000602082019050818103600083015262003cd9818462003c7c565b905092915050565b7f4c69624469616d6f6e644375743a205f696e69742066756e6374696f6e20726560008201527f7665727465640000000000000000000000000000000000000000000000000000602082015250565b600062003d3f602683620032f6565b915062003d4c8262003ce1565b604082019050919050565b6000602082019050818103600083015262003d728162003d30565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f76652066756e6360008201527f74696f6e207468617420646f65736e2774206578697374000000000000000000602082015250565b600062003dd7603783620032f6565b915062003de48262003d79565b604082019050919050565b6000602082019050818103600083015262003e0a8162003dc8565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f766520696d6d7560008201527f7461626c652066756e6374696f6e000000000000000000000000000000000000602082015250565b600062003e6f602e83620032f6565b915062003e7c8262003e11565b604082019050919050565b6000602082019050818103600083015262003ea28162003e60565b9050919050565b600062003eb682620033ce565b915062003ec383620033ce565b925082820390508181111562003ede5762003edd6200339f565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b61374e8062003f236000396000f3fe6080604052600436106100385760003560e01c806353a845b5146102a0578063926cd86d146102dd578063e8fa136a146103065761003f565b3661003f57005b6100536711f9a5eb36163b8960c01b610343565b61006767dbe2beb916fa8a5b60c01b610343565b61007b6790d1a3cb3ba44ee360c01b610343565b6000610091674da9ab19ea0baaeb60c01b610343565b6100a567979b87787adfcc6f60c01b610343565b60007fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90506100de67c7c975d955274fd260c01b610343565b8091506100f567bcae6db60f573e9a60c01b610343565b61010967ca1671d26216c11160c01b610343565b600082600001600080357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506101bb6792d906f4ab70537060c01b610343565b6101cf675faf97112e5c11e260c01b610343565b6101e367f10e8643be83266d60c01b610343565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610252576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610249906129f6565b60405180910390fd5b61026667e8144acc2819f60560c01b610343565b61027a6767619bab0f74d44660c01b610343565b3660008037600080366000845af43d6000803e806000811461029b573d6000f35b3d6000fd5b3480156102ac57600080fd5b506102c760048036038101906102c29190612a73565b610346565b6040516102d49190612abb565b60405180910390f35b3480156102e957600080fd5b5061030460048036038101906102ff9190612a73565b610343565b005b34801561031257600080fd5b5061032d60048036038101906103289190612a73565b610351565b60405161033a9190612abb565b60405180910390f35b50565b600060019050919050565b6000919050565b61036c674f69fffccbea1a6060c01b61091a565b61038067254a8afedf49a2bd60c01b61091a565b6103946764ae761eae80994a60c01b61091a565b600061039e61091d565b90506103b46728cf10db04b3ce6a60c01b61091a565b6103c867254c9c1d52a21ebf60c01b61091a565b60008160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061040567f8cb9d02f213dad260c01b61091a565b828260040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061045c67320b257c7ea8cea760c01b61091a565b61047067a1ef30c006aa278260c01b61091a565b8273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6104e367a19105344d9f01ff60c01b61091a565b6104f767b64c935a270824d460c01b61091a565b61050b67472298b363a8ccd460c01b61091a565b60005b835181101561087f5761052b679f2b3e118cce749f60c01b61091a565b61053f67d896c15712e4c99e60c01b61091a565b600084828151811061055457610553612ad6565b5b602002602001015160200151905061057667e9e9e49fe14a781e60c01b61091a565b61058a67c54028706882e3fd60c01b61091a565b6000600281111561059e5761059d612b05565b5b8160028111156105b1576105b0612b05565b5b0361063d576105ca67f4728512f8de3aa360c01b61091a565b6105de6740469cb01cf2faa260c01b61091a565b6105f26721754418551a963060c01b61091a565b61063885838151811061060857610607612ad6565b5b60200260200101516000015186848151811061062757610626612ad6565b5b60200260200101516040015161099b565b61086b565b61065167964166c6a112694260c01b61091a565b610665675cddae6a9e8d84f060c01b61091a565b6001600281111561067957610678612b05565b5b81600281111561068c5761068b612b05565b5b03610718576106a5676469914f5066ffc460c01b61091a565b6106b967cf470716cadf00df60c01b61091a565b6106cd67f4605d17f3b1301c60c01b61091a565b6107138583815181106106e3576106e2612ad6565b5b60200260200101516000015186848151811061070257610701612ad6565b5b602002602001015160400151610e97565b61086a565b61072c67e72a92bcd515975b60c01b61091a565b61074067b1e174fb1bb1b85360c01b61091a565b60028081111561075357610752612b05565b5b81600281111561076657610765612b05565b5b036107f25761077f67db0f598297fb7fbc60c01b61091a565b610793671a55e89439142ee060c01b61091a565b6107a76711513d20488a52e060c01b61091a565b6107ed8583815181106107bd576107bc612ad6565b5b6020026020010151600001518684815181106107dc576107db612ad6565b5b6020026020010151604001516113c5565b610869565b61080667cf3e056f531577e760c01b61091a565b61081a671903ab370305c25960c01b61091a565b61082e676af2c3acde0bf38760c01b61091a565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086090612ba6565b60405180910390fd5b5b5b50808061087790612bff565b91505061050e565b5061089467dc19ebbaa4095b3160c01b61091a565b6108a8678571dd875084a3e060c01b61091a565b7f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6738383836040516108db93929190612f6b565b60405180910390a16108f767faecfc839f48e07b60c01b61091a565b61090b6792cae661f317b4ce60c01b61091a565b61091582826116cc565b505050565b50565b6000610933674f9afbb757d80e6360c01b61091a565b610947674b823103125da15660c01b61091a565b61095b674ab715c231c1608d60c01b61091a565b60007fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c905061099467982d9bb86701efa860c01b61091a565b8091505090565b6109af67cc97399e32da22a560c01b61091a565b6109c367021d8eb4be5452a860c01b61091a565b6109d7678748409130ac41fa60c01b61091a565b6109eb67ccd015372bd45b9c60c01b61091a565b6000815111610a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2690613022565b60405180910390fd5b610a4367d0bcd87037df4e5a60c01b61091a565b610a576777b6df3c8e2ebf4660c01b61091a565b610a6b6755a810a63d06fcdd60c01b61091a565b6000610a7561091d565b9050610a8b6747e187c4c65f108c60c01b61091a565b610a9f670bde1222440aa4dd60c01b61091a565b610ab367f7810a880d4fe12d60c01b61091a565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b19906130b4565b60405180910390fd5b610b36676e4814773ca1e6f960c01b61091a565b610b4a67abb5961c588ff7dc60c01b61091a565b610b5e6775b1393f5ceb0a4860c01b61091a565b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805490509050610bbe6779cb28ccf660334260c01b61091a565b610bd2671a64ec3fd612cafd60c01b61091a565b6000816bffffffffffffffffffffffff1603610c3357610bfc672a23378c0ae85db760c01b61091a565b610c10670288376b7f20f78660c01b61091a565b610c2467d14bbd8396b718cd60c01b61091a565b610c2e8285611b77565b610c48565b610c47675eb466f90a620b0f60c01b61091a565b5b610c5c67fcd8a57751c34a1160c01b61091a565b610c7067c014c8ff907100cb60c01b61091a565b60005b8351811015610e9057610c90677134da3b2ea217c360c01b61091a565b610ca4678ef84b1f8594c55e60c01b61091a565b6000848281518110610cb957610cb8612ad6565b5b60200260200101519050610cd767e6627f219f43163560c01b61091a565b610ceb672b0989e1ce351d2c60c01b61091a565b6000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050610d7a678edc0ee3600e6f7160c01b61091a565b610d8e67acff68f00aaf198060c01b61091a565b610da2678e7e9da0f87df0c460c01b61091a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610e11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0890613146565b60405180910390fd5b610e2567de5c2f108b7a76ad60c01b61091a565b610e39679df301acb4b4e7b560c01b61091a565b610e4d67d5dd90cfdfe4af7760c01b61091a565b610e598583868a611cca565b610e6d67b77905e3474e693060c01b61091a565b8380610e789061317e565b94505050508080610e8890612bff565b915050610c73565b5050505050565b610eab672faab333134f8f2b60c01b61091a565b610ebf67f1aef7c8a9655d5360c01b61091a565b610ed367d203ed109c17319660c01b61091a565b610ee767f4734d8378f4311060c01b61091a565b6000815111610f2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2290613022565b60405180910390fd5b610f3f6754602ce0fe5a43bf60c01b61091a565b610f5367f46efb4b2c2c709e60c01b61091a565b610f6767610110a281fa82c760c01b61091a565b6000610f7161091d565b9050610f8767edc9c99031ecb10d60c01b61091a565b610f9b6767fe440300c94a3460c01b61091a565b610faf6784ec279df893a23160c01b61091a565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361101e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611015906130b4565b60405180910390fd5b611032678fb1a303062b7c3660c01b61091a565b611046672659fafa49e6fe9a60c01b61091a565b61105a67151721b3adf3095360c01b61091a565b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905090506110ba6747aaf74cd533212060c01b61091a565b6110ce6703de6b9bbbb4e65460c01b61091a565b6000816bffffffffffffffffffffffff160361112f576110f8677f40383c8703753660c01b61091a565b61110c67bee7ffe190c4ad3c60c01b61091a565b6111206755bd06ec28bd8be360c01b61091a565b61112a8285611b77565b611144565b61114367dd6dd2122982fcbd60c01b61091a565b5b61115867c00fc6f5b3cfec0760c01b61091a565b61116c6712c602b6c749bc1660c01b61091a565b60005b83518110156113be5761118c67b01c581fb6bf76d460c01b61091a565b6111a06772bf81d7d68cd5cc60c01b61091a565b60008482815181106111b5576111b4612ad6565b5b602002602001015190506111d367f378c2c5d2ac591860c01b61091a565b6111e7672abe9487f14424bf60c01b61091a565b6000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061127667c938893e73b6cc8660c01b61091a565b61128a67b830452a6260fe5860c01b61091a565b61129e67732490d4bd014f1160c01b61091a565b8673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361130c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130390613224565b60405180910390fd5b61132067307ef01dc603673f60c01b61091a565b61133467df9b9ad53f3498bb60c01b61091a565b61134867ef74a1c742a2ef4b60c01b61091a565b611353858284611edb565b6113676709eba8384d15433760c01b61091a565b61137b67eb34f0e39cc002be60c01b61091a565b6113878583868a611cca565b61139b67c8e26e167d4df53e60c01b61091a565b83806113a69061317e565b945050505080806113b690612bff565b91505061116f565b5050505050565b6113d967484f249b41b9afdf60c01b61091a565b6113ed672afee721a436189e60c01b61091a565b6114016790c0f4303981d53860c01b61091a565b61141567b69809b50e9b29b160c01b61091a565b6000815111611459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145090613022565b60405180910390fd5b61146d6703449e0de1d16e1460c01b61091a565b61148167043931a3bf63a76460c01b61091a565b6114956783eac4de134a189760c01b61091a565b600061149f61091d565b90506114b5676fa9503e3a33edf160c01b61091a565b6114c967565ff8422e73f48260c01b61091a565b6114dd67a43a53c1c8fdb01860c01b61091a565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461154c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611543906132b6565b60405180910390fd5b61156067a83ec82cf318ce9960c01b61091a565b6115746729de67dbee8a781960c01b61091a565b6115886778ae44bab32ab16d60c01b61091a565b60005b82518110156116c6576115a867c86ec2c930ebf39060c01b61091a565b6115bc67bb2f8bac9067d0d960c01b61091a565b60008382815181106115d1576115d0612ad6565b5b602002602001015190506115ef67afdb7f7eafa2419160c01b61091a565b61160367336a3f69f07dbd0a60c01b61091a565b6000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061169267a9a5f6b739625a6060c01b61091a565b6116a667fd046ea59cd94d2a60c01b61091a565b6116b1848284611edb565b505080806116be90612bff565b91505061158b565b50505050565b6116e067029e1a56337e048460c01b61091a565b6116f467165337675d3a848660c01b61091a565b611708674613682e59aed10a60c01b61091a565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117e9576117506788e41d767c30804a60c01b61091a565b61176467509782c75193bd1560c01b61091a565b611778677c55baba9bedefc760c01b61091a565b61178c6779b630e4a1a501b160c01b61091a565b60008151146117d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c790613348565b60405180910390fd5b6117e4671cf5cba47462738c60c01b61091a565b611b73565b6117fd67d87fba57f9fd56d260c01b61091a565b6118116785ecbfea545b551c60c01b61091a565b611825675a99520875f542d360c01b61091a565b611839677335d4909eb3f6ed60c01b61091a565b600081511161187d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611874906133da565b60405180910390fd5b61189167e2308116fde49ef660c01b61091a565b6118a567e68a1e15bfb15c1560c01b61091a565b6118b967e2f9c57761f027da60c01b61091a565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461194f57611900677e43db5cf3dda55a60c01b61091a565b61191467f9079825f16296d860c01b61091a565b6119286722169a84f6e6288860c01b61091a565b61194a826040518060600160405280602881526020016136cd602891396128a7565b611964565b6119636756028f6713aeb61660c01b61091a565b5b611978678b5d37b494e8790c60c01b61091a565b61198c6732f3ff1c4d01de4c60c01b61091a565b6000808373ffffffffffffffffffffffffffffffffffffffff16836040516119b49190613436565b600060405180830381855af49150503d80600081146119ef576040519150601f19603f3d011682016040523d82523d6000602084013e6119f4565b606091505b5091509150611a0d67cb519b28cdf2316460c01b61091a565b611a2167d3126d202060687460c01b61091a565b81611b5c57611a3a6713957e4282cdd48760c01b61091a565b611a4e676bcab06e51e2612c60c01b61091a565b611a6267d3bfca2e5aa4d84960c01b61091a565b600081511115611ae557611a80673aa967c1a865c9c260c01b61091a565b611a9467f27acd53282addda60c01b61091a565b611aa86780ab759cddda78d060c01b61091a565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adc9190613491565b60405180910390fd5b611af967a434d1c24e3903bc60c01b61091a565b611b0d67d32e3505412c44c560c01b61091a565b611b21677d8323cb74d7c2d860c01b61091a565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5390613525565b60405180910390fd5b611b7067bc6651a6d16ea71460c01b61091a565b50505b5050565b611b8b6745cff900de072b7660c01b61091a565b611b9f67ac3e31ef1ea5c74960c01b61091a565b611bb3673364688f11db6d0d60c01b61091a565b611bd5816040518060600160405280602481526020016136f5602491396128a7565b611be967b9f39a1cc8adecc260c01b61091a565b81600201805490508260010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550611c4d6718823160317e019160c01b61091a565b611c61676ae1118a96d2a90560c01b61091a565b81600201819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b611cde67a2899c53551cdd3760c01b61091a565b611cf2678197d74e06e4145f60c01b61091a565b81846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550611d8b677d99602b18ea589060c01b61091a565b611d9f67351b6ed487ae748960c01b61091a565b8360010160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018390806001815401808255809150506001900390600052602060002090600891828204019190066004029091909190916101000a81548163ffffffff021916908360e01c0217905550611e4067c24c5f99c230f00760c01b61091a565b80846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b611eef6787c03a3a3424540460c01b61091a565b611f03672e3806f37bc3a9d460c01b61091a565b611f17678d411e0bbad3542c60c01b61091a565b611f2b6726e5377f8db7750360c01b61091a565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f91906135b7565b60405180910390fd5b611fae67ebcad92e55ad094460c01b61091a565b611fc26751364413e637bba560c01b61091a565b611fd66792673f376289e6e260c01b61091a565b611fea67f72487d3a8cf4ac460c01b61091a565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612058576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204f90613649565b60405180910390fd5b61206c67a4c3c236bcab394860c01b61091a565b612080677e1962b66805ad7060c01b61091a565b612094670d999328d8a5d9c360c01b61091a565b6000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16905061212967d10337e1e2ecfc3960c01b61091a565b61213d677b893f30fdd7ad7060c01b61091a565b600060018560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805490506121939190613669565b90506121a967bb5bf925ceece87660c01b61091a565b6121bd676df862371a13aaa560c01b61091a565b8082146123b7576121d867156a8665fdd7526f60c01b61091a565b6121ec673cefa8bc28e7d12860c01b61091a565b61220067bdc380bd85401db960c01b61091a565b60008560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001828154811061225857612257612ad6565b5b90600052602060002090600891828204019190066004029054906101000a900460e01b9050612291671de77bf8f010eaec60c01b61091a565b808660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000184815481106122e8576122e7612ad6565b5b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908360e01c021790555061232c673af62f9c8f759fb160c01b61091a565b82866000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550506123cc565b6123cb671d9b423266d067f060c01b61091a565b5b6123e067018034db5579529460c01b61091a565b6123f467a1c9b3117b7c6ab660c01b61091a565b8460010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054806124485761244761369d565b5b60019003818190600052602060002090600891828204019190066004026101000a81549063ffffffff0219169055905561248c67559997c386b3648460c01b61091a565b846000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a8154906bffffffffffffffffffffffff0219169055505061253c6760a723ea0e7e1d4860c01b61091a565b61255067ff433d7c2e2ac4be60c01b61091a565b6000810361288b5761256c6762db4abf7f19cb2060c01b61091a565b61258067efe6f413d09d1ebd60c01b61091a565b61259467ec471a641a3edf7960c01b61091a565b6000600186600201805490506125aa9190613669565b90506125bf6622a131c51aff2c60c01b61091a565b6125d367919cfbc3e76423a760c01b61091a565b60008660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050612630674e9eba62f8a28b9860c01b61091a565b6126446799c973d204243fa060c01b61091a565b8181146127a25761265f673c79f4e3584d9a5960c01b61091a565b61267367990168f15e45b6b860c01b61091a565b612687678582ef208a32dc4260c01b61091a565b600087600201838154811061269f5761269e612ad6565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506126e0671085af932ae9ef7260c01b61091a565b808860020183815481106126f7576126f6612ad6565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061275367ad58108eb86eb21760c01b61091a565b818860010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550506127b7565b6127b667804be83a13f0191a60c01b61091a565b5b6127cb67b1f28e33128b33c960c01b61091a565b6127df67c4cd68f75da79ff060c01b61091a565b866002018054806127f3576127f261369d565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905561283c67a379df54f7bb9fb460c01b61091a565b8660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000905550506128a0565b61289f671627b1de00b56a1b60c01b61091a565b5b5050505050565b6128bb67f91685f166b890e160c01b61091a565b6128cf672a44665c1fa886a160c01b61091a565b6128e36756e8a556d62b0f5e60c01b61091a565b60006128f967996ed809f12ff03160c01b61091a565b823b90506129116709c9d04de4f50a1e60c01b61091a565b61292567b71747c1488d4acd60c01b61091a565b61293967f052a96327eb0abf60c01b61091a565b60008111829061297f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129769190613491565b60405180910390fd5b5061299467b956b25dc409113860c01b61091a565b505050565b600082825260208201905092915050565b7f4469616d6f6e643a2046756e6374696f6e20646f6573206e6f74206578697374600082015250565b60006129e0602083612999565b91506129eb826129aa565b602082019050919050565b60006020820190508181036000830152612a0f816129d3565b9050919050565b600080fd5b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b612a5081612a1b565b8114612a5b57600080fd5b50565b600081359050612a6d81612a47565b92915050565b600060208284031215612a8957612a88612a16565b5b6000612a9784828501612a5e565b91505092915050565b60008115159050919050565b612ab581612aa0565b82525050565b6000602082019050612ad06000830184612aac565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4c69624469616d6f6e644375743a20496e636f7272656374204661636574437560008201527f74416374696f6e00000000000000000000000000000000000000000000000000602082015250565b6000612b90602783612999565b9150612b9b82612b34565b604082019050919050565b60006020820190508181036000830152612bbf81612b83565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000612c0a82612bf5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c3c57612c3b612bc6565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c9e82612c73565b9050919050565b612cae81612c93565b82525050565b60038110612cc557612cc4612b05565b5b50565b6000819050612cd682612cb4565b919050565b6000612ce682612cc8565b9050919050565b612cf681612cdb565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612d5d81612d28565b82525050565b6000612d6f8383612d54565b60208301905092915050565b6000602082019050919050565b6000612d9382612cfc565b612d9d8185612d07565b9350612da883612d18565b8060005b83811015612dd9578151612dc08882612d63565b9750612dcb83612d7b565b925050600181019050612dac565b5085935050505092915050565b6000606083016000830151612dfe6000860182612ca5565b506020830151612e116020860182612ced565b5060408301518482036040860152612e298282612d88565b9150508091505092915050565b6000612e428383612de6565b905092915050565b6000602082019050919050565b6000612e6282612c47565b612e6c8185612c52565b935083602082028501612e7e85612c63565b8060005b85811015612eba5784840389528151612e9b8582612e36565b9450612ea683612e4a565b925060208a01995050600181019050612e82565b50829750879550505050505092915050565b612ed581612c93565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f15578082015181840152602081019050612efa565b60008484015250505050565b6000601f19601f8301169050919050565b6000612f3d82612edb565b612f478185612ee6565b9350612f57818560208601612ef7565b612f6081612f21565b840191505092915050565b60006060820190508181036000830152612f858186612e57565b9050612f946020830185612ecc565b8181036040830152612fa68184612f32565b9050949350505050565b7f4c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e206660008201527f6163657420746f20637574000000000000000000000000000000000000000000602082015250565b600061300c602b83612999565b915061301782612fb0565b604082019050919050565b6000602082019050818103600083015261303b81612fff565b9050919050565b7f4c69624469616d6f6e644375743a204164642066616365742063616e2774206260008201527f6520616464726573732830290000000000000000000000000000000000000000602082015250565b600061309e602c83612999565b91506130a982613042565b604082019050919050565b600060208201905081810360008301526130cd81613091565b9050919050565b7f4c69624469616d6f6e644375743a2043616e2774206164642066756e6374696f60008201527f6e207468617420616c7265616479206578697374730000000000000000000000602082015250565b6000613130603583612999565b915061313b826130d4565b604082019050919050565b6000602082019050818103600083015261315f81613123565b9050919050565b60006bffffffffffffffffffffffff82169050919050565b600061318982613166565b91506bffffffffffffffffffffffff82036131a7576131a6612bc6565b5b600182019050919050565b7f4c69624469616d6f6e644375743a2043616e2774207265706c6163652066756e60008201527f6374696f6e20776974682073616d652066756e6374696f6e0000000000000000602082015250565b600061320e603883612999565b9150613219826131b2565b604082019050919050565b6000602082019050818103600083015261323d81613201565b9050919050565b7f4c69624469616d6f6e644375743a2052656d6f7665206661636574206164647260008201527f657373206d757374206265206164647265737328302900000000000000000000602082015250565b60006132a0603683612999565b91506132ab82613244565b604082019050919050565b600060208201905081810360008301526132cf81613293565b9050919050565b7f4c69624469616d6f6e644375743a205f696e697420697320616464726573732860008201527f3029206275745f63616c6c64617461206973206e6f7420656d70747900000000602082015250565b6000613332603c83612999565b915061333d826132d6565b604082019050919050565b6000602082019050818103600083015261336181613325565b9050919050565b7f4c69624469616d6f6e644375743a205f63616c6c6461746120697320656d707460008201527f7920627574205f696e6974206973206e6f742061646472657373283029000000602082015250565b60006133c4603d83612999565b91506133cf82613368565b604082019050919050565b600060208201905081810360008301526133f3816133b7565b9050919050565b600081905092915050565b600061341082612edb565b61341a81856133fa565b935061342a818560208601612ef7565b80840191505092915050565b60006134428284613405565b915081905092915050565b600081519050919050565b60006134638261344d565b61346d8185612999565b935061347d818560208601612ef7565b61348681612f21565b840191505092915050565b600060208201905081810360008301526134ab8184613458565b905092915050565b7f4c69624469616d6f6e644375743a205f696e69742066756e6374696f6e20726560008201527f7665727465640000000000000000000000000000000000000000000000000000602082015250565b600061350f602683612999565b915061351a826134b3565b604082019050919050565b6000602082019050818103600083015261353e81613502565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f76652066756e6360008201527f74696f6e207468617420646f65736e2774206578697374000000000000000000602082015250565b60006135a1603783612999565b91506135ac82613545565b604082019050919050565b600060208201905081810360008301526135d081613594565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f766520696d6d7560008201527f7461626c652066756e6374696f6e000000000000000000000000000000000000602082015250565b6000613633602e83612999565b915061363e826135d7565b604082019050919050565b6000602082019050818103600083015261366281613626565b9050919050565b600061367482612bf5565b915061367f83612bf5565b925082820390508181111561369757613696612bc6565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfe4c69624469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f64654c69624469616d6f6e644375743a204e657720666163657420686173206e6f20636f6465a2646970667358221220ce25dd26737419727baaf3296d0861642400fd173299e708e7384026daae708164736f6c634300081100334c69624469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f64654c69624469616d6f6e644375743a204e657720666163657420686173206e6f20636f6465", + "deployedBytecode": "0x6080604052600436106100385760003560e01c806353a845b5146102a0578063926cd86d146102dd578063e8fa136a146103065761003f565b3661003f57005b6100536711f9a5eb36163b8960c01b610343565b61006767dbe2beb916fa8a5b60c01b610343565b61007b6790d1a3cb3ba44ee360c01b610343565b6000610091674da9ab19ea0baaeb60c01b610343565b6100a567979b87787adfcc6f60c01b610343565b60007fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90506100de67c7c975d955274fd260c01b610343565b8091506100f567bcae6db60f573e9a60c01b610343565b61010967ca1671d26216c11160c01b610343565b600082600001600080357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506101bb6792d906f4ab70537060c01b610343565b6101cf675faf97112e5c11e260c01b610343565b6101e367f10e8643be83266d60c01b610343565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610252576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610249906129f6565b60405180910390fd5b61026667e8144acc2819f60560c01b610343565b61027a6767619bab0f74d44660c01b610343565b3660008037600080366000845af43d6000803e806000811461029b573d6000f35b3d6000fd5b3480156102ac57600080fd5b506102c760048036038101906102c29190612a73565b610346565b6040516102d49190612abb565b60405180910390f35b3480156102e957600080fd5b5061030460048036038101906102ff9190612a73565b610343565b005b34801561031257600080fd5b5061032d60048036038101906103289190612a73565b610351565b60405161033a9190612abb565b60405180910390f35b50565b600060019050919050565b6000919050565b61036c674f69fffccbea1a6060c01b61091a565b61038067254a8afedf49a2bd60c01b61091a565b6103946764ae761eae80994a60c01b61091a565b600061039e61091d565b90506103b46728cf10db04b3ce6a60c01b61091a565b6103c867254c9c1d52a21ebf60c01b61091a565b60008160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061040567f8cb9d02f213dad260c01b61091a565b828260040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061045c67320b257c7ea8cea760c01b61091a565b61047067a1ef30c006aa278260c01b61091a565b8273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6104e367a19105344d9f01ff60c01b61091a565b6104f767b64c935a270824d460c01b61091a565b61050b67472298b363a8ccd460c01b61091a565b60005b835181101561087f5761052b679f2b3e118cce749f60c01b61091a565b61053f67d896c15712e4c99e60c01b61091a565b600084828151811061055457610553612ad6565b5b602002602001015160200151905061057667e9e9e49fe14a781e60c01b61091a565b61058a67c54028706882e3fd60c01b61091a565b6000600281111561059e5761059d612b05565b5b8160028111156105b1576105b0612b05565b5b0361063d576105ca67f4728512f8de3aa360c01b61091a565b6105de6740469cb01cf2faa260c01b61091a565b6105f26721754418551a963060c01b61091a565b61063885838151811061060857610607612ad6565b5b60200260200101516000015186848151811061062757610626612ad6565b5b60200260200101516040015161099b565b61086b565b61065167964166c6a112694260c01b61091a565b610665675cddae6a9e8d84f060c01b61091a565b6001600281111561067957610678612b05565b5b81600281111561068c5761068b612b05565b5b03610718576106a5676469914f5066ffc460c01b61091a565b6106b967cf470716cadf00df60c01b61091a565b6106cd67f4605d17f3b1301c60c01b61091a565b6107138583815181106106e3576106e2612ad6565b5b60200260200101516000015186848151811061070257610701612ad6565b5b602002602001015160400151610e97565b61086a565b61072c67e72a92bcd515975b60c01b61091a565b61074067b1e174fb1bb1b85360c01b61091a565b60028081111561075357610752612b05565b5b81600281111561076657610765612b05565b5b036107f25761077f67db0f598297fb7fbc60c01b61091a565b610793671a55e89439142ee060c01b61091a565b6107a76711513d20488a52e060c01b61091a565b6107ed8583815181106107bd576107bc612ad6565b5b6020026020010151600001518684815181106107dc576107db612ad6565b5b6020026020010151604001516113c5565b610869565b61080667cf3e056f531577e760c01b61091a565b61081a671903ab370305c25960c01b61091a565b61082e676af2c3acde0bf38760c01b61091a565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086090612ba6565b60405180910390fd5b5b5b50808061087790612bff565b91505061050e565b5061089467dc19ebbaa4095b3160c01b61091a565b6108a8678571dd875084a3e060c01b61091a565b7f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6738383836040516108db93929190612f6b565b60405180910390a16108f767faecfc839f48e07b60c01b61091a565b61090b6792cae661f317b4ce60c01b61091a565b61091582826116cc565b505050565b50565b6000610933674f9afbb757d80e6360c01b61091a565b610947674b823103125da15660c01b61091a565b61095b674ab715c231c1608d60c01b61091a565b60007fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c905061099467982d9bb86701efa860c01b61091a565b8091505090565b6109af67cc97399e32da22a560c01b61091a565b6109c367021d8eb4be5452a860c01b61091a565b6109d7678748409130ac41fa60c01b61091a565b6109eb67ccd015372bd45b9c60c01b61091a565b6000815111610a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2690613022565b60405180910390fd5b610a4367d0bcd87037df4e5a60c01b61091a565b610a576777b6df3c8e2ebf4660c01b61091a565b610a6b6755a810a63d06fcdd60c01b61091a565b6000610a7561091d565b9050610a8b6747e187c4c65f108c60c01b61091a565b610a9f670bde1222440aa4dd60c01b61091a565b610ab367f7810a880d4fe12d60c01b61091a565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b19906130b4565b60405180910390fd5b610b36676e4814773ca1e6f960c01b61091a565b610b4a67abb5961c588ff7dc60c01b61091a565b610b5e6775b1393f5ceb0a4860c01b61091a565b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805490509050610bbe6779cb28ccf660334260c01b61091a565b610bd2671a64ec3fd612cafd60c01b61091a565b6000816bffffffffffffffffffffffff1603610c3357610bfc672a23378c0ae85db760c01b61091a565b610c10670288376b7f20f78660c01b61091a565b610c2467d14bbd8396b718cd60c01b61091a565b610c2e8285611b77565b610c48565b610c47675eb466f90a620b0f60c01b61091a565b5b610c5c67fcd8a57751c34a1160c01b61091a565b610c7067c014c8ff907100cb60c01b61091a565b60005b8351811015610e9057610c90677134da3b2ea217c360c01b61091a565b610ca4678ef84b1f8594c55e60c01b61091a565b6000848281518110610cb957610cb8612ad6565b5b60200260200101519050610cd767e6627f219f43163560c01b61091a565b610ceb672b0989e1ce351d2c60c01b61091a565b6000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050610d7a678edc0ee3600e6f7160c01b61091a565b610d8e67acff68f00aaf198060c01b61091a565b610da2678e7e9da0f87df0c460c01b61091a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610e11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0890613146565b60405180910390fd5b610e2567de5c2f108b7a76ad60c01b61091a565b610e39679df301acb4b4e7b560c01b61091a565b610e4d67d5dd90cfdfe4af7760c01b61091a565b610e598583868a611cca565b610e6d67b77905e3474e693060c01b61091a565b8380610e789061317e565b94505050508080610e8890612bff565b915050610c73565b5050505050565b610eab672faab333134f8f2b60c01b61091a565b610ebf67f1aef7c8a9655d5360c01b61091a565b610ed367d203ed109c17319660c01b61091a565b610ee767f4734d8378f4311060c01b61091a565b6000815111610f2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2290613022565b60405180910390fd5b610f3f6754602ce0fe5a43bf60c01b61091a565b610f5367f46efb4b2c2c709e60c01b61091a565b610f6767610110a281fa82c760c01b61091a565b6000610f7161091d565b9050610f8767edc9c99031ecb10d60c01b61091a565b610f9b6767fe440300c94a3460c01b61091a565b610faf6784ec279df893a23160c01b61091a565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361101e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611015906130b4565b60405180910390fd5b611032678fb1a303062b7c3660c01b61091a565b611046672659fafa49e6fe9a60c01b61091a565b61105a67151721b3adf3095360c01b61091a565b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905090506110ba6747aaf74cd533212060c01b61091a565b6110ce6703de6b9bbbb4e65460c01b61091a565b6000816bffffffffffffffffffffffff160361112f576110f8677f40383c8703753660c01b61091a565b61110c67bee7ffe190c4ad3c60c01b61091a565b6111206755bd06ec28bd8be360c01b61091a565b61112a8285611b77565b611144565b61114367dd6dd2122982fcbd60c01b61091a565b5b61115867c00fc6f5b3cfec0760c01b61091a565b61116c6712c602b6c749bc1660c01b61091a565b60005b83518110156113be5761118c67b01c581fb6bf76d460c01b61091a565b6111a06772bf81d7d68cd5cc60c01b61091a565b60008482815181106111b5576111b4612ad6565b5b602002602001015190506111d367f378c2c5d2ac591860c01b61091a565b6111e7672abe9487f14424bf60c01b61091a565b6000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061127667c938893e73b6cc8660c01b61091a565b61128a67b830452a6260fe5860c01b61091a565b61129e67732490d4bd014f1160c01b61091a565b8673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361130c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130390613224565b60405180910390fd5b61132067307ef01dc603673f60c01b61091a565b61133467df9b9ad53f3498bb60c01b61091a565b61134867ef74a1c742a2ef4b60c01b61091a565b611353858284611edb565b6113676709eba8384d15433760c01b61091a565b61137b67eb34f0e39cc002be60c01b61091a565b6113878583868a611cca565b61139b67c8e26e167d4df53e60c01b61091a565b83806113a69061317e565b945050505080806113b690612bff565b91505061116f565b5050505050565b6113d967484f249b41b9afdf60c01b61091a565b6113ed672afee721a436189e60c01b61091a565b6114016790c0f4303981d53860c01b61091a565b61141567b69809b50e9b29b160c01b61091a565b6000815111611459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145090613022565b60405180910390fd5b61146d6703449e0de1d16e1460c01b61091a565b61148167043931a3bf63a76460c01b61091a565b6114956783eac4de134a189760c01b61091a565b600061149f61091d565b90506114b5676fa9503e3a33edf160c01b61091a565b6114c967565ff8422e73f48260c01b61091a565b6114dd67a43a53c1c8fdb01860c01b61091a565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461154c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611543906132b6565b60405180910390fd5b61156067a83ec82cf318ce9960c01b61091a565b6115746729de67dbee8a781960c01b61091a565b6115886778ae44bab32ab16d60c01b61091a565b60005b82518110156116c6576115a867c86ec2c930ebf39060c01b61091a565b6115bc67bb2f8bac9067d0d960c01b61091a565b60008382815181106115d1576115d0612ad6565b5b602002602001015190506115ef67afdb7f7eafa2419160c01b61091a565b61160367336a3f69f07dbd0a60c01b61091a565b6000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061169267a9a5f6b739625a6060c01b61091a565b6116a667fd046ea59cd94d2a60c01b61091a565b6116b1848284611edb565b505080806116be90612bff565b91505061158b565b50505050565b6116e067029e1a56337e048460c01b61091a565b6116f467165337675d3a848660c01b61091a565b611708674613682e59aed10a60c01b61091a565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117e9576117506788e41d767c30804a60c01b61091a565b61176467509782c75193bd1560c01b61091a565b611778677c55baba9bedefc760c01b61091a565b61178c6779b630e4a1a501b160c01b61091a565b60008151146117d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c790613348565b60405180910390fd5b6117e4671cf5cba47462738c60c01b61091a565b611b73565b6117fd67d87fba57f9fd56d260c01b61091a565b6118116785ecbfea545b551c60c01b61091a565b611825675a99520875f542d360c01b61091a565b611839677335d4909eb3f6ed60c01b61091a565b600081511161187d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611874906133da565b60405180910390fd5b61189167e2308116fde49ef660c01b61091a565b6118a567e68a1e15bfb15c1560c01b61091a565b6118b967e2f9c57761f027da60c01b61091a565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461194f57611900677e43db5cf3dda55a60c01b61091a565b61191467f9079825f16296d860c01b61091a565b6119286722169a84f6e6288860c01b61091a565b61194a826040518060600160405280602881526020016136cd602891396128a7565b611964565b6119636756028f6713aeb61660c01b61091a565b5b611978678b5d37b494e8790c60c01b61091a565b61198c6732f3ff1c4d01de4c60c01b61091a565b6000808373ffffffffffffffffffffffffffffffffffffffff16836040516119b49190613436565b600060405180830381855af49150503d80600081146119ef576040519150601f19603f3d011682016040523d82523d6000602084013e6119f4565b606091505b5091509150611a0d67cb519b28cdf2316460c01b61091a565b611a2167d3126d202060687460c01b61091a565b81611b5c57611a3a6713957e4282cdd48760c01b61091a565b611a4e676bcab06e51e2612c60c01b61091a565b611a6267d3bfca2e5aa4d84960c01b61091a565b600081511115611ae557611a80673aa967c1a865c9c260c01b61091a565b611a9467f27acd53282addda60c01b61091a565b611aa86780ab759cddda78d060c01b61091a565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adc9190613491565b60405180910390fd5b611af967a434d1c24e3903bc60c01b61091a565b611b0d67d32e3505412c44c560c01b61091a565b611b21677d8323cb74d7c2d860c01b61091a565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5390613525565b60405180910390fd5b611b7067bc6651a6d16ea71460c01b61091a565b50505b5050565b611b8b6745cff900de072b7660c01b61091a565b611b9f67ac3e31ef1ea5c74960c01b61091a565b611bb3673364688f11db6d0d60c01b61091a565b611bd5816040518060600160405280602481526020016136f5602491396128a7565b611be967b9f39a1cc8adecc260c01b61091a565b81600201805490508260010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550611c4d6718823160317e019160c01b61091a565b611c61676ae1118a96d2a90560c01b61091a565b81600201819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b611cde67a2899c53551cdd3760c01b61091a565b611cf2678197d74e06e4145f60c01b61091a565b81846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550611d8b677d99602b18ea589060c01b61091a565b611d9f67351b6ed487ae748960c01b61091a565b8360010160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018390806001815401808255809150506001900390600052602060002090600891828204019190066004029091909190916101000a81548163ffffffff021916908360e01c0217905550611e4067c24c5f99c230f00760c01b61091a565b80846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b611eef6787c03a3a3424540460c01b61091a565b611f03672e3806f37bc3a9d460c01b61091a565b611f17678d411e0bbad3542c60c01b61091a565b611f2b6726e5377f8db7750360c01b61091a565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f91906135b7565b60405180910390fd5b611fae67ebcad92e55ad094460c01b61091a565b611fc26751364413e637bba560c01b61091a565b611fd66792673f376289e6e260c01b61091a565b611fea67f72487d3a8cf4ac460c01b61091a565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612058576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204f90613649565b60405180910390fd5b61206c67a4c3c236bcab394860c01b61091a565b612080677e1962b66805ad7060c01b61091a565b612094670d999328d8a5d9c360c01b61091a565b6000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16905061212967d10337e1e2ecfc3960c01b61091a565b61213d677b893f30fdd7ad7060c01b61091a565b600060018560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805490506121939190613669565b90506121a967bb5bf925ceece87660c01b61091a565b6121bd676df862371a13aaa560c01b61091a565b8082146123b7576121d867156a8665fdd7526f60c01b61091a565b6121ec673cefa8bc28e7d12860c01b61091a565b61220067bdc380bd85401db960c01b61091a565b60008560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001828154811061225857612257612ad6565b5b90600052602060002090600891828204019190066004029054906101000a900460e01b9050612291671de77bf8f010eaec60c01b61091a565b808660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000184815481106122e8576122e7612ad6565b5b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908360e01c021790555061232c673af62f9c8f759fb160c01b61091a565b82866000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550506123cc565b6123cb671d9b423266d067f060c01b61091a565b5b6123e067018034db5579529460c01b61091a565b6123f467a1c9b3117b7c6ab660c01b61091a565b8460010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054806124485761244761369d565b5b60019003818190600052602060002090600891828204019190066004026101000a81549063ffffffff0219169055905561248c67559997c386b3648460c01b61091a565b846000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a8154906bffffffffffffffffffffffff0219169055505061253c6760a723ea0e7e1d4860c01b61091a565b61255067ff433d7c2e2ac4be60c01b61091a565b6000810361288b5761256c6762db4abf7f19cb2060c01b61091a565b61258067efe6f413d09d1ebd60c01b61091a565b61259467ec471a641a3edf7960c01b61091a565b6000600186600201805490506125aa9190613669565b90506125bf6622a131c51aff2c60c01b61091a565b6125d367919cfbc3e76423a760c01b61091a565b60008660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050612630674e9eba62f8a28b9860c01b61091a565b6126446799c973d204243fa060c01b61091a565b8181146127a25761265f673c79f4e3584d9a5960c01b61091a565b61267367990168f15e45b6b860c01b61091a565b612687678582ef208a32dc4260c01b61091a565b600087600201838154811061269f5761269e612ad6565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506126e0671085af932ae9ef7260c01b61091a565b808860020183815481106126f7576126f6612ad6565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061275367ad58108eb86eb21760c01b61091a565b818860010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550506127b7565b6127b667804be83a13f0191a60c01b61091a565b5b6127cb67b1f28e33128b33c960c01b61091a565b6127df67c4cd68f75da79ff060c01b61091a565b866002018054806127f3576127f261369d565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905561283c67a379df54f7bb9fb460c01b61091a565b8660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000905550506128a0565b61289f671627b1de00b56a1b60c01b61091a565b5b5050505050565b6128bb67f91685f166b890e160c01b61091a565b6128cf672a44665c1fa886a160c01b61091a565b6128e36756e8a556d62b0f5e60c01b61091a565b60006128f967996ed809f12ff03160c01b61091a565b823b90506129116709c9d04de4f50a1e60c01b61091a565b61292567b71747c1488d4acd60c01b61091a565b61293967f052a96327eb0abf60c01b61091a565b60008111829061297f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129769190613491565b60405180910390fd5b5061299467b956b25dc409113860c01b61091a565b505050565b600082825260208201905092915050565b7f4469616d6f6e643a2046756e6374696f6e20646f6573206e6f74206578697374600082015250565b60006129e0602083612999565b91506129eb826129aa565b602082019050919050565b60006020820190508181036000830152612a0f816129d3565b9050919050565b600080fd5b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b612a5081612a1b565b8114612a5b57600080fd5b50565b600081359050612a6d81612a47565b92915050565b600060208284031215612a8957612a88612a16565b5b6000612a9784828501612a5e565b91505092915050565b60008115159050919050565b612ab581612aa0565b82525050565b6000602082019050612ad06000830184612aac565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4c69624469616d6f6e644375743a20496e636f7272656374204661636574437560008201527f74416374696f6e00000000000000000000000000000000000000000000000000602082015250565b6000612b90602783612999565b9150612b9b82612b34565b604082019050919050565b60006020820190508181036000830152612bbf81612b83565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000612c0a82612bf5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c3c57612c3b612bc6565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c9e82612c73565b9050919050565b612cae81612c93565b82525050565b60038110612cc557612cc4612b05565b5b50565b6000819050612cd682612cb4565b919050565b6000612ce682612cc8565b9050919050565b612cf681612cdb565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612d5d81612d28565b82525050565b6000612d6f8383612d54565b60208301905092915050565b6000602082019050919050565b6000612d9382612cfc565b612d9d8185612d07565b9350612da883612d18565b8060005b83811015612dd9578151612dc08882612d63565b9750612dcb83612d7b565b925050600181019050612dac565b5085935050505092915050565b6000606083016000830151612dfe6000860182612ca5565b506020830151612e116020860182612ced565b5060408301518482036040860152612e298282612d88565b9150508091505092915050565b6000612e428383612de6565b905092915050565b6000602082019050919050565b6000612e6282612c47565b612e6c8185612c52565b935083602082028501612e7e85612c63565b8060005b85811015612eba5784840389528151612e9b8582612e36565b9450612ea683612e4a565b925060208a01995050600181019050612e82565b50829750879550505050505092915050565b612ed581612c93565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f15578082015181840152602081019050612efa565b60008484015250505050565b6000601f19601f8301169050919050565b6000612f3d82612edb565b612f478185612ee6565b9350612f57818560208601612ef7565b612f6081612f21565b840191505092915050565b60006060820190508181036000830152612f858186612e57565b9050612f946020830185612ecc565b8181036040830152612fa68184612f32565b9050949350505050565b7f4c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e206660008201527f6163657420746f20637574000000000000000000000000000000000000000000602082015250565b600061300c602b83612999565b915061301782612fb0565b604082019050919050565b6000602082019050818103600083015261303b81612fff565b9050919050565b7f4c69624469616d6f6e644375743a204164642066616365742063616e2774206260008201527f6520616464726573732830290000000000000000000000000000000000000000602082015250565b600061309e602c83612999565b91506130a982613042565b604082019050919050565b600060208201905081810360008301526130cd81613091565b9050919050565b7f4c69624469616d6f6e644375743a2043616e2774206164642066756e6374696f60008201527f6e207468617420616c7265616479206578697374730000000000000000000000602082015250565b6000613130603583612999565b915061313b826130d4565b604082019050919050565b6000602082019050818103600083015261315f81613123565b9050919050565b60006bffffffffffffffffffffffff82169050919050565b600061318982613166565b91506bffffffffffffffffffffffff82036131a7576131a6612bc6565b5b600182019050919050565b7f4c69624469616d6f6e644375743a2043616e2774207265706c6163652066756e60008201527f6374696f6e20776974682073616d652066756e6374696f6e0000000000000000602082015250565b600061320e603883612999565b9150613219826131b2565b604082019050919050565b6000602082019050818103600083015261323d81613201565b9050919050565b7f4c69624469616d6f6e644375743a2052656d6f7665206661636574206164647260008201527f657373206d757374206265206164647265737328302900000000000000000000602082015250565b60006132a0603683612999565b91506132ab82613244565b604082019050919050565b600060208201905081810360008301526132cf81613293565b9050919050565b7f4c69624469616d6f6e644375743a205f696e697420697320616464726573732860008201527f3029206275745f63616c6c64617461206973206e6f7420656d70747900000000602082015250565b6000613332603c83612999565b915061333d826132d6565b604082019050919050565b6000602082019050818103600083015261336181613325565b9050919050565b7f4c69624469616d6f6e644375743a205f63616c6c6461746120697320656d707460008201527f7920627574205f696e6974206973206e6f742061646472657373283029000000602082015250565b60006133c4603d83612999565b91506133cf82613368565b604082019050919050565b600060208201905081810360008301526133f3816133b7565b9050919050565b600081905092915050565b600061341082612edb565b61341a81856133fa565b935061342a818560208601612ef7565b80840191505092915050565b60006134428284613405565b915081905092915050565b600081519050919050565b60006134638261344d565b61346d8185612999565b935061347d818560208601612ef7565b61348681612f21565b840191505092915050565b600060208201905081810360008301526134ab8184613458565b905092915050565b7f4c69624469616d6f6e644375743a205f696e69742066756e6374696f6e20726560008201527f7665727465640000000000000000000000000000000000000000000000000000602082015250565b600061350f602683612999565b915061351a826134b3565b604082019050919050565b6000602082019050818103600083015261353e81613502565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f76652066756e6360008201527f74696f6e207468617420646f65736e2774206578697374000000000000000000602082015250565b60006135a1603783612999565b91506135ac82613545565b604082019050919050565b600060208201905081810360008301526135d081613594565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f766520696d6d7560008201527f7461626c652066756e6374696f6e000000000000000000000000000000000000602082015250565b6000613633602e83612999565b915061363e826135d7565b604082019050919050565b6000602082019050818103600083015261366281613626565b9050919050565b600061367482612bf5565b915061367f83612bf5565b925082820390508181111561369757613696612bc6565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfe4c69624469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f64654c69624469616d6f6e644375743a204e657720666163657420686173206e6f20636f6465a2646970667358221220ce25dd26737419727baaf3296d0861642400fd173299e708e7384026daae708164736f6c63430008110033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/DiamondCutFacet.json b/artifacts/DiamondCutFacet.json index ec35a43c..1dbd8988 100644 --- a/artifacts/DiamondCutFacet.json +++ b/artifacts/DiamondCutFacet.json @@ -45,6 +45,57 @@ "name": "DiamondCut", "type": "event" }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__e238b7d9", + "type": "bytes8" + } + ], + "name": "c_e238b7d9", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__e238b7d9", + "type": "bytes8" + } + ], + "name": "c_falsee238b7d9", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__e238b7d9", + "type": "bytes8" + } + ], + "name": "c_truee238b7d9", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [ { @@ -86,8 +137,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5061270a806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80631f931c1c14610030575b600080fd5b61004a600480360381019061004591906116ab565b61004c565b005b6100546100b6565b6100af8585906100649190611a49565b8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610151565b5050505050565b6100be610380565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461014f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014690611ae1565b60405180910390fd5b565b60005b835181101561033557600084828151811061017257610171611b01565b5b60200260200101516020015190506000600281111561019457610193611b30565b5b8160028111156101a7576101a6611b30565b5b036101f7576101f28583815181106101c2576101c1611b01565b5b6020026020010151600001518684815181106101e1576101e0611b01565b5b6020026020010151604001516103ad565b610321565b6001600281111561020b5761020a611b30565b5b81600281111561021e5761021d611b30565b5b0361026e5761026985838151811061023957610238611b01565b5b60200260200101516000015186848151811061025857610257611b01565b5b602002602001015160400151610624565b610320565b60028081111561028157610280611b30565b5b81600281111561029457610293611b30565b5b036102e4576102df8583815181106102af576102ae611b01565b5b6020026020010151600001518684815181106102ce576102cd611b01565b5b6020026020010151604001516108a5565b61031f565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161031690611bd1565b60405180910390fd5b5b5b50808061032d90611c2a565b915050610154565b507f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67383838360405161036993929190611f27565b60405180910390a161037b8282610a30565b505050565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b60008151116103f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103e890611fde565b60405180910390fd5b60006103fb610380565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361046c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161046390612070565b60405180910390fd5b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905090506000816bffffffffffffffffffffffff16036104d9576104d88285610c42565b5b60005b835181101561061d5760008482815181106104fa576104f9611b01565b5b602002602001015190506000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146105ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e590612102565b60405180910390fd5b6105fa8583868a610d1d565b83806106059061213a565b9450505050808061061590611c2a565b9150506104dc565b5050505050565b6000815111610668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065f90611fde565b60405180910390fd5b6000610672610380565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106da90612070565b60405180910390fd5b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905090506000816bffffffffffffffffffffffff16036107505761074f8285610c42565b5b60005b835181101561089e57600084828151811061077157610770611b01565b5b602002602001015190506000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085b906121e0565b60405180910390fd5b61086f858284610eca565b61087b8583868a610d1d565b83806108869061213a565b9450505050808061089690611c2a565b915050610753565b5050505050565b60008151116108e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e090611fde565b60405180910390fd5b60006108f3610380565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610964576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095b90612272565b60405180910390fd5b60005b8251811015610a2a57600083828151811061098557610984611b01565b5b602002602001015190506000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050610a15848284610eca565b50508080610a2290611c2a565b915050610967565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610aad576000815114610aa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9f90612304565b60405180910390fd5b610c3e565b6000815111610af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae890612396565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610b4757610b46826040518060600160405280602881526020016126896028913961152c565b5b6000808373ffffffffffffffffffffffffffffffffffffffff1683604051610b6f91906123f2565b600060405180830381855af49150503d8060008114610baa576040519150601f19603f3d011682016040523d82523d6000602084013e610baf565b606091505b509150915081610c3b57600081511115610c0057806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf7919061244d565b60405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c32906124e1565b60405180910390fd5b50505b5050565b610c64816040518060600160405280602481526020016126b16024913961152c565b81600201805490508260010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555081600201819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b81846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508360010160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018390806001815401808255809150506001900390600052602060002090600891828204019190066004029091909190916101000a81548163ffffffff021916908360e01c021790555080846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3090612573565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9e90612605565b60405180910390fd5b6000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050600060018560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905061107e9190612625565b90508082146112125760008560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000182815481106110df576110de611b01565b5b90600052602060002090600891828204019190066004029054906101000a900460e01b9050808660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001848154811061115b5761115a611b01565b5b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908360e01c021790555082866000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550505b8460010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180548061126657611265612659565b5b60019003818190600052602060002090600891828204019190066004026101000a81549063ffffffff02191690559055846000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a8154906bffffffffffffffffffffffff0219169055505060008103611525576000600186600201805490506113509190612625565b905060008660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490508181146114915760008760020183815481106113ba576113b9611b01565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050808860020183815481106113fe576113fd611b01565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818860010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550505b866002018054806114a5576114a4612659565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590558660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000905550505b5050505050565b6000823b9050600081118290611578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156f919061244d565b60405180910390fd5b50505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f8401126115b7576115b6611592565b5b8235905067ffffffffffffffff8111156115d4576115d3611597565b5b6020830191508360208202830111156115f0576115ef61159c565b5b9250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611622826115f7565b9050919050565b61163281611617565b811461163d57600080fd5b50565b60008135905061164f81611629565b92915050565b60008083601f84011261166b5761166a611592565b5b8235905067ffffffffffffffff81111561168857611687611597565b5b6020830191508360018202830111156116a4576116a361159c565b5b9250929050565b6000806000806000606086880312156116c7576116c6611588565b5b600086013567ffffffffffffffff8111156116e5576116e461158d565b5b6116f1888289016115a1565b9550955050602061170488828901611640565b935050604086013567ffffffffffffffff8111156117255761172461158d565b5b61173188828901611655565b92509250509295509295909350565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61178982611740565b810181811067ffffffffffffffff821117156117a8576117a7611751565b5b80604052505050565b60006117bb61157e565b90506117c78282611780565b919050565b600067ffffffffffffffff8211156117e7576117e6611751565b5b602082029050602081019050919050565b600080fd5b600080fd5b6003811061180f57600080fd5b50565b60008135905061182181611802565b92915050565b600067ffffffffffffffff82111561184257611841611751565b5b602082029050602081019050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61188881611853565b811461189357600080fd5b50565b6000813590506118a58161187f565b92915050565b60006118be6118b984611827565b6117b1565b905080838252602082019050602084028301858111156118e1576118e061159c565b5b835b8181101561190a57806118f68882611896565b8452602084019350506020810190506118e3565b5050509392505050565b600082601f83011261192957611928611592565b5b81356119398482602086016118ab565b91505092915050565b600060608284031215611958576119576117f8565b5b61196260606117b1565b9050600061197284828501611640565b600083015250602061198684828501611812565b602083015250604082013567ffffffffffffffff8111156119aa576119a96117fd565b5b6119b684828501611914565b60408301525092915050565b60006119d56119d0846117cc565b6117b1565b905080838252602082019050602084028301858111156119f8576119f761159c565b5b835b81811015611a3f57803567ffffffffffffffff811115611a1d57611a1c611592565b5b808601611a2a8982611942565b855260208501945050506020810190506119fa565b5050509392505050565b6000611a563684846119c2565b905092915050565b600082825260208201905092915050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b6000611acb602283611a5e565b9150611ad682611a6f565b604082019050919050565b60006020820190508181036000830152611afa81611abe565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4c69624469616d6f6e644375743a20496e636f7272656374204661636574437560008201527f74416374696f6e00000000000000000000000000000000000000000000000000602082015250565b6000611bbb602783611a5e565b9150611bc682611b5f565b604082019050919050565b60006020820190508181036000830152611bea81611bae565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000611c3582611c20565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611c6757611c66611bf1565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611ca781611617565b82525050565b60038110611cbe57611cbd611b30565b5b50565b6000819050611ccf82611cad565b919050565b6000611cdf82611cc1565b9050919050565b611cef81611cd4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611d2a81611853565b82525050565b6000611d3c8383611d21565b60208301905092915050565b6000602082019050919050565b6000611d6082611cf5565b611d6a8185611d00565b9350611d7583611d11565b8060005b83811015611da6578151611d8d8882611d30565b9750611d9883611d48565b925050600181019050611d79565b5085935050505092915050565b6000606083016000830151611dcb6000860182611c9e565b506020830151611dde6020860182611ce6565b5060408301518482036040860152611df68282611d55565b9150508091505092915050565b6000611e0f8383611db3565b905092915050565b6000602082019050919050565b6000611e2f82611c72565b611e398185611c7d565b935083602082028501611e4b85611c8e565b8060005b85811015611e875784840389528151611e688582611e03565b9450611e7383611e17565b925060208a01995050600181019050611e4f565b50829750879550505050505092915050565b611ea281611617565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611ee2578082015181840152602081019050611ec7565b60008484015250505050565b6000611ef982611ea8565b611f038185611eb3565b9350611f13818560208601611ec4565b611f1c81611740565b840191505092915050565b60006060820190508181036000830152611f418186611e24565b9050611f506020830185611e99565b8181036040830152611f628184611eee565b9050949350505050565b7f4c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e206660008201527f6163657420746f20637574000000000000000000000000000000000000000000602082015250565b6000611fc8602b83611a5e565b9150611fd382611f6c565b604082019050919050565b60006020820190508181036000830152611ff781611fbb565b9050919050565b7f4c69624469616d6f6e644375743a204164642066616365742063616e2774206260008201527f6520616464726573732830290000000000000000000000000000000000000000602082015250565b600061205a602c83611a5e565b915061206582611ffe565b604082019050919050565b600060208201905081810360008301526120898161204d565b9050919050565b7f4c69624469616d6f6e644375743a2043616e2774206164642066756e6374696f60008201527f6e207468617420616c7265616479206578697374730000000000000000000000602082015250565b60006120ec603583611a5e565b91506120f782612090565b604082019050919050565b6000602082019050818103600083015261211b816120df565b9050919050565b60006bffffffffffffffffffffffff82169050919050565b600061214582612122565b91506bffffffffffffffffffffffff820361216357612162611bf1565b5b600182019050919050565b7f4c69624469616d6f6e644375743a2043616e2774207265706c6163652066756e60008201527f6374696f6e20776974682073616d652066756e6374696f6e0000000000000000602082015250565b60006121ca603883611a5e565b91506121d58261216e565b604082019050919050565b600060208201905081810360008301526121f9816121bd565b9050919050565b7f4c69624469616d6f6e644375743a2052656d6f7665206661636574206164647260008201527f657373206d757374206265206164647265737328302900000000000000000000602082015250565b600061225c603683611a5e565b915061226782612200565b604082019050919050565b6000602082019050818103600083015261228b8161224f565b9050919050565b7f4c69624469616d6f6e644375743a205f696e697420697320616464726573732860008201527f3029206275745f63616c6c64617461206973206e6f7420656d70747900000000602082015250565b60006122ee603c83611a5e565b91506122f982612292565b604082019050919050565b6000602082019050818103600083015261231d816122e1565b9050919050565b7f4c69624469616d6f6e644375743a205f63616c6c6461746120697320656d707460008201527f7920627574205f696e6974206973206e6f742061646472657373283029000000602082015250565b6000612380603d83611a5e565b915061238b82612324565b604082019050919050565b600060208201905081810360008301526123af81612373565b9050919050565b600081905092915050565b60006123cc82611ea8565b6123d681856123b6565b93506123e6818560208601611ec4565b80840191505092915050565b60006123fe82846123c1565b915081905092915050565b600081519050919050565b600061241f82612409565b6124298185611a5e565b9350612439818560208601611ec4565b61244281611740565b840191505092915050565b600060208201905081810360008301526124678184612414565b905092915050565b7f4c69624469616d6f6e644375743a205f696e69742066756e6374696f6e20726560008201527f7665727465640000000000000000000000000000000000000000000000000000602082015250565b60006124cb602683611a5e565b91506124d68261246f565b604082019050919050565b600060208201905081810360008301526124fa816124be565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f76652066756e6360008201527f74696f6e207468617420646f65736e2774206578697374000000000000000000602082015250565b600061255d603783611a5e565b915061256882612501565b604082019050919050565b6000602082019050818103600083015261258c81612550565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f766520696d6d7560008201527f7461626c652066756e6374696f6e000000000000000000000000000000000000602082015250565b60006125ef602e83611a5e565b91506125fa82612593565b604082019050919050565b6000602082019050818103600083015261261e816125e2565b9050919050565b600061263082611c20565b915061263b83611c20565b925082820390508181111561265357612652611bf1565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfe4c69624469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f64654c69624469616d6f6e644375743a204e657720666163657420686173206e6f20636f6465a26469706673582212207fa2a888ad5bbe4de1458e663214e8a88a5f68b72dc15183dafb93f74374cabc64736f6c63430008110033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80631f931c1c14610030575b600080fd5b61004a600480360381019061004591906116ab565b61004c565b005b6100546100b6565b6100af8585906100649190611a49565b8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610151565b5050505050565b6100be610380565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461014f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014690611ae1565b60405180910390fd5b565b60005b835181101561033557600084828151811061017257610171611b01565b5b60200260200101516020015190506000600281111561019457610193611b30565b5b8160028111156101a7576101a6611b30565b5b036101f7576101f28583815181106101c2576101c1611b01565b5b6020026020010151600001518684815181106101e1576101e0611b01565b5b6020026020010151604001516103ad565b610321565b6001600281111561020b5761020a611b30565b5b81600281111561021e5761021d611b30565b5b0361026e5761026985838151811061023957610238611b01565b5b60200260200101516000015186848151811061025857610257611b01565b5b602002602001015160400151610624565b610320565b60028081111561028157610280611b30565b5b81600281111561029457610293611b30565b5b036102e4576102df8583815181106102af576102ae611b01565b5b6020026020010151600001518684815181106102ce576102cd611b01565b5b6020026020010151604001516108a5565b61031f565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161031690611bd1565b60405180910390fd5b5b5b50808061032d90611c2a565b915050610154565b507f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67383838360405161036993929190611f27565b60405180910390a161037b8282610a30565b505050565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b60008151116103f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103e890611fde565b60405180910390fd5b60006103fb610380565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361046c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161046390612070565b60405180910390fd5b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905090506000816bffffffffffffffffffffffff16036104d9576104d88285610c42565b5b60005b835181101561061d5760008482815181106104fa576104f9611b01565b5b602002602001015190506000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146105ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e590612102565b60405180910390fd5b6105fa8583868a610d1d565b83806106059061213a565b9450505050808061061590611c2a565b9150506104dc565b5050505050565b6000815111610668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065f90611fde565b60405180910390fd5b6000610672610380565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106da90612070565b60405180910390fd5b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905090506000816bffffffffffffffffffffffff16036107505761074f8285610c42565b5b60005b835181101561089e57600084828151811061077157610770611b01565b5b602002602001015190506000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085b906121e0565b60405180910390fd5b61086f858284610eca565b61087b8583868a610d1d565b83806108869061213a565b9450505050808061089690611c2a565b915050610753565b5050505050565b60008151116108e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e090611fde565b60405180910390fd5b60006108f3610380565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610964576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095b90612272565b60405180910390fd5b60005b8251811015610a2a57600083828151811061098557610984611b01565b5b602002602001015190506000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050610a15848284610eca565b50508080610a2290611c2a565b915050610967565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610aad576000815114610aa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9f90612304565b60405180910390fd5b610c3e565b6000815111610af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae890612396565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610b4757610b46826040518060600160405280602881526020016126896028913961152c565b5b6000808373ffffffffffffffffffffffffffffffffffffffff1683604051610b6f91906123f2565b600060405180830381855af49150503d8060008114610baa576040519150601f19603f3d011682016040523d82523d6000602084013e610baf565b606091505b509150915081610c3b57600081511115610c0057806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf7919061244d565b60405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c32906124e1565b60405180910390fd5b50505b5050565b610c64816040518060600160405280602481526020016126b16024913961152c565b81600201805490508260010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555081600201819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b81846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508360010160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018390806001815401808255809150506001900390600052602060002090600891828204019190066004029091909190916101000a81548163ffffffff021916908360e01c021790555080846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3090612573565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9e90612605565b60405180910390fd5b6000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050600060018560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905061107e9190612625565b90508082146112125760008560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000182815481106110df576110de611b01565b5b90600052602060002090600891828204019190066004029054906101000a900460e01b9050808660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001848154811061115b5761115a611b01565b5b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908360e01c021790555082866000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550505b8460010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180548061126657611265612659565b5b60019003818190600052602060002090600891828204019190066004026101000a81549063ffffffff02191690559055846000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a8154906bffffffffffffffffffffffff0219169055505060008103611525576000600186600201805490506113509190612625565b905060008660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490508181146114915760008760020183815481106113ba576113b9611b01565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050808860020183815481106113fe576113fd611b01565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818860010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550505b866002018054806114a5576114a4612659565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590558660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000905550505b5050505050565b6000823b9050600081118290611578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156f919061244d565b60405180910390fd5b50505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f8401126115b7576115b6611592565b5b8235905067ffffffffffffffff8111156115d4576115d3611597565b5b6020830191508360208202830111156115f0576115ef61159c565b5b9250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611622826115f7565b9050919050565b61163281611617565b811461163d57600080fd5b50565b60008135905061164f81611629565b92915050565b60008083601f84011261166b5761166a611592565b5b8235905067ffffffffffffffff81111561168857611687611597565b5b6020830191508360018202830111156116a4576116a361159c565b5b9250929050565b6000806000806000606086880312156116c7576116c6611588565b5b600086013567ffffffffffffffff8111156116e5576116e461158d565b5b6116f1888289016115a1565b9550955050602061170488828901611640565b935050604086013567ffffffffffffffff8111156117255761172461158d565b5b61173188828901611655565b92509250509295509295909350565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61178982611740565b810181811067ffffffffffffffff821117156117a8576117a7611751565b5b80604052505050565b60006117bb61157e565b90506117c78282611780565b919050565b600067ffffffffffffffff8211156117e7576117e6611751565b5b602082029050602081019050919050565b600080fd5b600080fd5b6003811061180f57600080fd5b50565b60008135905061182181611802565b92915050565b600067ffffffffffffffff82111561184257611841611751565b5b602082029050602081019050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61188881611853565b811461189357600080fd5b50565b6000813590506118a58161187f565b92915050565b60006118be6118b984611827565b6117b1565b905080838252602082019050602084028301858111156118e1576118e061159c565b5b835b8181101561190a57806118f68882611896565b8452602084019350506020810190506118e3565b5050509392505050565b600082601f83011261192957611928611592565b5b81356119398482602086016118ab565b91505092915050565b600060608284031215611958576119576117f8565b5b61196260606117b1565b9050600061197284828501611640565b600083015250602061198684828501611812565b602083015250604082013567ffffffffffffffff8111156119aa576119a96117fd565b5b6119b684828501611914565b60408301525092915050565b60006119d56119d0846117cc565b6117b1565b905080838252602082019050602084028301858111156119f8576119f761159c565b5b835b81811015611a3f57803567ffffffffffffffff811115611a1d57611a1c611592565b5b808601611a2a8982611942565b855260208501945050506020810190506119fa565b5050509392505050565b6000611a563684846119c2565b905092915050565b600082825260208201905092915050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b6000611acb602283611a5e565b9150611ad682611a6f565b604082019050919050565b60006020820190508181036000830152611afa81611abe565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4c69624469616d6f6e644375743a20496e636f7272656374204661636574437560008201527f74416374696f6e00000000000000000000000000000000000000000000000000602082015250565b6000611bbb602783611a5e565b9150611bc682611b5f565b604082019050919050565b60006020820190508181036000830152611bea81611bae565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000611c3582611c20565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611c6757611c66611bf1565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611ca781611617565b82525050565b60038110611cbe57611cbd611b30565b5b50565b6000819050611ccf82611cad565b919050565b6000611cdf82611cc1565b9050919050565b611cef81611cd4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611d2a81611853565b82525050565b6000611d3c8383611d21565b60208301905092915050565b6000602082019050919050565b6000611d6082611cf5565b611d6a8185611d00565b9350611d7583611d11565b8060005b83811015611da6578151611d8d8882611d30565b9750611d9883611d48565b925050600181019050611d79565b5085935050505092915050565b6000606083016000830151611dcb6000860182611c9e565b506020830151611dde6020860182611ce6565b5060408301518482036040860152611df68282611d55565b9150508091505092915050565b6000611e0f8383611db3565b905092915050565b6000602082019050919050565b6000611e2f82611c72565b611e398185611c7d565b935083602082028501611e4b85611c8e565b8060005b85811015611e875784840389528151611e688582611e03565b9450611e7383611e17565b925060208a01995050600181019050611e4f565b50829750879550505050505092915050565b611ea281611617565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611ee2578082015181840152602081019050611ec7565b60008484015250505050565b6000611ef982611ea8565b611f038185611eb3565b9350611f13818560208601611ec4565b611f1c81611740565b840191505092915050565b60006060820190508181036000830152611f418186611e24565b9050611f506020830185611e99565b8181036040830152611f628184611eee565b9050949350505050565b7f4c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e206660008201527f6163657420746f20637574000000000000000000000000000000000000000000602082015250565b6000611fc8602b83611a5e565b9150611fd382611f6c565b604082019050919050565b60006020820190508181036000830152611ff781611fbb565b9050919050565b7f4c69624469616d6f6e644375743a204164642066616365742063616e2774206260008201527f6520616464726573732830290000000000000000000000000000000000000000602082015250565b600061205a602c83611a5e565b915061206582611ffe565b604082019050919050565b600060208201905081810360008301526120898161204d565b9050919050565b7f4c69624469616d6f6e644375743a2043616e2774206164642066756e6374696f60008201527f6e207468617420616c7265616479206578697374730000000000000000000000602082015250565b60006120ec603583611a5e565b91506120f782612090565b604082019050919050565b6000602082019050818103600083015261211b816120df565b9050919050565b60006bffffffffffffffffffffffff82169050919050565b600061214582612122565b91506bffffffffffffffffffffffff820361216357612162611bf1565b5b600182019050919050565b7f4c69624469616d6f6e644375743a2043616e2774207265706c6163652066756e60008201527f6374696f6e20776974682073616d652066756e6374696f6e0000000000000000602082015250565b60006121ca603883611a5e565b91506121d58261216e565b604082019050919050565b600060208201905081810360008301526121f9816121bd565b9050919050565b7f4c69624469616d6f6e644375743a2052656d6f7665206661636574206164647260008201527f657373206d757374206265206164647265737328302900000000000000000000602082015250565b600061225c603683611a5e565b915061226782612200565b604082019050919050565b6000602082019050818103600083015261228b8161224f565b9050919050565b7f4c69624469616d6f6e644375743a205f696e697420697320616464726573732860008201527f3029206275745f63616c6c64617461206973206e6f7420656d70747900000000602082015250565b60006122ee603c83611a5e565b91506122f982612292565b604082019050919050565b6000602082019050818103600083015261231d816122e1565b9050919050565b7f4c69624469616d6f6e644375743a205f63616c6c6461746120697320656d707460008201527f7920627574205f696e6974206973206e6f742061646472657373283029000000602082015250565b6000612380603d83611a5e565b915061238b82612324565b604082019050919050565b600060208201905081810360008301526123af81612373565b9050919050565b600081905092915050565b60006123cc82611ea8565b6123d681856123b6565b93506123e6818560208601611ec4565b80840191505092915050565b60006123fe82846123c1565b915081905092915050565b600081519050919050565b600061241f82612409565b6124298185611a5e565b9350612439818560208601611ec4565b61244281611740565b840191505092915050565b600060208201905081810360008301526124678184612414565b905092915050565b7f4c69624469616d6f6e644375743a205f696e69742066756e6374696f6e20726560008201527f7665727465640000000000000000000000000000000000000000000000000000602082015250565b60006124cb602683611a5e565b91506124d68261246f565b604082019050919050565b600060208201905081810360008301526124fa816124be565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f76652066756e6360008201527f74696f6e207468617420646f65736e2774206578697374000000000000000000602082015250565b600061255d603783611a5e565b915061256882612501565b604082019050919050565b6000602082019050818103600083015261258c81612550565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f766520696d6d7560008201527f7461626c652066756e6374696f6e000000000000000000000000000000000000602082015250565b60006125ef602e83611a5e565b91506125fa82612593565b604082019050919050565b6000602082019050818103600083015261261e816125e2565b9050919050565b600061263082611c20565b915061263b83611c20565b925082820390508181111561265357612652611bf1565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfe4c69624469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f64654c69624469616d6f6e644375743a204e657720666163657420686173206e6f20636f6465a26469706673582212207fa2a888ad5bbe4de1458e663214e8a88a5f68b72dc15183dafb93f74374cabc64736f6c63430008110033", + "bytecode": "0x608060405234801561001057600080fd5b506139dc806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80631f931c1c14610051578063a38775811461006d578063a44a1d6d1461009d578063b6f4ad23146100b9575b600080fd5b61006b600480360381019061006691906128c2565b6100e9565b005b610087600480360381019061008291906129af565b6101b7565b60405161009491906129f7565b60405180910390f35b6100b760048036038101906100b291906129af565b6101be565b005b6100d360048036038101906100ce91906129af565b6101c1565b6040516100e091906129f7565b60405180910390f35b6100fd67289dfeb4c66136a960c01b6101be565b61011167e5a597ae739b87c260c01b6101be565b610125679b7aa0fdc6113ac960c01b6101be565b61012d6101cc565b6101416734b421f3a9ef97d960c01b6101be565b610155677c88f654614b38de60c01b6101be565b6101b08585906101659190612d1b565b8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506102cb565b5050505050565b6000919050565b50565b600060019050919050565b6101e06721b40df6734b4e6460c01b610716565b6101f4677276b6d1bbf7b68b60c01b610716565b61020867f8611dbcb55a1f7860c01b610716565b61021c676cedf54251a3375160c01b610716565b610224610719565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ac90612db3565b60405180910390fd5b6102c967e452355b21bbd41e60c01b610716565b565b6102df67a19105344d9f01ff60c01b610716565b6102f367b64c935a270824d460c01b610716565b61030767472298b363a8ccd460c01b610716565b60005b835181101561067b57610327679f2b3e118cce749f60c01b610716565b61033b67d896c15712e4c99e60c01b610716565b60008482815181106103505761034f612dd3565b5b602002602001015160200151905061037267e9e9e49fe14a781e60c01b610716565b61038667c54028706882e3fd60c01b610716565b6000600281111561039a57610399612e02565b5b8160028111156103ad576103ac612e02565b5b03610439576103c667f4728512f8de3aa360c01b610716565b6103da6740469cb01cf2faa260c01b610716565b6103ee6721754418551a963060c01b610716565b61043485838151811061040457610403612dd3565b5b60200260200101516000015186848151811061042357610422612dd3565b5b602002602001015160400151610797565b610667565b61044d67964166c6a112694260c01b610716565b610461675cddae6a9e8d84f060c01b610716565b6001600281111561047557610474612e02565b5b81600281111561048857610487612e02565b5b03610514576104a1676469914f5066ffc460c01b610716565b6104b567cf470716cadf00df60c01b610716565b6104c967f4605d17f3b1301c60c01b610716565b61050f8583815181106104df576104de612dd3565b5b6020026020010151600001518684815181106104fe576104fd612dd3565b5b602002602001015160400151610c93565b610666565b61052867e72a92bcd515975b60c01b610716565b61053c67b1e174fb1bb1b85360c01b610716565b60028081111561054f5761054e612e02565b5b81600281111561056257610561612e02565b5b036105ee5761057b67db0f598297fb7fbc60c01b610716565b61058f671a55e89439142ee060c01b610716565b6105a36711513d20488a52e060c01b610716565b6105e98583815181106105b9576105b8612dd3565b5b6020026020010151600001518684815181106105d8576105d7612dd3565b5b6020026020010151604001516111c1565b610665565b61060267cf3e056f531577e760c01b610716565b610616671903ab370305c25960c01b610716565b61062a676af2c3acde0bf38760c01b610716565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065c90612ea3565b60405180910390fd5b5b5b50808061067390612efc565b91505061030a565b5061069067dc19ebbaa4095b3160c01b610716565b6106a4678571dd875084a3e060c01b610716565b7f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6738383836040516106d7939291906131f9565b60405180910390a16106f367faecfc839f48e07b60c01b610716565b6107076792cae661f317b4ce60c01b610716565b61071182826114c8565b505050565b50565b600061072f674f9afbb757d80e6360c01b610716565b610743674b823103125da15660c01b610716565b610757674ab715c231c1608d60c01b610716565b60007fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c905061079067982d9bb86701efa860c01b610716565b8091505090565b6107ab67cc97399e32da22a560c01b610716565b6107bf67021d8eb4be5452a860c01b610716565b6107d3678748409130ac41fa60c01b610716565b6107e767ccd015372bd45b9c60c01b610716565b600081511161082b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610822906132b0565b60405180910390fd5b61083f67d0bcd87037df4e5a60c01b610716565b6108536777b6df3c8e2ebf4660c01b610716565b6108676755a810a63d06fcdd60c01b610716565b6000610871610719565b90506108876747e187c4c65f108c60c01b610716565b61089b670bde1222440aa4dd60c01b610716565b6108af67f7810a880d4fe12d60c01b610716565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361091e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091590613342565b60405180910390fd5b610932676e4814773ca1e6f960c01b610716565b61094667abb5961c588ff7dc60c01b610716565b61095a6775b1393f5ceb0a4860c01b610716565b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905090506109ba6779cb28ccf660334260c01b610716565b6109ce671a64ec3fd612cafd60c01b610716565b6000816bffffffffffffffffffffffff1603610a2f576109f8672a23378c0ae85db760c01b610716565b610a0c670288376b7f20f78660c01b610716565b610a2067d14bbd8396b718cd60c01b610716565b610a2a8285611973565b610a44565b610a43675eb466f90a620b0f60c01b610716565b5b610a5867fcd8a57751c34a1160c01b610716565b610a6c67c014c8ff907100cb60c01b610716565b60005b8351811015610c8c57610a8c677134da3b2ea217c360c01b610716565b610aa0678ef84b1f8594c55e60c01b610716565b6000848281518110610ab557610ab4612dd3565b5b60200260200101519050610ad367e6627f219f43163560c01b610716565b610ae7672b0989e1ce351d2c60c01b610716565b6000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050610b76678edc0ee3600e6f7160c01b610716565b610b8a67acff68f00aaf198060c01b610716565b610b9e678e7e9da0f87df0c460c01b610716565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610c0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c04906133d4565b60405180910390fd5b610c2167de5c2f108b7a76ad60c01b610716565b610c35679df301acb4b4e7b560c01b610716565b610c4967d5dd90cfdfe4af7760c01b610716565b610c558583868a611ac6565b610c6967b77905e3474e693060c01b610716565b8380610c749061340c565b94505050508080610c8490612efc565b915050610a6f565b5050505050565b610ca7672faab333134f8f2b60c01b610716565b610cbb67f1aef7c8a9655d5360c01b610716565b610ccf67d203ed109c17319660c01b610716565b610ce367f4734d8378f4311060c01b610716565b6000815111610d27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1e906132b0565b60405180910390fd5b610d3b6754602ce0fe5a43bf60c01b610716565b610d4f67f46efb4b2c2c709e60c01b610716565b610d6367610110a281fa82c760c01b610716565b6000610d6d610719565b9050610d8367edc9c99031ecb10d60c01b610716565b610d976767fe440300c94a3460c01b610716565b610dab6784ec279df893a23160c01b610716565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1190613342565b60405180910390fd5b610e2e678fb1a303062b7c3660c01b610716565b610e42672659fafa49e6fe9a60c01b610716565b610e5667151721b3adf3095360c01b610716565b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805490509050610eb66747aaf74cd533212060c01b610716565b610eca6703de6b9bbbb4e65460c01b610716565b6000816bffffffffffffffffffffffff1603610f2b57610ef4677f40383c8703753660c01b610716565b610f0867bee7ffe190c4ad3c60c01b610716565b610f1c6755bd06ec28bd8be360c01b610716565b610f268285611973565b610f40565b610f3f67dd6dd2122982fcbd60c01b610716565b5b610f5467c00fc6f5b3cfec0760c01b610716565b610f686712c602b6c749bc1660c01b610716565b60005b83518110156111ba57610f8867b01c581fb6bf76d460c01b610716565b610f9c6772bf81d7d68cd5cc60c01b610716565b6000848281518110610fb157610fb0612dd3565b5b60200260200101519050610fcf67f378c2c5d2ac591860c01b610716565b610fe3672abe9487f14424bf60c01b610716565b6000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061107267c938893e73b6cc8660c01b610716565b61108667b830452a6260fe5860c01b610716565b61109a67732490d4bd014f1160c01b610716565b8673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611108576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ff906134b2565b60405180910390fd5b61111c67307ef01dc603673f60c01b610716565b61113067df9b9ad53f3498bb60c01b610716565b61114467ef74a1c742a2ef4b60c01b610716565b61114f858284611cd7565b6111636709eba8384d15433760c01b610716565b61117767eb34f0e39cc002be60c01b610716565b6111838583868a611ac6565b61119767c8e26e167d4df53e60c01b610716565b83806111a29061340c565b945050505080806111b290612efc565b915050610f6b565b5050505050565b6111d567484f249b41b9afdf60c01b610716565b6111e9672afee721a436189e60c01b610716565b6111fd6790c0f4303981d53860c01b610716565b61121167b69809b50e9b29b160c01b610716565b6000815111611255576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124c906132b0565b60405180910390fd5b6112696703449e0de1d16e1460c01b610716565b61127d67043931a3bf63a76460c01b610716565b6112916783eac4de134a189760c01b610716565b600061129b610719565b90506112b1676fa9503e3a33edf160c01b610716565b6112c567565ff8422e73f48260c01b610716565b6112d967a43a53c1c8fdb01860c01b610716565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611348576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133f90613544565b60405180910390fd5b61135c67a83ec82cf318ce9960c01b610716565b6113706729de67dbee8a781960c01b610716565b6113846778ae44bab32ab16d60c01b610716565b60005b82518110156114c2576113a467c86ec2c930ebf39060c01b610716565b6113b867bb2f8bac9067d0d960c01b610716565b60008382815181106113cd576113cc612dd3565b5b602002602001015190506113eb67afdb7f7eafa2419160c01b610716565b6113ff67336a3f69f07dbd0a60c01b610716565b6000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061148e67a9a5f6b739625a6060c01b610716565b6114a267fd046ea59cd94d2a60c01b610716565b6114ad848284611cd7565b505080806114ba90612efc565b915050611387565b50505050565b6114dc67029e1a56337e048460c01b610716565b6114f067165337675d3a848660c01b610716565b611504674613682e59aed10a60c01b610716565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115e55761154c6788e41d767c30804a60c01b610716565b61156067509782c75193bd1560c01b610716565b611574677c55baba9bedefc760c01b610716565b6115886779b630e4a1a501b160c01b610716565b60008151146115cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c3906135d6565b60405180910390fd5b6115e0671cf5cba47462738c60c01b610716565b61196f565b6115f967d87fba57f9fd56d260c01b610716565b61160d6785ecbfea545b551c60c01b610716565b611621675a99520875f542d360c01b610716565b611635677335d4909eb3f6ed60c01b610716565b6000815111611679576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167090613668565b60405180910390fd5b61168d67e2308116fde49ef660c01b610716565b6116a167e68a1e15bfb15c1560c01b610716565b6116b567e2f9c57761f027da60c01b610716565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461174b576116fc677e43db5cf3dda55a60c01b610716565b61171067f9079825f16296d860c01b610716565b6117246722169a84f6e6288860c01b610716565b6117468260405180606001604052806028815260200161395b602891396126a3565b611760565b61175f6756028f6713aeb61660c01b610716565b5b611774678b5d37b494e8790c60c01b610716565b6117886732f3ff1c4d01de4c60c01b610716565b6000808373ffffffffffffffffffffffffffffffffffffffff16836040516117b091906136c4565b600060405180830381855af49150503d80600081146117eb576040519150601f19603f3d011682016040523d82523d6000602084013e6117f0565b606091505b509150915061180967cb519b28cdf2316460c01b610716565b61181d67d3126d202060687460c01b610716565b81611958576118366713957e4282cdd48760c01b610716565b61184a676bcab06e51e2612c60c01b610716565b61185e67d3bfca2e5aa4d84960c01b610716565b6000815111156118e15761187c673aa967c1a865c9c260c01b610716565b61189067f27acd53282addda60c01b610716565b6118a46780ab759cddda78d060c01b610716565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d8919061371f565b60405180910390fd5b6118f567a434d1c24e3903bc60c01b610716565b61190967d32e3505412c44c560c01b610716565b61191d677d8323cb74d7c2d860c01b610716565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194f906137b3565b60405180910390fd5b61196c67bc6651a6d16ea71460c01b610716565b50505b5050565b6119876745cff900de072b7660c01b610716565b61199b67ac3e31ef1ea5c74960c01b610716565b6119af673364688f11db6d0d60c01b610716565b6119d181604051806060016040528060248152602001613983602491396126a3565b6119e567b9f39a1cc8adecc260c01b610716565b81600201805490508260010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550611a496718823160317e019160c01b610716565b611a5d676ae1118a96d2a90560c01b610716565b81600201819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b611ada67a2899c53551cdd3760c01b610716565b611aee678197d74e06e4145f60c01b610716565b81846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550611b87677d99602b18ea589060c01b610716565b611b9b67351b6ed487ae748960c01b610716565b8360010160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018390806001815401808255809150506001900390600052602060002090600891828204019190066004029091909190916101000a81548163ffffffff021916908360e01c0217905550611c3c67c24c5f99c230f00760c01b610716565b80846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b611ceb6787c03a3a3424540460c01b610716565b611cff672e3806f37bc3a9d460c01b610716565b611d13678d411e0bbad3542c60c01b610716565b611d276726e5377f8db7750360c01b610716565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8d90613845565b60405180910390fd5b611daa67ebcad92e55ad094460c01b610716565b611dbe6751364413e637bba560c01b610716565b611dd26792673f376289e6e260c01b610716565b611de667f72487d3a8cf4ac460c01b610716565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4b906138d7565b60405180910390fd5b611e6867a4c3c236bcab394860c01b610716565b611e7c677e1962b66805ad7060c01b610716565b611e90670d999328d8a5d9c360c01b610716565b6000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050611f2567d10337e1e2ecfc3960c01b610716565b611f39677b893f30fdd7ad7060c01b610716565b600060018560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050611f8f91906138f7565b9050611fa567bb5bf925ceece87660c01b610716565b611fb9676df862371a13aaa560c01b610716565b8082146121b357611fd467156a8665fdd7526f60c01b610716565b611fe8673cefa8bc28e7d12860c01b610716565b611ffc67bdc380bd85401db960c01b610716565b60008560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001828154811061205457612053612dd3565b5b90600052602060002090600891828204019190066004029054906101000a900460e01b905061208d671de77bf8f010eaec60c01b610716565b808660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000184815481106120e4576120e3612dd3565b5b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908360e01c0217905550612128673af62f9c8f759fb160c01b610716565b82866000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550506121c8565b6121c7671d9b423266d067f060c01b610716565b5b6121dc67018034db5579529460c01b610716565b6121f067a1c9b3117b7c6ab660c01b610716565b8460010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054806122445761224361392b565b5b60019003818190600052602060002090600891828204019190066004026101000a81549063ffffffff0219169055905561228867559997c386b3648460c01b610716565b846000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a8154906bffffffffffffffffffffffff021916905550506123386760a723ea0e7e1d4860c01b610716565b61234c67ff433d7c2e2ac4be60c01b610716565b60008103612687576123686762db4abf7f19cb2060c01b610716565b61237c67efe6f413d09d1ebd60c01b610716565b61239067ec471a641a3edf7960c01b610716565b6000600186600201805490506123a691906138f7565b90506123bb6622a131c51aff2c60c01b610716565b6123cf67919cfbc3e76423a760c01b610716565b60008660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154905061242c674e9eba62f8a28b9860c01b610716565b6124406799c973d204243fa060c01b610716565b81811461259e5761245b673c79f4e3584d9a5960c01b610716565b61246f67990168f15e45b6b860c01b610716565b612483678582ef208a32dc4260c01b610716565b600087600201838154811061249b5761249a612dd3565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506124dc671085af932ae9ef7260c01b610716565b808860020183815481106124f3576124f2612dd3565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061254f67ad58108eb86eb21760c01b610716565b818860010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550506125b3565b6125b267804be83a13f0191a60c01b610716565b5b6125c767b1f28e33128b33c960c01b610716565b6125db67c4cd68f75da79ff060c01b610716565b866002018054806125ef576125ee61392b565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905561263867a379df54f7bb9fb460c01b610716565b8660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009055505061269c565b61269b671627b1de00b56a1b60c01b610716565b5b5050505050565b6126b767f91685f166b890e160c01b610716565b6126cb672a44665c1fa886a160c01b610716565b6126df6756e8a556d62b0f5e60c01b610716565b60006126f567996ed809f12ff03160c01b610716565b823b905061270d6709c9d04de4f50a1e60c01b610716565b61272167b71747c1488d4acd60c01b610716565b61273567f052a96327eb0abf60c01b610716565b60008111829061277b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612772919061371f565b60405180910390fd5b5061279067b956b25dc409113860c01b610716565b505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f8401126127ce576127cd6127a9565b5b8235905067ffffffffffffffff8111156127eb576127ea6127ae565b5b602083019150836020820283011115612807576128066127b3565b5b9250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006128398261280e565b9050919050565b6128498161282e565b811461285457600080fd5b50565b60008135905061286681612840565b92915050565b60008083601f840112612882576128816127a9565b5b8235905067ffffffffffffffff81111561289f5761289e6127ae565b5b6020830191508360018202830111156128bb576128ba6127b3565b5b9250929050565b6000806000806000606086880312156128de576128dd61279f565b5b600086013567ffffffffffffffff8111156128fc576128fb6127a4565b5b612908888289016127b8565b9550955050602061291b88828901612857565b935050604086013567ffffffffffffffff81111561293c5761293b6127a4565b5b6129488882890161286c565b92509250509295509295909350565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b61298c81612957565b811461299757600080fd5b50565b6000813590506129a981612983565b92915050565b6000602082840312156129c5576129c461279f565b5b60006129d38482850161299a565b91505092915050565b60008115159050919050565b6129f1816129dc565b82525050565b6000602082019050612a0c60008301846129e8565b92915050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612a5b82612a12565b810181811067ffffffffffffffff82111715612a7a57612a79612a23565b5b80604052505050565b6000612a8d612795565b9050612a998282612a52565b919050565b600067ffffffffffffffff821115612ab957612ab8612a23565b5b602082029050602081019050919050565b600080fd5b600080fd5b60038110612ae157600080fd5b50565b600081359050612af381612ad4565b92915050565b600067ffffffffffffffff821115612b1457612b13612a23565b5b602082029050602081019050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612b5a81612b25565b8114612b6557600080fd5b50565b600081359050612b7781612b51565b92915050565b6000612b90612b8b84612af9565b612a83565b90508083825260208201905060208402830185811115612bb357612bb26127b3565b5b835b81811015612bdc5780612bc88882612b68565b845260208401935050602081019050612bb5565b5050509392505050565b600082601f830112612bfb57612bfa6127a9565b5b8135612c0b848260208601612b7d565b91505092915050565b600060608284031215612c2a57612c29612aca565b5b612c346060612a83565b90506000612c4484828501612857565b6000830152506020612c5884828501612ae4565b602083015250604082013567ffffffffffffffff811115612c7c57612c7b612acf565b5b612c8884828501612be6565b60408301525092915050565b6000612ca7612ca284612a9e565b612a83565b90508083825260208201905060208402830185811115612cca57612cc96127b3565b5b835b81811015612d1157803567ffffffffffffffff811115612cef57612cee6127a9565b5b808601612cfc8982612c14565b85526020850194505050602081019050612ccc565b5050509392505050565b6000612d28368484612c94565b905092915050565b600082825260208201905092915050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d9d602283612d30565b9150612da882612d41565b604082019050919050565b60006020820190508181036000830152612dcc81612d90565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4c69624469616d6f6e644375743a20496e636f7272656374204661636574437560008201527f74416374696f6e00000000000000000000000000000000000000000000000000602082015250565b6000612e8d602783612d30565b9150612e9882612e31565b604082019050919050565b60006020820190508181036000830152612ebc81612e80565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000612f0782612ef2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f3957612f38612ec3565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612f798161282e565b82525050565b60038110612f9057612f8f612e02565b5b50565b6000819050612fa182612f7f565b919050565b6000612fb182612f93565b9050919050565b612fc181612fa6565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ffc81612b25565b82525050565b600061300e8383612ff3565b60208301905092915050565b6000602082019050919050565b600061303282612fc7565b61303c8185612fd2565b935061304783612fe3565b8060005b8381101561307857815161305f8882613002565b975061306a8361301a565b92505060018101905061304b565b5085935050505092915050565b600060608301600083015161309d6000860182612f70565b5060208301516130b06020860182612fb8565b50604083015184820360408601526130c88282613027565b9150508091505092915050565b60006130e18383613085565b905092915050565b6000602082019050919050565b600061310182612f44565b61310b8185612f4f565b93508360208202850161311d85612f60565b8060005b85811015613159578484038952815161313a85826130d5565b9450613145836130e9565b925060208a01995050600181019050613121565b50829750879550505050505092915050565b6131748161282e565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156131b4578082015181840152602081019050613199565b60008484015250505050565b60006131cb8261317a565b6131d58185613185565b93506131e5818560208601613196565b6131ee81612a12565b840191505092915050565b6000606082019050818103600083015261321381866130f6565b9050613222602083018561316b565b818103604083015261323481846131c0565b9050949350505050565b7f4c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e206660008201527f6163657420746f20637574000000000000000000000000000000000000000000602082015250565b600061329a602b83612d30565b91506132a58261323e565b604082019050919050565b600060208201905081810360008301526132c98161328d565b9050919050565b7f4c69624469616d6f6e644375743a204164642066616365742063616e2774206260008201527f6520616464726573732830290000000000000000000000000000000000000000602082015250565b600061332c602c83612d30565b9150613337826132d0565b604082019050919050565b6000602082019050818103600083015261335b8161331f565b9050919050565b7f4c69624469616d6f6e644375743a2043616e2774206164642066756e6374696f60008201527f6e207468617420616c7265616479206578697374730000000000000000000000602082015250565b60006133be603583612d30565b91506133c982613362565b604082019050919050565b600060208201905081810360008301526133ed816133b1565b9050919050565b60006bffffffffffffffffffffffff82169050919050565b6000613417826133f4565b91506bffffffffffffffffffffffff820361343557613434612ec3565b5b600182019050919050565b7f4c69624469616d6f6e644375743a2043616e2774207265706c6163652066756e60008201527f6374696f6e20776974682073616d652066756e6374696f6e0000000000000000602082015250565b600061349c603883612d30565b91506134a782613440565b604082019050919050565b600060208201905081810360008301526134cb8161348f565b9050919050565b7f4c69624469616d6f6e644375743a2052656d6f7665206661636574206164647260008201527f657373206d757374206265206164647265737328302900000000000000000000602082015250565b600061352e603683612d30565b9150613539826134d2565b604082019050919050565b6000602082019050818103600083015261355d81613521565b9050919050565b7f4c69624469616d6f6e644375743a205f696e697420697320616464726573732860008201527f3029206275745f63616c6c64617461206973206e6f7420656d70747900000000602082015250565b60006135c0603c83612d30565b91506135cb82613564565b604082019050919050565b600060208201905081810360008301526135ef816135b3565b9050919050565b7f4c69624469616d6f6e644375743a205f63616c6c6461746120697320656d707460008201527f7920627574205f696e6974206973206e6f742061646472657373283029000000602082015250565b6000613652603d83612d30565b915061365d826135f6565b604082019050919050565b6000602082019050818103600083015261368181613645565b9050919050565b600081905092915050565b600061369e8261317a565b6136a88185613688565b93506136b8818560208601613196565b80840191505092915050565b60006136d08284613693565b915081905092915050565b600081519050919050565b60006136f1826136db565b6136fb8185612d30565b935061370b818560208601613196565b61371481612a12565b840191505092915050565b6000602082019050818103600083015261373981846136e6565b905092915050565b7f4c69624469616d6f6e644375743a205f696e69742066756e6374696f6e20726560008201527f7665727465640000000000000000000000000000000000000000000000000000602082015250565b600061379d602683612d30565b91506137a882613741565b604082019050919050565b600060208201905081810360008301526137cc81613790565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f76652066756e6360008201527f74696f6e207468617420646f65736e2774206578697374000000000000000000602082015250565b600061382f603783612d30565b915061383a826137d3565b604082019050919050565b6000602082019050818103600083015261385e81613822565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f766520696d6d7560008201527f7461626c652066756e6374696f6e000000000000000000000000000000000000602082015250565b60006138c1602e83612d30565b91506138cc82613865565b604082019050919050565b600060208201905081810360008301526138f0816138b4565b9050919050565b600061390282612ef2565b915061390d83612ef2565b925082820390508181111561392557613924612ec3565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfe4c69624469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f64654c69624469616d6f6e644375743a204e657720666163657420686173206e6f20636f6465a2646970667358221220397d6bc128858945df35e9fa5d35a9136bd69a90d0474bc2b1e565efa4670e3264736f6c63430008110033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80631f931c1c14610051578063a38775811461006d578063a44a1d6d1461009d578063b6f4ad23146100b9575b600080fd5b61006b600480360381019061006691906128c2565b6100e9565b005b610087600480360381019061008291906129af565b6101b7565b60405161009491906129f7565b60405180910390f35b6100b760048036038101906100b291906129af565b6101be565b005b6100d360048036038101906100ce91906129af565b6101c1565b6040516100e091906129f7565b60405180910390f35b6100fd67289dfeb4c66136a960c01b6101be565b61011167e5a597ae739b87c260c01b6101be565b610125679b7aa0fdc6113ac960c01b6101be565b61012d6101cc565b6101416734b421f3a9ef97d960c01b6101be565b610155677c88f654614b38de60c01b6101be565b6101b08585906101659190612d1b565b8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506102cb565b5050505050565b6000919050565b50565b600060019050919050565b6101e06721b40df6734b4e6460c01b610716565b6101f4677276b6d1bbf7b68b60c01b610716565b61020867f8611dbcb55a1f7860c01b610716565b61021c676cedf54251a3375160c01b610716565b610224610719565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ac90612db3565b60405180910390fd5b6102c967e452355b21bbd41e60c01b610716565b565b6102df67a19105344d9f01ff60c01b610716565b6102f367b64c935a270824d460c01b610716565b61030767472298b363a8ccd460c01b610716565b60005b835181101561067b57610327679f2b3e118cce749f60c01b610716565b61033b67d896c15712e4c99e60c01b610716565b60008482815181106103505761034f612dd3565b5b602002602001015160200151905061037267e9e9e49fe14a781e60c01b610716565b61038667c54028706882e3fd60c01b610716565b6000600281111561039a57610399612e02565b5b8160028111156103ad576103ac612e02565b5b03610439576103c667f4728512f8de3aa360c01b610716565b6103da6740469cb01cf2faa260c01b610716565b6103ee6721754418551a963060c01b610716565b61043485838151811061040457610403612dd3565b5b60200260200101516000015186848151811061042357610422612dd3565b5b602002602001015160400151610797565b610667565b61044d67964166c6a112694260c01b610716565b610461675cddae6a9e8d84f060c01b610716565b6001600281111561047557610474612e02565b5b81600281111561048857610487612e02565b5b03610514576104a1676469914f5066ffc460c01b610716565b6104b567cf470716cadf00df60c01b610716565b6104c967f4605d17f3b1301c60c01b610716565b61050f8583815181106104df576104de612dd3565b5b6020026020010151600001518684815181106104fe576104fd612dd3565b5b602002602001015160400151610c93565b610666565b61052867e72a92bcd515975b60c01b610716565b61053c67b1e174fb1bb1b85360c01b610716565b60028081111561054f5761054e612e02565b5b81600281111561056257610561612e02565b5b036105ee5761057b67db0f598297fb7fbc60c01b610716565b61058f671a55e89439142ee060c01b610716565b6105a36711513d20488a52e060c01b610716565b6105e98583815181106105b9576105b8612dd3565b5b6020026020010151600001518684815181106105d8576105d7612dd3565b5b6020026020010151604001516111c1565b610665565b61060267cf3e056f531577e760c01b610716565b610616671903ab370305c25960c01b610716565b61062a676af2c3acde0bf38760c01b610716565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065c90612ea3565b60405180910390fd5b5b5b50808061067390612efc565b91505061030a565b5061069067dc19ebbaa4095b3160c01b610716565b6106a4678571dd875084a3e060c01b610716565b7f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6738383836040516106d7939291906131f9565b60405180910390a16106f367faecfc839f48e07b60c01b610716565b6107076792cae661f317b4ce60c01b610716565b61071182826114c8565b505050565b50565b600061072f674f9afbb757d80e6360c01b610716565b610743674b823103125da15660c01b610716565b610757674ab715c231c1608d60c01b610716565b60007fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c905061079067982d9bb86701efa860c01b610716565b8091505090565b6107ab67cc97399e32da22a560c01b610716565b6107bf67021d8eb4be5452a860c01b610716565b6107d3678748409130ac41fa60c01b610716565b6107e767ccd015372bd45b9c60c01b610716565b600081511161082b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610822906132b0565b60405180910390fd5b61083f67d0bcd87037df4e5a60c01b610716565b6108536777b6df3c8e2ebf4660c01b610716565b6108676755a810a63d06fcdd60c01b610716565b6000610871610719565b90506108876747e187c4c65f108c60c01b610716565b61089b670bde1222440aa4dd60c01b610716565b6108af67f7810a880d4fe12d60c01b610716565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361091e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091590613342565b60405180910390fd5b610932676e4814773ca1e6f960c01b610716565b61094667abb5961c588ff7dc60c01b610716565b61095a6775b1393f5ceb0a4860c01b610716565b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905090506109ba6779cb28ccf660334260c01b610716565b6109ce671a64ec3fd612cafd60c01b610716565b6000816bffffffffffffffffffffffff1603610a2f576109f8672a23378c0ae85db760c01b610716565b610a0c670288376b7f20f78660c01b610716565b610a2067d14bbd8396b718cd60c01b610716565b610a2a8285611973565b610a44565b610a43675eb466f90a620b0f60c01b610716565b5b610a5867fcd8a57751c34a1160c01b610716565b610a6c67c014c8ff907100cb60c01b610716565b60005b8351811015610c8c57610a8c677134da3b2ea217c360c01b610716565b610aa0678ef84b1f8594c55e60c01b610716565b6000848281518110610ab557610ab4612dd3565b5b60200260200101519050610ad367e6627f219f43163560c01b610716565b610ae7672b0989e1ce351d2c60c01b610716565b6000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050610b76678edc0ee3600e6f7160c01b610716565b610b8a67acff68f00aaf198060c01b610716565b610b9e678e7e9da0f87df0c460c01b610716565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610c0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c04906133d4565b60405180910390fd5b610c2167de5c2f108b7a76ad60c01b610716565b610c35679df301acb4b4e7b560c01b610716565b610c4967d5dd90cfdfe4af7760c01b610716565b610c558583868a611ac6565b610c6967b77905e3474e693060c01b610716565b8380610c749061340c565b94505050508080610c8490612efc565b915050610a6f565b5050505050565b610ca7672faab333134f8f2b60c01b610716565b610cbb67f1aef7c8a9655d5360c01b610716565b610ccf67d203ed109c17319660c01b610716565b610ce367f4734d8378f4311060c01b610716565b6000815111610d27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1e906132b0565b60405180910390fd5b610d3b6754602ce0fe5a43bf60c01b610716565b610d4f67f46efb4b2c2c709e60c01b610716565b610d6367610110a281fa82c760c01b610716565b6000610d6d610719565b9050610d8367edc9c99031ecb10d60c01b610716565b610d976767fe440300c94a3460c01b610716565b610dab6784ec279df893a23160c01b610716565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1190613342565b60405180910390fd5b610e2e678fb1a303062b7c3660c01b610716565b610e42672659fafa49e6fe9a60c01b610716565b610e5667151721b3adf3095360c01b610716565b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805490509050610eb66747aaf74cd533212060c01b610716565b610eca6703de6b9bbbb4e65460c01b610716565b6000816bffffffffffffffffffffffff1603610f2b57610ef4677f40383c8703753660c01b610716565b610f0867bee7ffe190c4ad3c60c01b610716565b610f1c6755bd06ec28bd8be360c01b610716565b610f268285611973565b610f40565b610f3f67dd6dd2122982fcbd60c01b610716565b5b610f5467c00fc6f5b3cfec0760c01b610716565b610f686712c602b6c749bc1660c01b610716565b60005b83518110156111ba57610f8867b01c581fb6bf76d460c01b610716565b610f9c6772bf81d7d68cd5cc60c01b610716565b6000848281518110610fb157610fb0612dd3565b5b60200260200101519050610fcf67f378c2c5d2ac591860c01b610716565b610fe3672abe9487f14424bf60c01b610716565b6000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061107267c938893e73b6cc8660c01b610716565b61108667b830452a6260fe5860c01b610716565b61109a67732490d4bd014f1160c01b610716565b8673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611108576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ff906134b2565b60405180910390fd5b61111c67307ef01dc603673f60c01b610716565b61113067df9b9ad53f3498bb60c01b610716565b61114467ef74a1c742a2ef4b60c01b610716565b61114f858284611cd7565b6111636709eba8384d15433760c01b610716565b61117767eb34f0e39cc002be60c01b610716565b6111838583868a611ac6565b61119767c8e26e167d4df53e60c01b610716565b83806111a29061340c565b945050505080806111b290612efc565b915050610f6b565b5050505050565b6111d567484f249b41b9afdf60c01b610716565b6111e9672afee721a436189e60c01b610716565b6111fd6790c0f4303981d53860c01b610716565b61121167b69809b50e9b29b160c01b610716565b6000815111611255576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124c906132b0565b60405180910390fd5b6112696703449e0de1d16e1460c01b610716565b61127d67043931a3bf63a76460c01b610716565b6112916783eac4de134a189760c01b610716565b600061129b610719565b90506112b1676fa9503e3a33edf160c01b610716565b6112c567565ff8422e73f48260c01b610716565b6112d967a43a53c1c8fdb01860c01b610716565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611348576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133f90613544565b60405180910390fd5b61135c67a83ec82cf318ce9960c01b610716565b6113706729de67dbee8a781960c01b610716565b6113846778ae44bab32ab16d60c01b610716565b60005b82518110156114c2576113a467c86ec2c930ebf39060c01b610716565b6113b867bb2f8bac9067d0d960c01b610716565b60008382815181106113cd576113cc612dd3565b5b602002602001015190506113eb67afdb7f7eafa2419160c01b610716565b6113ff67336a3f69f07dbd0a60c01b610716565b6000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061148e67a9a5f6b739625a6060c01b610716565b6114a267fd046ea59cd94d2a60c01b610716565b6114ad848284611cd7565b505080806114ba90612efc565b915050611387565b50505050565b6114dc67029e1a56337e048460c01b610716565b6114f067165337675d3a848660c01b610716565b611504674613682e59aed10a60c01b610716565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115e55761154c6788e41d767c30804a60c01b610716565b61156067509782c75193bd1560c01b610716565b611574677c55baba9bedefc760c01b610716565b6115886779b630e4a1a501b160c01b610716565b60008151146115cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c3906135d6565b60405180910390fd5b6115e0671cf5cba47462738c60c01b610716565b61196f565b6115f967d87fba57f9fd56d260c01b610716565b61160d6785ecbfea545b551c60c01b610716565b611621675a99520875f542d360c01b610716565b611635677335d4909eb3f6ed60c01b610716565b6000815111611679576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167090613668565b60405180910390fd5b61168d67e2308116fde49ef660c01b610716565b6116a167e68a1e15bfb15c1560c01b610716565b6116b567e2f9c57761f027da60c01b610716565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461174b576116fc677e43db5cf3dda55a60c01b610716565b61171067f9079825f16296d860c01b610716565b6117246722169a84f6e6288860c01b610716565b6117468260405180606001604052806028815260200161395b602891396126a3565b611760565b61175f6756028f6713aeb61660c01b610716565b5b611774678b5d37b494e8790c60c01b610716565b6117886732f3ff1c4d01de4c60c01b610716565b6000808373ffffffffffffffffffffffffffffffffffffffff16836040516117b091906136c4565b600060405180830381855af49150503d80600081146117eb576040519150601f19603f3d011682016040523d82523d6000602084013e6117f0565b606091505b509150915061180967cb519b28cdf2316460c01b610716565b61181d67d3126d202060687460c01b610716565b81611958576118366713957e4282cdd48760c01b610716565b61184a676bcab06e51e2612c60c01b610716565b61185e67d3bfca2e5aa4d84960c01b610716565b6000815111156118e15761187c673aa967c1a865c9c260c01b610716565b61189067f27acd53282addda60c01b610716565b6118a46780ab759cddda78d060c01b610716565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d8919061371f565b60405180910390fd5b6118f567a434d1c24e3903bc60c01b610716565b61190967d32e3505412c44c560c01b610716565b61191d677d8323cb74d7c2d860c01b610716565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194f906137b3565b60405180910390fd5b61196c67bc6651a6d16ea71460c01b610716565b50505b5050565b6119876745cff900de072b7660c01b610716565b61199b67ac3e31ef1ea5c74960c01b610716565b6119af673364688f11db6d0d60c01b610716565b6119d181604051806060016040528060248152602001613983602491396126a3565b6119e567b9f39a1cc8adecc260c01b610716565b81600201805490508260010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550611a496718823160317e019160c01b610716565b611a5d676ae1118a96d2a90560c01b610716565b81600201819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b611ada67a2899c53551cdd3760c01b610716565b611aee678197d74e06e4145f60c01b610716565b81846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550611b87677d99602b18ea589060c01b610716565b611b9b67351b6ed487ae748960c01b610716565b8360010160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018390806001815401808255809150506001900390600052602060002090600891828204019190066004029091909190916101000a81548163ffffffff021916908360e01c0217905550611c3c67c24c5f99c230f00760c01b610716565b80846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b611ceb6787c03a3a3424540460c01b610716565b611cff672e3806f37bc3a9d460c01b610716565b611d13678d411e0bbad3542c60c01b610716565b611d276726e5377f8db7750360c01b610716565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8d90613845565b60405180910390fd5b611daa67ebcad92e55ad094460c01b610716565b611dbe6751364413e637bba560c01b610716565b611dd26792673f376289e6e260c01b610716565b611de667f72487d3a8cf4ac460c01b610716565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4b906138d7565b60405180910390fd5b611e6867a4c3c236bcab394860c01b610716565b611e7c677e1962b66805ad7060c01b610716565b611e90670d999328d8a5d9c360c01b610716565b6000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050611f2567d10337e1e2ecfc3960c01b610716565b611f39677b893f30fdd7ad7060c01b610716565b600060018560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050611f8f91906138f7565b9050611fa567bb5bf925ceece87660c01b610716565b611fb9676df862371a13aaa560c01b610716565b8082146121b357611fd467156a8665fdd7526f60c01b610716565b611fe8673cefa8bc28e7d12860c01b610716565b611ffc67bdc380bd85401db960c01b610716565b60008560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001828154811061205457612053612dd3565b5b90600052602060002090600891828204019190066004029054906101000a900460e01b905061208d671de77bf8f010eaec60c01b610716565b808660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000184815481106120e4576120e3612dd3565b5b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908360e01c0217905550612128673af62f9c8f759fb160c01b610716565b82866000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550506121c8565b6121c7671d9b423266d067f060c01b610716565b5b6121dc67018034db5579529460c01b610716565b6121f067a1c9b3117b7c6ab660c01b610716565b8460010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054806122445761224361392b565b5b60019003818190600052602060002090600891828204019190066004026101000a81549063ffffffff0219169055905561228867559997c386b3648460c01b610716565b846000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a8154906bffffffffffffffffffffffff021916905550506123386760a723ea0e7e1d4860c01b610716565b61234c67ff433d7c2e2ac4be60c01b610716565b60008103612687576123686762db4abf7f19cb2060c01b610716565b61237c67efe6f413d09d1ebd60c01b610716565b61239067ec471a641a3edf7960c01b610716565b6000600186600201805490506123a691906138f7565b90506123bb6622a131c51aff2c60c01b610716565b6123cf67919cfbc3e76423a760c01b610716565b60008660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154905061242c674e9eba62f8a28b9860c01b610716565b6124406799c973d204243fa060c01b610716565b81811461259e5761245b673c79f4e3584d9a5960c01b610716565b61246f67990168f15e45b6b860c01b610716565b612483678582ef208a32dc4260c01b610716565b600087600201838154811061249b5761249a612dd3565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506124dc671085af932ae9ef7260c01b610716565b808860020183815481106124f3576124f2612dd3565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061254f67ad58108eb86eb21760c01b610716565b818860010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550506125b3565b6125b267804be83a13f0191a60c01b610716565b5b6125c767b1f28e33128b33c960c01b610716565b6125db67c4cd68f75da79ff060c01b610716565b866002018054806125ef576125ee61392b565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905561263867a379df54f7bb9fb460c01b610716565b8660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009055505061269c565b61269b671627b1de00b56a1b60c01b610716565b5b5050505050565b6126b767f91685f166b890e160c01b610716565b6126cb672a44665c1fa886a160c01b610716565b6126df6756e8a556d62b0f5e60c01b610716565b60006126f567996ed809f12ff03160c01b610716565b823b905061270d6709c9d04de4f50a1e60c01b610716565b61272167b71747c1488d4acd60c01b610716565b61273567f052a96327eb0abf60c01b610716565b60008111829061277b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612772919061371f565b60405180910390fd5b5061279067b956b25dc409113860c01b610716565b505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f8401126127ce576127cd6127a9565b5b8235905067ffffffffffffffff8111156127eb576127ea6127ae565b5b602083019150836020820283011115612807576128066127b3565b5b9250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006128398261280e565b9050919050565b6128498161282e565b811461285457600080fd5b50565b60008135905061286681612840565b92915050565b60008083601f840112612882576128816127a9565b5b8235905067ffffffffffffffff81111561289f5761289e6127ae565b5b6020830191508360018202830111156128bb576128ba6127b3565b5b9250929050565b6000806000806000606086880312156128de576128dd61279f565b5b600086013567ffffffffffffffff8111156128fc576128fb6127a4565b5b612908888289016127b8565b9550955050602061291b88828901612857565b935050604086013567ffffffffffffffff81111561293c5761293b6127a4565b5b6129488882890161286c565b92509250509295509295909350565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b61298c81612957565b811461299757600080fd5b50565b6000813590506129a981612983565b92915050565b6000602082840312156129c5576129c461279f565b5b60006129d38482850161299a565b91505092915050565b60008115159050919050565b6129f1816129dc565b82525050565b6000602082019050612a0c60008301846129e8565b92915050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612a5b82612a12565b810181811067ffffffffffffffff82111715612a7a57612a79612a23565b5b80604052505050565b6000612a8d612795565b9050612a998282612a52565b919050565b600067ffffffffffffffff821115612ab957612ab8612a23565b5b602082029050602081019050919050565b600080fd5b600080fd5b60038110612ae157600080fd5b50565b600081359050612af381612ad4565b92915050565b600067ffffffffffffffff821115612b1457612b13612a23565b5b602082029050602081019050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612b5a81612b25565b8114612b6557600080fd5b50565b600081359050612b7781612b51565b92915050565b6000612b90612b8b84612af9565b612a83565b90508083825260208201905060208402830185811115612bb357612bb26127b3565b5b835b81811015612bdc5780612bc88882612b68565b845260208401935050602081019050612bb5565b5050509392505050565b600082601f830112612bfb57612bfa6127a9565b5b8135612c0b848260208601612b7d565b91505092915050565b600060608284031215612c2a57612c29612aca565b5b612c346060612a83565b90506000612c4484828501612857565b6000830152506020612c5884828501612ae4565b602083015250604082013567ffffffffffffffff811115612c7c57612c7b612acf565b5b612c8884828501612be6565b60408301525092915050565b6000612ca7612ca284612a9e565b612a83565b90508083825260208201905060208402830185811115612cca57612cc96127b3565b5b835b81811015612d1157803567ffffffffffffffff811115612cef57612cee6127a9565b5b808601612cfc8982612c14565b85526020850194505050602081019050612ccc565b5050509392505050565b6000612d28368484612c94565b905092915050565b600082825260208201905092915050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d9d602283612d30565b9150612da882612d41565b604082019050919050565b60006020820190508181036000830152612dcc81612d90565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4c69624469616d6f6e644375743a20496e636f7272656374204661636574437560008201527f74416374696f6e00000000000000000000000000000000000000000000000000602082015250565b6000612e8d602783612d30565b9150612e9882612e31565b604082019050919050565b60006020820190508181036000830152612ebc81612e80565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000612f0782612ef2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f3957612f38612ec3565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612f798161282e565b82525050565b60038110612f9057612f8f612e02565b5b50565b6000819050612fa182612f7f565b919050565b6000612fb182612f93565b9050919050565b612fc181612fa6565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ffc81612b25565b82525050565b600061300e8383612ff3565b60208301905092915050565b6000602082019050919050565b600061303282612fc7565b61303c8185612fd2565b935061304783612fe3565b8060005b8381101561307857815161305f8882613002565b975061306a8361301a565b92505060018101905061304b565b5085935050505092915050565b600060608301600083015161309d6000860182612f70565b5060208301516130b06020860182612fb8565b50604083015184820360408601526130c88282613027565b9150508091505092915050565b60006130e18383613085565b905092915050565b6000602082019050919050565b600061310182612f44565b61310b8185612f4f565b93508360208202850161311d85612f60565b8060005b85811015613159578484038952815161313a85826130d5565b9450613145836130e9565b925060208a01995050600181019050613121565b50829750879550505050505092915050565b6131748161282e565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156131b4578082015181840152602081019050613199565b60008484015250505050565b60006131cb8261317a565b6131d58185613185565b93506131e5818560208601613196565b6131ee81612a12565b840191505092915050565b6000606082019050818103600083015261321381866130f6565b9050613222602083018561316b565b818103604083015261323481846131c0565b9050949350505050565b7f4c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e206660008201527f6163657420746f20637574000000000000000000000000000000000000000000602082015250565b600061329a602b83612d30565b91506132a58261323e565b604082019050919050565b600060208201905081810360008301526132c98161328d565b9050919050565b7f4c69624469616d6f6e644375743a204164642066616365742063616e2774206260008201527f6520616464726573732830290000000000000000000000000000000000000000602082015250565b600061332c602c83612d30565b9150613337826132d0565b604082019050919050565b6000602082019050818103600083015261335b8161331f565b9050919050565b7f4c69624469616d6f6e644375743a2043616e2774206164642066756e6374696f60008201527f6e207468617420616c7265616479206578697374730000000000000000000000602082015250565b60006133be603583612d30565b91506133c982613362565b604082019050919050565b600060208201905081810360008301526133ed816133b1565b9050919050565b60006bffffffffffffffffffffffff82169050919050565b6000613417826133f4565b91506bffffffffffffffffffffffff820361343557613434612ec3565b5b600182019050919050565b7f4c69624469616d6f6e644375743a2043616e2774207265706c6163652066756e60008201527f6374696f6e20776974682073616d652066756e6374696f6e0000000000000000602082015250565b600061349c603883612d30565b91506134a782613440565b604082019050919050565b600060208201905081810360008301526134cb8161348f565b9050919050565b7f4c69624469616d6f6e644375743a2052656d6f7665206661636574206164647260008201527f657373206d757374206265206164647265737328302900000000000000000000602082015250565b600061352e603683612d30565b9150613539826134d2565b604082019050919050565b6000602082019050818103600083015261355d81613521565b9050919050565b7f4c69624469616d6f6e644375743a205f696e697420697320616464726573732860008201527f3029206275745f63616c6c64617461206973206e6f7420656d70747900000000602082015250565b60006135c0603c83612d30565b91506135cb82613564565b604082019050919050565b600060208201905081810360008301526135ef816135b3565b9050919050565b7f4c69624469616d6f6e644375743a205f63616c6c6461746120697320656d707460008201527f7920627574205f696e6974206973206e6f742061646472657373283029000000602082015250565b6000613652603d83612d30565b915061365d826135f6565b604082019050919050565b6000602082019050818103600083015261368181613645565b9050919050565b600081905092915050565b600061369e8261317a565b6136a88185613688565b93506136b8818560208601613196565b80840191505092915050565b60006136d08284613693565b915081905092915050565b600081519050919050565b60006136f1826136db565b6136fb8185612d30565b935061370b818560208601613196565b61371481612a12565b840191505092915050565b6000602082019050818103600083015261373981846136e6565b905092915050565b7f4c69624469616d6f6e644375743a205f696e69742066756e6374696f6e20726560008201527f7665727465640000000000000000000000000000000000000000000000000000602082015250565b600061379d602683612d30565b91506137a882613741565b604082019050919050565b600060208201905081810360008301526137cc81613790565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f76652066756e6360008201527f74696f6e207468617420646f65736e2774206578697374000000000000000000602082015250565b600061382f603783612d30565b915061383a826137d3565b604082019050919050565b6000602082019050818103600083015261385e81613822565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f766520696d6d7560008201527f7461626c652066756e6374696f6e000000000000000000000000000000000000602082015250565b60006138c1602e83612d30565b91506138cc82613865565b604082019050919050565b600060208201905081810360008301526138f0816138b4565b9050919050565b600061390282612ef2565b915061390d83612ef2565b925082820390508181111561392557613924612ec3565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfe4c69624469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f64654c69624469616d6f6e644375743a204e657720666163657420686173206e6f20636f6465a2646970667358221220397d6bc128858945df35e9fa5d35a9136bd69a90d0474bc2b1e565efa4670e3264736f6c63430008110033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/DiamondLoupeFacet.json b/artifacts/DiamondLoupeFacet.json index 0a1ffab1..126015f9 100644 --- a/artifacts/DiamondLoupeFacet.json +++ b/artifacts/DiamondLoupeFacet.json @@ -3,6 +3,57 @@ "contractName": "DiamondLoupeFacet", "sourceName": "src/bridges/facets/DiamondLoupeFacet.sol", "abi": [ + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__cb71d28d", + "type": "bytes8" + } + ], + "name": "c_cb71d28d", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__cb71d28d", + "type": "bytes8" + } + ], + "name": "c_falsecb71d28d", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__cb71d28d", + "type": "bytes8" + } + ], + "name": "c_truecb71d28d", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [ { @@ -99,8 +150,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50610c0c806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806301ffc9a71461005c57806352ef6b2c1461008c5780637a0ed627146100aa578063adfca15e146100c8578063cdffacc6146100f8575b600080fd5b6100766004803603810190610071919061068f565b610128565b60405161008391906106d7565b60405180910390f35b61009461019e565b6040516100a191906107e2565b60405180910390f35b6100b261023b565b6040516100bf91906109c1565b60405180910390f35b6100e260048036038101906100dd9190610a0f565b61045e565b6040516100ef9190610aab565b60405180910390f35b610112600480360381019061010d919061068f565b610549565b60405161011f9190610adc565b60405180910390f35b6000806101336105d5565b9050806003016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff16915050919050565b606060006101aa6105d5565b90508060020180548060200260200160405190810160405280929190818152602001828054801561023057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116101e6575b505050505091505090565b606060006102476105d5565b90506000816002018054905090508067ffffffffffffffff81111561026f5761026e610af7565b5b6040519080825280602002602001820160405280156102a857816020015b610295610602565b81526020019060019003908161028d5790505b50925060005b818110156104585760008360020182815481106102ce576102cd610b26565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508085838151811061030f5761030e610b26565b5b60200260200101516000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508360010160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180548060200260200160405190810160405280929190818152602001828054801561041d57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116103ca5790505b505050505085838151811061043557610434610b26565b5b60200260200101516020018190525050808061045090610b8e565b9150506102ae565b50505090565b6060600061046a6105d5565b90508060010160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180548060200260200160405190810160405280929190818152602001828054801561053c57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116104e95790505b5050505050915050919050565b6000806105546105d5565b9050806000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61066c81610637565b811461067757600080fd5b50565b60008135905061068981610663565b92915050565b6000602082840312156106a5576106a4610632565b5b60006106b38482850161067a565b91505092915050565b60008115159050919050565b6106d1816106bc565b82525050565b60006020820190506106ec60008301846106c8565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006107498261071e565b9050919050565b6107598161073e565b82525050565b600061076b8383610750565b60208301905092915050565b6000602082019050919050565b600061078f826106f2565b61079981856106fd565b93506107a48361070e565b8060005b838110156107d55781516107bc888261075f565b97506107c783610777565b9250506001810190506107a8565b5085935050505092915050565b600060208201905081810360008301526107fc8184610784565b905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61086581610637565b82525050565b6000610877838361085c565b60208301905092915050565b6000602082019050919050565b600061089b82610830565b6108a5818561083b565b93506108b08361084c565b8060005b838110156108e15781516108c8888261086b565b97506108d383610883565b9250506001810190506108b4565b5085935050505092915050565b60006040830160008301516109066000860182610750565b506020830151848203602086015261091e8282610890565b9150508091505092915050565b600061093783836108ee565b905092915050565b6000602082019050919050565b600061095782610804565b610961818561080f565b93508360208202850161097385610820565b8060005b858110156109af5784840389528151610990858261092b565b945061099b8361093f565b925060208a01995050600181019050610977565b50829750879550505050505092915050565b600060208201905081810360008301526109db818461094c565b905092915050565b6109ec8161073e565b81146109f757600080fd5b50565b600081359050610a09816109e3565b92915050565b600060208284031215610a2557610a24610632565b5b6000610a33848285016109fa565b91505092915050565b600082825260208201905092915050565b6000610a5882610830565b610a628185610a3c565b9350610a6d8361084c565b8060005b83811015610a9e578151610a85888261086b565b9750610a9083610883565b925050600181019050610a71565b5085935050505092915050565b60006020820190508181036000830152610ac58184610a4d565b905092915050565b610ad68161073e565b82525050565b6000602082019050610af16000830184610acd565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000610b9982610b84565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610bcb57610bca610b55565b5b60018201905091905056fea2646970667358221220ef9c4d5ee27fa9078434fe5fd9d16f9b8885f43dc1a58f1befea84c4bbc0077664736f6c63430008110033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c806301ffc9a71461005c57806352ef6b2c1461008c5780637a0ed627146100aa578063adfca15e146100c8578063cdffacc6146100f8575b600080fd5b6100766004803603810190610071919061068f565b610128565b60405161008391906106d7565b60405180910390f35b61009461019e565b6040516100a191906107e2565b60405180910390f35b6100b261023b565b6040516100bf91906109c1565b60405180910390f35b6100e260048036038101906100dd9190610a0f565b61045e565b6040516100ef9190610aab565b60405180910390f35b610112600480360381019061010d919061068f565b610549565b60405161011f9190610adc565b60405180910390f35b6000806101336105d5565b9050806003016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff16915050919050565b606060006101aa6105d5565b90508060020180548060200260200160405190810160405280929190818152602001828054801561023057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116101e6575b505050505091505090565b606060006102476105d5565b90506000816002018054905090508067ffffffffffffffff81111561026f5761026e610af7565b5b6040519080825280602002602001820160405280156102a857816020015b610295610602565b81526020019060019003908161028d5790505b50925060005b818110156104585760008360020182815481106102ce576102cd610b26565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508085838151811061030f5761030e610b26565b5b60200260200101516000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508360010160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180548060200260200160405190810160405280929190818152602001828054801561041d57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116103ca5790505b505050505085838151811061043557610434610b26565b5b60200260200101516020018190525050808061045090610b8e565b9150506102ae565b50505090565b6060600061046a6105d5565b90508060010160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180548060200260200160405190810160405280929190818152602001828054801561053c57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116104e95790505b5050505050915050919050565b6000806105546105d5565b9050806000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61066c81610637565b811461067757600080fd5b50565b60008135905061068981610663565b92915050565b6000602082840312156106a5576106a4610632565b5b60006106b38482850161067a565b91505092915050565b60008115159050919050565b6106d1816106bc565b82525050565b60006020820190506106ec60008301846106c8565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006107498261071e565b9050919050565b6107598161073e565b82525050565b600061076b8383610750565b60208301905092915050565b6000602082019050919050565b600061078f826106f2565b61079981856106fd565b93506107a48361070e565b8060005b838110156107d55781516107bc888261075f565b97506107c783610777565b9250506001810190506107a8565b5085935050505092915050565b600060208201905081810360008301526107fc8184610784565b905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61086581610637565b82525050565b6000610877838361085c565b60208301905092915050565b6000602082019050919050565b600061089b82610830565b6108a5818561083b565b93506108b08361084c565b8060005b838110156108e15781516108c8888261086b565b97506108d383610883565b9250506001810190506108b4565b5085935050505092915050565b60006040830160008301516109066000860182610750565b506020830151848203602086015261091e8282610890565b9150508091505092915050565b600061093783836108ee565b905092915050565b6000602082019050919050565b600061095782610804565b610961818561080f565b93508360208202850161097385610820565b8060005b858110156109af5784840389528151610990858261092b565b945061099b8361093f565b925060208a01995050600181019050610977565b50829750879550505050505092915050565b600060208201905081810360008301526109db818461094c565b905092915050565b6109ec8161073e565b81146109f757600080fd5b50565b600081359050610a09816109e3565b92915050565b600060208284031215610a2557610a24610632565b5b6000610a33848285016109fa565b91505092915050565b600082825260208201905092915050565b6000610a5882610830565b610a628185610a3c565b9350610a6d8361084c565b8060005b83811015610a9e578151610a85888261086b565b9750610a9083610883565b925050600181019050610a71565b5085935050505092915050565b60006020820190508181036000830152610ac58184610a4d565b905092915050565b610ad68161073e565b82525050565b6000602082019050610af16000830184610acd565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000610b9982610b84565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610bcb57610bca610b55565b5b60018201905091905056fea2646970667358221220ef9c4d5ee27fa9078434fe5fd9d16f9b8885f43dc1a58f1befea84c4bbc0077664736f6c63430008110033", + "bytecode": "0x608060405234801561001057600080fd5b50610fed806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063adfca15e1161005b578063adfca15e14610115578063cdffacc614610145578063cffb5dec14610175578063f9f7c365146101a557610088565b806301ffc9a71461008d5780631a7cfa86146100bd57806352ef6b2c146100d95780637a0ed627146100f7575b600080fd5b6100a760048036038101906100a291906109eb565b6101d5565b6040516100b49190610a33565b60405180910390f35b6100d760048036038101906100d29190610aa6565b6102b0565b005b6100e16102b3565b6040516100ee9190610bc3565b60405180910390f35b6100ff6103a0565b60405161010c9190610da2565b60405180910390f35b61012f600480360381019061012a9190610df0565b6106b3565b60405161013c9190610e8c565b60405180910390f35b61015f600480360381019061015a91906109eb565b6107ee565b60405161016c9190610ebd565b60405180910390f35b61018f600480360381019061018a9190610aa6565b6108cb565b60405161019c9190610a33565b60405180910390f35b6101bf60048036038101906101ba9190610aa6565b6108d2565b6040516101cc9190610a33565b60405180910390f35b60006101eb67285efd6f4e8eb41160c01b6102b0565b6101ff679667d234011edd8560c01b6102b0565b610213674d70fb37c7dd087760c01b6102b0565b600061021d6108dd565b90506102336735ba6e9c5701761860c01b6102b0565b61024767610d1f4a0bb3823a60c01b6102b0565b806003016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff16915050919050565b50565b60606102c9677f1de3f66179977b60c01b6102b0565b6102dd6774595e158391e43760c01b6102b0565b6102f167a74d20d6eaba1b4660c01b6102b0565b60006102fb6108dd565b905061031167f0ed24c854f6c73360c01b6102b0565b8060020180548060200260200160405190810160405280929190818152602001828054801561039557602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161034b575b505050505091505090565b60606103b6674d80155458127eb460c01b6102b0565b6103ca679fa63900be221ebb60c01b6102b0565b6103de67eaad7781e34e55e860c01b6102b0565b60006103e86108dd565b90506103fe67cceaf84e7e9eb3f060c01b6102b0565b61041267e5500b1af7b537b760c01b6102b0565b600081600201805490509050610432670ef3f15519e6694a60c01b6102b0565b8067ffffffffffffffff81111561044c5761044b610ed8565b5b60405190808252806020026020018201604052801561048557816020015b61047261095e565b81526020019060019003908161046a5790505b50925061049c67162378066aec876b60c01b6102b0565b6104b0673b4a5083af334b4d60c01b6102b0565b60005b818110156106ad576104cf678fba1acd7dd9812160c01b6102b0565b6104e36736cf091544e7072160c01b6102b0565b60008360020182815481106104fb576104fa610f07565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061053c6701b5da9682d1107960c01b6102b0565b808583815181106105505761054f610f07565b5b60200260200101516000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506105a267c2f3430262c30ae560c01b6102b0565b8360010160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180548060200260200160405190810160405280929190818152602001828054801561067257602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161061f5790505b505050505085838151811061068a57610689610f07565b5b6020026020010151602001819052505080806106a590610f6f565b9150506104b3565b50505090565b60606106c967f494b22b7fae5c5160c01b6102b0565b6106dd679693544bdf9bcfbb60c01b6102b0565b6106f167f40dfac7753be95460c01b6102b0565b60006106fb6108dd565b90506107116744ef83ae08424b2d60c01b6102b0565b8060010160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054806020026020016040519081016040528092919081815260200182805480156107e157602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161078e5790505b5050505050915050919050565b60006108046721cd709b6caf5a7760c01b6102b0565b6108186798ae13998b39ee3760c01b6102b0565b61082c67fe378eb71e09567360c01b6102b0565b60006108366108dd565b905061084c670e751d6d9cd00f0860c01b6102b0565b806000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b6000919050565b600060019050919050565b60006108f3674f9afbb757d80e6360c01b61095b565b610907674b823103125da15660c01b61095b565b61091b674ab715c231c1608d60c01b61095b565b60007fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c905061095467982d9bb86701efa860c01b61095b565b8091505090565b50565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6109c881610993565b81146109d357600080fd5b50565b6000813590506109e5816109bf565b92915050565b600060208284031215610a0157610a0061098e565b5b6000610a0f848285016109d6565b91505092915050565b60008115159050919050565b610a2d81610a18565b82525050565b6000602082019050610a486000830184610a24565b92915050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b610a8381610a4e565b8114610a8e57600080fd5b50565b600081359050610aa081610a7a565b92915050565b600060208284031215610abc57610abb61098e565b5b6000610aca84828501610a91565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610b2a82610aff565b9050919050565b610b3a81610b1f565b82525050565b6000610b4c8383610b31565b60208301905092915050565b6000602082019050919050565b6000610b7082610ad3565b610b7a8185610ade565b9350610b8583610aef565b8060005b83811015610bb6578151610b9d8882610b40565b9750610ba883610b58565b925050600181019050610b89565b5085935050505092915050565b60006020820190508181036000830152610bdd8184610b65565b905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b610c4681610993565b82525050565b6000610c588383610c3d565b60208301905092915050565b6000602082019050919050565b6000610c7c82610c11565b610c868185610c1c565b9350610c9183610c2d565b8060005b83811015610cc2578151610ca98882610c4c565b9750610cb483610c64565b925050600181019050610c95565b5085935050505092915050565b6000604083016000830151610ce76000860182610b31565b5060208301518482036020860152610cff8282610c71565b9150508091505092915050565b6000610d188383610ccf565b905092915050565b6000602082019050919050565b6000610d3882610be5565b610d428185610bf0565b935083602082028501610d5485610c01565b8060005b85811015610d905784840389528151610d718582610d0c565b9450610d7c83610d20565b925060208a01995050600181019050610d58565b50829750879550505050505092915050565b60006020820190508181036000830152610dbc8184610d2d565b905092915050565b610dcd81610b1f565b8114610dd857600080fd5b50565b600081359050610dea81610dc4565b92915050565b600060208284031215610e0657610e0561098e565b5b6000610e1484828501610ddb565b91505092915050565b600082825260208201905092915050565b6000610e3982610c11565b610e438185610e1d565b9350610e4e83610c2d565b8060005b83811015610e7f578151610e668882610c4c565b9750610e7183610c64565b925050600181019050610e52565b5085935050505092915050565b60006020820190508181036000830152610ea68184610e2e565b905092915050565b610eb781610b1f565b82525050565b6000602082019050610ed26000830184610eae565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000610f7a82610f65565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610fac57610fab610f36565b5b60018201905091905056fea26469706673582212208ae89fa3fa833ae3bf910fdf8729e07a04a52370d167a31178eb59048c8e75e764736f6c63430008110033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c8063adfca15e1161005b578063adfca15e14610115578063cdffacc614610145578063cffb5dec14610175578063f9f7c365146101a557610088565b806301ffc9a71461008d5780631a7cfa86146100bd57806352ef6b2c146100d95780637a0ed627146100f7575b600080fd5b6100a760048036038101906100a291906109eb565b6101d5565b6040516100b49190610a33565b60405180910390f35b6100d760048036038101906100d29190610aa6565b6102b0565b005b6100e16102b3565b6040516100ee9190610bc3565b60405180910390f35b6100ff6103a0565b60405161010c9190610da2565b60405180910390f35b61012f600480360381019061012a9190610df0565b6106b3565b60405161013c9190610e8c565b60405180910390f35b61015f600480360381019061015a91906109eb565b6107ee565b60405161016c9190610ebd565b60405180910390f35b61018f600480360381019061018a9190610aa6565b6108cb565b60405161019c9190610a33565b60405180910390f35b6101bf60048036038101906101ba9190610aa6565b6108d2565b6040516101cc9190610a33565b60405180910390f35b60006101eb67285efd6f4e8eb41160c01b6102b0565b6101ff679667d234011edd8560c01b6102b0565b610213674d70fb37c7dd087760c01b6102b0565b600061021d6108dd565b90506102336735ba6e9c5701761860c01b6102b0565b61024767610d1f4a0bb3823a60c01b6102b0565b806003016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff16915050919050565b50565b60606102c9677f1de3f66179977b60c01b6102b0565b6102dd6774595e158391e43760c01b6102b0565b6102f167a74d20d6eaba1b4660c01b6102b0565b60006102fb6108dd565b905061031167f0ed24c854f6c73360c01b6102b0565b8060020180548060200260200160405190810160405280929190818152602001828054801561039557602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161034b575b505050505091505090565b60606103b6674d80155458127eb460c01b6102b0565b6103ca679fa63900be221ebb60c01b6102b0565b6103de67eaad7781e34e55e860c01b6102b0565b60006103e86108dd565b90506103fe67cceaf84e7e9eb3f060c01b6102b0565b61041267e5500b1af7b537b760c01b6102b0565b600081600201805490509050610432670ef3f15519e6694a60c01b6102b0565b8067ffffffffffffffff81111561044c5761044b610ed8565b5b60405190808252806020026020018201604052801561048557816020015b61047261095e565b81526020019060019003908161046a5790505b50925061049c67162378066aec876b60c01b6102b0565b6104b0673b4a5083af334b4d60c01b6102b0565b60005b818110156106ad576104cf678fba1acd7dd9812160c01b6102b0565b6104e36736cf091544e7072160c01b6102b0565b60008360020182815481106104fb576104fa610f07565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061053c6701b5da9682d1107960c01b6102b0565b808583815181106105505761054f610f07565b5b60200260200101516000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506105a267c2f3430262c30ae560c01b6102b0565b8360010160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180548060200260200160405190810160405280929190818152602001828054801561067257602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161061f5790505b505050505085838151811061068a57610689610f07565b5b6020026020010151602001819052505080806106a590610f6f565b9150506104b3565b50505090565b60606106c967f494b22b7fae5c5160c01b6102b0565b6106dd679693544bdf9bcfbb60c01b6102b0565b6106f167f40dfac7753be95460c01b6102b0565b60006106fb6108dd565b90506107116744ef83ae08424b2d60c01b6102b0565b8060010160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054806020026020016040519081016040528092919081815260200182805480156107e157602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161078e5790505b5050505050915050919050565b60006108046721cd709b6caf5a7760c01b6102b0565b6108186798ae13998b39ee3760c01b6102b0565b61082c67fe378eb71e09567360c01b6102b0565b60006108366108dd565b905061084c670e751d6d9cd00f0860c01b6102b0565b806000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b6000919050565b600060019050919050565b60006108f3674f9afbb757d80e6360c01b61095b565b610907674b823103125da15660c01b61095b565b61091b674ab715c231c1608d60c01b61095b565b60007fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c905061095467982d9bb86701efa860c01b61095b565b8091505090565b50565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6109c881610993565b81146109d357600080fd5b50565b6000813590506109e5816109bf565b92915050565b600060208284031215610a0157610a0061098e565b5b6000610a0f848285016109d6565b91505092915050565b60008115159050919050565b610a2d81610a18565b82525050565b6000602082019050610a486000830184610a24565b92915050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b610a8381610a4e565b8114610a8e57600080fd5b50565b600081359050610aa081610a7a565b92915050565b600060208284031215610abc57610abb61098e565b5b6000610aca84828501610a91565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610b2a82610aff565b9050919050565b610b3a81610b1f565b82525050565b6000610b4c8383610b31565b60208301905092915050565b6000602082019050919050565b6000610b7082610ad3565b610b7a8185610ade565b9350610b8583610aef565b8060005b83811015610bb6578151610b9d8882610b40565b9750610ba883610b58565b925050600181019050610b89565b5085935050505092915050565b60006020820190508181036000830152610bdd8184610b65565b905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b610c4681610993565b82525050565b6000610c588383610c3d565b60208301905092915050565b6000602082019050919050565b6000610c7c82610c11565b610c868185610c1c565b9350610c9183610c2d565b8060005b83811015610cc2578151610ca98882610c4c565b9750610cb483610c64565b925050600181019050610c95565b5085935050505092915050565b6000604083016000830151610ce76000860182610b31565b5060208301518482036020860152610cff8282610c71565b9150508091505092915050565b6000610d188383610ccf565b905092915050565b6000602082019050919050565b6000610d3882610be5565b610d428185610bf0565b935083602082028501610d5485610c01565b8060005b85811015610d905784840389528151610d718582610d0c565b9450610d7c83610d20565b925060208a01995050600181019050610d58565b50829750879550505050505092915050565b60006020820190508181036000830152610dbc8184610d2d565b905092915050565b610dcd81610b1f565b8114610dd857600080fd5b50565b600081359050610dea81610dc4565b92915050565b600060208284031215610e0657610e0561098e565b5b6000610e1484828501610ddb565b91505092915050565b600082825260208201905092915050565b6000610e3982610c11565b610e438185610e1d565b9350610e4e83610c2d565b8060005b83811015610e7f578151610e668882610c4c565b9750610e7183610c64565b925050600181019050610e52565b5085935050505092915050565b60006020820190508181036000830152610ea68184610e2e565b905092915050565b610eb781610b1f565b82525050565b6000602082019050610ed26000830184610eae565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000610f7a82610f65565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610fac57610fab610f36565b5b60018201905091905056fea26469706673582212208ae89fa3fa833ae3bf910fdf8729e07a04a52370d167a31178eb59048c8e75e764736f6c63430008110033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/ENSAbstractResolver.json b/artifacts/ENSAbstractResolver.json index e2654240..002178d4 100644 --- a/artifacts/ENSAbstractResolver.json +++ b/artifacts/ENSAbstractResolver.json @@ -2,7 +2,59 @@ "_format": "hh-sol-artifact-1", "contractName": "ENSAbstractResolver", "sourceName": "src/ens/resolvers/ENSAbstractResolver.sol", - "abi": [], + "abi": [ + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__f395fef5", + "type": "bytes8" + } + ], + "name": "c_f395fef5", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__f395fef5", + "type": "bytes8" + } + ], + "name": "c_falsef395fef5", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__f395fef5", + "type": "bytes8" + } + ], + "name": "c_truef395fef5", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + } + ], "bytecode": "0x", "deployedBytecode": "0x", "linkReferences": {}, diff --git a/artifacts/ENSAddressResolver.json b/artifacts/ENSAddressResolver.json index 3220a2f2..f1f94fdf 100644 --- a/artifacts/ENSAddressResolver.json +++ b/artifacts/ENSAddressResolver.json @@ -90,6 +90,108 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__3f206a34", + "type": "bytes8" + } + ], + "name": "c_3f206a34", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__f395fef5", + "type": "bytes8" + } + ], + "name": "c_f395fef5", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__3f206a34", + "type": "bytes8" + } + ], + "name": "c_false3f206a34", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__f395fef5", + "type": "bytes8" + } + ], + "name": "c_falsef395fef5", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__3f206a34", + "type": "bytes8" + } + ], + "name": "c_true3f206a34", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__f395fef5", + "type": "bytes8" + } + ], + "name": "c_truef395fef5", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [ { diff --git a/artifacts/ENSController.json b/artifacts/ENSController.json index 9427b1ff..5636014b 100644 --- a/artifacts/ENSController.json +++ b/artifacts/ENSController.json @@ -292,6 +292,516 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__098c0657", + "type": "bytes8" + } + ], + "name": "c_098c0657", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__0b6945c4", + "type": "bytes8" + } + ], + "name": "c_0b6945c4", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__3f206a34", + "type": "bytes8" + } + ], + "name": "c_3f206a34", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__52615ca8", + "type": "bytes8" + } + ], + "name": "c_52615ca8", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__633abef9", + "type": "bytes8" + } + ], + "name": "c_633abef9", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__6f06df17", + "type": "bytes8" + } + ], + "name": "c_6f06df17", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__7ffc1d72", + "type": "bytes8" + } + ], + "name": "c_7ffc1d72", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__8aa9670c", + "type": "bytes8" + } + ], + "name": "c_8aa9670c", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__d18be0f9", + "type": "bytes8" + } + ], + "name": "c_d18be0f9", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__f395fef5", + "type": "bytes8" + } + ], + "name": "c_f395fef5", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__098c0657", + "type": "bytes8" + } + ], + "name": "c_false098c0657", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__0b6945c4", + "type": "bytes8" + } + ], + "name": "c_false0b6945c4", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__3f206a34", + "type": "bytes8" + } + ], + "name": "c_false3f206a34", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__52615ca8", + "type": "bytes8" + } + ], + "name": "c_false52615ca8", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__633abef9", + "type": "bytes8" + } + ], + "name": "c_false633abef9", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__6f06df17", + "type": "bytes8" + } + ], + "name": "c_false6f06df17", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__7ffc1d72", + "type": "bytes8" + } + ], + "name": "c_false7ffc1d72", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__8aa9670c", + "type": "bytes8" + } + ], + "name": "c_false8aa9670c", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__d18be0f9", + "type": "bytes8" + } + ], + "name": "c_falsed18be0f9", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__f395fef5", + "type": "bytes8" + } + ], + "name": "c_falsef395fef5", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__098c0657", + "type": "bytes8" + } + ], + "name": "c_true098c0657", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__0b6945c4", + "type": "bytes8" + } + ], + "name": "c_true0b6945c4", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__3f206a34", + "type": "bytes8" + } + ], + "name": "c_true3f206a34", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__52615ca8", + "type": "bytes8" + } + ], + "name": "c_true52615ca8", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__633abef9", + "type": "bytes8" + } + ], + "name": "c_true633abef9", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__6f06df17", + "type": "bytes8" + } + ], + "name": "c_true6f06df17", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__7ffc1d72", + "type": "bytes8" + } + ], + "name": "c_true7ffc1d72", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__8aa9670c", + "type": "bytes8" + } + ], + "name": "c_true8aa9670c", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__d18be0f9", + "type": "bytes8" + } + ], + "name": "c_trued18be0f9", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__f395fef5", + "type": "bytes8" + } + ], + "name": "c_truef395fef5", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [], "name": "chainId", @@ -758,8 +1268,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5032600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600046905080600281905550506149798061006e6000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c806371404156116100f9578063a91ee0dc11610097578063d0f710d611610071578063d0f710d614610512578063d5fa2b0014610542578063dc5b68a61461055e578063f1cb7e061461057a576101c4565b8063a91ee0dc146104a9578063c8690233146104c5578063c8cc2aee146104f6576101c4565b80637d0e0e7e116100d35780637d0e0e7e146104375780638b95dd71146104535780639a8a05921461046f578063a526d83b1461048d576101c4565b806371404156146103e157806377372213146103fd5780637b10399914610419576101c4565b8063392e53cd1161016657806355800f871161014057806355800f871461033557806359d1d43c14610351578063691f3431146103815780636df0cf42146103b1576101c4565b8063392e53cd146102cb5780633b3b57de146102e957806346386f7314610319576101c4565b8063116191b6116101a2578063116191b6146102455780631b3cd1421461026357806329ae6a7e1461029357806329cd62ea146102af576101c4565b806301ffc9a7146101c95780630c68ba21146101f957806310f13a8c14610229575b600080fd5b6101e360048036038101906101de91906133b4565b6105aa565b6040516101f091906141bc565b60405180910390f35b610213600480360381019061020e9190613066565b610834565b60405161022091906141bc565b60405180910390f35b610243600480360381019061023e9190613288565b610889565b005b61024d61096d565b60405161025a919061415d565b60405180910390f35b61027d600480360381019061027891906130b8565b610993565b60405161028a919061415d565b60405180910390f35b6102ad60048036038101906102a891906130b8565b6109c6565b005b6102c960048036038101906102c4919061311d565b610beb565b005b6102d3610cb3565b6040516102e091906141bc565b60405180910390f35b61030360048036038101906102fe91906130b8565b610d0b565b604051610310919061415d565b60405180910390f35b610333600480360381019061032e919061316c565b610d1d565b005b61034f600480360381019061034a91906130b8565b611017565b005b61036b60048036038101906103669190613230565b6112d8565b604051610378919061433d565b60405180910390f35b61039b600480360381019061039691906130b8565b6113ad565b6040516103a8919061433d565b60405180910390f35b6103cb60048036038101906103c69190613472565b611462565b6040516103d891906141d7565b60405180910390f35b6103fb60048036038101906103f69190613066565b611482565b005b61041760048036038101906104129190613230565b61169a565b005b610421611746565b60405161042e91906142fe565b60405180910390f35b610451600480360381019061044c91906130b8565b61176c565b005b61046d6004803603810190610468919061334d565b611a38565b005b610477611a92565b604051610484919061461f565b60405180910390f35b6104a760048036038101906104a29190613066565b611a98565b005b6104c360048036038101906104be91906133dd565b611b2f565b005b6104df60048036038101906104da91906130b8565b611d58565b6040516104ed92919061421b565b60405180910390f35b610510600480360381019061050b91906130b8565b611d92565b005b61052c600480360381019061052791906131d8565b6120a2565b60405161053991906141bc565b60405180910390f35b61055c600480360381019061055791906130e1565b6120fb565b005b61057860048036038101906105739190613406565b612153565b005b610594600480360381019061058f9190613311565b612366565b6040516105a191906142dc565b60405180910390f35b60006040516020016105bb9061406f565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061067d5750604051602001610626906140aa565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806106e95750604051602001610692906140fe565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061075557506040516020016106fe906140d4565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107c1575060405160200161076a906140e9565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061082d57506040516020016107d6906140bf565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b846108938161242d565b6108d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c9906145df565b60405180910390fd5b82826007600089815260200190815260200160002087876040516108f7929190614056565b90815260200160405180910390209190610912929190612d39565b508484604051610923929190614056565b6040518091039020867fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a7550878760405161095d929190614319565b60405180910390a3505050505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60096020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006109d0612516565b90503073ffffffffffffffffffffffffffffffffffffffff166109f283612527565b73ffffffffffffffffffffffffffffffffffffffff1614610a48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3f9061443f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166009600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae09061437f565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b0fc9c383836040518363ffffffff1660e01b8152600401610b469291906141f2565b600060405180830381600087803b158015610b6057600080fd5b505af1158015610b74573d6000803e3d6000fd5b505050506009600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690557f7803a16d95f9ca635bdec561006625e7444d8a9f8463866643cc03af011779d38282604051610bdf9291906141f2565b60405180910390a15050565b82610bf58161242d565b610c34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2b906145df565b60405180910390fd5b604051806040016040528084815260200183815250600660008681526020019081526020016000206000820151816000015560208201518160010155905050837f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e468484604051610ca592919061421b565b60405180910390a250505050565b60008073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b6000610d1682612527565b9050919050565b6000610d27612516565b90506000610d3682878761260c565b9050610d868185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612664565b610dc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbc9061439f565b60405180910390fd5b60008686604051602001610dda92919061402a565b6040516020818303038152906040528051906020012090503073ffffffffffffffffffffffffffffffffffffffff16610e1288612527565b73ffffffffffffffffffffffffffffffffffffffff1614610e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5f9061441f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16610e8982612527565b73ffffffffffffffffffffffffffffffffffffffff1614610edf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed6906143bf565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635ef2c7f08888303060006040518663ffffffff1660e01b8152600401610f43959493929190614244565b600060405180830381600087803b158015610f5d57600080fd5b505af1158015610f71573d6000803e3d6000fd5b50505050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b0fc9c382856040518363ffffffff1660e01b8152600401610fd29291906141f2565b600060405180830381600087803b158015610fec57600080fd5b505af1158015611000573d6000803e3d6000fd5b5050505061100e81846126d1565b50505050505050565b6000611021612516565b9050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff1660e01b815260040161107e91906141d7565b60206040518083038186803b15801561109657600080fd5b505afa1580156110aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ce919061308f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461113b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111329061447f565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630178b8bf846040518263ffffffff1660e01b81526004016111ad91906141d7565b60206040518083038186803b1580156111c557600080fd5b505afa1580156111d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111fd919061308f565b73ffffffffffffffffffffffffffffffffffffffff1614611253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124a9061435f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1661127483612527565b73ffffffffffffffffffffffffffffffffffffffff16146112ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c19061451f565b60405180910390fd5b6112d482826126d1565b5050565b60606007600085815260200190815260200160002083836040516112fd929190614056565b90815260200160405180910390208054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561139f5780601f106113745761010080835404028352916020019161139f565b820191906000526020600020905b81548152906001019060200180831161138257829003601f168201915b505050505090509392505050565b6060600560008381526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114565780601f1061142b57610100808354040283529160200191611456565b820191906000526020600020905b81548152906001019060200180831161143957829003601f168201915b50505050509050919050565b600061147b82600001518360200151846040015161260c565b9050919050565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661150d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115049061449f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16141561157c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115739061459f565b60405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611607576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fe9061453f565b60405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fee943cdb81826d5909c559c6b1ae6908fcaf2dbc16c4b730346736b486283e8b328260405161168f929190614193565b60405180910390a150565b826116a48161242d565b6116e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116da906145df565b60405180910390fd5b8282600560008781526020019081526020016000209190611705929190612d39565b50837fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f78484604051611738929190614319565b60405180910390a250505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611776612516565b9050600073ffffffffffffffffffffffffffffffffffffffff1661179983612527565b73ffffffffffffffffffffffffffffffffffffffff16146117ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e6906144ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166009600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611891576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611888906144df565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3846040518263ffffffff1660e01b815260040161190391906141d7565b60206040518083038186803b15801561191b57600080fd5b505afa15801561192f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611953919061308f565b73ffffffffffffffffffffffffffffffffffffffff16146119a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a09061455f565b60405180910390fd5b806009600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fc1e082a8c26f27c26e1bf5d0ce7ddd579ec7f6d7eb3ea90d8abd6c40991bae368282604051611a2c9291906141f2565b60405180910390a15050565b82611a428161242d565b611a81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a78906145df565b60405180910390fd5b611a8c8484846126e9565b50505050565b60025481565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1a9061449f565b60405180910390fd5b611b2c816127ab565b50565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611bba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb19061449f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c21906144bf565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611cbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb2906145ff565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fdb0239c63d4033dcdd21bd44f8dd479a03efbae12f6bbe27c0a5f923d26514cc600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051611d4d919061415d565b60405180910390a150565b6000806006600084815260200190815260200160002060000154600660008581526020019081526020016000206001015491509150915091565b6000611d9c612516565b9050600073ffffffffffffffffffffffffffffffffffffffff16611dbf83612527565b73ffffffffffffffffffffffffffffffffffffffff1614611e15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0c906144ff565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166009600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611eb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ead9061437f565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3846040518263ffffffff1660e01b8152600401611f2891906141d7565b60206040518083038186803b158015611f4057600080fd5b505afa158015611f54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f78919061308f565b73ffffffffffffffffffffffffffffffffffffffff1614611fce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc59061455f565b60405180910390fd5b611fd882306126d1565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a83306040518363ffffffff1660e01b81526004016120359291906141f2565b600060405180830381600087803b15801561204f57600080fd5b505af1158015612063573d6000803e3d6000fd5b505050507fcefbe9dbadcf675eef14e23810996ff38541fc26b4dd77cd6724b0eedc96f2008260405161209691906141d7565b60405180910390a15050565b60006120f28484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612664565b90509392505050565b816121058161242d565b612144576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213b906145df565b60405180910390fd5b61214e83836126d1565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146121e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121da906143ff565b60405180910390fd5b6000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612295576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228c906144bf565b60405180910390fd5b83600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612320838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505061293a565b61232981612992565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e6326040516123589190614178565b60405180910390a150505050565b60606004600084815260200190815260200160002060008381526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124205780601f106123f557610100808354040283529160200191612420565b820191906000526020600020905b81548152906001019060200180831161240357829003601f168201915b5050505050905092915050565b6000612437612516565b73ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3846040518263ffffffff1660e01b81526004016124a891906141d7565b60206040518083038186803b1580156124c057600080fd5b505afa1580156124d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124f8919061308f565b73ffffffffffffffffffffffffffffffffffffffff16149050919050565b600061252260286129d6565b905090565b6000806060600460008581526020019081526020016000206000603c81526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156125e55780601f106125ba576101008083540402835291602001916125e5565b820191906000526020600020905b8154815290600101906020018083116125c857829003601f168201915b50505050509050600081511115612602576125ff81612a6b565b91505b8192505050919050565b600061265b7f621363c539a3aa1024c8837ca1dc095db03b7f9512b3a95ecb429aae7fd953ed85858560405160200161264793929190613fed565b604051602081830303815290604052612a93565b90509392505050565b60008061267a8385612ad490919063ffffffff16565b90506000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b6126e582603c6126e084612b8f565b6126e9565b5050565b827f65412581168e88a1e60c6459d7f44ae83ad0832e670826c05a4e2476b57af752838360405161271b92919061463a565b60405180910390a2603c82141561276d57827f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd261275783612a6b565b6040516127649190614178565b60405180910390a25b8060046000858152602001908152602001600020600084815260200190815260200160002090805190602001906127a5929190612db9565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561281b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612812906143df565b60405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156128a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289e9061457f565b60405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fbc3292102fa77e083913064b282926717cdfaede4d35f553d66366c0a3da755a328260405161292f929190614193565b60405180910390a150565b6000815114156129525761294d326127ab565b61298f565b60008151905060005b8181101561298c5761297f83828151811061297257fe5b60200260200101516127ab565b808060010191505061295b565b50505b50565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600090506129e5612bf6565b15612a5e576000836000369050039050612a5660003683906014850192612a0e93929190614711565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612ca3565b915050612a62565b3390505b80915050919050565b6000806014835114612a7c57600080fd5b600c6101000a602084015104905080915050919050565b6000612acc600254308585604051602001612ab19493929190614113565b60405160208183030381529060405280519060200120612d09565b905092915050565b60008060009050604183511415612b855760008060006020860151925060408601519150606086015160001a9050601b8160ff161015612b1557601b810190505b601b8160ff161480612b2a5750601c8160ff16145b15612b815760018782858560405160008152602001604052604051612b529493929190614297565b6020604051602081039080840390855afa158015612b74573d6000803e3d6000fd5b5050506020604051035193505b5050505b8091505092915050565b606080601467ffffffffffffffff81118015612baa57600080fd5b506040519080825280601f01601f191660200182016040528015612bdd5781602001600182028036833780820191505090505b509050600c6101000a8302602082015280915050919050565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415612c9c57602c60003690501015612c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c8e9061445f565b60405180910390fd5b600190505b8091505090565b6000806014835114612cea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce1906145bf565b60405180910390fd5b6c01000000000000000000000000602084015104905080915050919050565b600081604051602001612d1c9190614084565b604051602081830303815290604052805190602001209050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612d7a57803560ff1916838001178555612da8565b82800160010185558215612da8579182015b82811115612da7578235825591602001919060010190612d8c565b5b509050612db59190612e39565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612dfa57805160ff1916838001178555612e28565b82800160010185558215612e28579182015b82811115612e27578251825591602001919060010190612e0c565b5b509050612e359190612e39565b5090565b5b80821115612e52576000816000905550600101612e3a565b5090565b600081359050612e65816148f9565b92915050565b600081519050612e7a816148f9565b92915050565b60008083601f840112612e9257600080fd5b8235905067ffffffffffffffff811115612eab57600080fd5b602083019150836020820283011115612ec357600080fd5b9250929050565b600081359050612ed981614910565b92915050565b600081359050612eee81614927565b92915050565b60008083601f840112612f0657600080fd5b8235905067ffffffffffffffff811115612f1f57600080fd5b602083019150836001820283011115612f3757600080fd5b9250929050565b600082601f830112612f4f57600080fd5b8135612f62612f5d82614697565b61466a565b91508082526020830160208301858383011115612f7e57600080fd5b612f89838284614861565b50505092915050565b600081359050612fa18161493e565b92915050565b60008083601f840112612fb957600080fd5b8235905067ffffffffffffffff811115612fd257600080fd5b602083019150836001820283011115612fea57600080fd5b9250929050565b60006060828403121561300357600080fd5b61300d606061466a565b9050600061301d84828501612e56565b600083015250602061303184828501612eca565b602083015250604061304584828501612eca565b60408301525092915050565b60008135905061306081614955565b92915050565b60006020828403121561307857600080fd5b600061308684828501612e56565b91505092915050565b6000602082840312156130a157600080fd5b60006130af84828501612e6b565b91505092915050565b6000602082840312156130ca57600080fd5b60006130d884828501612eca565b91505092915050565b600080604083850312156130f457600080fd5b600061310285828601612eca565b925050602061311385828601612e56565b9150509250929050565b60008060006060848603121561313257600080fd5b600061314086828701612eca565b935050602061315186828701612eca565b925050604061316286828701612eca565b9150509250925092565b6000806000806060858703121561318257600080fd5b600061319087828801612eca565b94505060206131a187828801612eca565b935050604085013567ffffffffffffffff8111156131be57600080fd5b6131ca87828801612ef4565b925092505092959194509250565b6000806000604084860312156131ed57600080fd5b60006131fb86828701612eca565b935050602084013567ffffffffffffffff81111561321857600080fd5b61322486828701612ef4565b92509250509250925092565b60008060006040848603121561324557600080fd5b600061325386828701612eca565b935050602084013567ffffffffffffffff81111561327057600080fd5b61327c86828701612fa7565b92509250509250925092565b6000806000806000606086880312156132a057600080fd5b60006132ae88828901612eca565b955050602086013567ffffffffffffffff8111156132cb57600080fd5b6132d788828901612fa7565b9450945050604086013567ffffffffffffffff8111156132f657600080fd5b61330288828901612fa7565b92509250509295509295909350565b6000806040838503121561332457600080fd5b600061333285828601612eca565b925050602061334385828601613051565b9150509250929050565b60008060006060848603121561336257600080fd5b600061337086828701612eca565b935050602061338186828701613051565b925050604084013567ffffffffffffffff81111561339e57600080fd5b6133aa86828701612f3e565b9150509250925092565b6000602082840312156133c657600080fd5b60006133d484828501612edf565b91505092915050565b6000602082840312156133ef57600080fd5b60006133fd84828501612f92565b91505092915050565b6000806000806060858703121561341c57600080fd5b600061342a87828801612f92565b945050602085013567ffffffffffffffff81111561344757600080fd5b61345387828801612e80565b9350935050604061346687828801612e56565b91505092959194509250565b60006060828403121561348457600080fd5b600061349284828501612ff1565b91505092915050565b6134a4816147f5565b82525050565b6134b381614744565b82525050565b6134ca6134c582614744565b6148a3565b82525050565b6134d981614756565b82525050565b6134e881614762565b82525050565b6134ff6134fa82614762565b6148b5565b82525050565b6000613510826146c3565b61351a81856146d9565b935061352a818560208601614870565b613533816148db565b840191505092915050565b6000613549826146c3565b61355381856146ea565b9350613563818560208601614870565b80840191505092915050565b61357881614807565b82525050565b6135878161482b565b82525050565b600061359983856146f5565b93506135a6838584614861565b6135af836148db565b840190509392505050565b60006135c68385614706565b93506135d3838584614861565b82840190509392505050565b60006135ea826146ce565b6135f481856146f5565b9350613604818560208601614870565b61360d816148db565b840191505092915050565b6000613625601983614706565b91507f737570706f727473496e746572666163652862797465733429000000000000006000830152601982019050919050565b60006136656024836146f5565b91507f454e53436f6e74726f6c6c65723a20696e76616c6964206e6f6465207265736f60008301527f6c766572000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006136cb6021836146f5565b91507f454e53436f6e74726f6c6c65723a20696e76616c6964206e6f6465206f776e6560008301527f72000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006137316029836146f5565b91507f454e53436f6e74726f6c6c65723a20696e76616c696420677561726469616e2060008301527f7369676e617475726500000000000000000000000000000000000000000000006020830152604082019050919050565b60006137976022836146f5565b91507f454e53436f6e74726f6c6c65723a206c6162656c20616c72656164792074616b60008301527f656e0000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006137fd601c83614706565b91507f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000830152601c82019050919050565b600061383d6020836146f5565b91507f477561726465643a2063616e6e6f74206164642030783020677561726469616e6000830152602082019050919050565b600061387d602f836146f5565b91507f496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742060008301527f74686520696e697469616c697a657200000000000000000000000000000000006020830152604082019050919050565b60006138e3600d83614706565b91507f61646472286279746573333229000000000000000000000000000000000000006000830152600d82019050919050565b6000613923601b836146f5565b91507f454e53436f6e74726f6c6c65723a20696e76616c6964206e6f646500000000006000830152602082019050919050565b60006139636021836146f5565b91507f454e53436f6e74726f6c6c65723a206e6f646520646f65736e2774206578697360008301527f74000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006139c96022836146f5565b91507f47617465776179526563697069656e743a20696e76616c6964206d73672e646160008301527f74610000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613a2f601483614706565b91507f7465787428627974657333322c737472696e67290000000000000000000000006000830152601482019050919050565b6000613a6f600d83614706565b91507f6e616d65286279746573333229000000000000000000000000000000000000006000830152600d82019050919050565b6000613aaf602b836146f5565b91507f454e53436f6e74726f6c6c65723a2063616c6c6572206973206e6f742074686560008301527f206e6f6465206f776e65720000000000000000000000000000000000000000006020830152604082019050919050565b6000613b156026836146f5565b91507f477561726465643a2074782e6f726967696e206973206e6f742074686520677560008301527f61726469616e00000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613b7b6026836146f5565b91507f454e53436f6e74726f6c6c65723a2063616e6e6f74207365742030783020726560008301527f67697374727900000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613be16025836146f5565b91507f454e53436f6e74726f6c6c65723a206e6f646520616c7265616479207375626d60008301527f69747465640000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613c47600f83614706565b91507f7075626b657928627974657333322900000000000000000000000000000000006000830152600f82019050919050565b6000613c876022836146f5565b91507f454e53436f6e74726f6c6c65723a206e6f646520616c7265616479206578697360008301527f74730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613ced6023836146f5565b91507f454e53436f6e74726f6c6c65723a206e6f646520616c726561647920696e207360008301527f796e6300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613d53601f836146f5565b91507f477561726465643a20677561726469616e20646f65736e2774206578697374006000830152602082019050919050565b6000613d936025836146f5565b91507f454e53436f6e74726f6c6c65723a20696e76616c696420656e73206e6f64652060008301527f6f776e65720000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613df96020836146f5565b91507f477561726465643a20677561726469616e20616c7265616479206578697374736000830152602082019050919050565b6000613e39601b836146f5565b91507f477561726465643a2063616e6e6f742072656d6f76652073656c6600000000006000830152602082019050919050565b6000613e79601d836146f5565b91507f42797465734c69623a20696e76616c69642064617461206c656e6774680000006000830152602082019050919050565b6000613eb96037836146f5565b91507f454e5341627374726163745265736f6c7665723a20726576657274656420627960008301527f206f6e6c794e6f64654f776e6572206d6f6469666965720000000000000000006020830152604082019050919050565b6000613f1f601283614706565b91507f6164647228627974657333322c75696e742900000000000000000000000000006000830152601282019050919050565b6000613f5f6023836146f5565b91507f454e53436f6e74726f6c6c65723a20726567697374727920616c72656164792060008301527f73657400000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b613fc1816147ca565b82525050565b613fd8613fd3826147ca565b6148d1565b82525050565b613fe7816147e8565b82525050565b6000613ff982866134b9565b60148201915061400982856134ee565b60208201915061401982846134ee565b602082019150819050949350505050565b600061403682856134ee565b60208201915061404682846134ee565b6020820191508190509392505050565b60006140638284866135ba565b91508190509392505050565b600061407a82613618565b9150819050919050565b600061408f826137f0565b915061409b82846134ee565b60208201915081905092915050565b60006140b5826138d6565b9150819050919050565b60006140ca82613a22565b9150819050919050565b60006140df82613a62565b9150819050919050565b60006140f482613c3a565b9150819050919050565b600061410982613f12565b9150819050919050565b600061411f8287613fc7565b60208201915061412f82866134b9565b60148201915061413f82856134ee565b60208201915061414f828461353e565b915081905095945050505050565b600060208201905061417260008301846134aa565b92915050565b600060208201905061418d600083018461349b565b92915050565b60006040820190506141a8600083018561349b565b6141b560208301846134aa565b9392505050565b60006020820190506141d160008301846134d0565b92915050565b60006020820190506141ec60008301846134df565b92915050565b600060408201905061420760008301856134df565b61421460208301846134aa565b9392505050565b600060408201905061423060008301856134df565b61423d60208301846134df565b9392505050565b600060a08201905061425960008301886134df565b61426660208301876134df565b61427360408301866134aa565b61428060608301856134aa565b61428d608083018461357e565b9695505050505050565b60006080820190506142ac60008301876134df565b6142b96020830186613fde565b6142c660408301856134df565b6142d360608301846134df565b95945050505050565b600060208201905081810360008301526142f68184613505565b905092915050565b6000602082019050614313600083018461356f565b92915050565b6000602082019050818103600083015261433481848661358d565b90509392505050565b6000602082019050818103600083015261435781846135df565b905092915050565b6000602082019050818103600083015261437881613658565b9050919050565b60006020820190508181036000830152614398816136be565b9050919050565b600060208201905081810360008301526143b881613724565b9050919050565b600060208201905081810360008301526143d88161378a565b9050919050565b600060208201905081810360008301526143f881613830565b9050919050565b6000602082019050818103600083015261441881613870565b9050919050565b6000602082019050818103600083015261443881613916565b9050919050565b6000602082019050818103600083015261445881613956565b9050919050565b60006020820190508181036000830152614478816139bc565b9050919050565b6000602082019050818103600083015261449881613aa2565b9050919050565b600060208201905081810360008301526144b881613b08565b9050919050565b600060208201905081810360008301526144d881613b6e565b9050919050565b600060208201905081810360008301526144f881613bd4565b9050919050565b6000602082019050818103600083015261451881613c7a565b9050919050565b6000602082019050818103600083015261453881613ce0565b9050919050565b6000602082019050818103600083015261455881613d46565b9050919050565b6000602082019050818103600083015261457881613d86565b9050919050565b6000602082019050818103600083015261459881613dec565b9050919050565b600060208201905081810360008301526145b881613e2c565b9050919050565b600060208201905081810360008301526145d881613e6c565b9050919050565b600060208201905081810360008301526145f881613eac565b9050919050565b6000602082019050818103600083015261461881613f52565b9050919050565b60006020820190506146346000830184613fb8565b92915050565b600060408201905061464f6000830185613fb8565b81810360208301526146618184613505565b90509392505050565b6000604051905081810181811067ffffffffffffffff8211171561468d57600080fd5b8060405250919050565b600067ffffffffffffffff8211156146ae57600080fd5b601f19601f8301169050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000808585111561472157600080fd5b8386111561472e57600080fd5b6001850283019150848603905094509492505050565b600061474f826147aa565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60006147a382614744565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b600060ff82169050919050565b60006148008261483d565b9050919050565b600061481282614819565b9050919050565b6000614824826147aa565b9050919050565b6000614836826147d4565b9050919050565b60006148488261484f565b9050919050565b600061485a826147aa565b9050919050565b82818337600083830152505050565b60005b8381101561488e578082015181840152602081019050614873565b8381111561489d576000848401525b50505050565b60006148ae826148bf565b9050919050565b6000819050919050565b60006148ca826148ec565b9050919050565b6000819050919050565b6000601f19601f8301169050919050565b60008160601b9050919050565b61490281614744565b811461490d57600080fd5b50565b61491981614762565b811461492457600080fd5b50565b6149308161476c565b811461493b57600080fd5b50565b61494781614798565b811461495257600080fd5b50565b61495e816147ca565b811461496957600080fd5b5056fea164736f6c634300060c000a", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101c45760003560e01c806371404156116100f9578063a91ee0dc11610097578063d0f710d611610071578063d0f710d614610512578063d5fa2b0014610542578063dc5b68a61461055e578063f1cb7e061461057a576101c4565b8063a91ee0dc146104a9578063c8690233146104c5578063c8cc2aee146104f6576101c4565b80637d0e0e7e116100d35780637d0e0e7e146104375780638b95dd71146104535780639a8a05921461046f578063a526d83b1461048d576101c4565b806371404156146103e157806377372213146103fd5780637b10399914610419576101c4565b8063392e53cd1161016657806355800f871161014057806355800f871461033557806359d1d43c14610351578063691f3431146103815780636df0cf42146103b1576101c4565b8063392e53cd146102cb5780633b3b57de146102e957806346386f7314610319576101c4565b8063116191b6116101a2578063116191b6146102455780631b3cd1421461026357806329ae6a7e1461029357806329cd62ea146102af576101c4565b806301ffc9a7146101c95780630c68ba21146101f957806310f13a8c14610229575b600080fd5b6101e360048036038101906101de91906133b4565b6105aa565b6040516101f091906141bc565b60405180910390f35b610213600480360381019061020e9190613066565b610834565b60405161022091906141bc565b60405180910390f35b610243600480360381019061023e9190613288565b610889565b005b61024d61096d565b60405161025a919061415d565b60405180910390f35b61027d600480360381019061027891906130b8565b610993565b60405161028a919061415d565b60405180910390f35b6102ad60048036038101906102a891906130b8565b6109c6565b005b6102c960048036038101906102c4919061311d565b610beb565b005b6102d3610cb3565b6040516102e091906141bc565b60405180910390f35b61030360048036038101906102fe91906130b8565b610d0b565b604051610310919061415d565b60405180910390f35b610333600480360381019061032e919061316c565b610d1d565b005b61034f600480360381019061034a91906130b8565b611017565b005b61036b60048036038101906103669190613230565b6112d8565b604051610378919061433d565b60405180910390f35b61039b600480360381019061039691906130b8565b6113ad565b6040516103a8919061433d565b60405180910390f35b6103cb60048036038101906103c69190613472565b611462565b6040516103d891906141d7565b60405180910390f35b6103fb60048036038101906103f69190613066565b611482565b005b61041760048036038101906104129190613230565b61169a565b005b610421611746565b60405161042e91906142fe565b60405180910390f35b610451600480360381019061044c91906130b8565b61176c565b005b61046d6004803603810190610468919061334d565b611a38565b005b610477611a92565b604051610484919061461f565b60405180910390f35b6104a760048036038101906104a29190613066565b611a98565b005b6104c360048036038101906104be91906133dd565b611b2f565b005b6104df60048036038101906104da91906130b8565b611d58565b6040516104ed92919061421b565b60405180910390f35b610510600480360381019061050b91906130b8565b611d92565b005b61052c600480360381019061052791906131d8565b6120a2565b60405161053991906141bc565b60405180910390f35b61055c600480360381019061055791906130e1565b6120fb565b005b61057860048036038101906105739190613406565b612153565b005b610594600480360381019061058f9190613311565b612366565b6040516105a191906142dc565b60405180910390f35b60006040516020016105bb9061406f565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061067d5750604051602001610626906140aa565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806106e95750604051602001610692906140fe565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061075557506040516020016106fe906140d4565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107c1575060405160200161076a906140e9565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061082d57506040516020016107d6906140bf565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b846108938161242d565b6108d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c9906145df565b60405180910390fd5b82826007600089815260200190815260200160002087876040516108f7929190614056565b90815260200160405180910390209190610912929190612d39565b508484604051610923929190614056565b6040518091039020867fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a7550878760405161095d929190614319565b60405180910390a3505050505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60096020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006109d0612516565b90503073ffffffffffffffffffffffffffffffffffffffff166109f283612527565b73ffffffffffffffffffffffffffffffffffffffff1614610a48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3f9061443f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166009600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae09061437f565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b0fc9c383836040518363ffffffff1660e01b8152600401610b469291906141f2565b600060405180830381600087803b158015610b6057600080fd5b505af1158015610b74573d6000803e3d6000fd5b505050506009600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690557f7803a16d95f9ca635bdec561006625e7444d8a9f8463866643cc03af011779d38282604051610bdf9291906141f2565b60405180910390a15050565b82610bf58161242d565b610c34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2b906145df565b60405180910390fd5b604051806040016040528084815260200183815250600660008681526020019081526020016000206000820151816000015560208201518160010155905050837f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e468484604051610ca592919061421b565b60405180910390a250505050565b60008073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b6000610d1682612527565b9050919050565b6000610d27612516565b90506000610d3682878761260c565b9050610d868185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612664565b610dc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbc9061439f565b60405180910390fd5b60008686604051602001610dda92919061402a565b6040516020818303038152906040528051906020012090503073ffffffffffffffffffffffffffffffffffffffff16610e1288612527565b73ffffffffffffffffffffffffffffffffffffffff1614610e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5f9061441f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16610e8982612527565b73ffffffffffffffffffffffffffffffffffffffff1614610edf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed6906143bf565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635ef2c7f08888303060006040518663ffffffff1660e01b8152600401610f43959493929190614244565b600060405180830381600087803b158015610f5d57600080fd5b505af1158015610f71573d6000803e3d6000fd5b50505050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b0fc9c382856040518363ffffffff1660e01b8152600401610fd29291906141f2565b600060405180830381600087803b158015610fec57600080fd5b505af1158015611000573d6000803e3d6000fd5b5050505061100e81846126d1565b50505050505050565b6000611021612516565b9050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff1660e01b815260040161107e91906141d7565b60206040518083038186803b15801561109657600080fd5b505afa1580156110aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ce919061308f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461113b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111329061447f565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630178b8bf846040518263ffffffff1660e01b81526004016111ad91906141d7565b60206040518083038186803b1580156111c557600080fd5b505afa1580156111d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111fd919061308f565b73ffffffffffffffffffffffffffffffffffffffff1614611253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124a9061435f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1661127483612527565b73ffffffffffffffffffffffffffffffffffffffff16146112ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c19061451f565b60405180910390fd5b6112d482826126d1565b5050565b60606007600085815260200190815260200160002083836040516112fd929190614056565b90815260200160405180910390208054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561139f5780601f106113745761010080835404028352916020019161139f565b820191906000526020600020905b81548152906001019060200180831161138257829003601f168201915b505050505090509392505050565b6060600560008381526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114565780601f1061142b57610100808354040283529160200191611456565b820191906000526020600020905b81548152906001019060200180831161143957829003601f168201915b50505050509050919050565b600061147b82600001518360200151846040015161260c565b9050919050565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661150d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115049061449f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16141561157c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115739061459f565b60405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611607576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fe9061453f565b60405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fee943cdb81826d5909c559c6b1ae6908fcaf2dbc16c4b730346736b486283e8b328260405161168f929190614193565b60405180910390a150565b826116a48161242d565b6116e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116da906145df565b60405180910390fd5b8282600560008781526020019081526020016000209190611705929190612d39565b50837fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f78484604051611738929190614319565b60405180910390a250505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611776612516565b9050600073ffffffffffffffffffffffffffffffffffffffff1661179983612527565b73ffffffffffffffffffffffffffffffffffffffff16146117ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e6906144ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166009600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611891576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611888906144df565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3846040518263ffffffff1660e01b815260040161190391906141d7565b60206040518083038186803b15801561191b57600080fd5b505afa15801561192f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611953919061308f565b73ffffffffffffffffffffffffffffffffffffffff16146119a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a09061455f565b60405180910390fd5b806009600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fc1e082a8c26f27c26e1bf5d0ce7ddd579ec7f6d7eb3ea90d8abd6c40991bae368282604051611a2c9291906141f2565b60405180910390a15050565b82611a428161242d565b611a81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a78906145df565b60405180910390fd5b611a8c8484846126e9565b50505050565b60025481565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1a9061449f565b60405180910390fd5b611b2c816127ab565b50565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611bba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb19061449f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c21906144bf565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611cbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb2906145ff565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fdb0239c63d4033dcdd21bd44f8dd479a03efbae12f6bbe27c0a5f923d26514cc600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051611d4d919061415d565b60405180910390a150565b6000806006600084815260200190815260200160002060000154600660008581526020019081526020016000206001015491509150915091565b6000611d9c612516565b9050600073ffffffffffffffffffffffffffffffffffffffff16611dbf83612527565b73ffffffffffffffffffffffffffffffffffffffff1614611e15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0c906144ff565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166009600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611eb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ead9061437f565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3846040518263ffffffff1660e01b8152600401611f2891906141d7565b60206040518083038186803b158015611f4057600080fd5b505afa158015611f54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f78919061308f565b73ffffffffffffffffffffffffffffffffffffffff1614611fce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc59061455f565b60405180910390fd5b611fd882306126d1565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a83306040518363ffffffff1660e01b81526004016120359291906141f2565b600060405180830381600087803b15801561204f57600080fd5b505af1158015612063573d6000803e3d6000fd5b505050507fcefbe9dbadcf675eef14e23810996ff38541fc26b4dd77cd6724b0eedc96f2008260405161209691906141d7565b60405180910390a15050565b60006120f28484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612664565b90509392505050565b816121058161242d565b612144576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213b906145df565b60405180910390fd5b61214e83836126d1565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146121e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121da906143ff565b60405180910390fd5b6000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612295576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228c906144bf565b60405180910390fd5b83600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612320838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505061293a565b61232981612992565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e6326040516123589190614178565b60405180910390a150505050565b60606004600084815260200190815260200160002060008381526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124205780601f106123f557610100808354040283529160200191612420565b820191906000526020600020905b81548152906001019060200180831161240357829003601f168201915b5050505050905092915050565b6000612437612516565b73ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3846040518263ffffffff1660e01b81526004016124a891906141d7565b60206040518083038186803b1580156124c057600080fd5b505afa1580156124d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124f8919061308f565b73ffffffffffffffffffffffffffffffffffffffff16149050919050565b600061252260286129d6565b905090565b6000806060600460008581526020019081526020016000206000603c81526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156125e55780601f106125ba576101008083540402835291602001916125e5565b820191906000526020600020905b8154815290600101906020018083116125c857829003601f168201915b50505050509050600081511115612602576125ff81612a6b565b91505b8192505050919050565b600061265b7f621363c539a3aa1024c8837ca1dc095db03b7f9512b3a95ecb429aae7fd953ed85858560405160200161264793929190613fed565b604051602081830303815290604052612a93565b90509392505050565b60008061267a8385612ad490919063ffffffff16565b90506000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b6126e582603c6126e084612b8f565b6126e9565b5050565b827f65412581168e88a1e60c6459d7f44ae83ad0832e670826c05a4e2476b57af752838360405161271b92919061463a565b60405180910390a2603c82141561276d57827f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd261275783612a6b565b6040516127649190614178565b60405180910390a25b8060046000858152602001908152602001600020600084815260200190815260200160002090805190602001906127a5929190612db9565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561281b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612812906143df565b60405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156128a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289e9061457f565b60405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fbc3292102fa77e083913064b282926717cdfaede4d35f553d66366c0a3da755a328260405161292f929190614193565b60405180910390a150565b6000815114156129525761294d326127ab565b61298f565b60008151905060005b8181101561298c5761297f83828151811061297257fe5b60200260200101516127ab565b808060010191505061295b565b50505b50565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600090506129e5612bf6565b15612a5e576000836000369050039050612a5660003683906014850192612a0e93929190614711565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612ca3565b915050612a62565b3390505b80915050919050565b6000806014835114612a7c57600080fd5b600c6101000a602084015104905080915050919050565b6000612acc600254308585604051602001612ab19493929190614113565b60405160208183030381529060405280519060200120612d09565b905092915050565b60008060009050604183511415612b855760008060006020860151925060408601519150606086015160001a9050601b8160ff161015612b1557601b810190505b601b8160ff161480612b2a5750601c8160ff16145b15612b815760018782858560405160008152602001604052604051612b529493929190614297565b6020604051602081039080840390855afa158015612b74573d6000803e3d6000fd5b5050506020604051035193505b5050505b8091505092915050565b606080601467ffffffffffffffff81118015612baa57600080fd5b506040519080825280601f01601f191660200182016040528015612bdd5781602001600182028036833780820191505090505b509050600c6101000a8302602082015280915050919050565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415612c9c57602c60003690501015612c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c8e9061445f565b60405180910390fd5b600190505b8091505090565b6000806014835114612cea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce1906145bf565b60405180910390fd5b6c01000000000000000000000000602084015104905080915050919050565b600081604051602001612d1c9190614084565b604051602081830303815290604052805190602001209050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612d7a57803560ff1916838001178555612da8565b82800160010185558215612da8579182015b82811115612da7578235825591602001919060010190612d8c565b5b509050612db59190612e39565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612dfa57805160ff1916838001178555612e28565b82800160010185558215612e28579182015b82811115612e27578251825591602001919060010190612e0c565b5b509050612e359190612e39565b5090565b5b80821115612e52576000816000905550600101612e3a565b5090565b600081359050612e65816148f9565b92915050565b600081519050612e7a816148f9565b92915050565b60008083601f840112612e9257600080fd5b8235905067ffffffffffffffff811115612eab57600080fd5b602083019150836020820283011115612ec357600080fd5b9250929050565b600081359050612ed981614910565b92915050565b600081359050612eee81614927565b92915050565b60008083601f840112612f0657600080fd5b8235905067ffffffffffffffff811115612f1f57600080fd5b602083019150836001820283011115612f3757600080fd5b9250929050565b600082601f830112612f4f57600080fd5b8135612f62612f5d82614697565b61466a565b91508082526020830160208301858383011115612f7e57600080fd5b612f89838284614861565b50505092915050565b600081359050612fa18161493e565b92915050565b60008083601f840112612fb957600080fd5b8235905067ffffffffffffffff811115612fd257600080fd5b602083019150836001820283011115612fea57600080fd5b9250929050565b60006060828403121561300357600080fd5b61300d606061466a565b9050600061301d84828501612e56565b600083015250602061303184828501612eca565b602083015250604061304584828501612eca565b60408301525092915050565b60008135905061306081614955565b92915050565b60006020828403121561307857600080fd5b600061308684828501612e56565b91505092915050565b6000602082840312156130a157600080fd5b60006130af84828501612e6b565b91505092915050565b6000602082840312156130ca57600080fd5b60006130d884828501612eca565b91505092915050565b600080604083850312156130f457600080fd5b600061310285828601612eca565b925050602061311385828601612e56565b9150509250929050565b60008060006060848603121561313257600080fd5b600061314086828701612eca565b935050602061315186828701612eca565b925050604061316286828701612eca565b9150509250925092565b6000806000806060858703121561318257600080fd5b600061319087828801612eca565b94505060206131a187828801612eca565b935050604085013567ffffffffffffffff8111156131be57600080fd5b6131ca87828801612ef4565b925092505092959194509250565b6000806000604084860312156131ed57600080fd5b60006131fb86828701612eca565b935050602084013567ffffffffffffffff81111561321857600080fd5b61322486828701612ef4565b92509250509250925092565b60008060006040848603121561324557600080fd5b600061325386828701612eca565b935050602084013567ffffffffffffffff81111561327057600080fd5b61327c86828701612fa7565b92509250509250925092565b6000806000806000606086880312156132a057600080fd5b60006132ae88828901612eca565b955050602086013567ffffffffffffffff8111156132cb57600080fd5b6132d788828901612fa7565b9450945050604086013567ffffffffffffffff8111156132f657600080fd5b61330288828901612fa7565b92509250509295509295909350565b6000806040838503121561332457600080fd5b600061333285828601612eca565b925050602061334385828601613051565b9150509250929050565b60008060006060848603121561336257600080fd5b600061337086828701612eca565b935050602061338186828701613051565b925050604084013567ffffffffffffffff81111561339e57600080fd5b6133aa86828701612f3e565b9150509250925092565b6000602082840312156133c657600080fd5b60006133d484828501612edf565b91505092915050565b6000602082840312156133ef57600080fd5b60006133fd84828501612f92565b91505092915050565b6000806000806060858703121561341c57600080fd5b600061342a87828801612f92565b945050602085013567ffffffffffffffff81111561344757600080fd5b61345387828801612e80565b9350935050604061346687828801612e56565b91505092959194509250565b60006060828403121561348457600080fd5b600061349284828501612ff1565b91505092915050565b6134a4816147f5565b82525050565b6134b381614744565b82525050565b6134ca6134c582614744565b6148a3565b82525050565b6134d981614756565b82525050565b6134e881614762565b82525050565b6134ff6134fa82614762565b6148b5565b82525050565b6000613510826146c3565b61351a81856146d9565b935061352a818560208601614870565b613533816148db565b840191505092915050565b6000613549826146c3565b61355381856146ea565b9350613563818560208601614870565b80840191505092915050565b61357881614807565b82525050565b6135878161482b565b82525050565b600061359983856146f5565b93506135a6838584614861565b6135af836148db565b840190509392505050565b60006135c68385614706565b93506135d3838584614861565b82840190509392505050565b60006135ea826146ce565b6135f481856146f5565b9350613604818560208601614870565b61360d816148db565b840191505092915050565b6000613625601983614706565b91507f737570706f727473496e746572666163652862797465733429000000000000006000830152601982019050919050565b60006136656024836146f5565b91507f454e53436f6e74726f6c6c65723a20696e76616c6964206e6f6465207265736f60008301527f6c766572000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006136cb6021836146f5565b91507f454e53436f6e74726f6c6c65723a20696e76616c6964206e6f6465206f776e6560008301527f72000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006137316029836146f5565b91507f454e53436f6e74726f6c6c65723a20696e76616c696420677561726469616e2060008301527f7369676e617475726500000000000000000000000000000000000000000000006020830152604082019050919050565b60006137976022836146f5565b91507f454e53436f6e74726f6c6c65723a206c6162656c20616c72656164792074616b60008301527f656e0000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006137fd601c83614706565b91507f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000830152601c82019050919050565b600061383d6020836146f5565b91507f477561726465643a2063616e6e6f74206164642030783020677561726469616e6000830152602082019050919050565b600061387d602f836146f5565b91507f496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742060008301527f74686520696e697469616c697a657200000000000000000000000000000000006020830152604082019050919050565b60006138e3600d83614706565b91507f61646472286279746573333229000000000000000000000000000000000000006000830152600d82019050919050565b6000613923601b836146f5565b91507f454e53436f6e74726f6c6c65723a20696e76616c6964206e6f646500000000006000830152602082019050919050565b60006139636021836146f5565b91507f454e53436f6e74726f6c6c65723a206e6f646520646f65736e2774206578697360008301527f74000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006139c96022836146f5565b91507f47617465776179526563697069656e743a20696e76616c6964206d73672e646160008301527f74610000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613a2f601483614706565b91507f7465787428627974657333322c737472696e67290000000000000000000000006000830152601482019050919050565b6000613a6f600d83614706565b91507f6e616d65286279746573333229000000000000000000000000000000000000006000830152600d82019050919050565b6000613aaf602b836146f5565b91507f454e53436f6e74726f6c6c65723a2063616c6c6572206973206e6f742074686560008301527f206e6f6465206f776e65720000000000000000000000000000000000000000006020830152604082019050919050565b6000613b156026836146f5565b91507f477561726465643a2074782e6f726967696e206973206e6f742074686520677560008301527f61726469616e00000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613b7b6026836146f5565b91507f454e53436f6e74726f6c6c65723a2063616e6e6f74207365742030783020726560008301527f67697374727900000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613be16025836146f5565b91507f454e53436f6e74726f6c6c65723a206e6f646520616c7265616479207375626d60008301527f69747465640000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613c47600f83614706565b91507f7075626b657928627974657333322900000000000000000000000000000000006000830152600f82019050919050565b6000613c876022836146f5565b91507f454e53436f6e74726f6c6c65723a206e6f646520616c7265616479206578697360008301527f74730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613ced6023836146f5565b91507f454e53436f6e74726f6c6c65723a206e6f646520616c726561647920696e207360008301527f796e6300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613d53601f836146f5565b91507f477561726465643a20677561726469616e20646f65736e2774206578697374006000830152602082019050919050565b6000613d936025836146f5565b91507f454e53436f6e74726f6c6c65723a20696e76616c696420656e73206e6f64652060008301527f6f776e65720000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613df96020836146f5565b91507f477561726465643a20677561726469616e20616c7265616479206578697374736000830152602082019050919050565b6000613e39601b836146f5565b91507f477561726465643a2063616e6e6f742072656d6f76652073656c6600000000006000830152602082019050919050565b6000613e79601d836146f5565b91507f42797465734c69623a20696e76616c69642064617461206c656e6774680000006000830152602082019050919050565b6000613eb96037836146f5565b91507f454e5341627374726163745265736f6c7665723a20726576657274656420627960008301527f206f6e6c794e6f64654f776e6572206d6f6469666965720000000000000000006020830152604082019050919050565b6000613f1f601283614706565b91507f6164647228627974657333322c75696e742900000000000000000000000000006000830152601282019050919050565b6000613f5f6023836146f5565b91507f454e53436f6e74726f6c6c65723a20726567697374727920616c72656164792060008301527f73657400000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b613fc1816147ca565b82525050565b613fd8613fd3826147ca565b6148d1565b82525050565b613fe7816147e8565b82525050565b6000613ff982866134b9565b60148201915061400982856134ee565b60208201915061401982846134ee565b602082019150819050949350505050565b600061403682856134ee565b60208201915061404682846134ee565b6020820191508190509392505050565b60006140638284866135ba565b91508190509392505050565b600061407a82613618565b9150819050919050565b600061408f826137f0565b915061409b82846134ee565b60208201915081905092915050565b60006140b5826138d6565b9150819050919050565b60006140ca82613a22565b9150819050919050565b60006140df82613a62565b9150819050919050565b60006140f482613c3a565b9150819050919050565b600061410982613f12565b9150819050919050565b600061411f8287613fc7565b60208201915061412f82866134b9565b60148201915061413f82856134ee565b60208201915061414f828461353e565b915081905095945050505050565b600060208201905061417260008301846134aa565b92915050565b600060208201905061418d600083018461349b565b92915050565b60006040820190506141a8600083018561349b565b6141b560208301846134aa565b9392505050565b60006020820190506141d160008301846134d0565b92915050565b60006020820190506141ec60008301846134df565b92915050565b600060408201905061420760008301856134df565b61421460208301846134aa565b9392505050565b600060408201905061423060008301856134df565b61423d60208301846134df565b9392505050565b600060a08201905061425960008301886134df565b61426660208301876134df565b61427360408301866134aa565b61428060608301856134aa565b61428d608083018461357e565b9695505050505050565b60006080820190506142ac60008301876134df565b6142b96020830186613fde565b6142c660408301856134df565b6142d360608301846134df565b95945050505050565b600060208201905081810360008301526142f68184613505565b905092915050565b6000602082019050614313600083018461356f565b92915050565b6000602082019050818103600083015261433481848661358d565b90509392505050565b6000602082019050818103600083015261435781846135df565b905092915050565b6000602082019050818103600083015261437881613658565b9050919050565b60006020820190508181036000830152614398816136be565b9050919050565b600060208201905081810360008301526143b881613724565b9050919050565b600060208201905081810360008301526143d88161378a565b9050919050565b600060208201905081810360008301526143f881613830565b9050919050565b6000602082019050818103600083015261441881613870565b9050919050565b6000602082019050818103600083015261443881613916565b9050919050565b6000602082019050818103600083015261445881613956565b9050919050565b60006020820190508181036000830152614478816139bc565b9050919050565b6000602082019050818103600083015261449881613aa2565b9050919050565b600060208201905081810360008301526144b881613b08565b9050919050565b600060208201905081810360008301526144d881613b6e565b9050919050565b600060208201905081810360008301526144f881613bd4565b9050919050565b6000602082019050818103600083015261451881613c7a565b9050919050565b6000602082019050818103600083015261453881613ce0565b9050919050565b6000602082019050818103600083015261455881613d46565b9050919050565b6000602082019050818103600083015261457881613d86565b9050919050565b6000602082019050818103600083015261459881613dec565b9050919050565b600060208201905081810360008301526145b881613e2c565b9050919050565b600060208201905081810360008301526145d881613e6c565b9050919050565b600060208201905081810360008301526145f881613eac565b9050919050565b6000602082019050818103600083015261461881613f52565b9050919050565b60006020820190506146346000830184613fb8565b92915050565b600060408201905061464f6000830185613fb8565b81810360208301526146618184613505565b90509392505050565b6000604051905081810181811067ffffffffffffffff8211171561468d57600080fd5b8060405250919050565b600067ffffffffffffffff8211156146ae57600080fd5b601f19601f8301169050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000808585111561472157600080fd5b8386111561472e57600080fd5b6001850283019150848603905094509492505050565b600061474f826147aa565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60006147a382614744565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b600060ff82169050919050565b60006148008261483d565b9050919050565b600061481282614819565b9050919050565b6000614824826147aa565b9050919050565b6000614836826147d4565b9050919050565b60006148488261484f565b9050919050565b600061485a826147aa565b9050919050565b82818337600083830152505050565b60005b8381101561488e578082015181840152602081019050614873565b8381111561489d576000848401525b50505050565b60006148ae826148bf565b9050919050565b6000819050919050565b60006148ca826148ec565b9050919050565b6000819050919050565b6000601f19601f8301169050919050565b60008160601b9050919050565b61490281614744565b811461490d57600080fd5b50565b61491981614762565b811461492457600080fd5b50565b6149308161476c565b811461493b57600080fd5b50565b61494781614798565b811461495257600080fd5b50565b61495e816147ca565b811461496957600080fd5b5056fea164736f6c634300060c000a", + "bytecode": "0x60806040523480156200001157600080fd5b506200002e67e6ad6dd6ee73072860c01b6200017e60201b60201c565b6200004a67bcc9be562f8a4b0a60c01b6200018160201b60201c565b6200006667579ae7209daca85260c01b6200018160201b60201c565b32600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000c3676b19898ae2f7725060c01b6200018460201b60201c565b620000df677c2d0c907f0deddc60c01b6200018460201b60201c565b620000fb67f0d1a438b0305bb160c01b6200018460201b60201c565b6000620001196737bb5abaf3e7d9d360c01b6200018460201b60201c565b46905062000138676f86a9c0c67bb39a60c01b6200018460201b60201c565b80600281905550506200015c674f33f857671bcade60c01b6200018760201b60201c565b62000178671b8a8de85538aaee60c01b6200018a60201b60201c565b6200018d565b50565b50565b50565b50565b50565b6172ce806200019d6000396000f3fe608060405234801561001057600080fd5b506004361061038e5760003560e01c80638b95dd71116101de578063bdbafb451161010f578063dc5b68a6116100ad578063ee5fac3c1161007c578063ee5fac3c14610ba0578063f0af072114610bd0578063f1cb7e0614610bec578063f446529f14610c1c5761038e565b8063dc5b68a614610b1c578063dce3f9a414610b38578063e89f764b14610b54578063ebaa653314610b845761038e565b8063c8cc2aee116100e9578063c8cc2aee14610a84578063d0f710d614610aa0578063d5fa2b0014610ad0578063d84fa10c14610aec5761038e565b8063bdbafb4514610a07578063c454330514610a23578063c869023314610a535761038e565b8063a6f8c64a1161017c578063b94f144811610156578063b94f14481461096f578063bccb31c61461099f578063bcd48364146109bb578063bd1313ce146109d75761038e565b8063a6f8c64a14610907578063a91ee0dc14610923578063ae1a7ece1461093f5761038e565b80639adf1043116101b85780639adf10431461085b5780639f106f7e1461088b578063a3561e69146108bb578063a526d83b146108eb5761038e565b80638b95dd71146107f1578063969faf5b1461080d5780639a8a05921461083d5761038e565b80633b3b57de116102c3578063691f3431116102615780637737221311610230578063773722131461077f5780637b1039991461079b5780637d0e0e7e146107b95780638034cda0146107d55761038e565b8063691f3431146106d3578063692b0ad9146107035780636df0cf421461073357806371404156146107635761038e565b80635016492e1161029d5780635016492e1461062757806355800f871461065757806359d1d43c1461067357806361f6df1e146106a35761038e565b80633b3b57de146105bf5780633e260b13146105ef57806346386f731461060b5761038e565b80631b3cd1421161033057806329cd62ea1161030a57806329cd62ea1461052557806329fbd957146105415780632c4bbae614610571578063392e53cd146105a15761038e565b80631b3cd142146104bd578063279a5039146104ed57806329ae6a7e146105095761038e565b80630c68ba211161036c5780630c68ba21146104235780630feb61e61461045357806310f13a8c14610483578063116191b61461049f5761038e565b806301ffc9a71461039357806306554924146103c35780630c67003a146103f3575b600080fd5b6103ad60048036038101906103a89190615c9d565b610c4c565b6040516103ba9190616ace565b60405180910390f35b6103dd60048036038101906103d89190615cc6565b61102a565b6040516103ea9190616ace565b60405180910390f35b61040d60048036038101906104089190615cc6565b611035565b60405161041a9190616ace565b60405180910390f35b61043d6004803603810190610438919061594f565b61103c565b60405161044a9190616ace565b60405180910390f35b61046d60048036038101906104689190615cc6565b6110cd565b60405161047a9190616ace565b60405180910390f35b61049d60048036038101906104989190615b71565b6110d8565b005b6104a76112ac565b6040516104b49190616a6f565b60405180910390f35b6104d760048036038101906104d291906159a1565b6112d2565b6040516104e49190616a6f565b60405180910390f35b61050760048036038101906105029190615cc6565b611305565b005b610523600480360381019061051e91906159a1565b611308565b005b61053f600480360381019061053a9190615a06565b61166d565b005b61055b60048036038101906105569190615cc6565b611825565b6040516105689190616ace565b60405180910390f35b61058b60048036038101906105869190615cc6565b611830565b6040516105989190616ace565b60405180910390f35b6105a9611837565b6040516105b69190616ace565b60405180910390f35b6105d960048036038101906105d491906159a1565b6118cc565b6040516105e69190616a6f565b60405180910390f35b61060960048036038101906106049190615cc6565b61191a565b005b61062560048036038101906106209190615a55565b61191d565b005b610641600480360381019061063c9190615cc6565b611e0b565b60405161064e9190616ace565b60405180910390f35b610671600480360381019061066c91906159a1565b611e16565b005b61068d60048036038101906106889190615b19565b61222b565b60405161069a9190616c4f565b60405180910390f35b6106bd60048036038101906106b89190615cc6565b61233c565b6040516106ca9190616ace565b60405180910390f35b6106ed60048036038101906106e891906159a1565b612347565b6040516106fa9190616c4f565b60405180910390f35b61071d60048036038101906107189190615cc6565b612438565b60405161072a9190616ace565b60405180910390f35b61074d60048036038101906107489190615d84565b61243f565b60405161075a9190616ae9565b60405180910390f35b61077d6004803603810190610778919061594f565b61249b565b005b61079960048036038101906107949190615b19565b612843565b005b6107a36129df565b6040516107b09190616c10565b60405180910390f35b6107d360048036038101906107ce91906159a1565b612a05565b005b6107ef60048036038101906107ea9190615cc6565b612e38565b005b61080b60048036038101906108069190615c36565b612e3b565b005b61082760048036038101906108229190615cc6565b612f71565b6040516108349190616ace565b60405180910390f35b610845612f78565b6040516108529190616f31565b60405180910390f35b61087560048036038101906108709190615cc6565b612f7e565b6040516108829190616ace565b60405180910390f35b6108a560048036038101906108a09190615cc6565b612f89565b6040516108b29190616ace565b60405180910390f35b6108d560048036038101906108d09190615cc6565b612f94565b6040516108e29190616ace565b60405180910390f35b6109056004803603810190610900919061594f565b612f9b565b005b610921600480360381019061091c9190615cc6565b61310e565b005b61093d60048036038101906109389190615cef565b613111565b005b61095960048036038101906109549190615cc6565b6134ca565b6040516109669190616ace565b60405180910390f35b61098960048036038101906109849190615cc6565b6134d5565b6040516109969190616ace565b60405180910390f35b6109b960048036038101906109b49190615cc6565b6134dc565b005b6109d560048036038101906109d09190615cc6565b6134df565b005b6109f160048036038101906109ec9190615cc6565b6134e2565b6040516109fe9190616ace565b60405180910390f35b610a216004803603810190610a1c9190615cc6565b6134e9565b005b610a3d6004803603810190610a389190615cc6565b6134ec565b604051610a4a9190616ace565b60405180910390f35b610a6d6004803603810190610a6891906159a1565b6134f7565b604051610a7b929190616b2d565b60405180910390f35b610a9e6004803603810190610a9991906159a1565b61356d565b005b610aba6004803603810190610ab59190615ac1565b613a21565b604051610ac79190616ace565b60405180910390f35b610aea6004803603810190610ae591906159ca565b613ab6565b005b610b066004803603810190610b019190615cc6565b613bea565b604051610b139190616ace565b60405180910390f35b610b366004803603810190610b319190615d18565b613bf1565b005b610b526004803603810190610b4d9190615cc6565b613fa8565b005b610b6e6004803603810190610b699190615cc6565b613fab565b604051610b7b9190616ace565b60405180910390f35b610b9e6004803603810190610b999190615cc6565b613fb2565b005b610bba6004803603810190610bb59190615cc6565b613fb5565b604051610bc79190616ace565b60405180910390f35b610bea6004803603810190610be59190615cc6565b613fbc565b005b610c066004803603810190610c019190615bfa565b613fbf565b604051610c139190616bee565b60405180910390f35b610c366004803603810190610c319190615cc6565b6140c2565b604051610c439190616ace565b60405180910390f35b6000610c62673e53c3a719fdfb6160c01b6134e9565b610c766729ef8ce42af619b060c01b6134e9565b610c8a672ce96fd6ab276e0c60c01b6134e9565b604051602001610c9990616981565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148015610d0b5750610d0a670fbe9824db25179a60c01b611e0b565b5b80610daf5750604051602001610d20906169bc565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148015610d925750610d916727b7c81d07ae1edf60c01b611e0b565b5b8015610dae5750610dad674c643504008914e460c01b611e0b565b5b5b80610e535750604051602001610dc490616a10565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148015610e365750610e3567cd525a4cca4f34a860c01b611e0b565b5b8015610e525750610e516788cd2a17224750ec60c01b611e0b565b5b5b80610ef75750604051602001610e68906169e6565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148015610eda5750610ed9672a0e61e84c067a0a60c01b611e0b565b5b8015610ef65750610ef567502d2e13e9277dcb60c01b611e0b565b5b5b80610f9b5750604051602001610f0c906169fb565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148015610f7e5750610f7d678a100a7067c528eb60c01b611e0b565b5b8015610f9a5750610f996711799455275f223260c01b611e0b565b5b5b806110235750604051602001610fb0906169d1565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614801561102257506110216784e3fa8f14ba5fc860c01b611e0b565b5b5b9050919050565b600060019050919050565b6000919050565b6000611052677ab52c65f999e01f60c01b6134dc565b6110666710268b7b424a1bd560c01b6134dc565b61107a6713a157f311059a7b60c01b6134dc565b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600060019050919050565b6110ec67d251b3372a0cf47960c01b611305565b8461110167a8597772f581907360c01b613fb2565b611115676495766894d148d260c01b613fb2565b61112967c1da93cd693904fb60c01b613fb2565b61113d6711ce0725ac60101860c01b613fb2565b611146816140cd565b611185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117c90616ef1565b60405180910390fd5b611199678748427beee9a41560c01b613fb2565b6111ad679dcf59ae2b3dc50860c01b613fb2565b6111c167591792e78ec2f65760c01b611305565b6111d5676669726c18307e5e60c01b611305565b6111e967cae1031985aa218360c01b611305565b828260076000898152602001908152602001600020878760405161120e929190616968565b9081526020016040518091039020919061122992919061560d565b5061123e674e2633545fafa32260c01b611305565b611252675f78468e1dde38a460c01b611305565b8484604051611262929190616968565b6040518091039020867fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a7550878760405161129c929190616c2b565b60405180910390a3505050505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60096020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b50565b61131c6732f0fd9a837cb8ae60c01b6134e9565b61133067ccef01e2549de0f160c01b6134e9565b61134467351df6a73de5ed1f60c01b6134e9565b600061134e6141f2565b905061136467bc87442f68ba4e8560c01b6134e9565b61137867c1f6c1e5fb99a06a60c01b6134e9565b61138c67a01e251f792e923e60c01b6134e9565b3073ffffffffffffffffffffffffffffffffffffffff166113ac8361423f565b73ffffffffffffffffffffffffffffffffffffffff1614611402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f990616d51565b60405180910390fd5b61141667d97611c48588e50960c01b6134e9565b61142a67915426252a0e5af260c01b6134e9565b61143e673d4f611e5bcfec5160c01b6134e9565b61145267f5c32e9e304a40ae60c01b6134e9565b8073ffffffffffffffffffffffffffffffffffffffff166009600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ea90616c91565b60405180910390fd5b6115076757ad1b22f297e47460c01b6134e9565b61151b672518daaccd90e99d60c01b6134e9565b61152f67531efb0041a679c960c01b6134e9565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b0fc9c383836040518363ffffffff1660e01b815260040161158c929190616b04565b600060405180830381600087803b1580156115a657600080fd5b505af11580156115ba573d6000803e3d6000fd5b505050506115d267c7d84d1a497d278660c01b6134e9565b6009600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905561161c67b9e9f636ac14f30e60c01b6134e9565b61163067e55674422ce28fc360c01b6134e9565b7f7803a16d95f9ca635bdec561006625e7444d8a9f8463866643cc03af011779d38282604051611661929190616b04565b60405180910390a15050565b61168167d17efb0a7eb6908260c01b61310e565b8261169667a8597772f581907360c01b613fb2565b6116aa676495766894d148d260c01b613fb2565b6116be67c1da93cd693904fb60c01b613fb2565b6116d26711ce0725ac60101860c01b613fb2565b6116db816140cd565b61171a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171190616ef1565b60405180910390fd5b61172e678748427beee9a41560c01b613fb2565b611742679dcf59ae2b3dc50860c01b613fb2565b61175667a7c8d4d16e37e64360c01b61310e565b61176a67ce8cc1dc0cdb407760c01b61310e565b61177e673b6fb4a892f52fdf60c01b61310e565b6040518060400160405280848152602001838152506006600086815260200190815260200160002060008201518160000155602082015181600101559050506117d1675050d3db7836b7b260c01b61310e565b6117e5676e14e4e56feb20eb60c01b61310e565b837f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e468484604051611817929190616b2d565b60405180910390a250505050565b600060019050919050565b6000919050565b600061184d67e29fe2f351ca6b2760c01b61191a565b611861676f5dd3f08b97747760c01b61191a565b611875673a9488d62818322a60c01b61191a565b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b60006118e267ce175155cdbb82b660c01b612e38565b6118f6672829765e0e2bb8b060c01b612e38565b61190a67280086a7db8bdd0960c01b612e38565b6119138261423f565b9050919050565b50565b61193167093e06bd5823435060c01b6134e9565b61194567ac96d16a1d124a8660c01b6134e9565b61195967ee327b96f00b172e60c01b6134e9565b60006119636141f2565b905061197967fffac7b649ab959b60c01b6134e9565b61198d67eff3af429a5d4acd60c01b6134e9565b600061199a82878761441a565b90506119b067877a107de4122c7d60c01b6134e9565b6119c4675d96a43b57a9a14860c01b6134e9565b6119d8673f35c7250fc5b44960c01b6134e9565b611a268185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506144ae565b611a65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5c90616cb1565b60405180910390fd5b611a796707e366c09dc556ed60c01b6134e9565b611a8d672c7c0dd19e915ba360c01b6134e9565b611aa167097639b96bc3b80560c01b6134e9565b60008686604051602001611ab692919061693c565b604051602081830303815290604052805190602001209050611ae267e68beb862797da6e60c01b6134e9565b611af66762cc10045f9825dd60c01b6134e9565b611b0a673c62ebcce573c75a60c01b6134e9565b3073ffffffffffffffffffffffffffffffffffffffff16611b2a8861423f565b73ffffffffffffffffffffffffffffffffffffffff1614611b80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7790616d31565b60405180910390fd5b611b9467c9f661627c57c42660c01b6134e9565b611ba867a92e5d7d936d303a60c01b6134e9565b611bbc678b3a41262117961660c01b6134e9565b611bd067d4d77c202d37459960c01b6134e9565b600073ffffffffffffffffffffffffffffffffffffffff16611bf18261423f565b73ffffffffffffffffffffffffffffffffffffffff1614611c47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3e90616cd1565b60405180910390fd5b611c5b67a644ab7ed021918160c01b6134e9565b611c6f67761eab3b7dda68e260c01b6134e9565b611c8367613cb4e0dcf9073b60c01b6134e9565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635ef2c7f08888303060006040518663ffffffff1660e01b8152600401611ce7959493929190616b56565b600060405180830381600087803b158015611d0157600080fd5b505af1158015611d15573d6000803e3d6000fd5b50505050611d2d673c97c7996ed3291460c01b6134e9565b611d4167f8052d109a403d0860c01b6134e9565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b0fc9c382856040518363ffffffff1660e01b8152600401611d9e929190616b04565b600060405180830381600087803b158015611db857600080fd5b505af1158015611dcc573d6000803e3d6000fd5b50505050611de4674abdf691c39e28d560c01b6134e9565b611df867db1b5686f2b1df1b60c01b6134e9565b611e028184614580565b50505050505050565b600060019050919050565b611e2a67c29482f3a6cc814760c01b6134e9565b611e3e675d9375568b5cf37b60c01b6134e9565b611e5267a821cd4d6396a0c560c01b6134e9565b6000611e5c6141f2565b9050611e7267f8b13edbd3cdd6c260c01b6134e9565b611e8667868fc72177e2cce160c01b6134e9565b611e9a67e0f9a111b7f58f1960c01b6134e9565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff1660e01b8152600401611ef59190616ae9565b60206040518083038186803b158015611f0d57600080fd5b505afa158015611f21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f459190615978565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611fb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa990616d91565b60405180910390fd5b611fc667cfafcda721fa636760c01b6134e9565b611fda678e79226abb7ea95360c01b6134e9565b611fee67cd1ff6293a0a21cb60c01b6134e9565b61200267ca6580fbb3878c5f60c01b6134e9565b3073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630178b8bf846040518263ffffffff1660e01b81526004016120749190616ae9565b60206040518083038186803b15801561208c57600080fd5b505afa1580156120a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c49190615978565b73ffffffffffffffffffffffffffffffffffffffff161461211a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211190616c71565b60405180910390fd5b61212e6734e7c2c06a6b212f60c01b6134e9565b61214267221dc6d28b6f7a1e60c01b6134e9565b61215667259c70f8bcd41c9a60c01b6134e9565b61216a671e3be474d4bc2b4560c01b6134e9565b600073ffffffffffffffffffffffffffffffffffffffff1661218b8361423f565b73ffffffffffffffffffffffffffffffffffffffff16146121e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d890616e31565b60405180910390fd5b6121f567dfba363a4295a6bd60c01b6134e9565b61220967bc4c15ea2525331560c01b6134e9565b61221d67995ab68b5de2543a60c01b6134e9565b6122278282614580565b5050565b60606122416716908bcdbcdc0a9660c01b611305565b61225567378d2762af388c0860c01b611305565b61226967df2e701c4f77554d60c01b611305565b60076000858152602001908152602001600020838360405161228c929190616968565b90815260200160405180910390208054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561232e5780601f106123035761010080835404028352916020019161232e565b820191906000526020600020905b81548152906001019060200180831161231157829003601f168201915b505050505090509392505050565b600060019050919050565b606061235d67dec5b1215c24904760c01b613fa8565b612371673f4531654d1602d960c01b613fa8565b612385675968079db6a751b060c01b613fa8565b600560008381526020019081526020016000208054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561242c5780601f106124015761010080835404028352916020019161242c565b820191906000526020600020905b81548152906001019060200180831161240f57829003601f168201915b50505050509050919050565b6000919050565b60006124556755e36f2e6b1bed6860c01b6134e9565b6124696711ac5bde527c76fe60c01b6134e9565b61247d67f064a7883b8823c560c01b6134e9565b61249482600001518360200151846040015161441a565b9050919050565b6124af6747dd6d4e27a092d260c01b6134dc565b6124c367e0600b94c13d066760c01b6134dc565b6124d76755e8cedcdd449e2360c01b6134dc565b6124eb67ab821ba7fedab67160c01b6134dc565b6124ff67c540fbd78e0e2a4960c01b6134dc565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661258a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258190616db1565b60405180910390fd5b61259e67d014260b312542b460c01b6134dc565b6125b2674e25985d1c99d1f260c01b6134dc565b6125c667736984febec5fd2560c01b6134dc565b6125da67cbb923c66996310360c01b6134dc565b6125ee672c114aff1103564b60c01b6134dc565b61260267a76a63e34be2bddb60c01b6134dc565b61261667a220bc889ca09d2360c01b6134dc565b8073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415612685576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267c90616eb1565b60405180910390fd5b612699679467d7af09c5944d60c01b6134dc565b6126ad67c28a58b1b15ad6de60c01b6134dc565b6126c167c70b0fecc7c6d3b160c01b6134dc565b6126d567e7892f9392d41a6760c01b6134dc565b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612760576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275790616e51565b60405180910390fd5b612774675a0de441d13969aa60c01b6134dc565b612788674e473b0a29064fba60c01b6134dc565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506127f367e398e5606400274660c01b6134dc565b6128076738c3bd156a3471c260c01b6134dc565b7fee943cdb81826d5909c559c6b1ae6908fcaf2dbc16c4b730346736b486283e8b3282604051612838929190616aa5565b60405180910390a150565b61285767e126def3e2fdfc1060c01b613fa8565b8261286c67a8597772f581907360c01b613fb2565b612880676495766894d148d260c01b613fb2565b61289467c1da93cd693904fb60c01b613fb2565b6128a86711ce0725ac60101860c01b613fb2565b6128b1816140cd565b6128f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e790616ef1565b60405180910390fd5b612904678748427beee9a41560c01b613fb2565b612918679dcf59ae2b3dc50860c01b613fb2565b61292c6707fd1d9d1376442f60c01b613fa8565b61294067090977de14e2519760c01b613fa8565b612954670985f502ef56100560c01b613fa8565b828260056000878152602001908152602001600020919061297692919061560d565b5061298b67572689195bfb8dcf60c01b613fa8565b61299f67839de8924a7c57b360c01b613fa8565b837fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f784846040516129d1929190616c2b565b60405180910390a250505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612a196798f4fe795a6144c460c01b6134e9565b612a2d67d73fa07884c6296b60c01b6134e9565b612a41674f89b1faa0f36f2660c01b6134e9565b6000612a4b6141f2565b9050612a6167a74a41ef91908ce860c01b6134e9565b612a7567f04afda219e7f8bb60c01b6134e9565b612a8967069ded0da7c75ab960c01b6134e9565b600073ffffffffffffffffffffffffffffffffffffffff16612aaa8361423f565b73ffffffffffffffffffffffffffffffffffffffff1614612b00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af790616e11565b60405180910390fd5b612b14678cddb4766da2e34660c01b6134e9565b612b2766ab3ed8e3481c0560c01b6134e9565b612b3b671fd098baa193ac3c60c01b6134e9565b612b4f67e0887e53d44f403760c01b6134e9565b600073ffffffffffffffffffffffffffffffffffffffff166009600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612bf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612be890616df1565b60405180910390fd5b612c0567a498ec26f596d6e960c01b6134e9565b612c1967b74e03b9068920b660c01b6134e9565b612c2d674e7ad34c6e53bae860c01b6134e9565b612c416726e677701509fa3760c01b6134e9565b8073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3846040518263ffffffff1660e01b8152600401612cb39190616ae9565b60206040518083038186803b158015612ccb57600080fd5b505afa158015612cdf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d039190615978565b73ffffffffffffffffffffffffffffffffffffffff1614612d59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d5090616e71565b60405180910390fd5b612d6d670cd0d667e6f0800360c01b6134e9565b612d8167747454a7a4898a8560c01b6134e9565b806009600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612de767ffca0d5222865e7260c01b6134e9565b612dfb670cf13c115d48bc9c60c01b6134e9565b7fc1e082a8c26f27c26e1bf5d0ce7ddd579ec7f6d7eb3ea90d8abd6c40991bae368282604051612e2c929190616b04565b60405180910390a15050565b50565b612e4f6799155cd2a5dde28560c01b612e38565b82612e6467a8597772f581907360c01b613fb2565b612e78676495766894d148d260c01b613fb2565b612e8c67c1da93cd693904fb60c01b613fb2565b612ea06711ce0725ac60101860c01b613fb2565b612ea9816140cd565b612ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612edf90616ef1565b60405180910390fd5b612efc678748427beee9a41560c01b613fb2565b612f10679dcf59ae2b3dc50860c01b613fb2565b612f2467d9477995493ad23960c01b612e38565b612f3867e8ec793f550502aa60c01b612e38565b612f4c67c88eacd4d405cebc60c01b612e38565b612f6067722858e9ba70a57360c01b612e38565b612f6b8484846145d4565b50505050565b6000919050565b60025481565b600060019050919050565b600060019050919050565b6000919050565b612faf67c17b66a0b198af7b60c01b6134dc565b612fc367e0600b94c13d066760c01b6134dc565b612fd76755e8cedcdd449e2360c01b6134dc565b612feb67ab821ba7fedab67160c01b6134dc565b612fff67c540fbd78e0e2a4960c01b6134dc565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661308a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161308190616db1565b60405180910390fd5b61309e67d014260b312542b460c01b6134dc565b6130b2674e25985d1c99d1f260c01b6134dc565b6130c667dfa24a8cc198350160c01b6134dc565b6130da67f9907d82cd18ee0760c01b6134dc565b6130ee67dd37ee49f553c5a760c01b6134dc565b613102679ad66b1d98f77fdf60c01b6134dc565b61310b81614763565b50565b50565b61312567e9f2c05c29e364a960c01b6134e9565b61313967e0600b94c13d066760c01b6134dc565b61314d6755e8cedcdd449e2360c01b6134dc565b61316167ab821ba7fedab67160c01b6134dc565b61317567c540fbd78e0e2a4960c01b6134dc565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131f790616db1565b60405180910390fd5b61321467d014260b312542b460c01b6134dc565b613228674e25985d1c99d1f260c01b6134dc565b61323c6756ec4c07451bebd760c01b6134e9565b613250676284b5cfe2b6cd9560c01b6134e9565b613264672f569dba424ddeac60c01b6134e9565b61327867991f4dca615481e060c01b6134e9565b61328c67a8a9436bb01cf21360c01b6134e9565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156132fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132f390616dd1565b60405180910390fd5b61331067fa83ede13aeade4260c01b6134e9565b613324677145711e91344b0660c01b6134e9565b6133386754da73a6d641b97160c01b6134e9565b61334c67b54a3e091d86239060c01b6134e9565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156133dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133d490616f11565b60405180910390fd5b6133f167b214cbbf2513d88f60c01b6134e9565b61340567b606e73450fa4d8160c01b6134e9565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061345a675b8af6325434e8ba60c01b6134e9565b61346e671ae4b0a4bfec621960c01b6134e9565b7fdb0239c63d4033dcdd21bd44f8dd479a03efbae12f6bbe27c0a5f923d26514cc600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516134bf9190616a6f565b60405180910390a150565b600060019050919050565b6000919050565b50565b50565b6000919050565b50565b600060019050919050565b60008061350e67bf2c21e9346c79bf60c01b61310e565b61352267146b5820274012ac60c01b61310e565b61353667efc1b53237a9532760c01b61310e565b6006600084815260200190815260200160002060000154600660008581526020019081526020016000206001015491509150915091565b61358167195123199189556b60c01b6134e9565b6135956748eec34c0b163c1f60c01b6134e9565b6135a96780a6efacb3203cb060c01b6134e9565b60006135b36141f2565b90506135c9674cab9d3c2b64c15260c01b6134e9565b6135dd67ed6db694efc55e3a60c01b6134e9565b6135f167f6f02d4161c0aadf60c01b6134e9565b600073ffffffffffffffffffffffffffffffffffffffff166136128361423f565b73ffffffffffffffffffffffffffffffffffffffff1614613668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161365f90616e11565b60405180910390fd5b61367c67cdc40258d995303c60c01b6134e9565b61369067cdfb0ccffffa7e3060c01b6134e9565b6136a467a3fe81400e3e4c6960c01b6134e9565b6136b8677636a8ffbb7e2ec360c01b6134e9565b8073ffffffffffffffffffffffffffffffffffffffff166009600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613759576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161375090616c91565b60405180910390fd5b61376d67aaa8c5f31bb5252a60c01b6134e9565b6137816763bad9422c7bd62660c01b6134e9565b6137956794c1054105a61a1360c01b6134e9565b6137a9672d15573d3f9ab91f60c01b6134e9565b3073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3846040518263ffffffff1660e01b815260040161381b9190616ae9565b60206040518083038186803b15801561383357600080fd5b505afa158015613847573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061386b9190615978565b73ffffffffffffffffffffffffffffffffffffffff16146138c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138b890616e71565b60405180910390fd5b6138d5677d36fcfc58269f6960c01b6134e9565b6138e96736fe4e6461a6c8d360c01b6134e9565b6138fd67d2462ae891a22c3560c01b6134e9565b6139078230614580565b61391b6790691e74906f852d60c01b6134e9565b61392f6734990696d2cbbe5060c01b6134e9565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a83306040518363ffffffff1660e01b815260040161398c929190616b04565b600060405180830381600087803b1580156139a657600080fd5b505af11580156139ba573d6000803e3d6000fd5b505050506139d2672ab0eeb28861f73460c01b6134e9565b6139e667c0197a444973256760c01b6134e9565b7fcefbe9dbadcf675eef14e23810996ff38541fc26b4dd77cd6724b0eedc96f20082604051613a159190616ae9565b60405180910390a15050565b6000613a37670fa739e07c029f9060c01b6134dc565b613a4b67406100042e7653bd60c01b6134dc565b613a5f6784104632bda8198f60c01b6134dc565b613aad8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506144ae565b90509392505050565b613aca67b8dc6c7f6208982060c01b612e38565b81613adf67a8597772f581907360c01b613fb2565b613af3676495766894d148d260c01b613fb2565b613b0767c1da93cd693904fb60c01b613fb2565b613b1b6711ce0725ac60101860c01b613fb2565b613b24816140cd565b613b63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b5a90616ef1565b60405180910390fd5b613b77678748427beee9a41560c01b613fb2565b613b8b679dcf59ae2b3dc50860c01b613fb2565b613b9f677396c22b6058759b60c01b612e38565b613bb36766fb11489ea79d3760c01b612e38565b613bc7677545b5f28a61157360c01b612e38565b613bdb67e41b892a5d0b811960c01b612e38565b613be58383614580565b505050565b6000919050565b613c0567c9f8523af82bab8360c01b6134e9565b613c1967d2ba19feb39e0b7f60c01b61191a565b613c2d670c5ad53cdb9edd1560c01b61191a565b613c4167b6b588d2ebb9ae6960c01b61191a565b613c5567c4ec9a90a885875260c01b61191a565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614613ce5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613cdc90616d11565b60405180910390fd5b613cf967c3785ba1534db95460c01b61191a565b613d0d67e4202927591248ef60c01b61191a565b6000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613d6367531cfa2817fbdc8660c01b61191a565b613d776740d6cffa7ab2c26960c01b6134e9565b613d8b6756183fd103117d9e60c01b6134e9565b613d9f674602df75ac80bac360c01b6134e9565b613db36729a6ec9f49a02d1160c01b6134e9565b613dc767aceff1c6eeb9c91360c01b6134e9565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415613e37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e2e90616dd1565b60405180910390fd5b613e4b6703e069af565866e360c01b6134e9565b613e5f6787b237de5a3c419060c01b6134e9565b83600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613eb467de2fcb48e932264460c01b6134e9565b613ec8679dd0cca15f369a6c60c01b6134e9565b613f12838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506149e2565b613f266776e2956e5d5a32ca60c01b6134e9565b613f3a67e43784b3932c727e60c01b6134e9565b613f4381614b3e565b613f576701520f419008b58e60c01b61191a565b613f6b6775364c04848b013b60c01b61191a565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e632604051613f9a9190616a8a565b60405180910390a150505050565b50565b6000919050565b50565b6000919050565b50565b6060613fd567e2f9f38fff2fc32060c01b612e38565b613fe96785aead68c541c11460c01b612e38565b613ffd67e58df30d06a8f2d060c01b612e38565b6004600084815260200190815260200160002060008381526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156140b55780601f1061408a576101008083540402835291602001916140b5565b820191906000526020600020905b81548152906001019060200180831161409857829003601f168201915b5050505050905092915050565b600060019050919050565b60006140e367655be2e876f304b760c01b6134e9565b6140f76784463205d9b9b5d160c01b6134e9565b61410b67b724a588b1b1d71060c01b6134e9565b6141136141f2565b73ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3846040518263ffffffff1660e01b81526004016141849190616ae9565b60206040518083038186803b15801561419c57600080fd5b505afa1580156141b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d49190615978565b73ffffffffffffffffffffffffffffffffffffffff16149050919050565b6000614208677ac614d5268cc8ac60c01b613fbc565b61421c670a6b7ac33c94c4ed60c01b613fbc565b61423067e7ef433820a2765360c01b613fbc565b61423a6028614baa565b905090565b6000614255677a700e570bc2a2fc60c01b612e38565b61426967d0ba17887186b37e60c01b612e38565b61427d6780906c28707d15c960c01b612e38565b60006142936797ef8d9ff31bef5660c01b612e38565b6142a767f7584d6fe1f20edf60c01b612e38565b6060600460008581526020019081526020016000206000603c81526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156143625780601f1061433757610100808354040283529160200191614362565b820191906000526020600020905b81548152906001019060200180831161434557829003601f168201915b5050505050905061437d676d87361a9762eaaa60c01b612e38565b6143916735eb1fc4be22236c60c01b612e38565b6000815111156143d3576143af67948289de987958d460c01b612e38565b6143c36714e213e2588060b960c01b612e38565b6143cc81614d40565b91506143e8565b6143e7678f764f9dd1c1ed8260c01b612e38565b5b6143fc678b711ea8478c55b460c01b612e38565b61441067a95eb015360bec7e60c01b612e38565b8192505050919050565b600061443067d23d299e453cbef960c01b6134e9565b61444467cf4ec574175a17ec60c01b6134e9565b61445867c6352e1e889e3f5560c01b6134e9565b6144a57f621363c539a3aa1024c8837ca1dc095db03b7f9512b3a95ecb429aae7fd953ed858585604051602001614491939291906168ff565b604051602081830303815290604052614e31565b90509392505050565b60006144c467fbe9af14abc78ca860c01b6134dc565b6144d867bd3616cf00f8ad2b60c01b6134dc565b6144ec670aad941719c9b69b60c01b6134dc565b60006145018385614eae90919063ffffffff16565b90506145176706f556c4601e7cd060c01b6134dc565b61452b67344e7bee2db8345860c01b6134dc565b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b6145946738d211ffdd9c049860c01b612e38565b6145a867acea32d3c1dcb5ef60c01b612e38565b6145bc67a1ca8e8ea3f1792660c01b612e38565b6145d082603c6145cb846151b6565b6145d4565b5050565b6145e86710b60a5dae454a6f60c01b612e38565b6145fc6777ebe5b96203aa5660c01b612e38565b614610672e75dee0965b85d960c01b612e38565b827f65412581168e88a1e60c6459d7f44ae83ad0832e670826c05a4e2476b57af7528383604051614642929190616f4c565b60405180910390a261465e670ac1489a0da775d560c01b612e38565b614672671d550d092ffb544360c01b612e38565b603c8214156146fc5761468f678deefdd0c0c4f8b360c01b612e38565b6146a367aa5003b8afb30f0460c01b612e38565b6146b76717b5dcac59fd3d2960c01b612e38565b827f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd26146e283614d40565b6040516146ef9190616a8a565b60405180910390a2614711565b61471067ef5c168066bd63e360c01b612e38565b5b61472567597aaab56f7ddde360c01b612e38565b80600460008581526020019081526020016000206000848152602001908152602001600020908051906020019061475d92919061568d565b50505050565b6147776703611a9e4063d8ea60c01b6134dc565b61478b67ee1baacaa033494260c01b6134dc565b61479f6751e5840de998a97760c01b6134dc565b6147b3676f82de74e2e2e03560c01b6134dc565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415614823576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161481a90616cf1565b60405180910390fd5b6148376717cb80dba7a8a0ea60c01b6134dc565b61484b67e2f8fabe2a63d8b660c01b6134dc565b61485f677550a657f22d30dc60c01b6134dc565b614873673c81d7073dbe6f3060c01b6134dc565b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156148ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016148f690616e91565b60405180910390fd5b61491367bc5a1f0994a7f54e60c01b6134dc565b614927679a7f014629c7374960c01b6134dc565b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061499267d71c83e9f3188e9d60c01b6134dc565b6149a667e4bfbd26cb5c77e660c01b6134dc565b7fbc3292102fa77e083913064b282926717cdfaede4d35f553d66366c0a3da755a32826040516149d7929190616aa5565b60405180910390a150565b6149f667f4de5e8e73d6ad8760c01b6134dc565b614a0a67db1ce0981035d84760c01b6134dc565b614a1e67e97a0a25809a3f0960c01b6134dc565b600081511415614a7257614a3c67de11b839232da49160c01b6134dc565b614a5067b59bd2ea0c1c89a260c01b6134dc565b614a6467652fe2786000e62060c01b6134dc565b614a6d32614763565b614b3b565b614a8667ad5f6f13dddc2ad960c01b6134dc565b614a9a672af46088979bcb2160c01b6134dc565b614aae6796cb81cf0bf6606d60c01b6134dc565b600081519050614ac8672f4c11881b8dca8c60c01b6134dc565b614adc67cec4e8db5057edad60c01b6134dc565b60005b81811015614b3857614afb671a5cc94c8b734dd960c01b6134dc565b614b0f67e437d14e98e20b2f60c01b6134dc565b614b2b838281518110614b1e57fe5b6020026020010151614763565b8080600101915050614adf565b50505b50565b614b52670beab42e12728d3b60c01b613fbc565b614b66675ecbac840a5512ec60c01b613fbc565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000614bc06787c8246a4b35d1f160c01b613fbc565b614bd467976a1e8d41064d2460c01b613fbc565b614be8671867d8bf077bb31160c01b613fbc565b6000614bfe67bdfeda5454a1273960c01b613fbc565b614c12677709e048711a13c960c01b613fbc565b614c1a615296565b15614ce357614c3367d3c6f6b0bcac9b6e60c01b613fbc565b614c47673b2573735f5d680260c01b613fbc565b614c5b675089eb0622c78a2260c01b613fbc565b6000836000369050039050614c7a674bc94a8e9a6ee57960c01b613fbc565b614cdb60003683906014850192614c9393929190617023565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050615461565b915050614d0f565b614cf7677e45e81af2ec2edc60c01b613fbc565b614d0b67391e31dbfdfb407e60c01b613fbc565b3390505b614d2367c4042e2c7c2c999760c01b613fbc565b614d3767fc44c5cccf2cd16760c01b613fbc565b80915050919050565b6000614d5667db251656546edddc60c01b612e38565b614d6a67d4996cc6ed6650af60c01b612e38565b614d7e6713f77ccc0675e66660c01b612e38565b6000614d9467697468552eb1b46c60c01b612e38565b614da86746658c34a7b92ce060c01b612e38565b614dbc6726663fb4243c1d5360c01b612e38565b6014835114614dca57600080fd5b614dde67e7e35d0843eb212860c01b612e38565b614df267f87ddfdf9c4de47d60c01b612e38565b600c6101000a6020840151049050614e1467c3203e7177d7044160c01b612e38565b614e2867517dcdf0eb50c8a560c01b612e38565b80915050919050565b6000614e476771b334e2e3162d2e60c01b6134df565b614e5b6729046581cf97a49460c01b6134df565b614e6f674f9e67c6b1f334b360c01b6134df565b614ea6600254308585604051602001614e8b9493929190616a25565b60405160208183030381529060405280519060200120615590565b905092915050565b6000614ec4670d75db982ec4597160c01b6155fc565b614ed86725c2c60ab754182560c01b6155fc565b614eec673eb64a254569ed0660c01b6155fc565b6000614f0267fb2a2286066e15e460c01b6155fc565b614f1667a440db11ec9e986d60c01b6155fc565b60418351141561516f57614f346704a5aada48e2763260c01b6155fc565b614f48674b98cf1796e5c26660c01b6155fc565b614f5c67d2dfec7b159385fc60c01b6155fc565b6000614f726772c2a840621b4aa760c01b6155fc565b614f8667bfd411e6ba4d07c460c01b6155fc565b6000614f9c67145d23f82764ba9960c01b6155fc565b614fb067acdff958a9c6c5dd60c01b6155fc565b6000614fc6673b79e3a80932a6a160c01b6155fc565b6020860151925060408601519150606086015160001a9050614ff2679b0cdee01a57ea2f60c01b6155fc565b615006675dbf88583373227960c01b6155fc565b601b8160ff16101561504557615026670dc9a1836eb51c3260c01b6155fc565b61503a677097d8456a6c3e1560c01b6155fc565b601b8101905061505a565b6150596708b39c61216869e760c01b6155fc565b5b61506e672ea4d6db7d2138c560c01b6155fc565b615082679ad3f461195a5eee60c01b6155fc565b601b8160ff161480156150a557506150a467a24e972b59dc7d0560c01b6155ff565b5b806150cf5750601c8160ff161480156150ce57506150cd67934bee4849491d9560c01b6155ff565b5b5b15615152576150e8676d6a491fc6e072fa60c01b6155fc565b6150fc67aecd1690d1de9f1c60c01b6155fc565b6001878285856040516000815260200160405260405161511f9493929190616ba9565b6020604051602081039080840390855afa158015615141573d6000803e3d6000fd5b505050602060405103519350615167565b61516667513fbc3b3a0ad1c060c01b6155fc565b5b505050615184565b6151836723d6d78de386c96660c01b6155fc565b5b6151986707d0c4f11e72cfc960c01b6155fc565b6151ac67b9689b22f403636c60c01b6155fc565b8091505092915050565b60606151cc6772351ea3c5d1b9f360c01b612e38565b6151e067f02df6c3bcbceef060c01b612e38565b6151f467ea816d23ec4287f760c01b612e38565b6060601467ffffffffffffffff8111801561520e57600080fd5b506040519080825280601f01601f1916602001820160405280156152415781602001600182028036833780820191505090505b5090506152586762376b73bacb383560c01b612e38565b600c6101000a8302602082015261527967b828916d5b99c26e60c01b612e38565b61528d67f4e2d092fa493cdd60c01b612e38565b80915050919050565b60006152ac6714ec9ba31585b6f760c01b613fbc565b6152c06764d00f8ee4cbc0f460c01b613fbc565b6152d46728aef4b71ffef7e260c01b613fbc565b60006152ea677b6cf6392b8d09d960c01b613fbc565b6152fe67da655f124163f4bc60c01b613fbc565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561541d57615368678c4556fd14dc507160c01b613fbc565b61537c674811af4455ee520960c01b613fbc565b61539067ae36e4b52033411860c01b613fbc565b6153a467ffe63a27679b309260c01b613fbc565b602c600036905010156153ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016153e390616d71565b60405180910390fd5b61540067d1762b0b1ca636f360c01b613fbc565b6154146769c465f7e405b9f660c01b613fbc565b60019050615432565b6154316710f40798097af22060c01b613fbc565b5b615446671855328cbdf7411660c01b613fbc565b61545a670e4f1457e534f9ac60c01b613fbc565b8091505090565b6000615477670df8d76b8cabf76a60c01b61560a565b61548b67e180fcce9e2bf4c560c01b61560a565b61549f670dcb70abe8e8bb0b60c01b61560a565b60006154b567c9f13cc22eb780e060c01b61560a565b6154c967c60f8d891ff21de960c01b61560a565b6154dd6782bb9e679e55c73460c01b61560a565b6014835114615521576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161551890616ed1565b60405180910390fd5b615535679ea304b1b6348ade60c01b61560a565b61554967a0049b4768bf518260c01b61560a565b6c010000000000000000000000006020840151049050615573671f4dc55703cfba1860c01b61560a565b61558767afb63a07e82275e260c01b61560a565b80915050919050565b60006155a667f3d1beb9fba5b7be60c01b6155fc565b6155ba676cd81a1865d6353260c01b6155fc565b6155ce676810828c21da671e60c01b6155fc565b816040516020016155df9190616996565b604051602081830303815290604052805190602001209050919050565b50565b600060019050919050565b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061564e57803560ff191683800117855561567c565b8280016001018555821561567c579182015b8281111561567b578235825591602001919060010190615660565b5b509050615689919061570d565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106156ce57805160ff19168380011785556156fc565b828001600101855582156156fc579182015b828111156156fb5782518255916020019190600101906156e0565b5b509050615709919061570d565b5090565b5b8082111561572657600081600090555060010161570e565b5090565b60008135905061573981617237565b92915050565b60008151905061574e81617237565b92915050565b60008083601f84011261576657600080fd5b8235905067ffffffffffffffff81111561577f57600080fd5b60208301915083602082028301111561579757600080fd5b9250929050565b6000813590506157ad8161724e565b92915050565b6000813590506157c281617265565b92915050565b6000813590506157d78161727c565b92915050565b60008083601f8401126157ef57600080fd5b8235905067ffffffffffffffff81111561580857600080fd5b60208301915083600182028301111561582057600080fd5b9250929050565b600082601f83011261583857600080fd5b813561584b61584682616fa9565b616f7c565b9150808252602083016020830185838301111561586757600080fd5b61587283828461719f565b50505092915050565b60008135905061588a81617293565b92915050565b60008083601f8401126158a257600080fd5b8235905067ffffffffffffffff8111156158bb57600080fd5b6020830191508360018202830111156158d357600080fd5b9250929050565b6000606082840312156158ec57600080fd5b6158f66060616f7c565b905060006159068482850161572a565b600083015250602061591a8482850161579e565b602083015250604061592e8482850161579e565b60408301525092915050565b600081359050615949816172aa565b92915050565b60006020828403121561596157600080fd5b600061596f8482850161572a565b91505092915050565b60006020828403121561598a57600080fd5b60006159988482850161573f565b91505092915050565b6000602082840312156159b357600080fd5b60006159c18482850161579e565b91505092915050565b600080604083850312156159dd57600080fd5b60006159eb8582860161579e565b92505060206159fc8582860161572a565b9150509250929050565b600080600060608486031215615a1b57600080fd5b6000615a298682870161579e565b9350506020615a3a8682870161579e565b9250506040615a4b8682870161579e565b9150509250925092565b60008060008060608587031215615a6b57600080fd5b6000615a798782880161579e565b9450506020615a8a8782880161579e565b935050604085013567ffffffffffffffff811115615aa757600080fd5b615ab3878288016157dd565b925092505092959194509250565b600080600060408486031215615ad657600080fd5b6000615ae48682870161579e565b935050602084013567ffffffffffffffff811115615b0157600080fd5b615b0d868287016157dd565b92509250509250925092565b600080600060408486031215615b2e57600080fd5b6000615b3c8682870161579e565b935050602084013567ffffffffffffffff811115615b5957600080fd5b615b6586828701615890565b92509250509250925092565b600080600080600060608688031215615b8957600080fd5b6000615b978882890161579e565b955050602086013567ffffffffffffffff811115615bb457600080fd5b615bc088828901615890565b9450945050604086013567ffffffffffffffff811115615bdf57600080fd5b615beb88828901615890565b92509250509295509295909350565b60008060408385031215615c0d57600080fd5b6000615c1b8582860161579e565b9250506020615c2c8582860161593a565b9150509250929050565b600080600060608486031215615c4b57600080fd5b6000615c598682870161579e565b9350506020615c6a8682870161593a565b925050604084013567ffffffffffffffff811115615c8757600080fd5b615c9386828701615827565b9150509250925092565b600060208284031215615caf57600080fd5b6000615cbd848285016157b3565b91505092915050565b600060208284031215615cd857600080fd5b6000615ce6848285016157c8565b91505092915050565b600060208284031215615d0157600080fd5b6000615d0f8482850161587b565b91505092915050565b60008060008060608587031215615d2e57600080fd5b6000615d3c8782880161587b565b945050602085013567ffffffffffffffff811115615d5957600080fd5b615d6587828801615754565b93509350506040615d788782880161572a565b91505092959194509250565b600060608284031215615d9657600080fd5b6000615da4848285016158da565b91505092915050565b615db681617133565b82525050565b615dc581617056565b82525050565b615ddc615dd782617056565b6171e1565b82525050565b615deb81617068565b82525050565b615dfa81617074565b82525050565b615e11615e0c82617074565b6171f3565b82525050565b6000615e2282616fd5565b615e2c8185616feb565b9350615e3c8185602086016171ae565b615e4581617219565b840191505092915050565b6000615e5b82616fd5565b615e658185616ffc565b9350615e758185602086016171ae565b80840191505092915050565b615e8a81617145565b82525050565b615e9981617169565b82525050565b6000615eab8385617007565b9350615eb883858461719f565b615ec183617219565b840190509392505050565b6000615ed88385617018565b9350615ee583858461719f565b82840190509392505050565b6000615efc82616fe0565b615f068185617007565b9350615f168185602086016171ae565b615f1f81617219565b840191505092915050565b6000615f37601983617018565b91507f737570706f727473496e746572666163652862797465733429000000000000006000830152601982019050919050565b6000615f77602483617007565b91507f454e53436f6e74726f6c6c65723a20696e76616c6964206e6f6465207265736f60008301527f6c766572000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615fdd602183617007565b91507f454e53436f6e74726f6c6c65723a20696e76616c6964206e6f6465206f776e6560008301527f72000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000616043602983617007565b91507f454e53436f6e74726f6c6c65723a20696e76616c696420677561726469616e2060008301527f7369676e617475726500000000000000000000000000000000000000000000006020830152604082019050919050565b60006160a9602283617007565b91507f454e53436f6e74726f6c6c65723a206c6162656c20616c72656164792074616b60008301527f656e0000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061610f601c83617018565b91507f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000830152601c82019050919050565b600061614f602083617007565b91507f477561726465643a2063616e6e6f74206164642030783020677561726469616e6000830152602082019050919050565b600061618f602f83617007565b91507f496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742060008301527f74686520696e697469616c697a657200000000000000000000000000000000006020830152604082019050919050565b60006161f5600d83617018565b91507f61646472286279746573333229000000000000000000000000000000000000006000830152600d82019050919050565b6000616235601b83617007565b91507f454e53436f6e74726f6c6c65723a20696e76616c6964206e6f646500000000006000830152602082019050919050565b6000616275602183617007565b91507f454e53436f6e74726f6c6c65723a206e6f646520646f65736e2774206578697360008301527f74000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006162db602283617007565b91507f47617465776179526563697069656e743a20696e76616c6964206d73672e646160008301527f74610000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000616341601483617018565b91507f7465787428627974657333322c737472696e67290000000000000000000000006000830152601482019050919050565b6000616381600d83617018565b91507f6e616d65286279746573333229000000000000000000000000000000000000006000830152600d82019050919050565b60006163c1602b83617007565b91507f454e53436f6e74726f6c6c65723a2063616c6c6572206973206e6f742074686560008301527f206e6f6465206f776e65720000000000000000000000000000000000000000006020830152604082019050919050565b6000616427602683617007565b91507f477561726465643a2074782e6f726967696e206973206e6f742074686520677560008301527f61726469616e00000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061648d602683617007565b91507f454e53436f6e74726f6c6c65723a2063616e6e6f74207365742030783020726560008301527f67697374727900000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006164f3602583617007565b91507f454e53436f6e74726f6c6c65723a206e6f646520616c7265616479207375626d60008301527f69747465640000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000616559600f83617018565b91507f7075626b657928627974657333322900000000000000000000000000000000006000830152600f82019050919050565b6000616599602283617007565b91507f454e53436f6e74726f6c6c65723a206e6f646520616c7265616479206578697360008301527f74730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006165ff602383617007565b91507f454e53436f6e74726f6c6c65723a206e6f646520616c726561647920696e207360008301527f796e6300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000616665601f83617007565b91507f477561726465643a20677561726469616e20646f65736e2774206578697374006000830152602082019050919050565b60006166a5602583617007565b91507f454e53436f6e74726f6c6c65723a20696e76616c696420656e73206e6f64652060008301527f6f776e65720000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061670b602083617007565b91507f477561726465643a20677561726469616e20616c7265616479206578697374736000830152602082019050919050565b600061674b601b83617007565b91507f477561726465643a2063616e6e6f742072656d6f76652073656c6600000000006000830152602082019050919050565b600061678b601d83617007565b91507f42797465734c69623a20696e76616c69642064617461206c656e6774680000006000830152602082019050919050565b60006167cb603783617007565b91507f454e5341627374726163745265736f6c7665723a20726576657274656420627960008301527f206f6e6c794e6f64654f776e6572206d6f6469666965720000000000000000006020830152604082019050919050565b6000616831601283617018565b91507f6164647228627974657333322c75696e742900000000000000000000000000006000830152601282019050919050565b6000616871602383617007565b91507f454e53436f6e74726f6c6c65723a20726567697374727920616c72656164792060008301527f73657400000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6168d381617108565b82525050565b6168ea6168e582617108565b61720f565b82525050565b6168f981617126565b82525050565b600061690b8286615dcb565b60148201915061691b8285615e00565b60208201915061692b8284615e00565b602082019150819050949350505050565b60006169488285615e00565b6020820191506169588284615e00565b6020820191508190509392505050565b6000616975828486615ecc565b91508190509392505050565b600061698c82615f2a565b9150819050919050565b60006169a182616102565b91506169ad8284615e00565b60208201915081905092915050565b60006169c7826161e8565b9150819050919050565b60006169dc82616334565b9150819050919050565b60006169f182616374565b9150819050919050565b6000616a068261654c565b9150819050919050565b6000616a1b82616824565b9150819050919050565b6000616a3182876168d9565b602082019150616a418286615dcb565b601482019150616a518285615e00565b602082019150616a618284615e50565b915081905095945050505050565b6000602082019050616a846000830184615dbc565b92915050565b6000602082019050616a9f6000830184615dad565b92915050565b6000604082019050616aba6000830185615dad565b616ac76020830184615dbc565b9392505050565b6000602082019050616ae36000830184615de2565b92915050565b6000602082019050616afe6000830184615df1565b92915050565b6000604082019050616b196000830185615df1565b616b266020830184615dbc565b9392505050565b6000604082019050616b426000830185615df1565b616b4f6020830184615df1565b9392505050565b600060a082019050616b6b6000830188615df1565b616b786020830187615df1565b616b856040830186615dbc565b616b926060830185615dbc565b616b9f6080830184615e90565b9695505050505050565b6000608082019050616bbe6000830187615df1565b616bcb60208301866168f0565b616bd86040830185615df1565b616be56060830184615df1565b95945050505050565b60006020820190508181036000830152616c088184615e17565b905092915050565b6000602082019050616c256000830184615e81565b92915050565b60006020820190508181036000830152616c46818486615e9f565b90509392505050565b60006020820190508181036000830152616c698184615ef1565b905092915050565b60006020820190508181036000830152616c8a81615f6a565b9050919050565b60006020820190508181036000830152616caa81615fd0565b9050919050565b60006020820190508181036000830152616cca81616036565b9050919050565b60006020820190508181036000830152616cea8161609c565b9050919050565b60006020820190508181036000830152616d0a81616142565b9050919050565b60006020820190508181036000830152616d2a81616182565b9050919050565b60006020820190508181036000830152616d4a81616228565b9050919050565b60006020820190508181036000830152616d6a81616268565b9050919050565b60006020820190508181036000830152616d8a816162ce565b9050919050565b60006020820190508181036000830152616daa816163b4565b9050919050565b60006020820190508181036000830152616dca8161641a565b9050919050565b60006020820190508181036000830152616dea81616480565b9050919050565b60006020820190508181036000830152616e0a816164e6565b9050919050565b60006020820190508181036000830152616e2a8161658c565b9050919050565b60006020820190508181036000830152616e4a816165f2565b9050919050565b60006020820190508181036000830152616e6a81616658565b9050919050565b60006020820190508181036000830152616e8a81616698565b9050919050565b60006020820190508181036000830152616eaa816166fe565b9050919050565b60006020820190508181036000830152616eca8161673e565b9050919050565b60006020820190508181036000830152616eea8161677e565b9050919050565b60006020820190508181036000830152616f0a816167be565b9050919050565b60006020820190508181036000830152616f2a81616864565b9050919050565b6000602082019050616f4660008301846168ca565b92915050565b6000604082019050616f6160008301856168ca565b8181036020830152616f738184615e17565b90509392505050565b6000604051905081810181811067ffffffffffffffff82111715616f9f57600080fd5b8060405250919050565b600067ffffffffffffffff821115616fc057600080fd5b601f19601f8301169050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000808585111561703357600080fd5b8386111561704057600080fd5b6001850283019150848603905094509492505050565b6000617061826170e8565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b60006170e182617056565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b600060ff82169050919050565b600061713e8261717b565b9050919050565b600061715082617157565b9050919050565b6000617162826170e8565b9050919050565b600061717482617112565b9050919050565b60006171868261718d565b9050919050565b6000617198826170e8565b9050919050565b82818337600083830152505050565b60005b838110156171cc5780820151818401526020810190506171b1565b838111156171db576000848401525b50505050565b60006171ec826171fd565b9050919050565b6000819050919050565b60006172088261722a565b9050919050565b6000819050919050565b6000601f19601f8301169050919050565b60008160601b9050919050565b61724081617056565b811461724b57600080fd5b50565b61725781617074565b811461726257600080fd5b50565b61726e8161707e565b811461727957600080fd5b50565b617285816170aa565b811461729057600080fd5b50565b61729c816170d6565b81146172a757600080fd5b50565b6172b381617108565b81146172be57600080fd5b5056fea164736f6c634300060c000a", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061038e5760003560e01c80638b95dd71116101de578063bdbafb451161010f578063dc5b68a6116100ad578063ee5fac3c1161007c578063ee5fac3c14610ba0578063f0af072114610bd0578063f1cb7e0614610bec578063f446529f14610c1c5761038e565b8063dc5b68a614610b1c578063dce3f9a414610b38578063e89f764b14610b54578063ebaa653314610b845761038e565b8063c8cc2aee116100e9578063c8cc2aee14610a84578063d0f710d614610aa0578063d5fa2b0014610ad0578063d84fa10c14610aec5761038e565b8063bdbafb4514610a07578063c454330514610a23578063c869023314610a535761038e565b8063a6f8c64a1161017c578063b94f144811610156578063b94f14481461096f578063bccb31c61461099f578063bcd48364146109bb578063bd1313ce146109d75761038e565b8063a6f8c64a14610907578063a91ee0dc14610923578063ae1a7ece1461093f5761038e565b80639adf1043116101b85780639adf10431461085b5780639f106f7e1461088b578063a3561e69146108bb578063a526d83b146108eb5761038e565b80638b95dd71146107f1578063969faf5b1461080d5780639a8a05921461083d5761038e565b80633b3b57de116102c3578063691f3431116102615780637737221311610230578063773722131461077f5780637b1039991461079b5780637d0e0e7e146107b95780638034cda0146107d55761038e565b8063691f3431146106d3578063692b0ad9146107035780636df0cf421461073357806371404156146107635761038e565b80635016492e1161029d5780635016492e1461062757806355800f871461065757806359d1d43c1461067357806361f6df1e146106a35761038e565b80633b3b57de146105bf5780633e260b13146105ef57806346386f731461060b5761038e565b80631b3cd1421161033057806329cd62ea1161030a57806329cd62ea1461052557806329fbd957146105415780632c4bbae614610571578063392e53cd146105a15761038e565b80631b3cd142146104bd578063279a5039146104ed57806329ae6a7e146105095761038e565b80630c68ba211161036c5780630c68ba21146104235780630feb61e61461045357806310f13a8c14610483578063116191b61461049f5761038e565b806301ffc9a71461039357806306554924146103c35780630c67003a146103f3575b600080fd5b6103ad60048036038101906103a89190615c9d565b610c4c565b6040516103ba9190616ace565b60405180910390f35b6103dd60048036038101906103d89190615cc6565b61102a565b6040516103ea9190616ace565b60405180910390f35b61040d60048036038101906104089190615cc6565b611035565b60405161041a9190616ace565b60405180910390f35b61043d6004803603810190610438919061594f565b61103c565b60405161044a9190616ace565b60405180910390f35b61046d60048036038101906104689190615cc6565b6110cd565b60405161047a9190616ace565b60405180910390f35b61049d60048036038101906104989190615b71565b6110d8565b005b6104a76112ac565b6040516104b49190616a6f565b60405180910390f35b6104d760048036038101906104d291906159a1565b6112d2565b6040516104e49190616a6f565b60405180910390f35b61050760048036038101906105029190615cc6565b611305565b005b610523600480360381019061051e91906159a1565b611308565b005b61053f600480360381019061053a9190615a06565b61166d565b005b61055b60048036038101906105569190615cc6565b611825565b6040516105689190616ace565b60405180910390f35b61058b60048036038101906105869190615cc6565b611830565b6040516105989190616ace565b60405180910390f35b6105a9611837565b6040516105b69190616ace565b60405180910390f35b6105d960048036038101906105d491906159a1565b6118cc565b6040516105e69190616a6f565b60405180910390f35b61060960048036038101906106049190615cc6565b61191a565b005b61062560048036038101906106209190615a55565b61191d565b005b610641600480360381019061063c9190615cc6565b611e0b565b60405161064e9190616ace565b60405180910390f35b610671600480360381019061066c91906159a1565b611e16565b005b61068d60048036038101906106889190615b19565b61222b565b60405161069a9190616c4f565b60405180910390f35b6106bd60048036038101906106b89190615cc6565b61233c565b6040516106ca9190616ace565b60405180910390f35b6106ed60048036038101906106e891906159a1565b612347565b6040516106fa9190616c4f565b60405180910390f35b61071d60048036038101906107189190615cc6565b612438565b60405161072a9190616ace565b60405180910390f35b61074d60048036038101906107489190615d84565b61243f565b60405161075a9190616ae9565b60405180910390f35b61077d6004803603810190610778919061594f565b61249b565b005b61079960048036038101906107949190615b19565b612843565b005b6107a36129df565b6040516107b09190616c10565b60405180910390f35b6107d360048036038101906107ce91906159a1565b612a05565b005b6107ef60048036038101906107ea9190615cc6565b612e38565b005b61080b60048036038101906108069190615c36565b612e3b565b005b61082760048036038101906108229190615cc6565b612f71565b6040516108349190616ace565b60405180910390f35b610845612f78565b6040516108529190616f31565b60405180910390f35b61087560048036038101906108709190615cc6565b612f7e565b6040516108829190616ace565b60405180910390f35b6108a560048036038101906108a09190615cc6565b612f89565b6040516108b29190616ace565b60405180910390f35b6108d560048036038101906108d09190615cc6565b612f94565b6040516108e29190616ace565b60405180910390f35b6109056004803603810190610900919061594f565b612f9b565b005b610921600480360381019061091c9190615cc6565b61310e565b005b61093d60048036038101906109389190615cef565b613111565b005b61095960048036038101906109549190615cc6565b6134ca565b6040516109669190616ace565b60405180910390f35b61098960048036038101906109849190615cc6565b6134d5565b6040516109969190616ace565b60405180910390f35b6109b960048036038101906109b49190615cc6565b6134dc565b005b6109d560048036038101906109d09190615cc6565b6134df565b005b6109f160048036038101906109ec9190615cc6565b6134e2565b6040516109fe9190616ace565b60405180910390f35b610a216004803603810190610a1c9190615cc6565b6134e9565b005b610a3d6004803603810190610a389190615cc6565b6134ec565b604051610a4a9190616ace565b60405180910390f35b610a6d6004803603810190610a6891906159a1565b6134f7565b604051610a7b929190616b2d565b60405180910390f35b610a9e6004803603810190610a9991906159a1565b61356d565b005b610aba6004803603810190610ab59190615ac1565b613a21565b604051610ac79190616ace565b60405180910390f35b610aea6004803603810190610ae591906159ca565b613ab6565b005b610b066004803603810190610b019190615cc6565b613bea565b604051610b139190616ace565b60405180910390f35b610b366004803603810190610b319190615d18565b613bf1565b005b610b526004803603810190610b4d9190615cc6565b613fa8565b005b610b6e6004803603810190610b699190615cc6565b613fab565b604051610b7b9190616ace565b60405180910390f35b610b9e6004803603810190610b999190615cc6565b613fb2565b005b610bba6004803603810190610bb59190615cc6565b613fb5565b604051610bc79190616ace565b60405180910390f35b610bea6004803603810190610be59190615cc6565b613fbc565b005b610c066004803603810190610c019190615bfa565b613fbf565b604051610c139190616bee565b60405180910390f35b610c366004803603810190610c319190615cc6565b6140c2565b604051610c439190616ace565b60405180910390f35b6000610c62673e53c3a719fdfb6160c01b6134e9565b610c766729ef8ce42af619b060c01b6134e9565b610c8a672ce96fd6ab276e0c60c01b6134e9565b604051602001610c9990616981565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148015610d0b5750610d0a670fbe9824db25179a60c01b611e0b565b5b80610daf5750604051602001610d20906169bc565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148015610d925750610d916727b7c81d07ae1edf60c01b611e0b565b5b8015610dae5750610dad674c643504008914e460c01b611e0b565b5b5b80610e535750604051602001610dc490616a10565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148015610e365750610e3567cd525a4cca4f34a860c01b611e0b565b5b8015610e525750610e516788cd2a17224750ec60c01b611e0b565b5b5b80610ef75750604051602001610e68906169e6565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148015610eda5750610ed9672a0e61e84c067a0a60c01b611e0b565b5b8015610ef65750610ef567502d2e13e9277dcb60c01b611e0b565b5b5b80610f9b5750604051602001610f0c906169fb565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148015610f7e5750610f7d678a100a7067c528eb60c01b611e0b565b5b8015610f9a5750610f996711799455275f223260c01b611e0b565b5b5b806110235750604051602001610fb0906169d1565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614801561102257506110216784e3fa8f14ba5fc860c01b611e0b565b5b5b9050919050565b600060019050919050565b6000919050565b6000611052677ab52c65f999e01f60c01b6134dc565b6110666710268b7b424a1bd560c01b6134dc565b61107a6713a157f311059a7b60c01b6134dc565b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600060019050919050565b6110ec67d251b3372a0cf47960c01b611305565b8461110167a8597772f581907360c01b613fb2565b611115676495766894d148d260c01b613fb2565b61112967c1da93cd693904fb60c01b613fb2565b61113d6711ce0725ac60101860c01b613fb2565b611146816140cd565b611185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117c90616ef1565b60405180910390fd5b611199678748427beee9a41560c01b613fb2565b6111ad679dcf59ae2b3dc50860c01b613fb2565b6111c167591792e78ec2f65760c01b611305565b6111d5676669726c18307e5e60c01b611305565b6111e967cae1031985aa218360c01b611305565b828260076000898152602001908152602001600020878760405161120e929190616968565b9081526020016040518091039020919061122992919061560d565b5061123e674e2633545fafa32260c01b611305565b611252675f78468e1dde38a460c01b611305565b8484604051611262929190616968565b6040518091039020867fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a7550878760405161129c929190616c2b565b60405180910390a3505050505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60096020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b50565b61131c6732f0fd9a837cb8ae60c01b6134e9565b61133067ccef01e2549de0f160c01b6134e9565b61134467351df6a73de5ed1f60c01b6134e9565b600061134e6141f2565b905061136467bc87442f68ba4e8560c01b6134e9565b61137867c1f6c1e5fb99a06a60c01b6134e9565b61138c67a01e251f792e923e60c01b6134e9565b3073ffffffffffffffffffffffffffffffffffffffff166113ac8361423f565b73ffffffffffffffffffffffffffffffffffffffff1614611402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f990616d51565b60405180910390fd5b61141667d97611c48588e50960c01b6134e9565b61142a67915426252a0e5af260c01b6134e9565b61143e673d4f611e5bcfec5160c01b6134e9565b61145267f5c32e9e304a40ae60c01b6134e9565b8073ffffffffffffffffffffffffffffffffffffffff166009600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ea90616c91565b60405180910390fd5b6115076757ad1b22f297e47460c01b6134e9565b61151b672518daaccd90e99d60c01b6134e9565b61152f67531efb0041a679c960c01b6134e9565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b0fc9c383836040518363ffffffff1660e01b815260040161158c929190616b04565b600060405180830381600087803b1580156115a657600080fd5b505af11580156115ba573d6000803e3d6000fd5b505050506115d267c7d84d1a497d278660c01b6134e9565b6009600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905561161c67b9e9f636ac14f30e60c01b6134e9565b61163067e55674422ce28fc360c01b6134e9565b7f7803a16d95f9ca635bdec561006625e7444d8a9f8463866643cc03af011779d38282604051611661929190616b04565b60405180910390a15050565b61168167d17efb0a7eb6908260c01b61310e565b8261169667a8597772f581907360c01b613fb2565b6116aa676495766894d148d260c01b613fb2565b6116be67c1da93cd693904fb60c01b613fb2565b6116d26711ce0725ac60101860c01b613fb2565b6116db816140cd565b61171a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171190616ef1565b60405180910390fd5b61172e678748427beee9a41560c01b613fb2565b611742679dcf59ae2b3dc50860c01b613fb2565b61175667a7c8d4d16e37e64360c01b61310e565b61176a67ce8cc1dc0cdb407760c01b61310e565b61177e673b6fb4a892f52fdf60c01b61310e565b6040518060400160405280848152602001838152506006600086815260200190815260200160002060008201518160000155602082015181600101559050506117d1675050d3db7836b7b260c01b61310e565b6117e5676e14e4e56feb20eb60c01b61310e565b837f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e468484604051611817929190616b2d565b60405180910390a250505050565b600060019050919050565b6000919050565b600061184d67e29fe2f351ca6b2760c01b61191a565b611861676f5dd3f08b97747760c01b61191a565b611875673a9488d62818322a60c01b61191a565b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b60006118e267ce175155cdbb82b660c01b612e38565b6118f6672829765e0e2bb8b060c01b612e38565b61190a67280086a7db8bdd0960c01b612e38565b6119138261423f565b9050919050565b50565b61193167093e06bd5823435060c01b6134e9565b61194567ac96d16a1d124a8660c01b6134e9565b61195967ee327b96f00b172e60c01b6134e9565b60006119636141f2565b905061197967fffac7b649ab959b60c01b6134e9565b61198d67eff3af429a5d4acd60c01b6134e9565b600061199a82878761441a565b90506119b067877a107de4122c7d60c01b6134e9565b6119c4675d96a43b57a9a14860c01b6134e9565b6119d8673f35c7250fc5b44960c01b6134e9565b611a268185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506144ae565b611a65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5c90616cb1565b60405180910390fd5b611a796707e366c09dc556ed60c01b6134e9565b611a8d672c7c0dd19e915ba360c01b6134e9565b611aa167097639b96bc3b80560c01b6134e9565b60008686604051602001611ab692919061693c565b604051602081830303815290604052805190602001209050611ae267e68beb862797da6e60c01b6134e9565b611af66762cc10045f9825dd60c01b6134e9565b611b0a673c62ebcce573c75a60c01b6134e9565b3073ffffffffffffffffffffffffffffffffffffffff16611b2a8861423f565b73ffffffffffffffffffffffffffffffffffffffff1614611b80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7790616d31565b60405180910390fd5b611b9467c9f661627c57c42660c01b6134e9565b611ba867a92e5d7d936d303a60c01b6134e9565b611bbc678b3a41262117961660c01b6134e9565b611bd067d4d77c202d37459960c01b6134e9565b600073ffffffffffffffffffffffffffffffffffffffff16611bf18261423f565b73ffffffffffffffffffffffffffffffffffffffff1614611c47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3e90616cd1565b60405180910390fd5b611c5b67a644ab7ed021918160c01b6134e9565b611c6f67761eab3b7dda68e260c01b6134e9565b611c8367613cb4e0dcf9073b60c01b6134e9565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635ef2c7f08888303060006040518663ffffffff1660e01b8152600401611ce7959493929190616b56565b600060405180830381600087803b158015611d0157600080fd5b505af1158015611d15573d6000803e3d6000fd5b50505050611d2d673c97c7996ed3291460c01b6134e9565b611d4167f8052d109a403d0860c01b6134e9565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b0fc9c382856040518363ffffffff1660e01b8152600401611d9e929190616b04565b600060405180830381600087803b158015611db857600080fd5b505af1158015611dcc573d6000803e3d6000fd5b50505050611de4674abdf691c39e28d560c01b6134e9565b611df867db1b5686f2b1df1b60c01b6134e9565b611e028184614580565b50505050505050565b600060019050919050565b611e2a67c29482f3a6cc814760c01b6134e9565b611e3e675d9375568b5cf37b60c01b6134e9565b611e5267a821cd4d6396a0c560c01b6134e9565b6000611e5c6141f2565b9050611e7267f8b13edbd3cdd6c260c01b6134e9565b611e8667868fc72177e2cce160c01b6134e9565b611e9a67e0f9a111b7f58f1960c01b6134e9565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff1660e01b8152600401611ef59190616ae9565b60206040518083038186803b158015611f0d57600080fd5b505afa158015611f21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f459190615978565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611fb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa990616d91565b60405180910390fd5b611fc667cfafcda721fa636760c01b6134e9565b611fda678e79226abb7ea95360c01b6134e9565b611fee67cd1ff6293a0a21cb60c01b6134e9565b61200267ca6580fbb3878c5f60c01b6134e9565b3073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630178b8bf846040518263ffffffff1660e01b81526004016120749190616ae9565b60206040518083038186803b15801561208c57600080fd5b505afa1580156120a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c49190615978565b73ffffffffffffffffffffffffffffffffffffffff161461211a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211190616c71565b60405180910390fd5b61212e6734e7c2c06a6b212f60c01b6134e9565b61214267221dc6d28b6f7a1e60c01b6134e9565b61215667259c70f8bcd41c9a60c01b6134e9565b61216a671e3be474d4bc2b4560c01b6134e9565b600073ffffffffffffffffffffffffffffffffffffffff1661218b8361423f565b73ffffffffffffffffffffffffffffffffffffffff16146121e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d890616e31565b60405180910390fd5b6121f567dfba363a4295a6bd60c01b6134e9565b61220967bc4c15ea2525331560c01b6134e9565b61221d67995ab68b5de2543a60c01b6134e9565b6122278282614580565b5050565b60606122416716908bcdbcdc0a9660c01b611305565b61225567378d2762af388c0860c01b611305565b61226967df2e701c4f77554d60c01b611305565b60076000858152602001908152602001600020838360405161228c929190616968565b90815260200160405180910390208054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561232e5780601f106123035761010080835404028352916020019161232e565b820191906000526020600020905b81548152906001019060200180831161231157829003601f168201915b505050505090509392505050565b600060019050919050565b606061235d67dec5b1215c24904760c01b613fa8565b612371673f4531654d1602d960c01b613fa8565b612385675968079db6a751b060c01b613fa8565b600560008381526020019081526020016000208054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561242c5780601f106124015761010080835404028352916020019161242c565b820191906000526020600020905b81548152906001019060200180831161240f57829003601f168201915b50505050509050919050565b6000919050565b60006124556755e36f2e6b1bed6860c01b6134e9565b6124696711ac5bde527c76fe60c01b6134e9565b61247d67f064a7883b8823c560c01b6134e9565b61249482600001518360200151846040015161441a565b9050919050565b6124af6747dd6d4e27a092d260c01b6134dc565b6124c367e0600b94c13d066760c01b6134dc565b6124d76755e8cedcdd449e2360c01b6134dc565b6124eb67ab821ba7fedab67160c01b6134dc565b6124ff67c540fbd78e0e2a4960c01b6134dc565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661258a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258190616db1565b60405180910390fd5b61259e67d014260b312542b460c01b6134dc565b6125b2674e25985d1c99d1f260c01b6134dc565b6125c667736984febec5fd2560c01b6134dc565b6125da67cbb923c66996310360c01b6134dc565b6125ee672c114aff1103564b60c01b6134dc565b61260267a76a63e34be2bddb60c01b6134dc565b61261667a220bc889ca09d2360c01b6134dc565b8073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415612685576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267c90616eb1565b60405180910390fd5b612699679467d7af09c5944d60c01b6134dc565b6126ad67c28a58b1b15ad6de60c01b6134dc565b6126c167c70b0fecc7c6d3b160c01b6134dc565b6126d567e7892f9392d41a6760c01b6134dc565b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612760576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275790616e51565b60405180910390fd5b612774675a0de441d13969aa60c01b6134dc565b612788674e473b0a29064fba60c01b6134dc565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506127f367e398e5606400274660c01b6134dc565b6128076738c3bd156a3471c260c01b6134dc565b7fee943cdb81826d5909c559c6b1ae6908fcaf2dbc16c4b730346736b486283e8b3282604051612838929190616aa5565b60405180910390a150565b61285767e126def3e2fdfc1060c01b613fa8565b8261286c67a8597772f581907360c01b613fb2565b612880676495766894d148d260c01b613fb2565b61289467c1da93cd693904fb60c01b613fb2565b6128a86711ce0725ac60101860c01b613fb2565b6128b1816140cd565b6128f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e790616ef1565b60405180910390fd5b612904678748427beee9a41560c01b613fb2565b612918679dcf59ae2b3dc50860c01b613fb2565b61292c6707fd1d9d1376442f60c01b613fa8565b61294067090977de14e2519760c01b613fa8565b612954670985f502ef56100560c01b613fa8565b828260056000878152602001908152602001600020919061297692919061560d565b5061298b67572689195bfb8dcf60c01b613fa8565b61299f67839de8924a7c57b360c01b613fa8565b837fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f784846040516129d1929190616c2b565b60405180910390a250505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612a196798f4fe795a6144c460c01b6134e9565b612a2d67d73fa07884c6296b60c01b6134e9565b612a41674f89b1faa0f36f2660c01b6134e9565b6000612a4b6141f2565b9050612a6167a74a41ef91908ce860c01b6134e9565b612a7567f04afda219e7f8bb60c01b6134e9565b612a8967069ded0da7c75ab960c01b6134e9565b600073ffffffffffffffffffffffffffffffffffffffff16612aaa8361423f565b73ffffffffffffffffffffffffffffffffffffffff1614612b00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af790616e11565b60405180910390fd5b612b14678cddb4766da2e34660c01b6134e9565b612b2766ab3ed8e3481c0560c01b6134e9565b612b3b671fd098baa193ac3c60c01b6134e9565b612b4f67e0887e53d44f403760c01b6134e9565b600073ffffffffffffffffffffffffffffffffffffffff166009600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612bf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612be890616df1565b60405180910390fd5b612c0567a498ec26f596d6e960c01b6134e9565b612c1967b74e03b9068920b660c01b6134e9565b612c2d674e7ad34c6e53bae860c01b6134e9565b612c416726e677701509fa3760c01b6134e9565b8073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3846040518263ffffffff1660e01b8152600401612cb39190616ae9565b60206040518083038186803b158015612ccb57600080fd5b505afa158015612cdf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d039190615978565b73ffffffffffffffffffffffffffffffffffffffff1614612d59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d5090616e71565b60405180910390fd5b612d6d670cd0d667e6f0800360c01b6134e9565b612d8167747454a7a4898a8560c01b6134e9565b806009600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612de767ffca0d5222865e7260c01b6134e9565b612dfb670cf13c115d48bc9c60c01b6134e9565b7fc1e082a8c26f27c26e1bf5d0ce7ddd579ec7f6d7eb3ea90d8abd6c40991bae368282604051612e2c929190616b04565b60405180910390a15050565b50565b612e4f6799155cd2a5dde28560c01b612e38565b82612e6467a8597772f581907360c01b613fb2565b612e78676495766894d148d260c01b613fb2565b612e8c67c1da93cd693904fb60c01b613fb2565b612ea06711ce0725ac60101860c01b613fb2565b612ea9816140cd565b612ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612edf90616ef1565b60405180910390fd5b612efc678748427beee9a41560c01b613fb2565b612f10679dcf59ae2b3dc50860c01b613fb2565b612f2467d9477995493ad23960c01b612e38565b612f3867e8ec793f550502aa60c01b612e38565b612f4c67c88eacd4d405cebc60c01b612e38565b612f6067722858e9ba70a57360c01b612e38565b612f6b8484846145d4565b50505050565b6000919050565b60025481565b600060019050919050565b600060019050919050565b6000919050565b612faf67c17b66a0b198af7b60c01b6134dc565b612fc367e0600b94c13d066760c01b6134dc565b612fd76755e8cedcdd449e2360c01b6134dc565b612feb67ab821ba7fedab67160c01b6134dc565b612fff67c540fbd78e0e2a4960c01b6134dc565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661308a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161308190616db1565b60405180910390fd5b61309e67d014260b312542b460c01b6134dc565b6130b2674e25985d1c99d1f260c01b6134dc565b6130c667dfa24a8cc198350160c01b6134dc565b6130da67f9907d82cd18ee0760c01b6134dc565b6130ee67dd37ee49f553c5a760c01b6134dc565b613102679ad66b1d98f77fdf60c01b6134dc565b61310b81614763565b50565b50565b61312567e9f2c05c29e364a960c01b6134e9565b61313967e0600b94c13d066760c01b6134dc565b61314d6755e8cedcdd449e2360c01b6134dc565b61316167ab821ba7fedab67160c01b6134dc565b61317567c540fbd78e0e2a4960c01b6134dc565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131f790616db1565b60405180910390fd5b61321467d014260b312542b460c01b6134dc565b613228674e25985d1c99d1f260c01b6134dc565b61323c6756ec4c07451bebd760c01b6134e9565b613250676284b5cfe2b6cd9560c01b6134e9565b613264672f569dba424ddeac60c01b6134e9565b61327867991f4dca615481e060c01b6134e9565b61328c67a8a9436bb01cf21360c01b6134e9565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156132fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132f390616dd1565b60405180910390fd5b61331067fa83ede13aeade4260c01b6134e9565b613324677145711e91344b0660c01b6134e9565b6133386754da73a6d641b97160c01b6134e9565b61334c67b54a3e091d86239060c01b6134e9565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156133dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133d490616f11565b60405180910390fd5b6133f167b214cbbf2513d88f60c01b6134e9565b61340567b606e73450fa4d8160c01b6134e9565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061345a675b8af6325434e8ba60c01b6134e9565b61346e671ae4b0a4bfec621960c01b6134e9565b7fdb0239c63d4033dcdd21bd44f8dd479a03efbae12f6bbe27c0a5f923d26514cc600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516134bf9190616a6f565b60405180910390a150565b600060019050919050565b6000919050565b50565b50565b6000919050565b50565b600060019050919050565b60008061350e67bf2c21e9346c79bf60c01b61310e565b61352267146b5820274012ac60c01b61310e565b61353667efc1b53237a9532760c01b61310e565b6006600084815260200190815260200160002060000154600660008581526020019081526020016000206001015491509150915091565b61358167195123199189556b60c01b6134e9565b6135956748eec34c0b163c1f60c01b6134e9565b6135a96780a6efacb3203cb060c01b6134e9565b60006135b36141f2565b90506135c9674cab9d3c2b64c15260c01b6134e9565b6135dd67ed6db694efc55e3a60c01b6134e9565b6135f167f6f02d4161c0aadf60c01b6134e9565b600073ffffffffffffffffffffffffffffffffffffffff166136128361423f565b73ffffffffffffffffffffffffffffffffffffffff1614613668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161365f90616e11565b60405180910390fd5b61367c67cdc40258d995303c60c01b6134e9565b61369067cdfb0ccffffa7e3060c01b6134e9565b6136a467a3fe81400e3e4c6960c01b6134e9565b6136b8677636a8ffbb7e2ec360c01b6134e9565b8073ffffffffffffffffffffffffffffffffffffffff166009600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613759576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161375090616c91565b60405180910390fd5b61376d67aaa8c5f31bb5252a60c01b6134e9565b6137816763bad9422c7bd62660c01b6134e9565b6137956794c1054105a61a1360c01b6134e9565b6137a9672d15573d3f9ab91f60c01b6134e9565b3073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3846040518263ffffffff1660e01b815260040161381b9190616ae9565b60206040518083038186803b15801561383357600080fd5b505afa158015613847573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061386b9190615978565b73ffffffffffffffffffffffffffffffffffffffff16146138c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138b890616e71565b60405180910390fd5b6138d5677d36fcfc58269f6960c01b6134e9565b6138e96736fe4e6461a6c8d360c01b6134e9565b6138fd67d2462ae891a22c3560c01b6134e9565b6139078230614580565b61391b6790691e74906f852d60c01b6134e9565b61392f6734990696d2cbbe5060c01b6134e9565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a83306040518363ffffffff1660e01b815260040161398c929190616b04565b600060405180830381600087803b1580156139a657600080fd5b505af11580156139ba573d6000803e3d6000fd5b505050506139d2672ab0eeb28861f73460c01b6134e9565b6139e667c0197a444973256760c01b6134e9565b7fcefbe9dbadcf675eef14e23810996ff38541fc26b4dd77cd6724b0eedc96f20082604051613a159190616ae9565b60405180910390a15050565b6000613a37670fa739e07c029f9060c01b6134dc565b613a4b67406100042e7653bd60c01b6134dc565b613a5f6784104632bda8198f60c01b6134dc565b613aad8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506144ae565b90509392505050565b613aca67b8dc6c7f6208982060c01b612e38565b81613adf67a8597772f581907360c01b613fb2565b613af3676495766894d148d260c01b613fb2565b613b0767c1da93cd693904fb60c01b613fb2565b613b1b6711ce0725ac60101860c01b613fb2565b613b24816140cd565b613b63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b5a90616ef1565b60405180910390fd5b613b77678748427beee9a41560c01b613fb2565b613b8b679dcf59ae2b3dc50860c01b613fb2565b613b9f677396c22b6058759b60c01b612e38565b613bb36766fb11489ea79d3760c01b612e38565b613bc7677545b5f28a61157360c01b612e38565b613bdb67e41b892a5d0b811960c01b612e38565b613be58383614580565b505050565b6000919050565b613c0567c9f8523af82bab8360c01b6134e9565b613c1967d2ba19feb39e0b7f60c01b61191a565b613c2d670c5ad53cdb9edd1560c01b61191a565b613c4167b6b588d2ebb9ae6960c01b61191a565b613c5567c4ec9a90a885875260c01b61191a565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614613ce5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613cdc90616d11565b60405180910390fd5b613cf967c3785ba1534db95460c01b61191a565b613d0d67e4202927591248ef60c01b61191a565b6000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613d6367531cfa2817fbdc8660c01b61191a565b613d776740d6cffa7ab2c26960c01b6134e9565b613d8b6756183fd103117d9e60c01b6134e9565b613d9f674602df75ac80bac360c01b6134e9565b613db36729a6ec9f49a02d1160c01b6134e9565b613dc767aceff1c6eeb9c91360c01b6134e9565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415613e37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e2e90616dd1565b60405180910390fd5b613e4b6703e069af565866e360c01b6134e9565b613e5f6787b237de5a3c419060c01b6134e9565b83600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613eb467de2fcb48e932264460c01b6134e9565b613ec8679dd0cca15f369a6c60c01b6134e9565b613f12838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506149e2565b613f266776e2956e5d5a32ca60c01b6134e9565b613f3a67e43784b3932c727e60c01b6134e9565b613f4381614b3e565b613f576701520f419008b58e60c01b61191a565b613f6b6775364c04848b013b60c01b61191a565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e632604051613f9a9190616a8a565b60405180910390a150505050565b50565b6000919050565b50565b6000919050565b50565b6060613fd567e2f9f38fff2fc32060c01b612e38565b613fe96785aead68c541c11460c01b612e38565b613ffd67e58df30d06a8f2d060c01b612e38565b6004600084815260200190815260200160002060008381526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156140b55780601f1061408a576101008083540402835291602001916140b5565b820191906000526020600020905b81548152906001019060200180831161409857829003601f168201915b5050505050905092915050565b600060019050919050565b60006140e367655be2e876f304b760c01b6134e9565b6140f76784463205d9b9b5d160c01b6134e9565b61410b67b724a588b1b1d71060c01b6134e9565b6141136141f2565b73ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3846040518263ffffffff1660e01b81526004016141849190616ae9565b60206040518083038186803b15801561419c57600080fd5b505afa1580156141b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d49190615978565b73ffffffffffffffffffffffffffffffffffffffff16149050919050565b6000614208677ac614d5268cc8ac60c01b613fbc565b61421c670a6b7ac33c94c4ed60c01b613fbc565b61423067e7ef433820a2765360c01b613fbc565b61423a6028614baa565b905090565b6000614255677a700e570bc2a2fc60c01b612e38565b61426967d0ba17887186b37e60c01b612e38565b61427d6780906c28707d15c960c01b612e38565b60006142936797ef8d9ff31bef5660c01b612e38565b6142a767f7584d6fe1f20edf60c01b612e38565b6060600460008581526020019081526020016000206000603c81526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156143625780601f1061433757610100808354040283529160200191614362565b820191906000526020600020905b81548152906001019060200180831161434557829003601f168201915b5050505050905061437d676d87361a9762eaaa60c01b612e38565b6143916735eb1fc4be22236c60c01b612e38565b6000815111156143d3576143af67948289de987958d460c01b612e38565b6143c36714e213e2588060b960c01b612e38565b6143cc81614d40565b91506143e8565b6143e7678f764f9dd1c1ed8260c01b612e38565b5b6143fc678b711ea8478c55b460c01b612e38565b61441067a95eb015360bec7e60c01b612e38565b8192505050919050565b600061443067d23d299e453cbef960c01b6134e9565b61444467cf4ec574175a17ec60c01b6134e9565b61445867c6352e1e889e3f5560c01b6134e9565b6144a57f621363c539a3aa1024c8837ca1dc095db03b7f9512b3a95ecb429aae7fd953ed858585604051602001614491939291906168ff565b604051602081830303815290604052614e31565b90509392505050565b60006144c467fbe9af14abc78ca860c01b6134dc565b6144d867bd3616cf00f8ad2b60c01b6134dc565b6144ec670aad941719c9b69b60c01b6134dc565b60006145018385614eae90919063ffffffff16565b90506145176706f556c4601e7cd060c01b6134dc565b61452b67344e7bee2db8345860c01b6134dc565b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b6145946738d211ffdd9c049860c01b612e38565b6145a867acea32d3c1dcb5ef60c01b612e38565b6145bc67a1ca8e8ea3f1792660c01b612e38565b6145d082603c6145cb846151b6565b6145d4565b5050565b6145e86710b60a5dae454a6f60c01b612e38565b6145fc6777ebe5b96203aa5660c01b612e38565b614610672e75dee0965b85d960c01b612e38565b827f65412581168e88a1e60c6459d7f44ae83ad0832e670826c05a4e2476b57af7528383604051614642929190616f4c565b60405180910390a261465e670ac1489a0da775d560c01b612e38565b614672671d550d092ffb544360c01b612e38565b603c8214156146fc5761468f678deefdd0c0c4f8b360c01b612e38565b6146a367aa5003b8afb30f0460c01b612e38565b6146b76717b5dcac59fd3d2960c01b612e38565b827f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd26146e283614d40565b6040516146ef9190616a8a565b60405180910390a2614711565b61471067ef5c168066bd63e360c01b612e38565b5b61472567597aaab56f7ddde360c01b612e38565b80600460008581526020019081526020016000206000848152602001908152602001600020908051906020019061475d92919061568d565b50505050565b6147776703611a9e4063d8ea60c01b6134dc565b61478b67ee1baacaa033494260c01b6134dc565b61479f6751e5840de998a97760c01b6134dc565b6147b3676f82de74e2e2e03560c01b6134dc565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415614823576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161481a90616cf1565b60405180910390fd5b6148376717cb80dba7a8a0ea60c01b6134dc565b61484b67e2f8fabe2a63d8b660c01b6134dc565b61485f677550a657f22d30dc60c01b6134dc565b614873673c81d7073dbe6f3060c01b6134dc565b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156148ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016148f690616e91565b60405180910390fd5b61491367bc5a1f0994a7f54e60c01b6134dc565b614927679a7f014629c7374960c01b6134dc565b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061499267d71c83e9f3188e9d60c01b6134dc565b6149a667e4bfbd26cb5c77e660c01b6134dc565b7fbc3292102fa77e083913064b282926717cdfaede4d35f553d66366c0a3da755a32826040516149d7929190616aa5565b60405180910390a150565b6149f667f4de5e8e73d6ad8760c01b6134dc565b614a0a67db1ce0981035d84760c01b6134dc565b614a1e67e97a0a25809a3f0960c01b6134dc565b600081511415614a7257614a3c67de11b839232da49160c01b6134dc565b614a5067b59bd2ea0c1c89a260c01b6134dc565b614a6467652fe2786000e62060c01b6134dc565b614a6d32614763565b614b3b565b614a8667ad5f6f13dddc2ad960c01b6134dc565b614a9a672af46088979bcb2160c01b6134dc565b614aae6796cb81cf0bf6606d60c01b6134dc565b600081519050614ac8672f4c11881b8dca8c60c01b6134dc565b614adc67cec4e8db5057edad60c01b6134dc565b60005b81811015614b3857614afb671a5cc94c8b734dd960c01b6134dc565b614b0f67e437d14e98e20b2f60c01b6134dc565b614b2b838281518110614b1e57fe5b6020026020010151614763565b8080600101915050614adf565b50505b50565b614b52670beab42e12728d3b60c01b613fbc565b614b66675ecbac840a5512ec60c01b613fbc565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000614bc06787c8246a4b35d1f160c01b613fbc565b614bd467976a1e8d41064d2460c01b613fbc565b614be8671867d8bf077bb31160c01b613fbc565b6000614bfe67bdfeda5454a1273960c01b613fbc565b614c12677709e048711a13c960c01b613fbc565b614c1a615296565b15614ce357614c3367d3c6f6b0bcac9b6e60c01b613fbc565b614c47673b2573735f5d680260c01b613fbc565b614c5b675089eb0622c78a2260c01b613fbc565b6000836000369050039050614c7a674bc94a8e9a6ee57960c01b613fbc565b614cdb60003683906014850192614c9393929190617023565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050615461565b915050614d0f565b614cf7677e45e81af2ec2edc60c01b613fbc565b614d0b67391e31dbfdfb407e60c01b613fbc565b3390505b614d2367c4042e2c7c2c999760c01b613fbc565b614d3767fc44c5cccf2cd16760c01b613fbc565b80915050919050565b6000614d5667db251656546edddc60c01b612e38565b614d6a67d4996cc6ed6650af60c01b612e38565b614d7e6713f77ccc0675e66660c01b612e38565b6000614d9467697468552eb1b46c60c01b612e38565b614da86746658c34a7b92ce060c01b612e38565b614dbc6726663fb4243c1d5360c01b612e38565b6014835114614dca57600080fd5b614dde67e7e35d0843eb212860c01b612e38565b614df267f87ddfdf9c4de47d60c01b612e38565b600c6101000a6020840151049050614e1467c3203e7177d7044160c01b612e38565b614e2867517dcdf0eb50c8a560c01b612e38565b80915050919050565b6000614e476771b334e2e3162d2e60c01b6134df565b614e5b6729046581cf97a49460c01b6134df565b614e6f674f9e67c6b1f334b360c01b6134df565b614ea6600254308585604051602001614e8b9493929190616a25565b60405160208183030381529060405280519060200120615590565b905092915050565b6000614ec4670d75db982ec4597160c01b6155fc565b614ed86725c2c60ab754182560c01b6155fc565b614eec673eb64a254569ed0660c01b6155fc565b6000614f0267fb2a2286066e15e460c01b6155fc565b614f1667a440db11ec9e986d60c01b6155fc565b60418351141561516f57614f346704a5aada48e2763260c01b6155fc565b614f48674b98cf1796e5c26660c01b6155fc565b614f5c67d2dfec7b159385fc60c01b6155fc565b6000614f726772c2a840621b4aa760c01b6155fc565b614f8667bfd411e6ba4d07c460c01b6155fc565b6000614f9c67145d23f82764ba9960c01b6155fc565b614fb067acdff958a9c6c5dd60c01b6155fc565b6000614fc6673b79e3a80932a6a160c01b6155fc565b6020860151925060408601519150606086015160001a9050614ff2679b0cdee01a57ea2f60c01b6155fc565b615006675dbf88583373227960c01b6155fc565b601b8160ff16101561504557615026670dc9a1836eb51c3260c01b6155fc565b61503a677097d8456a6c3e1560c01b6155fc565b601b8101905061505a565b6150596708b39c61216869e760c01b6155fc565b5b61506e672ea4d6db7d2138c560c01b6155fc565b615082679ad3f461195a5eee60c01b6155fc565b601b8160ff161480156150a557506150a467a24e972b59dc7d0560c01b6155ff565b5b806150cf5750601c8160ff161480156150ce57506150cd67934bee4849491d9560c01b6155ff565b5b5b15615152576150e8676d6a491fc6e072fa60c01b6155fc565b6150fc67aecd1690d1de9f1c60c01b6155fc565b6001878285856040516000815260200160405260405161511f9493929190616ba9565b6020604051602081039080840390855afa158015615141573d6000803e3d6000fd5b505050602060405103519350615167565b61516667513fbc3b3a0ad1c060c01b6155fc565b5b505050615184565b6151836723d6d78de386c96660c01b6155fc565b5b6151986707d0c4f11e72cfc960c01b6155fc565b6151ac67b9689b22f403636c60c01b6155fc565b8091505092915050565b60606151cc6772351ea3c5d1b9f360c01b612e38565b6151e067f02df6c3bcbceef060c01b612e38565b6151f467ea816d23ec4287f760c01b612e38565b6060601467ffffffffffffffff8111801561520e57600080fd5b506040519080825280601f01601f1916602001820160405280156152415781602001600182028036833780820191505090505b5090506152586762376b73bacb383560c01b612e38565b600c6101000a8302602082015261527967b828916d5b99c26e60c01b612e38565b61528d67f4e2d092fa493cdd60c01b612e38565b80915050919050565b60006152ac6714ec9ba31585b6f760c01b613fbc565b6152c06764d00f8ee4cbc0f460c01b613fbc565b6152d46728aef4b71ffef7e260c01b613fbc565b60006152ea677b6cf6392b8d09d960c01b613fbc565b6152fe67da655f124163f4bc60c01b613fbc565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561541d57615368678c4556fd14dc507160c01b613fbc565b61537c674811af4455ee520960c01b613fbc565b61539067ae36e4b52033411860c01b613fbc565b6153a467ffe63a27679b309260c01b613fbc565b602c600036905010156153ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016153e390616d71565b60405180910390fd5b61540067d1762b0b1ca636f360c01b613fbc565b6154146769c465f7e405b9f660c01b613fbc565b60019050615432565b6154316710f40798097af22060c01b613fbc565b5b615446671855328cbdf7411660c01b613fbc565b61545a670e4f1457e534f9ac60c01b613fbc565b8091505090565b6000615477670df8d76b8cabf76a60c01b61560a565b61548b67e180fcce9e2bf4c560c01b61560a565b61549f670dcb70abe8e8bb0b60c01b61560a565b60006154b567c9f13cc22eb780e060c01b61560a565b6154c967c60f8d891ff21de960c01b61560a565b6154dd6782bb9e679e55c73460c01b61560a565b6014835114615521576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161551890616ed1565b60405180910390fd5b615535679ea304b1b6348ade60c01b61560a565b61554967a0049b4768bf518260c01b61560a565b6c010000000000000000000000006020840151049050615573671f4dc55703cfba1860c01b61560a565b61558767afb63a07e82275e260c01b61560a565b80915050919050565b60006155a667f3d1beb9fba5b7be60c01b6155fc565b6155ba676cd81a1865d6353260c01b6155fc565b6155ce676810828c21da671e60c01b6155fc565b816040516020016155df9190616996565b604051602081830303815290604052805190602001209050919050565b50565b600060019050919050565b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061564e57803560ff191683800117855561567c565b8280016001018555821561567c579182015b8281111561567b578235825591602001919060010190615660565b5b509050615689919061570d565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106156ce57805160ff19168380011785556156fc565b828001600101855582156156fc579182015b828111156156fb5782518255916020019190600101906156e0565b5b509050615709919061570d565b5090565b5b8082111561572657600081600090555060010161570e565b5090565b60008135905061573981617237565b92915050565b60008151905061574e81617237565b92915050565b60008083601f84011261576657600080fd5b8235905067ffffffffffffffff81111561577f57600080fd5b60208301915083602082028301111561579757600080fd5b9250929050565b6000813590506157ad8161724e565b92915050565b6000813590506157c281617265565b92915050565b6000813590506157d78161727c565b92915050565b60008083601f8401126157ef57600080fd5b8235905067ffffffffffffffff81111561580857600080fd5b60208301915083600182028301111561582057600080fd5b9250929050565b600082601f83011261583857600080fd5b813561584b61584682616fa9565b616f7c565b9150808252602083016020830185838301111561586757600080fd5b61587283828461719f565b50505092915050565b60008135905061588a81617293565b92915050565b60008083601f8401126158a257600080fd5b8235905067ffffffffffffffff8111156158bb57600080fd5b6020830191508360018202830111156158d357600080fd5b9250929050565b6000606082840312156158ec57600080fd5b6158f66060616f7c565b905060006159068482850161572a565b600083015250602061591a8482850161579e565b602083015250604061592e8482850161579e565b60408301525092915050565b600081359050615949816172aa565b92915050565b60006020828403121561596157600080fd5b600061596f8482850161572a565b91505092915050565b60006020828403121561598a57600080fd5b60006159988482850161573f565b91505092915050565b6000602082840312156159b357600080fd5b60006159c18482850161579e565b91505092915050565b600080604083850312156159dd57600080fd5b60006159eb8582860161579e565b92505060206159fc8582860161572a565b9150509250929050565b600080600060608486031215615a1b57600080fd5b6000615a298682870161579e565b9350506020615a3a8682870161579e565b9250506040615a4b8682870161579e565b9150509250925092565b60008060008060608587031215615a6b57600080fd5b6000615a798782880161579e565b9450506020615a8a8782880161579e565b935050604085013567ffffffffffffffff811115615aa757600080fd5b615ab3878288016157dd565b925092505092959194509250565b600080600060408486031215615ad657600080fd5b6000615ae48682870161579e565b935050602084013567ffffffffffffffff811115615b0157600080fd5b615b0d868287016157dd565b92509250509250925092565b600080600060408486031215615b2e57600080fd5b6000615b3c8682870161579e565b935050602084013567ffffffffffffffff811115615b5957600080fd5b615b6586828701615890565b92509250509250925092565b600080600080600060608688031215615b8957600080fd5b6000615b978882890161579e565b955050602086013567ffffffffffffffff811115615bb457600080fd5b615bc088828901615890565b9450945050604086013567ffffffffffffffff811115615bdf57600080fd5b615beb88828901615890565b92509250509295509295909350565b60008060408385031215615c0d57600080fd5b6000615c1b8582860161579e565b9250506020615c2c8582860161593a565b9150509250929050565b600080600060608486031215615c4b57600080fd5b6000615c598682870161579e565b9350506020615c6a8682870161593a565b925050604084013567ffffffffffffffff811115615c8757600080fd5b615c9386828701615827565b9150509250925092565b600060208284031215615caf57600080fd5b6000615cbd848285016157b3565b91505092915050565b600060208284031215615cd857600080fd5b6000615ce6848285016157c8565b91505092915050565b600060208284031215615d0157600080fd5b6000615d0f8482850161587b565b91505092915050565b60008060008060608587031215615d2e57600080fd5b6000615d3c8782880161587b565b945050602085013567ffffffffffffffff811115615d5957600080fd5b615d6587828801615754565b93509350506040615d788782880161572a565b91505092959194509250565b600060608284031215615d9657600080fd5b6000615da4848285016158da565b91505092915050565b615db681617133565b82525050565b615dc581617056565b82525050565b615ddc615dd782617056565b6171e1565b82525050565b615deb81617068565b82525050565b615dfa81617074565b82525050565b615e11615e0c82617074565b6171f3565b82525050565b6000615e2282616fd5565b615e2c8185616feb565b9350615e3c8185602086016171ae565b615e4581617219565b840191505092915050565b6000615e5b82616fd5565b615e658185616ffc565b9350615e758185602086016171ae565b80840191505092915050565b615e8a81617145565b82525050565b615e9981617169565b82525050565b6000615eab8385617007565b9350615eb883858461719f565b615ec183617219565b840190509392505050565b6000615ed88385617018565b9350615ee583858461719f565b82840190509392505050565b6000615efc82616fe0565b615f068185617007565b9350615f168185602086016171ae565b615f1f81617219565b840191505092915050565b6000615f37601983617018565b91507f737570706f727473496e746572666163652862797465733429000000000000006000830152601982019050919050565b6000615f77602483617007565b91507f454e53436f6e74726f6c6c65723a20696e76616c6964206e6f6465207265736f60008301527f6c766572000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615fdd602183617007565b91507f454e53436f6e74726f6c6c65723a20696e76616c6964206e6f6465206f776e6560008301527f72000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000616043602983617007565b91507f454e53436f6e74726f6c6c65723a20696e76616c696420677561726469616e2060008301527f7369676e617475726500000000000000000000000000000000000000000000006020830152604082019050919050565b60006160a9602283617007565b91507f454e53436f6e74726f6c6c65723a206c6162656c20616c72656164792074616b60008301527f656e0000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061610f601c83617018565b91507f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000830152601c82019050919050565b600061614f602083617007565b91507f477561726465643a2063616e6e6f74206164642030783020677561726469616e6000830152602082019050919050565b600061618f602f83617007565b91507f496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742060008301527f74686520696e697469616c697a657200000000000000000000000000000000006020830152604082019050919050565b60006161f5600d83617018565b91507f61646472286279746573333229000000000000000000000000000000000000006000830152600d82019050919050565b6000616235601b83617007565b91507f454e53436f6e74726f6c6c65723a20696e76616c6964206e6f646500000000006000830152602082019050919050565b6000616275602183617007565b91507f454e53436f6e74726f6c6c65723a206e6f646520646f65736e2774206578697360008301527f74000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006162db602283617007565b91507f47617465776179526563697069656e743a20696e76616c6964206d73672e646160008301527f74610000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000616341601483617018565b91507f7465787428627974657333322c737472696e67290000000000000000000000006000830152601482019050919050565b6000616381600d83617018565b91507f6e616d65286279746573333229000000000000000000000000000000000000006000830152600d82019050919050565b60006163c1602b83617007565b91507f454e53436f6e74726f6c6c65723a2063616c6c6572206973206e6f742074686560008301527f206e6f6465206f776e65720000000000000000000000000000000000000000006020830152604082019050919050565b6000616427602683617007565b91507f477561726465643a2074782e6f726967696e206973206e6f742074686520677560008301527f61726469616e00000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061648d602683617007565b91507f454e53436f6e74726f6c6c65723a2063616e6e6f74207365742030783020726560008301527f67697374727900000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006164f3602583617007565b91507f454e53436f6e74726f6c6c65723a206e6f646520616c7265616479207375626d60008301527f69747465640000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000616559600f83617018565b91507f7075626b657928627974657333322900000000000000000000000000000000006000830152600f82019050919050565b6000616599602283617007565b91507f454e53436f6e74726f6c6c65723a206e6f646520616c7265616479206578697360008301527f74730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006165ff602383617007565b91507f454e53436f6e74726f6c6c65723a206e6f646520616c726561647920696e207360008301527f796e6300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000616665601f83617007565b91507f477561726465643a20677561726469616e20646f65736e2774206578697374006000830152602082019050919050565b60006166a5602583617007565b91507f454e53436f6e74726f6c6c65723a20696e76616c696420656e73206e6f64652060008301527f6f776e65720000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061670b602083617007565b91507f477561726465643a20677561726469616e20616c7265616479206578697374736000830152602082019050919050565b600061674b601b83617007565b91507f477561726465643a2063616e6e6f742072656d6f76652073656c6600000000006000830152602082019050919050565b600061678b601d83617007565b91507f42797465734c69623a20696e76616c69642064617461206c656e6774680000006000830152602082019050919050565b60006167cb603783617007565b91507f454e5341627374726163745265736f6c7665723a20726576657274656420627960008301527f206f6e6c794e6f64654f776e6572206d6f6469666965720000000000000000006020830152604082019050919050565b6000616831601283617018565b91507f6164647228627974657333322c75696e742900000000000000000000000000006000830152601282019050919050565b6000616871602383617007565b91507f454e53436f6e74726f6c6c65723a20726567697374727920616c72656164792060008301527f73657400000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6168d381617108565b82525050565b6168ea6168e582617108565b61720f565b82525050565b6168f981617126565b82525050565b600061690b8286615dcb565b60148201915061691b8285615e00565b60208201915061692b8284615e00565b602082019150819050949350505050565b60006169488285615e00565b6020820191506169588284615e00565b6020820191508190509392505050565b6000616975828486615ecc565b91508190509392505050565b600061698c82615f2a565b9150819050919050565b60006169a182616102565b91506169ad8284615e00565b60208201915081905092915050565b60006169c7826161e8565b9150819050919050565b60006169dc82616334565b9150819050919050565b60006169f182616374565b9150819050919050565b6000616a068261654c565b9150819050919050565b6000616a1b82616824565b9150819050919050565b6000616a3182876168d9565b602082019150616a418286615dcb565b601482019150616a518285615e00565b602082019150616a618284615e50565b915081905095945050505050565b6000602082019050616a846000830184615dbc565b92915050565b6000602082019050616a9f6000830184615dad565b92915050565b6000604082019050616aba6000830185615dad565b616ac76020830184615dbc565b9392505050565b6000602082019050616ae36000830184615de2565b92915050565b6000602082019050616afe6000830184615df1565b92915050565b6000604082019050616b196000830185615df1565b616b266020830184615dbc565b9392505050565b6000604082019050616b426000830185615df1565b616b4f6020830184615df1565b9392505050565b600060a082019050616b6b6000830188615df1565b616b786020830187615df1565b616b856040830186615dbc565b616b926060830185615dbc565b616b9f6080830184615e90565b9695505050505050565b6000608082019050616bbe6000830187615df1565b616bcb60208301866168f0565b616bd86040830185615df1565b616be56060830184615df1565b95945050505050565b60006020820190508181036000830152616c088184615e17565b905092915050565b6000602082019050616c256000830184615e81565b92915050565b60006020820190508181036000830152616c46818486615e9f565b90509392505050565b60006020820190508181036000830152616c698184615ef1565b905092915050565b60006020820190508181036000830152616c8a81615f6a565b9050919050565b60006020820190508181036000830152616caa81615fd0565b9050919050565b60006020820190508181036000830152616cca81616036565b9050919050565b60006020820190508181036000830152616cea8161609c565b9050919050565b60006020820190508181036000830152616d0a81616142565b9050919050565b60006020820190508181036000830152616d2a81616182565b9050919050565b60006020820190508181036000830152616d4a81616228565b9050919050565b60006020820190508181036000830152616d6a81616268565b9050919050565b60006020820190508181036000830152616d8a816162ce565b9050919050565b60006020820190508181036000830152616daa816163b4565b9050919050565b60006020820190508181036000830152616dca8161641a565b9050919050565b60006020820190508181036000830152616dea81616480565b9050919050565b60006020820190508181036000830152616e0a816164e6565b9050919050565b60006020820190508181036000830152616e2a8161658c565b9050919050565b60006020820190508181036000830152616e4a816165f2565b9050919050565b60006020820190508181036000830152616e6a81616658565b9050919050565b60006020820190508181036000830152616e8a81616698565b9050919050565b60006020820190508181036000830152616eaa816166fe565b9050919050565b60006020820190508181036000830152616eca8161673e565b9050919050565b60006020820190508181036000830152616eea8161677e565b9050919050565b60006020820190508181036000830152616f0a816167be565b9050919050565b60006020820190508181036000830152616f2a81616864565b9050919050565b6000602082019050616f4660008301846168ca565b92915050565b6000604082019050616f6160008301856168ca565b8181036020830152616f738184615e17565b90509392505050565b6000604051905081810181811067ffffffffffffffff82111715616f9f57600080fd5b8060405250919050565b600067ffffffffffffffff821115616fc057600080fd5b601f19601f8301169050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000808585111561703357600080fd5b8386111561704057600080fd5b6001850283019150848603905094509492505050565b6000617061826170e8565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b60006170e182617056565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b600060ff82169050919050565b600061713e8261717b565b9050919050565b600061715082617157565b9050919050565b6000617162826170e8565b9050919050565b600061717482617112565b9050919050565b60006171868261718d565b9050919050565b6000617198826170e8565b9050919050565b82818337600083830152505050565b60005b838110156171cc5780820151818401526020810190506171b1565b838111156171db576000848401525b50505050565b60006171ec826171fd565b9050919050565b6000819050919050565b60006172088261722a565b9050919050565b6000819050919050565b6000601f19601f8301169050919050565b60008160601b9050919050565b61724081617056565b811461724b57600080fd5b50565b61725781617074565b811461726257600080fd5b50565b61726e8161707e565b811461727957600080fd5b50565b617285816170aa565b811461729057600080fd5b50565b61729c816170d6565b81146172a757600080fd5b50565b6172b381617108565b81146172be57600080fd5b5056fea164736f6c634300060c000a", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/ENSHelper.json b/artifacts/ENSHelper.json index bf5dc38d..8166e5b7 100644 --- a/artifacts/ENSHelper.json +++ b/artifacts/ENSHelper.json @@ -21,6 +21,108 @@ "name": "Initialized", "type": "event" }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__098c0657", + "type": "bytes8" + } + ], + "name": "c_098c0657", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__5c42e10b", + "type": "bytes8" + } + ], + "name": "c_5c42e10b", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__098c0657", + "type": "bytes8" + } + ], + "name": "c_false098c0657", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__5c42e10b", + "type": "bytes8" + } + ], + "name": "c_false5c42e10b", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__098c0657", + "type": "bytes8" + } + ], + "name": "c_true098c0657", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__5c42e10b", + "type": "bytes8" + } + ], + "name": "c_true5c42e10b", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [ { @@ -99,8 +201,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50326000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e74806100606000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806338bc01b51461005c578063392e53cd1461008c5780637b103999146100aa578063c4d66de8146100c8578063dc6008e2146100e4575b600080fd5b610076600480360381019061007191906108a6565b610114565b6040516100839190610b55565b60405180910390f35b6100946101ec565b6040516100a19190610b99565b60405180910390f35b6100b2610242565b6040516100bf9190610bcf565b60405180910390f35b6100e260048036038101906100dd91906108e7565b610268565b005b6100fe60048036038101906100f991906108a6565b6103b2565b60405161010b9190610b77565b60405180910390f35b606060008251905060608167ffffffffffffffff8111801561013557600080fd5b506040519080825280602002602001820160405280156101645781602001602082028036833780820191505090505b50905060005b828110156101e15761018e85828151811061018157fe5b6020026020010151610460565b82828151811061019a57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050808060010191505061016a565b508092505050919050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146102f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ed90610bea565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e6326040516103a79190610b3a565b60405180910390a150565b606060008251905060608167ffffffffffffffff811180156103d357600080fd5b5060405190808252806020026020018201604052801561040757816020015b60608152602001906001900390816103f25790505b50905060005b828110156104555761043185828151811061042457fe5b60200260200101516105e1565b82828151811061043d57fe5b6020026020010181905250808060010191505061040d565b508092505050919050565b6000806000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630178b8bf856040518263ffffffff1660e01b81526004016104c09190610bb4565b60206040518083038186803b1580156104d857600080fd5b505afa1580156104ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610510919061087d565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146105d7578073ffffffffffffffffffffffffffffffffffffffff16633b3b57de856040518263ffffffff1660e01b815260040161057f9190610bb4565b60206040518083038186803b15801561059757600080fd5b505afa9250505080156105c857506040513d601f19601f820116820180604052508101906105c5919061087d565b60015b6105d1576105d6565b809250505b5b8192505050919050565b6060806000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630178b8bf856040518263ffffffff1660e01b81526004016106419190610bb4565b60206040518083038186803b15801561065957600080fd5b505afa15801561066d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610691919061087d565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461075d578073ffffffffffffffffffffffffffffffffffffffff1663691f3431856040518263ffffffff1660e01b81526004016107009190610bb4565b60006040518083038186803b15801561071857600080fd5b505afa92505050801561074e57506040513d6000823e3d601f19601f8201168201806040525081019061074b9190610910565b60015b6107575761075c565b809250505b5b8192505050919050565b60008151905061077681610e22565b92915050565b600082601f83011261078d57600080fd5b81356107a061079b82610c37565b610c0a565b915081818352602084019350602081019050838560208402820111156107c557600080fd5b60005b838110156107f557816107db88826107ff565b8452602084019350602083019250506001810190506107c8565b5050505092915050565b60008135905061080e81610e39565b92915050565b60008135905061082381610e50565b92915050565b600082601f83011261083a57600080fd5b815161084d61084882610c5f565b610c0a565b9150808252602083016020830185838301111561086957600080fd5b610874838284610dde565b50505092915050565b60006020828403121561088f57600080fd5b600061089d84828501610767565b91505092915050565b6000602082840312156108b857600080fd5b600082013567ffffffffffffffff8111156108d257600080fd5b6108de8482850161077c565b91505092915050565b6000602082840312156108f957600080fd5b600061090784828501610814565b91505092915050565b60006020828403121561092257600080fd5b600082015167ffffffffffffffff81111561093c57600080fd5b61094884828501610829565b91505092915050565b600061095d838361098c565b60208301905092915050565b60006109758383610a9b565b905092915050565b61098681610d84565b82525050565b61099581610d2a565b82525050565b60006109a682610cab565b6109b08185610ce6565b93506109bb83610c8b565b8060005b838110156109ec5781516109d38882610951565b97506109de83610ccc565b9250506001810190506109bf565b5085935050505092915050565b6000610a0482610cb6565b610a0e8185610cf7565b935083602082028501610a2085610c9b565b8060005b85811015610a5c5784840389528151610a3d8582610969565b9450610a4883610cd9565b925060208a01995050600181019050610a24565b50829750879550505050505092915050565b610a7781610d3c565b82525050565b610a8681610d48565b82525050565b610a9581610d96565b82525050565b6000610aa682610cc1565b610ab08185610d08565b9350610ac0818560208601610dde565b610ac981610e11565b840191505092915050565b6000610ae1602f83610d19565b91507f496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742060008301527f74686520696e697469616c697a657200000000000000000000000000000000006020830152604082019050919050565b6000602082019050610b4f600083018461097d565b92915050565b60006020820190508181036000830152610b6f818461099b565b905092915050565b60006020820190508181036000830152610b9181846109f9565b905092915050565b6000602082019050610bae6000830184610a6e565b92915050565b6000602082019050610bc96000830184610a7d565b92915050565b6000602082019050610be46000830184610a8c565b92915050565b60006020820190508181036000830152610c0381610ad4565b9050919050565b6000604051905081810181811067ffffffffffffffff82111715610c2d57600080fd5b8060405250919050565b600067ffffffffffffffff821115610c4e57600080fd5b602082029050602081019050919050565b600067ffffffffffffffff821115610c7657600080fd5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000610d3582610d64565b9050919050565b60008115159050919050565b6000819050919050565b6000610d5d82610d2a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610d8f82610dba565b9050919050565b6000610da182610da8565b9050919050565b6000610db382610d64565b9050919050565b6000610dc582610dcc565b9050919050565b6000610dd782610d64565b9050919050565b60005b83811015610dfc578082015181840152602081019050610de1565b83811115610e0b576000848401525b50505050565b6000601f19601f8301169050919050565b610e2b81610d2a565b8114610e3657600080fd5b50565b610e4281610d48565b8114610e4d57600080fd5b50565b610e5981610d52565b8114610e6457600080fd5b5056fea164736f6c634300060c000a", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c806338bc01b51461005c578063392e53cd1461008c5780637b103999146100aa578063c4d66de8146100c8578063dc6008e2146100e4575b600080fd5b610076600480360381019061007191906108a6565b610114565b6040516100839190610b55565b60405180910390f35b6100946101ec565b6040516100a19190610b99565b60405180910390f35b6100b2610242565b6040516100bf9190610bcf565b60405180910390f35b6100e260048036038101906100dd91906108e7565b610268565b005b6100fe60048036038101906100f991906108a6565b6103b2565b60405161010b9190610b77565b60405180910390f35b606060008251905060608167ffffffffffffffff8111801561013557600080fd5b506040519080825280602002602001820160405280156101645781602001602082028036833780820191505090505b50905060005b828110156101e15761018e85828151811061018157fe5b6020026020010151610460565b82828151811061019a57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050808060010191505061016a565b508092505050919050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146102f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ed90610bea565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e6326040516103a79190610b3a565b60405180910390a150565b606060008251905060608167ffffffffffffffff811180156103d357600080fd5b5060405190808252806020026020018201604052801561040757816020015b60608152602001906001900390816103f25790505b50905060005b828110156104555761043185828151811061042457fe5b60200260200101516105e1565b82828151811061043d57fe5b6020026020010181905250808060010191505061040d565b508092505050919050565b6000806000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630178b8bf856040518263ffffffff1660e01b81526004016104c09190610bb4565b60206040518083038186803b1580156104d857600080fd5b505afa1580156104ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610510919061087d565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146105d7578073ffffffffffffffffffffffffffffffffffffffff16633b3b57de856040518263ffffffff1660e01b815260040161057f9190610bb4565b60206040518083038186803b15801561059757600080fd5b505afa9250505080156105c857506040513d601f19601f820116820180604052508101906105c5919061087d565b60015b6105d1576105d6565b809250505b5b8192505050919050565b6060806000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630178b8bf856040518263ffffffff1660e01b81526004016106419190610bb4565b60206040518083038186803b15801561065957600080fd5b505afa15801561066d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610691919061087d565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461075d578073ffffffffffffffffffffffffffffffffffffffff1663691f3431856040518263ffffffff1660e01b81526004016107009190610bb4565b60006040518083038186803b15801561071857600080fd5b505afa92505050801561074e57506040513d6000823e3d601f19601f8201168201806040525081019061074b9190610910565b60015b6107575761075c565b809250505b5b8192505050919050565b60008151905061077681610e22565b92915050565b600082601f83011261078d57600080fd5b81356107a061079b82610c37565b610c0a565b915081818352602084019350602081019050838560208402820111156107c557600080fd5b60005b838110156107f557816107db88826107ff565b8452602084019350602083019250506001810190506107c8565b5050505092915050565b60008135905061080e81610e39565b92915050565b60008135905061082381610e50565b92915050565b600082601f83011261083a57600080fd5b815161084d61084882610c5f565b610c0a565b9150808252602083016020830185838301111561086957600080fd5b610874838284610dde565b50505092915050565b60006020828403121561088f57600080fd5b600061089d84828501610767565b91505092915050565b6000602082840312156108b857600080fd5b600082013567ffffffffffffffff8111156108d257600080fd5b6108de8482850161077c565b91505092915050565b6000602082840312156108f957600080fd5b600061090784828501610814565b91505092915050565b60006020828403121561092257600080fd5b600082015167ffffffffffffffff81111561093c57600080fd5b61094884828501610829565b91505092915050565b600061095d838361098c565b60208301905092915050565b60006109758383610a9b565b905092915050565b61098681610d84565b82525050565b61099581610d2a565b82525050565b60006109a682610cab565b6109b08185610ce6565b93506109bb83610c8b565b8060005b838110156109ec5781516109d38882610951565b97506109de83610ccc565b9250506001810190506109bf565b5085935050505092915050565b6000610a0482610cb6565b610a0e8185610cf7565b935083602082028501610a2085610c9b565b8060005b85811015610a5c5784840389528151610a3d8582610969565b9450610a4883610cd9565b925060208a01995050600181019050610a24565b50829750879550505050505092915050565b610a7781610d3c565b82525050565b610a8681610d48565b82525050565b610a9581610d96565b82525050565b6000610aa682610cc1565b610ab08185610d08565b9350610ac0818560208601610dde565b610ac981610e11565b840191505092915050565b6000610ae1602f83610d19565b91507f496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742060008301527f74686520696e697469616c697a657200000000000000000000000000000000006020830152604082019050919050565b6000602082019050610b4f600083018461097d565b92915050565b60006020820190508181036000830152610b6f818461099b565b905092915050565b60006020820190508181036000830152610b9181846109f9565b905092915050565b6000602082019050610bae6000830184610a6e565b92915050565b6000602082019050610bc96000830184610a7d565b92915050565b6000602082019050610be46000830184610a8c565b92915050565b60006020820190508181036000830152610c0381610ad4565b9050919050565b6000604051905081810181811067ffffffffffffffff82111715610c2d57600080fd5b8060405250919050565b600067ffffffffffffffff821115610c4e57600080fd5b602082029050602081019050919050565b600067ffffffffffffffff821115610c7657600080fd5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000610d3582610d64565b9050919050565b60008115159050919050565b6000819050919050565b6000610d5d82610d2a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610d8f82610dba565b9050919050565b6000610da182610da8565b9050919050565b6000610db382610d64565b9050919050565b6000610dc582610dcc565b9050919050565b6000610dd782610d64565b9050919050565b60005b83811015610dfc578082015181840152602081019050610de1565b83811115610e0b576000848401525b50505050565b6000601f19601f8301169050919050565b610e2b81610d2a565b8114610e3657600080fd5b50565b610e4281610d48565b8114610e4d57600080fd5b50565b610e5981610d52565b8114610e6457600080fd5b5056fea164736f6c634300060c000a", + "bytecode": "0x608060405234801561001057600080fd5b5061002b67bcc9be562f8a4b0a60c01b6100a460201b60201c565b61004567579ae7209daca85260c01b6100a460201b60201c565b326000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061009f6788a5314e41b335a860c01b6100a760201b60201c565b6100aa565b50565b50565b611575806100b96000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80639b249bb6116100715780639b249bb614610152578063c454330514610182578063c4d66de8146101b2578063c6977ab5146101ce578063d84fa10c146101fe578063dc6008e21461022e576100a9565b806338bc01b5146100ae578063392e53cd146100de5780633e260b13146100fc57806373c00330146101185780637b10399914610134575b600080fd5b6100c860048036038101906100c39190610f3b565b61025e565b6040516100d59190611213565b60405180910390f35b6100e66103fe565b6040516100f39190611257565b60405180910390f35b61011660048036038101906101119190610f7c565b610491565b005b610132600480360381019061012d9190610f7c565b610494565b005b61013c610497565b604051610149919061128d565b60405180910390f35b61016c60048036038101906101679190610f7c565b6104bd565b6040516101799190611257565b60405180910390f35b61019c60048036038101906101979190610f7c565b6104c4565b6040516101a99190611257565b60405180910390f35b6101cc60048036038101906101c79190610fa5565b6104cf565b005b6101e860048036038101906101e39190610f7c565b61071d565b6040516101f59190611257565b60405180910390f35b61021860048036038101906102139190610f7c565b610728565b6040516102259190611257565b60405180910390f35b61024860048036038101906102439190610f3b565b61072f565b6040516102559190611235565b60405180910390f35b6060610274671262cfb69e40cc5b60c01b610494565b6102886798c01d2f7400c2ea60c01b610494565b61029c67ad9923707237991e60c01b610494565b6000825190506102b66789f55ae5d37def3e60c01b610494565b6102ca67ac677aeb4c017ff360c01b610494565b60608167ffffffffffffffff811180156102e357600080fd5b506040519080825280602002602001820160405280156103125781602001602082028036833780820191505090505b509050610329670ba5e1384af0913e60c01b610494565b61033d6714028a04d7886c0860c01b610494565b60005b828110156103cb5761035c6781d854b59fb81ec660c01b610494565b61037885828151811061036b57fe5b60200260200101516108a5565b82828151811061038457fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050610340565b506103e0676499c15a3010af8860c01b610494565b6103f4673ce7fdbf6e3ceeff60c01b610494565b8092505050919050565b600061041467e29fe2f351ca6b2760c01b610491565b610428676f5dd3f08b97747760c01b610491565b61043c673a9488d62818322a60c01b610491565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b50565b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000919050565b600060019050919050565b6104e3670b3f84efbe7b166460c01b610494565b6104f767d2ba19feb39e0b7f60c01b610491565b61050b670c5ad53cdb9edd1560c01b610491565b61051f67b6b588d2ebb9ae6960c01b610491565b61053367c4ec9a90a885875260c01b610491565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146105c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b8906112a8565b60405180910390fd5b6105d567c3785ba1534db95460c01b610491565b6105e967e4202927591248ef60c01b610491565b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061063e67531cfa2817fbdc8660c01b610491565b61065267a88fe5617780e90a60c01b610494565b61066667e820f68755b3cd5960c01b610494565b61067a674261d64cb5e3105760c01b610494565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506106cf6701520f419008b58e60c01b610491565b6106e36775364c04848b013b60c01b610491565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e63260405161071291906111f8565b60405180910390a150565b600060019050919050565b6000919050565b606061074567e80d71150b859b7260c01b610494565b61075967a983b910fbac0dde60c01b610494565b61076d67647fa2dd6620e96c60c01b610494565b600082519050610787673e1ca5096d39224d60c01b610494565b61079b67fc7faae55db6959760c01b610494565b60608167ffffffffffffffff811180156107b457600080fd5b506040519080825280602002602001820160405280156107e857816020015b60608152602001906001900390816107d35790505b5090506107ff67f69904c6431daa3260c01b610494565b61081367871b2ac11c1ac1e160c01b610494565b60005b8281101561087257610832679d6bbf61afcd60cd60c01b610494565b61084e85828151811061084157fe5b6020026020010151610b43565b82828151811061085a57fe5b60200260200101819052508080600101915050610816565b5061088767050076f9e6946aa460c01b610494565b61089b67881f2e841a33919160c01b610494565b8092505050919050565b60006108bb6767ba3fa8e255e42c60c01b610494565b6108cf67ded2d8e7ce5a2fd260c01b610494565b6108e367b7eec7d5b1f6d0ef60c01b610494565b60006108f9672f2b2f7babea174160c01b610494565b61090d67ddb621e05346684960c01b610494565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630178b8bf856040518263ffffffff1660e01b815260040161096a9190611272565b60206040518083038186803b15801561098257600080fd5b505afa158015610996573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ba9190610f12565b90506109d067f89bfd8ea1a9d84c60c01b610494565b6109e467dcfa76ac2a64a3d060c01b610494565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610afc57610a2b66c00643e0fe114260c01b610494565b610a3f676f657acc31999b6e60c01b610494565b610a53677e6620e4ec26afb860c01b610494565b8073ffffffffffffffffffffffffffffffffffffffff16633b3b57de856040518263ffffffff1660e01b8152600401610a8c9190611272565b60206040518083038186803b158015610aa457600080fd5b505afa925050508015610ad557506040513d601f19601f82011682018060405250810190610ad29190610f12565b60015b610ade57610af7565b610af2678d081549d3a105db60c01b610494565b809250505b610b11565b610b1067116afadf3c1fb43960c01b610494565b5b610b2567fd7a0c053af4eb8760c01b610494565b610b396730de74e4786aa2e460c01b610494565b8192505050919050565b6060610b59672ff51caeb36aa79560c01b610494565b610b6d678624272536b909b060c01b610494565b610b81675145d31ae44ae0e660c01b610494565b6060610b9767733b8d1519f8af7260c01b610494565b610bab670bec19ea53a9713360c01b610494565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630178b8bf856040518263ffffffff1660e01b8152600401610c089190611272565b60206040518083038186803b158015610c2057600080fd5b505afa158015610c34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c589190610f12565b9050610c6e675f3e55e290a1f2be60c01b610494565b610c8267a4236d1b625413fd60c01b610494565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610da057610cca6771cac04d0611340f60c01b610494565b610cde67bbd7a982fc04f8d860c01b610494565b610cf2671e4e6b27da2a22c560c01b610494565b8073ffffffffffffffffffffffffffffffffffffffff1663691f3431856040518263ffffffff1660e01b8152600401610d2b9190611272565b60006040518083038186803b158015610d4357600080fd5b505afa925050508015610d7957506040513d6000823e3d601f19601f82011682018060405250810190610d769190610fce565b60015b610d8257610d9b565b610d9667bcddd4c206b0dfb760c01b610494565b809250505b610db5565b610db46783411ebc5f7949ec60c01b610494565b5b610dc967f538509b78c1831860c01b610494565b610ddd677c2d448ed267709960c01b610494565b8192505050919050565b600081519050610df68161150c565b92915050565b600082601f830112610e0d57600080fd5b8135610e20610e1b826112f5565b6112c8565b91508181835260208401935060208101905083856020840282011115610e4557600080fd5b60005b83811015610e755781610e5b8882610e7f565b845260208401935060208301925050600181019050610e48565b5050505092915050565b600081359050610e8e81611523565b92915050565b600081359050610ea38161153a565b92915050565b600081359050610eb881611551565b92915050565b600082601f830112610ecf57600080fd5b8151610ee2610edd8261131d565b6112c8565b91508082526020830160208301858383011115610efe57600080fd5b610f098382846114c8565b50505092915050565b600060208284031215610f2457600080fd5b6000610f3284828501610de7565b91505092915050565b600060208284031215610f4d57600080fd5b600082013567ffffffffffffffff811115610f6757600080fd5b610f7384828501610dfc565b91505092915050565b600060208284031215610f8e57600080fd5b6000610f9c84828501610e94565b91505092915050565b600060208284031215610fb757600080fd5b6000610fc584828501610ea9565b91505092915050565b600060208284031215610fe057600080fd5b600082015167ffffffffffffffff811115610ffa57600080fd5b61100684828501610ebe565b91505092915050565b600061101b838361104a565b60208301905092915050565b60006110338383611159565b905092915050565b6110448161146e565b82525050565b611053816113e8565b82525050565b600061106482611369565b61106e81856113a4565b935061107983611349565b8060005b838110156110aa578151611091888261100f565b975061109c8361138a565b92505060018101905061107d565b5085935050505092915050565b60006110c282611374565b6110cc81856113b5565b9350836020820285016110de85611359565b8060005b8581101561111a57848403895281516110fb8582611027565b945061110683611397565b925060208a019950506001810190506110e2565b50829750879550505050505092915050565b611135816113fa565b82525050565b61114481611406565b82525050565b61115381611480565b82525050565b60006111648261137f565b61116e81856113c6565b935061117e8185602086016114c8565b611187816114fb565b840191505092915050565b600061119f602f836113d7565b91507f496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742060008301527f74686520696e697469616c697a657200000000000000000000000000000000006020830152604082019050919050565b600060208201905061120d600083018461103b565b92915050565b6000602082019050818103600083015261122d8184611059565b905092915050565b6000602082019050818103600083015261124f81846110b7565b905092915050565b600060208201905061126c600083018461112c565b92915050565b6000602082019050611287600083018461113b565b92915050565b60006020820190506112a2600083018461114a565b92915050565b600060208201905081810360008301526112c181611192565b9050919050565b6000604051905081810181811067ffffffffffffffff821117156112eb57600080fd5b8060405250919050565b600067ffffffffffffffff82111561130c57600080fd5b602082029050602081019050919050565b600067ffffffffffffffff82111561133457600080fd5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b60006113f38261144e565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b6000611447826113e8565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611479826114a4565b9050919050565b600061148b82611492565b9050919050565b600061149d8261144e565b9050919050565b60006114af826114b6565b9050919050565b60006114c18261144e565b9050919050565b60005b838110156114e65780820151818401526020810190506114cb565b838111156114f5576000848401525b50505050565b6000601f19601f8301169050919050565b611515816113e8565b811461152057600080fd5b50565b61152c81611406565b811461153757600080fd5b50565b61154381611410565b811461154e57600080fd5b50565b61155a8161143c565b811461156557600080fd5b5056fea164736f6c634300060c000a", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80639b249bb6116100715780639b249bb614610152578063c454330514610182578063c4d66de8146101b2578063c6977ab5146101ce578063d84fa10c146101fe578063dc6008e21461022e576100a9565b806338bc01b5146100ae578063392e53cd146100de5780633e260b13146100fc57806373c00330146101185780637b10399914610134575b600080fd5b6100c860048036038101906100c39190610f3b565b61025e565b6040516100d59190611213565b60405180910390f35b6100e66103fe565b6040516100f39190611257565b60405180910390f35b61011660048036038101906101119190610f7c565b610491565b005b610132600480360381019061012d9190610f7c565b610494565b005b61013c610497565b604051610149919061128d565b60405180910390f35b61016c60048036038101906101679190610f7c565b6104bd565b6040516101799190611257565b60405180910390f35b61019c60048036038101906101979190610f7c565b6104c4565b6040516101a99190611257565b60405180910390f35b6101cc60048036038101906101c79190610fa5565b6104cf565b005b6101e860048036038101906101e39190610f7c565b61071d565b6040516101f59190611257565b60405180910390f35b61021860048036038101906102139190610f7c565b610728565b6040516102259190611257565b60405180910390f35b61024860048036038101906102439190610f3b565b61072f565b6040516102559190611235565b60405180910390f35b6060610274671262cfb69e40cc5b60c01b610494565b6102886798c01d2f7400c2ea60c01b610494565b61029c67ad9923707237991e60c01b610494565b6000825190506102b66789f55ae5d37def3e60c01b610494565b6102ca67ac677aeb4c017ff360c01b610494565b60608167ffffffffffffffff811180156102e357600080fd5b506040519080825280602002602001820160405280156103125781602001602082028036833780820191505090505b509050610329670ba5e1384af0913e60c01b610494565b61033d6714028a04d7886c0860c01b610494565b60005b828110156103cb5761035c6781d854b59fb81ec660c01b610494565b61037885828151811061036b57fe5b60200260200101516108a5565b82828151811061038457fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050610340565b506103e0676499c15a3010af8860c01b610494565b6103f4673ce7fdbf6e3ceeff60c01b610494565b8092505050919050565b600061041467e29fe2f351ca6b2760c01b610491565b610428676f5dd3f08b97747760c01b610491565b61043c673a9488d62818322a60c01b610491565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b50565b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000919050565b600060019050919050565b6104e3670b3f84efbe7b166460c01b610494565b6104f767d2ba19feb39e0b7f60c01b610491565b61050b670c5ad53cdb9edd1560c01b610491565b61051f67b6b588d2ebb9ae6960c01b610491565b61053367c4ec9a90a885875260c01b610491565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146105c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b8906112a8565b60405180910390fd5b6105d567c3785ba1534db95460c01b610491565b6105e967e4202927591248ef60c01b610491565b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061063e67531cfa2817fbdc8660c01b610491565b61065267a88fe5617780e90a60c01b610494565b61066667e820f68755b3cd5960c01b610494565b61067a674261d64cb5e3105760c01b610494565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506106cf6701520f419008b58e60c01b610491565b6106e36775364c04848b013b60c01b610491565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e63260405161071291906111f8565b60405180910390a150565b600060019050919050565b6000919050565b606061074567e80d71150b859b7260c01b610494565b61075967a983b910fbac0dde60c01b610494565b61076d67647fa2dd6620e96c60c01b610494565b600082519050610787673e1ca5096d39224d60c01b610494565b61079b67fc7faae55db6959760c01b610494565b60608167ffffffffffffffff811180156107b457600080fd5b506040519080825280602002602001820160405280156107e857816020015b60608152602001906001900390816107d35790505b5090506107ff67f69904c6431daa3260c01b610494565b61081367871b2ac11c1ac1e160c01b610494565b60005b8281101561087257610832679d6bbf61afcd60cd60c01b610494565b61084e85828151811061084157fe5b6020026020010151610b43565b82828151811061085a57fe5b60200260200101819052508080600101915050610816565b5061088767050076f9e6946aa460c01b610494565b61089b67881f2e841a33919160c01b610494565b8092505050919050565b60006108bb6767ba3fa8e255e42c60c01b610494565b6108cf67ded2d8e7ce5a2fd260c01b610494565b6108e367b7eec7d5b1f6d0ef60c01b610494565b60006108f9672f2b2f7babea174160c01b610494565b61090d67ddb621e05346684960c01b610494565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630178b8bf856040518263ffffffff1660e01b815260040161096a9190611272565b60206040518083038186803b15801561098257600080fd5b505afa158015610996573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ba9190610f12565b90506109d067f89bfd8ea1a9d84c60c01b610494565b6109e467dcfa76ac2a64a3d060c01b610494565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610afc57610a2b66c00643e0fe114260c01b610494565b610a3f676f657acc31999b6e60c01b610494565b610a53677e6620e4ec26afb860c01b610494565b8073ffffffffffffffffffffffffffffffffffffffff16633b3b57de856040518263ffffffff1660e01b8152600401610a8c9190611272565b60206040518083038186803b158015610aa457600080fd5b505afa925050508015610ad557506040513d601f19601f82011682018060405250810190610ad29190610f12565b60015b610ade57610af7565b610af2678d081549d3a105db60c01b610494565b809250505b610b11565b610b1067116afadf3c1fb43960c01b610494565b5b610b2567fd7a0c053af4eb8760c01b610494565b610b396730de74e4786aa2e460c01b610494565b8192505050919050565b6060610b59672ff51caeb36aa79560c01b610494565b610b6d678624272536b909b060c01b610494565b610b81675145d31ae44ae0e660c01b610494565b6060610b9767733b8d1519f8af7260c01b610494565b610bab670bec19ea53a9713360c01b610494565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630178b8bf856040518263ffffffff1660e01b8152600401610c089190611272565b60206040518083038186803b158015610c2057600080fd5b505afa158015610c34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c589190610f12565b9050610c6e675f3e55e290a1f2be60c01b610494565b610c8267a4236d1b625413fd60c01b610494565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610da057610cca6771cac04d0611340f60c01b610494565b610cde67bbd7a982fc04f8d860c01b610494565b610cf2671e4e6b27da2a22c560c01b610494565b8073ffffffffffffffffffffffffffffffffffffffff1663691f3431856040518263ffffffff1660e01b8152600401610d2b9190611272565b60006040518083038186803b158015610d4357600080fd5b505afa925050508015610d7957506040513d6000823e3d601f19601f82011682018060405250810190610d769190610fce565b60015b610d8257610d9b565b610d9667bcddd4c206b0dfb760c01b610494565b809250505b610db5565b610db46783411ebc5f7949ec60c01b610494565b5b610dc967f538509b78c1831860c01b610494565b610ddd677c2d448ed267709960c01b610494565b8192505050919050565b600081519050610df68161150c565b92915050565b600082601f830112610e0d57600080fd5b8135610e20610e1b826112f5565b6112c8565b91508181835260208401935060208101905083856020840282011115610e4557600080fd5b60005b83811015610e755781610e5b8882610e7f565b845260208401935060208301925050600181019050610e48565b5050505092915050565b600081359050610e8e81611523565b92915050565b600081359050610ea38161153a565b92915050565b600081359050610eb881611551565b92915050565b600082601f830112610ecf57600080fd5b8151610ee2610edd8261131d565b6112c8565b91508082526020830160208301858383011115610efe57600080fd5b610f098382846114c8565b50505092915050565b600060208284031215610f2457600080fd5b6000610f3284828501610de7565b91505092915050565b600060208284031215610f4d57600080fd5b600082013567ffffffffffffffff811115610f6757600080fd5b610f7384828501610dfc565b91505092915050565b600060208284031215610f8e57600080fd5b6000610f9c84828501610e94565b91505092915050565b600060208284031215610fb757600080fd5b6000610fc584828501610ea9565b91505092915050565b600060208284031215610fe057600080fd5b600082015167ffffffffffffffff811115610ffa57600080fd5b61100684828501610ebe565b91505092915050565b600061101b838361104a565b60208301905092915050565b60006110338383611159565b905092915050565b6110448161146e565b82525050565b611053816113e8565b82525050565b600061106482611369565b61106e81856113a4565b935061107983611349565b8060005b838110156110aa578151611091888261100f565b975061109c8361138a565b92505060018101905061107d565b5085935050505092915050565b60006110c282611374565b6110cc81856113b5565b9350836020820285016110de85611359565b8060005b8581101561111a57848403895281516110fb8582611027565b945061110683611397565b925060208a019950506001810190506110e2565b50829750879550505050505092915050565b611135816113fa565b82525050565b61114481611406565b82525050565b61115381611480565b82525050565b60006111648261137f565b61116e81856113c6565b935061117e8185602086016114c8565b611187816114fb565b840191505092915050565b600061119f602f836113d7565b91507f496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742060008301527f74686520696e697469616c697a657200000000000000000000000000000000006020830152604082019050919050565b600060208201905061120d600083018461103b565b92915050565b6000602082019050818103600083015261122d8184611059565b905092915050565b6000602082019050818103600083015261124f81846110b7565b905092915050565b600060208201905061126c600083018461112c565b92915050565b6000602082019050611287600083018461113b565b92915050565b60006020820190506112a2600083018461114a565b92915050565b600060208201905081810360008301526112c181611192565b9050919050565b6000604051905081810181811067ffffffffffffffff821117156112eb57600080fd5b8060405250919050565b600067ffffffffffffffff82111561130c57600080fd5b602082029050602081019050919050565b600067ffffffffffffffff82111561133457600080fd5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b60006113f38261144e565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b6000611447826113e8565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611479826114a4565b9050919050565b600061148b82611492565b9050919050565b600061149d8261144e565b9050919050565b60006114af826114b6565b9050919050565b60006114c18261144e565b9050919050565b60005b838110156114e65780820151818401526020810190506114cb565b838111156114f5576000848401525b50505050565b6000601f19601f8301169050919050565b611515816113e8565b811461152057600080fd5b50565b61152c81611406565b811461153757600080fd5b50565b61154381611410565b811461154e57600080fd5b50565b61155a8161143c565b811461156557600080fd5b5056fea164736f6c634300060c000a", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/ENSNameResolver.json b/artifacts/ENSNameResolver.json index 88230325..c500d944 100644 --- a/artifacts/ENSNameResolver.json +++ b/artifacts/ENSNameResolver.json @@ -22,6 +22,108 @@ "name": "NameChanged", "type": "event" }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__6f06df17", + "type": "bytes8" + } + ], + "name": "c_6f06df17", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__f395fef5", + "type": "bytes8" + } + ], + "name": "c_f395fef5", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__6f06df17", + "type": "bytes8" + } + ], + "name": "c_false6f06df17", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__f395fef5", + "type": "bytes8" + } + ], + "name": "c_falsef395fef5", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__6f06df17", + "type": "bytes8" + } + ], + "name": "c_true6f06df17", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__f395fef5", + "type": "bytes8" + } + ], + "name": "c_truef395fef5", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [ { diff --git a/artifacts/ENSPubKeyResolver.json b/artifacts/ENSPubKeyResolver.json index f8abe723..23dc35db 100644 --- a/artifacts/ENSPubKeyResolver.json +++ b/artifacts/ENSPubKeyResolver.json @@ -28,6 +28,108 @@ "name": "PubkeyChanged", "type": "event" }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__633abef9", + "type": "bytes8" + } + ], + "name": "c_633abef9", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__f395fef5", + "type": "bytes8" + } + ], + "name": "c_f395fef5", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__633abef9", + "type": "bytes8" + } + ], + "name": "c_false633abef9", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__f395fef5", + "type": "bytes8" + } + ], + "name": "c_falsef395fef5", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__633abef9", + "type": "bytes8" + } + ], + "name": "c_true633abef9", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__f395fef5", + "type": "bytes8" + } + ], + "name": "c_truef395fef5", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [ { diff --git a/artifacts/ENSRegistry.json b/artifacts/ENSRegistry.json index 9802719d..8096bbfd 100644 --- a/artifacts/ENSRegistry.json +++ b/artifacts/ENSRegistry.json @@ -115,6 +115,57 @@ "name": "Transfer", "type": "event" }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__d1f32b86", + "type": "bytes8" + } + ], + "name": "c_d1f32b86", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__d1f32b86", + "type": "bytes8" + } + ], + "name": "c_falsed1f32b86", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__d1f32b86", + "type": "bytes8" + } + ], + "name": "c_trued1f32b86", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [ { @@ -378,8 +429,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50326000808060001b815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611253806100776000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80635b0fc9c3116100715780635b0fc9c3146102b15780635ef2c7f0146102ff578063a22cb4651461038b578063cf408823146103db578063e985e9c51461045d578063f79fe538146104d7576100b4565b80630178b8bf146100b957806302571be31461011157806306ab59231461016957806314ab9038146101d557806316a25cbd146102175780631896f70a14610263575b600080fd5b6100e5600480360360208110156100cf57600080fd5b810190808035906020019092919050505061051b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61013d6004803603602081101561012757600080fd5b810190808035906020019092919050505061055a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101bf6004803603606081101561017f57600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105dd565b6040518082815260200191505060405180910390f35b610215600480360360408110156101eb57600080fd5b8101908080359060200190929190803567ffffffffffffffff169060200190929190505050610812565b005b6102436004803603602081101561022d57600080fd5b81019080803590602001909291905050506109e6565b604051808267ffffffffffffffff16815260200191505060405180910390f35b6102af6004803603604081101561027957600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a19565b005b6102fd600480360360408110156102c757600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c11565b005b610389600480360360a081101561031557600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803567ffffffffffffffff169060200190929190505050610e09565b005b6103d9600480360360408110156103a157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610e2b565b005b61045b600480360360808110156103f157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803567ffffffffffffffff169060200190929190505050610f2a565b005b6104bf6004803603604081101561047357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f45565b60405180821515815260200191505060405180910390f35b610503600480360360208110156104ed57600080fd5b8101908080359060200190929190505050610fd9565b60405180821515815260200191505060405180910390f35b600080600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060008084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156105d35760009150506105d8565b809150505b919050565b600083600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806106da5750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61072f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061121b602c913960400191505060405180910390fd5b6000868660405160200180838152602001828152602001925050506040516020818303038152906040528051906020012090508460008083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085877fce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e8287604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a38093505050509392505050565b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061090d5750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610962576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061121b602c913960400191505060405180910390fd5b8260008086815260200190815260200160002060010160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550837f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa6884604051808267ffffffffffffffff16815260200191505060405180910390a250505050565b600080600083815260200190815260200160002060010160149054906101000a900467ffffffffffffffff169050919050565b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480610b145750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610b69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061121b602c913960400191505060405180910390fd5b8260008086815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550837f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a084604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250505050565b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480610d0c5750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610d61576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061121b602c913960400191505060405180910390fd5b8260008086815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550837fd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d26684604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250505050565b6000610e168686866105dd565b9050610e23818484611047565b505050505050565b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b610f348484610c11565b610f3f848383611047565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b60008084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611152578160008085815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550827f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a083604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25b60008084815260200190815260200160002060010160149054906101000a900467ffffffffffffffff1667ffffffffffffffff168167ffffffffffffffff1614611215578060008085815260200190815260200160002060010160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550827f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa6882604051808267ffffffffffffffff16815260200191505060405180910390a25b50505056fe454e5352656769737472793a20726576657274656420627920617574686f7269736564206d6f646966696572a164736f6c634300060c000a", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80635b0fc9c3116100715780635b0fc9c3146102b15780635ef2c7f0146102ff578063a22cb4651461038b578063cf408823146103db578063e985e9c51461045d578063f79fe538146104d7576100b4565b80630178b8bf146100b957806302571be31461011157806306ab59231461016957806314ab9038146101d557806316a25cbd146102175780631896f70a14610263575b600080fd5b6100e5600480360360208110156100cf57600080fd5b810190808035906020019092919050505061051b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61013d6004803603602081101561012757600080fd5b810190808035906020019092919050505061055a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101bf6004803603606081101561017f57600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105dd565b6040518082815260200191505060405180910390f35b610215600480360360408110156101eb57600080fd5b8101908080359060200190929190803567ffffffffffffffff169060200190929190505050610812565b005b6102436004803603602081101561022d57600080fd5b81019080803590602001909291905050506109e6565b604051808267ffffffffffffffff16815260200191505060405180910390f35b6102af6004803603604081101561027957600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a19565b005b6102fd600480360360408110156102c757600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c11565b005b610389600480360360a081101561031557600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803567ffffffffffffffff169060200190929190505050610e09565b005b6103d9600480360360408110156103a157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610e2b565b005b61045b600480360360808110156103f157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803567ffffffffffffffff169060200190929190505050610f2a565b005b6104bf6004803603604081101561047357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f45565b60405180821515815260200191505060405180910390f35b610503600480360360208110156104ed57600080fd5b8101908080359060200190929190505050610fd9565b60405180821515815260200191505060405180910390f35b600080600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060008084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156105d35760009150506105d8565b809150505b919050565b600083600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806106da5750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61072f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061121b602c913960400191505060405180910390fd5b6000868660405160200180838152602001828152602001925050506040516020818303038152906040528051906020012090508460008083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085877fce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e8287604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a38093505050509392505050565b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061090d5750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610962576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061121b602c913960400191505060405180910390fd5b8260008086815260200190815260200160002060010160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550837f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa6884604051808267ffffffffffffffff16815260200191505060405180910390a250505050565b600080600083815260200190815260200160002060010160149054906101000a900467ffffffffffffffff169050919050565b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480610b145750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610b69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061121b602c913960400191505060405180910390fd5b8260008086815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550837f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a084604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250505050565b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480610d0c5750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610d61576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061121b602c913960400191505060405180910390fd5b8260008086815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550837fd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d26684604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250505050565b6000610e168686866105dd565b9050610e23818484611047565b505050505050565b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b610f348484610c11565b610f3f848383611047565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b60008084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611152578160008085815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550827f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a083604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25b60008084815260200190815260200160002060010160149054906101000a900467ffffffffffffffff1667ffffffffffffffff168167ffffffffffffffff1614611215578060008085815260200190815260200160002060010160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550827f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa6882604051808267ffffffffffffffff16815260200191505060405180910390a25b50505056fe454e5352656769737472793a20726576657274656420627920617574686f7269736564206d6f646966696572a164736f6c634300060c000a", + "bytecode": "0x608060405234801561001057600080fd5b5061002b6736c8e9480155531e60c01b6100a160201b60201c565b61004567cb111d834975039760c01b6100a160201b60201c565b326000808060001b815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506100a4565b50565b611d5c806100b36000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80635ef2c7f011610097578063bfc17ff611610066578063bfc17ff6146104c4578063cf40882314610523578063e985e9c5146105a5578063f79fe5381461061f576100f5565b80635ef2c7f01461034057806365c05305146103cc578063751f4fce1461042b578063a22cb46514610474576100f5565b806314ab9038116100d357806314ab90381461021657806316a25cbd146102585780631896f70a146102a45780635b0fc9c3146102f2576100f5565b80630178b8bf146100fa57806302571be31461015257806306ab5923146101aa575b600080fd5b6101266004803603602081101561011057600080fd5b8101908080359060200190929190505050610663565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61017e6004803603602081101561016857600080fd5b81019080803590602001909291905050506106de565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610200600480360360608110156101c057600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061083e565b6040518082815260200191505060405180910390f35b6102566004803603604081101561022c57600080fd5b8101908080359060200190929190803567ffffffffffffffff169060200190929190505050610c13565b005b6102846004803603602081101561026e57600080fd5b8101908080359060200190929190505050610f37565b604051808267ffffffffffffffff16815260200191505060405180910390f35b6102f0600480360360408110156102ba57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fa6565b005b61033e6004803603604081101561030857600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112ee565b005b6103ca600480360360a081101561035657600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803567ffffffffffffffff169060200190929190505050611636565b005b610413600480360360208110156103e257600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506116bc565b60405180821515815260200191505060405180910390f35b6104726004803603602081101561044157600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506116c3565b005b6104c26004803603604081101561048a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506116c6565b005b61050b600480360360208110156104da57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611815565b60405180821515815260200191505060405180910390f35b6105a36004803603608081101561053957600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803567ffffffffffffffff169060200190929190505050611820565b005b610607600480360360408110156105bb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061189f565b60405180821515815260200191505060405180910390f35b61064b6004803603602081101561063557600080fd5b810190808035906020019092919050505061196f565b60405180821515815260200191505060405180910390f35b600061067967a91a92e3b1e6964d60c01b6116c3565b61068d67ad83c03b0635ce8660c01b6116c3565b6106a1675ffe20d6c29c0f2660c01b6116c3565b60008083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006106f4671dac06bc8af993dc60c01b6116c3565b6107086774259b69da08da8360c01b6116c3565b61071c67114165c8cbc5f0e260c01b6116c3565b600080600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061076a6733ed267e56eccf1960c01b6116c3565b61077e67060b2c72f9b534b260c01b6116c3565b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156107f8576107c667df48ee080439f57e60c01b6116c3565b6107da675e0c9b0341a2798960c01b6116c3565b6107ee6716d8c9e02790591c60c01b6116c3565b6000915050610839565b61080c67e6481328ab4613be60c01b6116c3565b61082067bfc9ecee990bd5e660c01b6116c3565b610834670e76d00bdcfa8b2660c01b6116c3565b809150505b919050565b60006108546746301080129d62c460c01b6116c3565b8361086967706fa904dea172c060c01b6116c3565b61087d67cf76ab10c9ddd21560c01b6116c3565b61089167522094c27440315e60c01b6116c3565b600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506108df67a02f5d77106563e460c01b6116c3565b6108f367f4dd7b3aca08833a60c01b6116c3565b610907675e2aab026345f06560c01b6116c3565b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148015610952575061095167e31086c8d5ce86ea60c01b611815565b5b806109ff5750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156109fe57506109fd6772b58f74a12a5c6760c01b611815565b5b5b610a54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180611d24602c913960400191505060405180910390fd5b610a68677a10899b08faa7f360c01b6116c3565b610a7c67bb373fe3fa23200260c01b6116c3565b610a90671b0b4faa8d730f0d60c01b6116c3565b610aa4679dc2381e3d0bb5c060c01b6116c3565b610ab86794da2df0a83fbf0160c01b6116c3565b610acc673945bc0957f8e5e660c01b6116c3565b600086866040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209050610b1367042906f404bfb65160c01b6116c3565b8460008083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b7b677df30e26fea4415b60c01b6116c3565b610b8f670f22a7c9dd95b7b760c01b6116c3565b85877fce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e8287604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a3610bf267ec9e85db7555aa4a60c01b6116c3565b610c0667364b665ccba087f160c01b6116c3565b8093505050509392505050565b610c27672b4d43abf09065c360c01b6116c3565b81610c3c67706fa904dea172c060c01b6116c3565b610c5067cf76ab10c9ddd21560c01b6116c3565b610c6467522094c27440315e60c01b6116c3565b600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050610cb267a02f5d77106563e460c01b6116c3565b610cc667f4dd7b3aca08833a60c01b6116c3565b610cda675e2aab026345f06560c01b6116c3565b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148015610d255750610d2467e31086c8d5ce86ea60c01b611815565b5b80610dd25750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015610dd15750610dd06772b58f74a12a5c6760c01b611815565b5b5b610e27576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180611d24602c913960400191505060405180910390fd5b610e3b677a10899b08faa7f360c01b6116c3565b610e4f67bb373fe3fa23200260c01b6116c3565b610e63673de8f8a23b6e5d7060c01b6116c3565b610e7767d86a23592c19405060c01b6116c3565b610e8b6795e8daa61d7de75d60c01b6116c3565b8260008086815260200190815260200160002060010160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550610edb6774b5b8b9c3b8d5c460c01b6116c3565b610eef6763d54e793fbed22960c01b6116c3565b837f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa6884604051808267ffffffffffffffff16815260200191505060405180910390a250505050565b6000610f4d674d7d38a73539dc5660c01b6116c3565b610f61675d3ffe7e1ff3b5d360c01b6116c3565b610f7567105d974893e03c6a60c01b6116c3565b60008083815260200190815260200160002060010160149054906101000a900467ffffffffffffffff169050919050565b610fba6723e07f132490a9d160c01b6116c3565b81610fcf67706fa904dea172c060c01b6116c3565b610fe367cf76ab10c9ddd21560c01b6116c3565b610ff767522094c27440315e60c01b6116c3565b600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061104567a02f5d77106563e460c01b6116c3565b61105967f4dd7b3aca08833a60c01b6116c3565b61106d675e2aab026345f06560c01b6116c3565b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480156110b857506110b767e31086c8d5ce86ea60c01b611815565b5b806111655750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561116457506111636772b58f74a12a5c6760c01b611815565b5b5b6111ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180611d24602c913960400191505060405180910390fd5b6111ce677a10899b08faa7f360c01b6116c3565b6111e267bb373fe3fa23200260c01b6116c3565b6111f6678d27949ed879301060c01b6116c3565b61120a67b0c05e18247a5a8060c01b6116c3565b61121e67022cb8e7fcf8e2c160c01b6116c3565b8260008086815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061128667d5df43ea9338375460c01b6116c3565b61129a678a8458b03787c9f760c01b6116c3565b837f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a084604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250505050565b611302677f782f3f1c22e8ef60c01b6116c3565b8161131767706fa904dea172c060c01b6116c3565b61132b67cf76ab10c9ddd21560c01b6116c3565b61133f67522094c27440315e60c01b6116c3565b600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061138d67a02f5d77106563e460c01b6116c3565b6113a167f4dd7b3aca08833a60c01b6116c3565b6113b5675e2aab026345f06560c01b6116c3565b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614801561140057506113ff67e31086c8d5ce86ea60c01b611815565b5b806114ad5750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156114ac57506114ab6772b58f74a12a5c6760c01b611815565b5b5b611502576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180611d24602c913960400191505060405180910390fd5b611516677a10899b08faa7f360c01b6116c3565b61152a67bb373fe3fa23200260c01b6116c3565b61153e67b89dd9afaec2096a60c01b6116c3565b61155267bb19253879085b5f60c01b6116c3565b6115666749a0b037f6cc722f60c01b6116c3565b8260008086815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506115ce67faa3933c3e8346f460c01b6116c3565b6115e267847aca86b396fc0160c01b6116c3565b837fd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d26684604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250505050565b61164a67f88f52150baac59560c01b6116c3565b61165e67b2a29dd08c9bb3c060c01b6116c3565b611672670e5fe7dc2fedb22c60c01b6116c3565b600061167f86868661083e565b905061169567fea2b112ffe9f66260c01b6116c3565b6116a967abd2fef41df14a0d60c01b6116c3565b6116b4818484611a1a565b505050505050565b6000919050565b50565b6116da67b17903bbeb444e4760c01b6116c3565b6116ee677f9022dab280f6c660c01b6116c3565b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611796676456df39b9a8dcde60c01b6116c3565b6117aa67597f2972801c6c1860c01b6116c3565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b600060019050919050565b611834675cb74efcf7b4f94b60c01b6116c3565b611848678e988af9f8e57dfd60c01b6116c3565b61185c678a9f9ab2e51d3dfc60c01b6116c3565b61186684846112ee565b61187a67d690fb1171a8a39460c01b6116c3565b61188e6795e8b780995311da60c01b6116c3565b611899848383611a1a565b50505050565b60006118b5674c96849f2f11d16f60c01b6116c3565b6118c9675c85d148057adfc760c01b6116c3565b6118dd675463f54b290c378460c01b6116c3565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600061198567d2eb6228dc3434b860c01b6116c3565b61199967c8925a4659a55e2360c01b6116c3565b6119ad676c42fb1c0510629c60c01b6116c3565b600073ffffffffffffffffffffffffffffffffffffffff1660008084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b611a2e675011b0a91f27726960c01b6116c3565b611a4267d7f40713044ecddf60c01b6116c3565b611a5667177444d8941447b360c01b6116c3565b60008084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611bb557611ad267720a9d94dd7b426860c01b6116c3565b611ae667eadc6e58b51eaf6c60c01b6116c3565b8160008085815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611b4e679433de5066f024ad60c01b6116c3565b611b6267026733b077e3f01160c01b6116c3565b827f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a083604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a2611bca565b611bc967b671c5abe4a8865160c01b6116c3565b5b611bde67b1449d9ae72db83c60c01b6116c3565b611bf267df7e552f1e3df70e60c01b6116c3565b60008084815260200190815260200160002060010160149054906101000a900467ffffffffffffffff1667ffffffffffffffff168167ffffffffffffffff1614611d0957611c4a67a0fc58a9d736e60360c01b6116c3565b611c5e67ecce33337b56dff760c01b6116c3565b8060008085815260200190815260200160002060010160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550611cae67fb4c10d0982e412f60c01b6116c3565b611cc26739c620525670447060c01b6116c3565b827f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa6882604051808267ffffffffffffffff16815260200191505060405180910390a2611d1e565b611d1d6759e493318464c1f160c01b6116c3565b5b50505056fe454e5352656769737472793a20726576657274656420627920617574686f7269736564206d6f646966696572a164736f6c634300060c000a", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80635ef2c7f011610097578063bfc17ff611610066578063bfc17ff6146104c4578063cf40882314610523578063e985e9c5146105a5578063f79fe5381461061f576100f5565b80635ef2c7f01461034057806365c05305146103cc578063751f4fce1461042b578063a22cb46514610474576100f5565b806314ab9038116100d357806314ab90381461021657806316a25cbd146102585780631896f70a146102a45780635b0fc9c3146102f2576100f5565b80630178b8bf146100fa57806302571be31461015257806306ab5923146101aa575b600080fd5b6101266004803603602081101561011057600080fd5b8101908080359060200190929190505050610663565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61017e6004803603602081101561016857600080fd5b81019080803590602001909291905050506106de565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610200600480360360608110156101c057600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061083e565b6040518082815260200191505060405180910390f35b6102566004803603604081101561022c57600080fd5b8101908080359060200190929190803567ffffffffffffffff169060200190929190505050610c13565b005b6102846004803603602081101561026e57600080fd5b8101908080359060200190929190505050610f37565b604051808267ffffffffffffffff16815260200191505060405180910390f35b6102f0600480360360408110156102ba57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fa6565b005b61033e6004803603604081101561030857600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112ee565b005b6103ca600480360360a081101561035657600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803567ffffffffffffffff169060200190929190505050611636565b005b610413600480360360208110156103e257600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506116bc565b60405180821515815260200191505060405180910390f35b6104726004803603602081101561044157600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506116c3565b005b6104c26004803603604081101561048a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506116c6565b005b61050b600480360360208110156104da57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611815565b60405180821515815260200191505060405180910390f35b6105a36004803603608081101561053957600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803567ffffffffffffffff169060200190929190505050611820565b005b610607600480360360408110156105bb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061189f565b60405180821515815260200191505060405180910390f35b61064b6004803603602081101561063557600080fd5b810190808035906020019092919050505061196f565b60405180821515815260200191505060405180910390f35b600061067967a91a92e3b1e6964d60c01b6116c3565b61068d67ad83c03b0635ce8660c01b6116c3565b6106a1675ffe20d6c29c0f2660c01b6116c3565b60008083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006106f4671dac06bc8af993dc60c01b6116c3565b6107086774259b69da08da8360c01b6116c3565b61071c67114165c8cbc5f0e260c01b6116c3565b600080600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061076a6733ed267e56eccf1960c01b6116c3565b61077e67060b2c72f9b534b260c01b6116c3565b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156107f8576107c667df48ee080439f57e60c01b6116c3565b6107da675e0c9b0341a2798960c01b6116c3565b6107ee6716d8c9e02790591c60c01b6116c3565b6000915050610839565b61080c67e6481328ab4613be60c01b6116c3565b61082067bfc9ecee990bd5e660c01b6116c3565b610834670e76d00bdcfa8b2660c01b6116c3565b809150505b919050565b60006108546746301080129d62c460c01b6116c3565b8361086967706fa904dea172c060c01b6116c3565b61087d67cf76ab10c9ddd21560c01b6116c3565b61089167522094c27440315e60c01b6116c3565b600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506108df67a02f5d77106563e460c01b6116c3565b6108f367f4dd7b3aca08833a60c01b6116c3565b610907675e2aab026345f06560c01b6116c3565b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148015610952575061095167e31086c8d5ce86ea60c01b611815565b5b806109ff5750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156109fe57506109fd6772b58f74a12a5c6760c01b611815565b5b5b610a54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180611d24602c913960400191505060405180910390fd5b610a68677a10899b08faa7f360c01b6116c3565b610a7c67bb373fe3fa23200260c01b6116c3565b610a90671b0b4faa8d730f0d60c01b6116c3565b610aa4679dc2381e3d0bb5c060c01b6116c3565b610ab86794da2df0a83fbf0160c01b6116c3565b610acc673945bc0957f8e5e660c01b6116c3565b600086866040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209050610b1367042906f404bfb65160c01b6116c3565b8460008083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b7b677df30e26fea4415b60c01b6116c3565b610b8f670f22a7c9dd95b7b760c01b6116c3565b85877fce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e8287604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a3610bf267ec9e85db7555aa4a60c01b6116c3565b610c0667364b665ccba087f160c01b6116c3565b8093505050509392505050565b610c27672b4d43abf09065c360c01b6116c3565b81610c3c67706fa904dea172c060c01b6116c3565b610c5067cf76ab10c9ddd21560c01b6116c3565b610c6467522094c27440315e60c01b6116c3565b600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050610cb267a02f5d77106563e460c01b6116c3565b610cc667f4dd7b3aca08833a60c01b6116c3565b610cda675e2aab026345f06560c01b6116c3565b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148015610d255750610d2467e31086c8d5ce86ea60c01b611815565b5b80610dd25750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015610dd15750610dd06772b58f74a12a5c6760c01b611815565b5b5b610e27576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180611d24602c913960400191505060405180910390fd5b610e3b677a10899b08faa7f360c01b6116c3565b610e4f67bb373fe3fa23200260c01b6116c3565b610e63673de8f8a23b6e5d7060c01b6116c3565b610e7767d86a23592c19405060c01b6116c3565b610e8b6795e8daa61d7de75d60c01b6116c3565b8260008086815260200190815260200160002060010160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550610edb6774b5b8b9c3b8d5c460c01b6116c3565b610eef6763d54e793fbed22960c01b6116c3565b837f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa6884604051808267ffffffffffffffff16815260200191505060405180910390a250505050565b6000610f4d674d7d38a73539dc5660c01b6116c3565b610f61675d3ffe7e1ff3b5d360c01b6116c3565b610f7567105d974893e03c6a60c01b6116c3565b60008083815260200190815260200160002060010160149054906101000a900467ffffffffffffffff169050919050565b610fba6723e07f132490a9d160c01b6116c3565b81610fcf67706fa904dea172c060c01b6116c3565b610fe367cf76ab10c9ddd21560c01b6116c3565b610ff767522094c27440315e60c01b6116c3565b600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061104567a02f5d77106563e460c01b6116c3565b61105967f4dd7b3aca08833a60c01b6116c3565b61106d675e2aab026345f06560c01b6116c3565b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480156110b857506110b767e31086c8d5ce86ea60c01b611815565b5b806111655750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561116457506111636772b58f74a12a5c6760c01b611815565b5b5b6111ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180611d24602c913960400191505060405180910390fd5b6111ce677a10899b08faa7f360c01b6116c3565b6111e267bb373fe3fa23200260c01b6116c3565b6111f6678d27949ed879301060c01b6116c3565b61120a67b0c05e18247a5a8060c01b6116c3565b61121e67022cb8e7fcf8e2c160c01b6116c3565b8260008086815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061128667d5df43ea9338375460c01b6116c3565b61129a678a8458b03787c9f760c01b6116c3565b837f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a084604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250505050565b611302677f782f3f1c22e8ef60c01b6116c3565b8161131767706fa904dea172c060c01b6116c3565b61132b67cf76ab10c9ddd21560c01b6116c3565b61133f67522094c27440315e60c01b6116c3565b600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061138d67a02f5d77106563e460c01b6116c3565b6113a167f4dd7b3aca08833a60c01b6116c3565b6113b5675e2aab026345f06560c01b6116c3565b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614801561140057506113ff67e31086c8d5ce86ea60c01b611815565b5b806114ad5750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156114ac57506114ab6772b58f74a12a5c6760c01b611815565b5b5b611502576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180611d24602c913960400191505060405180910390fd5b611516677a10899b08faa7f360c01b6116c3565b61152a67bb373fe3fa23200260c01b6116c3565b61153e67b89dd9afaec2096a60c01b6116c3565b61155267bb19253879085b5f60c01b6116c3565b6115666749a0b037f6cc722f60c01b6116c3565b8260008086815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506115ce67faa3933c3e8346f460c01b6116c3565b6115e267847aca86b396fc0160c01b6116c3565b837fd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d26684604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250505050565b61164a67f88f52150baac59560c01b6116c3565b61165e67b2a29dd08c9bb3c060c01b6116c3565b611672670e5fe7dc2fedb22c60c01b6116c3565b600061167f86868661083e565b905061169567fea2b112ffe9f66260c01b6116c3565b6116a967abd2fef41df14a0d60c01b6116c3565b6116b4818484611a1a565b505050505050565b6000919050565b50565b6116da67b17903bbeb444e4760c01b6116c3565b6116ee677f9022dab280f6c660c01b6116c3565b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611796676456df39b9a8dcde60c01b6116c3565b6117aa67597f2972801c6c1860c01b6116c3565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b600060019050919050565b611834675cb74efcf7b4f94b60c01b6116c3565b611848678e988af9f8e57dfd60c01b6116c3565b61185c678a9f9ab2e51d3dfc60c01b6116c3565b61186684846112ee565b61187a67d690fb1171a8a39460c01b6116c3565b61188e6795e8b780995311da60c01b6116c3565b611899848383611a1a565b50505050565b60006118b5674c96849f2f11d16f60c01b6116c3565b6118c9675c85d148057adfc760c01b6116c3565b6118dd675463f54b290c378460c01b6116c3565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600061198567d2eb6228dc3434b860c01b6116c3565b61199967c8925a4659a55e2360c01b6116c3565b6119ad676c42fb1c0510629c60c01b6116c3565b600073ffffffffffffffffffffffffffffffffffffffff1660008084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b611a2e675011b0a91f27726960c01b6116c3565b611a4267d7f40713044ecddf60c01b6116c3565b611a5667177444d8941447b360c01b6116c3565b60008084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611bb557611ad267720a9d94dd7b426860c01b6116c3565b611ae667eadc6e58b51eaf6c60c01b6116c3565b8160008085815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611b4e679433de5066f024ad60c01b6116c3565b611b6267026733b077e3f01160c01b6116c3565b827f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a083604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a2611bca565b611bc967b671c5abe4a8865160c01b6116c3565b5b611bde67b1449d9ae72db83c60c01b6116c3565b611bf267df7e552f1e3df70e60c01b6116c3565b60008084815260200190815260200160002060010160149054906101000a900467ffffffffffffffff1667ffffffffffffffff168167ffffffffffffffff1614611d0957611c4a67a0fc58a9d736e60360c01b6116c3565b611c5e67ecce33337b56dff760c01b6116c3565b8060008085815260200190815260200160002060010160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550611cae67fb4c10d0982e412f60c01b6116c3565b611cc26739c620525670447060c01b6116c3565b827f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa6882604051808267ffffffffffffffff16815260200191505060405180910390a2611d1e565b611d1d6759e493318464c1f160c01b6116c3565b5b50505056fe454e5352656769737472793a20726576657274656420627920617574686f7269736564206d6f646966696572a164736f6c634300060c000a", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/ENSReverseRegistrar.json b/artifacts/ENSReverseRegistrar.json index efab17a9..24d18705 100644 --- a/artifacts/ENSReverseRegistrar.json +++ b/artifacts/ENSReverseRegistrar.json @@ -34,6 +34,108 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__098c0657", + "type": "bytes8" + } + ], + "name": "c_098c0657", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__c9f97d2d", + "type": "bytes8" + } + ], + "name": "c_c9f97d2d", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__098c0657", + "type": "bytes8" + } + ], + "name": "c_false098c0657", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__c9f97d2d", + "type": "bytes8" + } + ], + "name": "c_falsec9f97d2d", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__098c0657", + "type": "bytes8" + } + ], + "name": "c_true098c0657", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__c9f97d2d", + "type": "bytes8" + } + ], + "name": "c_truec9f97d2d", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [ { @@ -173,8 +275,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50326000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610df8806100606000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063485cc95511610066578063485cc955146101bc5780637b103999146102205780637cf8a2eb14610254578063bffbe61c14610272578063c47f0027146102ca57610093565b806304f3bcec146100985780630f5a5466146100cc5780631e83409a14610144578063392e53cd1461019c575b600080fd5b6100a0610399565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61012e600480360360408110156100e257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103bf565b6040518082815260200191505060405180910390f35b6101866004803603602081101561015a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103d3565b6040518082815260200191505060405180910390f35b6101a46103e7565b60405180821515815260200191505060405180910390f35b61021e600480360360408110156101d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061043d565b005b6102286105f5565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61025c61061b565b6040518082815260200191505060405180910390f35b6102b46004803603602081101561028857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610642565b6040518082815260200191505060405180910390f35b610383600480360360208110156102e057600080fd5b81019080803590602001906401000000008111156102fd57600080fd5b82018360208201111561030f57600080fd5b8035906020019184600183028401116401000000008311171561033157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506106bb565b6040518082815260200191505060405180910390f35b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006103cb83836107ef565b905092915050565b60006103e08260006107ef565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146104e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180610dbd602f913960400191505060405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e632604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b81565b60007f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b6106878373ffffffffffffffffffffffffffffffffffffffff16610d4d565b6040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209050919050565b6000806106ea30600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166107ef565b9050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637737221382856040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610781578082015181840152602081019050610766565b50505050905090810190601f1680156107ae5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156107ce57600080fd5b505af11580156107e2573d6000803e3d6000fd5b5050505080915050919050565b6000806108113373ffffffffffffffffffffffffffffffffffffffff16610d4d565b905060007f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b8260405160200180838152602001828152602001925050506040516020818303038152906040528051906020012090506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156108de57600080fd5b505afa1580156108f2573d6000803e3d6000fd5b505050506040513d602081101561090857600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610a315750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630178b8bf836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156109c657600080fd5b505afa1580156109da573d6000803e3d6000fd5b505050506040513d60208110156109f057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15610c13573073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b6757600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab59237f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b85306040518463ffffffff1660e01b8152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b158015610b2757600080fd5b505af1158015610b3b573d6000803e3d6000fd5b505050506040513d6020811015610b5157600080fd5b8101908080519060200190929190505050503090505b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a83876040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b158015610bfa57600080fd5b505af1158015610c0e573d6000803e3d6000fd5b505050505b8573ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d4157600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab59237f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b85896040518463ffffffff1660e01b8152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b158015610d0457600080fd5b505af1158015610d18573d6000803e3d6000fd5b505050506040513d6020811015610d2e57600080fd5b8101908080519060200190929190505050505b81935050505092915050565b6000807f303132333435363738396162636465660000000000000000000000000000000060285b6000811115610daa5760018103905081600f86161a815360108504945060018103905081600f86161a8153601085049450610d74565b5060286000209150508091505091905056fe496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742074686520696e697469616c697a6572a164736f6c634300060c000a", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c8063485cc95511610066578063485cc955146101bc5780637b103999146102205780637cf8a2eb14610254578063bffbe61c14610272578063c47f0027146102ca57610093565b806304f3bcec146100985780630f5a5466146100cc5780631e83409a14610144578063392e53cd1461019c575b600080fd5b6100a0610399565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61012e600480360360408110156100e257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103bf565b6040518082815260200191505060405180910390f35b6101866004803603602081101561015a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103d3565b6040518082815260200191505060405180910390f35b6101a46103e7565b60405180821515815260200191505060405180910390f35b61021e600480360360408110156101d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061043d565b005b6102286105f5565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61025c61061b565b6040518082815260200191505060405180910390f35b6102b46004803603602081101561028857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610642565b6040518082815260200191505060405180910390f35b610383600480360360208110156102e057600080fd5b81019080803590602001906401000000008111156102fd57600080fd5b82018360208201111561030f57600080fd5b8035906020019184600183028401116401000000008311171561033157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506106bb565b6040518082815260200191505060405180910390f35b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006103cb83836107ef565b905092915050565b60006103e08260006107ef565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146104e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180610dbd602f913960400191505060405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e632604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b81565b60007f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b6106878373ffffffffffffffffffffffffffffffffffffffff16610d4d565b6040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209050919050565b6000806106ea30600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166107ef565b9050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637737221382856040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610781578082015181840152602081019050610766565b50505050905090810190601f1680156107ae5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156107ce57600080fd5b505af11580156107e2573d6000803e3d6000fd5b5050505080915050919050565b6000806108113373ffffffffffffffffffffffffffffffffffffffff16610d4d565b905060007f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b8260405160200180838152602001828152602001925050506040516020818303038152906040528051906020012090506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156108de57600080fd5b505afa1580156108f2573d6000803e3d6000fd5b505050506040513d602081101561090857600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610a315750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630178b8bf836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156109c657600080fd5b505afa1580156109da573d6000803e3d6000fd5b505050506040513d60208110156109f057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15610c13573073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b6757600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab59237f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b85306040518463ffffffff1660e01b8152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b158015610b2757600080fd5b505af1158015610b3b573d6000803e3d6000fd5b505050506040513d6020811015610b5157600080fd5b8101908080519060200190929190505050503090505b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a83876040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b158015610bfa57600080fd5b505af1158015610c0e573d6000803e3d6000fd5b505050505b8573ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d4157600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab59237f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b85896040518463ffffffff1660e01b8152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b158015610d0457600080fd5b505af1158015610d18573d6000803e3d6000fd5b505050506040513d6020811015610d2e57600080fd5b8101908080519060200190929190505050505b81935050505092915050565b6000807f303132333435363738396162636465660000000000000000000000000000000060285b6000811115610daa5760018103905081600f86161a815360108504945060018103905081600f86161a8153601085049450610d74565b5060286000209150508091505091905056fe496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742074686520696e697469616c697a6572a164736f6c634300060c000a", + "bytecode": "0x608060405234801561001057600080fd5b5061002b67bcc9be562f8a4b0a60c01b6100a460201b60201c565b61004567579ae7209daca85260c01b6100a460201b60201c565b326000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061009f67a399ebea09360d3560c01b6100a760201b60201c565b6100aa565b50565b50565b6115e3806100b96000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80634d29954811610097578063c454330511610066578063c45433051461041d578063c47f00271461047c578063c74348c01461054b578063d84fa10c146105aa576100f5565b80634d299548146103145780637b103999146103735780637cf8a2eb146103a7578063bffbe61c146103c5576100f5565b80631e83409a116100d35780631e83409a146101ef578063392e53cd146102475780633e260b1314610267578063485cc955146102b0576100f5565b806304f3bcec146100fa578063061e6a5a1461012e5780630f5a546614610177575b600080fd5b610102610609565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101756004803603602081101561014457600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061062f565b005b6101d96004803603604081101561018d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610632565b6040518082815260200191505060405180910390f35b6102316004803603602081101561020557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610682565b6040518082815260200191505060405180910390f35b61024f6106d1565b60405180821515815260200191505060405180910390f35b6102ae6004803603602081101561027d57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610764565b005b610312600480360360408110156102c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610767565b005b61035b6004803603602081101561032a57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610a37565b60405180821515815260200191505060405180910390f35b61037b610a3e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103af610a64565b6040518082815260200191505060405180910390f35b610407600480360360208110156103db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a8b565b6040518082815260200191505060405180910390f35b6104646004803603602081101561043357600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b40565b60405180821515815260200191505060405180910390f35b6105356004803603602081101561049257600080fd5b81019080803590602001906401000000008111156104af57600080fd5b8201836020820111156104c157600080fd5b803590602001918460018302840111640100000000831117156104e357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610b4b565b6040518082815260200191505060405180910390f35b6105926004803603602081101561056157600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610d0c565b60405180821515815260200191505060405180910390f35b6105f1600480360360208110156105c057600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610d17565b60405180821515815260200191505060405180910390f35b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b50565b6000610648678d9a4ac5f4e4e48460c01b61062f565b61065c67d5715caf8f5a00af60c01b61062f565b610670678b87148bdb43cd2760c01b61062f565b61067a8383610d1e565b905092915050565b600061069867802b7699dc38571c60c01b61062f565b6106ab66af07c42e64946260c01b61062f565b6106bf67e2d84fe002c08a8960c01b61062f565b6106ca826000610d1e565b9050919050565b60006106e767e29fe2f351ca6b2760c01b610764565b6106fb676f5dd3f08b97747760c01b610764565b61070f673a9488d62818322a60c01b610764565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b50565b61077b676e55433e10791d8960c01b61062f565b61078f67d2ba19feb39e0b7f60c01b610764565b6107a3670c5ad53cdb9edd1560c01b610764565b6107b767b6b588d2ebb9ae6960c01b610764565b6107cb67c4ec9a90a885875260c01b610764565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161461086f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001806115a8602f913960400191505060405180910390fd5b61088367c3785ba1534db95460c01b610764565b61089767e4202927591248ef60c01b610764565b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506108ec67531cfa2817fbdc8660c01b610764565b61090067beff9d01c8e116a160c01b61062f565b610914678dad54bf39b6933060c01b61062f565b6109286782d24218338e77e360c01b61062f565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061097d673be3b5afe55773f460c01b61062f565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506109d26701520f419008b58e60c01b610764565b6109e66775364c04848b013b60c01b610764565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e632604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b6000919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b81565b6000610aa167d6bca8f1ea738a1f60c01b61062f565b610ab5670c71bc050b17c4c160c01b61062f565b610ac96785b58abe0136c50060c01b61062f565b7f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b610b0c8373ffffffffffffffffffffffffffffffffffffffff166114bc565b6040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209050919050565b600060019050919050565b6000610b6167c6387bb33702f25760c01b61062f565b610b7567f52dc71539f8371f60c01b61062f565b610b896795e699f5c471f2c160c01b61062f565b6000610bb730600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d1e565b9050610bcd67a6bc90be77a4c25f60c01b61062f565b610be1671d56c946afa642cc60c01b61062f565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637737221382856040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610c76578082015181840152602081019050610c5b565b50505050905090810190601f168015610ca35780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015610cc357600080fd5b505af1158015610cd7573d6000803e3d6000fd5b50505050610cef673ea2fa6739acc47a60c01b61062f565b610d0367179612b7219546fa60c01b61062f565b80915050919050565b600060019050919050565b6000919050565b6000610d34678fba7687037ff0ab60c01b61062f565b610d4867326f99af0097bd8d60c01b61062f565b610d5c67f93a3c734b04a2b860c01b61062f565b6000610d7d3373ffffffffffffffffffffffffffffffffffffffff166114bc565b9050610d93675777d3f0b5168a0260c01b61062f565b610da7677169c6b776203e3260c01b61062f565b60007f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b826040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209050610e11677372572d8a0bbee560c01b61062f565b610e2567670f6de6440f899e60c01b61062f565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610e9a57600080fd5b505afa158015610eae573d6000803e3d6000fd5b505050506040513d6020811015610ec457600080fd5b81019080805190602001909291905050509050610eeb67af10598235b6e68b60c01b61062f565b610eff67b6df3587186b09b660c01b61062f565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156110155750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630178b8bf836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610faa57600080fd5b505afa158015610fbe573d6000803e3d6000fd5b505050506040513d6020811015610fd457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156112c85761102e670a8b5142cbf3031c60c01b61062f565b611042673e693fc91f3b56ee60c01b61062f565b611056674284a8fe6ce6242060c01b61062f565b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146111db5761109d67f32eec28915eb55760c01b61062f565b6110b167215c62d59a05704560c01b61062f565b6110c5674b022e8bc635788c60c01b61062f565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab59237f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b85306040518463ffffffff1660e01b8152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b15801561118357600080fd5b505af1158015611197573d6000803e3d6000fd5b505050506040513d60208110156111ad57600080fd5b8101908080519060200190929190505050506111d367330e13943653410e60c01b61062f565b3090506111f0565b6111ef6796e8a699f95f13e260c01b61062f565b5b61120467ee2823989b48738560c01b61062f565b611218679ebccdd2975f0bab60c01b61062f565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a83876040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b1580156112ab57600080fd5b505af11580156112bf573d6000803e3d6000fd5b505050506112dd565b6112dc674921cfe0d7ebef4060c01b61062f565b5b6112f167720b3121f3f8e3ed60c01b61062f565b61130567adb69e3621680edb60c01b61062f565b8573ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146114735761134c67f7b8e5484c481e9860c01b61062f565b61136067f0d42aabdb004ef760c01b61062f565b6113746706d054ec7ccf763c60c01b61062f565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab59237f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b85896040518463ffffffff1660e01b8152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b15801561143257600080fd5b505af1158015611446573d6000803e3d6000fd5b505050506040513d602081101561145c57600080fd5b810190808051906020019092919050505050611488565b61148767b887de50faa5c22160c01b61062f565b5b61149c677fdd0f0a45805bcb60c01b61062f565b6114b067a7ee6975b58644a060c01b61062f565b81935050505092915050565b60006114d26749944f65c73f543d60c01b6115a4565b6114e6672e77f887ba8052d460c01b6115a4565b6114fa676cfd017771fa3bc760c01b6115a4565b6000611510679a313554b743bb2a60c01b6115a4565b7f303132333435363738396162636465660000000000000000000000000000000060285b600081111561156a5760018103905081600f86161a815360108504945060018103905081600f86161a8153601085049450611534565b50602860002091505061158767063a805e66eb937260c01b6115a4565b61159b67337071d34726b2ac60c01b6115a4565b80915050919050565b5056fe496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742074686520696e697469616c697a6572a164736f6c634300060c000a", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80634d29954811610097578063c454330511610066578063c45433051461041d578063c47f00271461047c578063c74348c01461054b578063d84fa10c146105aa576100f5565b80634d299548146103145780637b103999146103735780637cf8a2eb146103a7578063bffbe61c146103c5576100f5565b80631e83409a116100d35780631e83409a146101ef578063392e53cd146102475780633e260b1314610267578063485cc955146102b0576100f5565b806304f3bcec146100fa578063061e6a5a1461012e5780630f5a546614610177575b600080fd5b610102610609565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101756004803603602081101561014457600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061062f565b005b6101d96004803603604081101561018d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610632565b6040518082815260200191505060405180910390f35b6102316004803603602081101561020557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610682565b6040518082815260200191505060405180910390f35b61024f6106d1565b60405180821515815260200191505060405180910390f35b6102ae6004803603602081101561027d57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610764565b005b610312600480360360408110156102c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610767565b005b61035b6004803603602081101561032a57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610a37565b60405180821515815260200191505060405180910390f35b61037b610a3e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103af610a64565b6040518082815260200191505060405180910390f35b610407600480360360208110156103db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a8b565b6040518082815260200191505060405180910390f35b6104646004803603602081101561043357600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b40565b60405180821515815260200191505060405180910390f35b6105356004803603602081101561049257600080fd5b81019080803590602001906401000000008111156104af57600080fd5b8201836020820111156104c157600080fd5b803590602001918460018302840111640100000000831117156104e357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610b4b565b6040518082815260200191505060405180910390f35b6105926004803603602081101561056157600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610d0c565b60405180821515815260200191505060405180910390f35b6105f1600480360360208110156105c057600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610d17565b60405180821515815260200191505060405180910390f35b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b50565b6000610648678d9a4ac5f4e4e48460c01b61062f565b61065c67d5715caf8f5a00af60c01b61062f565b610670678b87148bdb43cd2760c01b61062f565b61067a8383610d1e565b905092915050565b600061069867802b7699dc38571c60c01b61062f565b6106ab66af07c42e64946260c01b61062f565b6106bf67e2d84fe002c08a8960c01b61062f565b6106ca826000610d1e565b9050919050565b60006106e767e29fe2f351ca6b2760c01b610764565b6106fb676f5dd3f08b97747760c01b610764565b61070f673a9488d62818322a60c01b610764565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b50565b61077b676e55433e10791d8960c01b61062f565b61078f67d2ba19feb39e0b7f60c01b610764565b6107a3670c5ad53cdb9edd1560c01b610764565b6107b767b6b588d2ebb9ae6960c01b610764565b6107cb67c4ec9a90a885875260c01b610764565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161461086f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001806115a8602f913960400191505060405180910390fd5b61088367c3785ba1534db95460c01b610764565b61089767e4202927591248ef60c01b610764565b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506108ec67531cfa2817fbdc8660c01b610764565b61090067beff9d01c8e116a160c01b61062f565b610914678dad54bf39b6933060c01b61062f565b6109286782d24218338e77e360c01b61062f565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061097d673be3b5afe55773f460c01b61062f565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506109d26701520f419008b58e60c01b610764565b6109e66775364c04848b013b60c01b610764565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e632604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b6000919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b81565b6000610aa167d6bca8f1ea738a1f60c01b61062f565b610ab5670c71bc050b17c4c160c01b61062f565b610ac96785b58abe0136c50060c01b61062f565b7f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b610b0c8373ffffffffffffffffffffffffffffffffffffffff166114bc565b6040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209050919050565b600060019050919050565b6000610b6167c6387bb33702f25760c01b61062f565b610b7567f52dc71539f8371f60c01b61062f565b610b896795e699f5c471f2c160c01b61062f565b6000610bb730600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d1e565b9050610bcd67a6bc90be77a4c25f60c01b61062f565b610be1671d56c946afa642cc60c01b61062f565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637737221382856040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610c76578082015181840152602081019050610c5b565b50505050905090810190601f168015610ca35780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015610cc357600080fd5b505af1158015610cd7573d6000803e3d6000fd5b50505050610cef673ea2fa6739acc47a60c01b61062f565b610d0367179612b7219546fa60c01b61062f565b80915050919050565b600060019050919050565b6000919050565b6000610d34678fba7687037ff0ab60c01b61062f565b610d4867326f99af0097bd8d60c01b61062f565b610d5c67f93a3c734b04a2b860c01b61062f565b6000610d7d3373ffffffffffffffffffffffffffffffffffffffff166114bc565b9050610d93675777d3f0b5168a0260c01b61062f565b610da7677169c6b776203e3260c01b61062f565b60007f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b826040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209050610e11677372572d8a0bbee560c01b61062f565b610e2567670f6de6440f899e60c01b61062f565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610e9a57600080fd5b505afa158015610eae573d6000803e3d6000fd5b505050506040513d6020811015610ec457600080fd5b81019080805190602001909291905050509050610eeb67af10598235b6e68b60c01b61062f565b610eff67b6df3587186b09b660c01b61062f565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156110155750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630178b8bf836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610faa57600080fd5b505afa158015610fbe573d6000803e3d6000fd5b505050506040513d6020811015610fd457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156112c85761102e670a8b5142cbf3031c60c01b61062f565b611042673e693fc91f3b56ee60c01b61062f565b611056674284a8fe6ce6242060c01b61062f565b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146111db5761109d67f32eec28915eb55760c01b61062f565b6110b167215c62d59a05704560c01b61062f565b6110c5674b022e8bc635788c60c01b61062f565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab59237f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b85306040518463ffffffff1660e01b8152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b15801561118357600080fd5b505af1158015611197573d6000803e3d6000fd5b505050506040513d60208110156111ad57600080fd5b8101908080519060200190929190505050506111d367330e13943653410e60c01b61062f565b3090506111f0565b6111ef6796e8a699f95f13e260c01b61062f565b5b61120467ee2823989b48738560c01b61062f565b611218679ebccdd2975f0bab60c01b61062f565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a83876040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b1580156112ab57600080fd5b505af11580156112bf573d6000803e3d6000fd5b505050506112dd565b6112dc674921cfe0d7ebef4060c01b61062f565b5b6112f167720b3121f3f8e3ed60c01b61062f565b61130567adb69e3621680edb60c01b61062f565b8573ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146114735761134c67f7b8e5484c481e9860c01b61062f565b61136067f0d42aabdb004ef760c01b61062f565b6113746706d054ec7ccf763c60c01b61062f565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab59237f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b85896040518463ffffffff1660e01b8152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b15801561143257600080fd5b505af1158015611446573d6000803e3d6000fd5b505050506040513d602081101561145c57600080fd5b810190808051906020019092919050505050611488565b61148767b887de50faa5c22160c01b61062f565b5b61149c677fdd0f0a45805bcb60c01b61062f565b6114b067a7ee6975b58644a060c01b61062f565b81935050505092915050565b60006114d26749944f65c73f543d60c01b6115a4565b6114e6672e77f887ba8052d460c01b6115a4565b6114fa676cfd017771fa3bc760c01b6115a4565b6000611510679a313554b743bb2a60c01b6115a4565b7f303132333435363738396162636465660000000000000000000000000000000060285b600081111561156a5760018103905081600f86161a815360108504945060018103905081600f86161a8153601085049450611534565b50602860002091505061158767063a805e66eb937260c01b6115a4565b61159b67337071d34726b2ac60c01b6115a4565b80915050919050565b5056fe496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742074686520696e697469616c697a6572a164736f6c634300060c000a", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/ENSTextResolver.json b/artifacts/ENSTextResolver.json index 6f23e710..1dc2ab87 100644 --- a/artifacts/ENSTextResolver.json +++ b/artifacts/ENSTextResolver.json @@ -28,6 +28,108 @@ "name": "TextChanged", "type": "event" }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__7ffc1d72", + "type": "bytes8" + } + ], + "name": "c_7ffc1d72", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__f395fef5", + "type": "bytes8" + } + ], + "name": "c_f395fef5", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__7ffc1d72", + "type": "bytes8" + } + ], + "name": "c_false7ffc1d72", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__f395fef5", + "type": "bytes8" + } + ], + "name": "c_falsef395fef5", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__7ffc1d72", + "type": "bytes8" + } + ], + "name": "c_true7ffc1d72", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__f395fef5", + "type": "bytes8" + } + ], + "name": "c_truef395fef5", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [ { diff --git a/artifacts/ERC20BurnableUpgradeable.json b/artifacts/ERC20BurnableUpgradeable.json deleted file mode 100644 index 7613c4fb..00000000 --- a/artifacts/ERC20BurnableUpgradeable.json +++ /dev/null @@ -1,325 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ERC20BurnableUpgradeable", - "sourceName": "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol", - "abi": [ - { - "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": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "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": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "burnFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "addedValue", - "type": "uint256" - } - ], - "name": "increaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "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": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/ERC20Token.json b/artifacts/ERC20Token.json index 60718d1e..bf0a54cc 100644 --- a/artifacts/ERC20Token.json +++ b/artifacts/ERC20Token.json @@ -120,6 +120,57 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__99a47378", + "type": "bytes8" + } + ], + "name": "c_99a47378", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__99a47378", + "type": "bytes8" + } + ], + "name": "c_false99a47378", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__99a47378", + "type": "bytes8" + } + ], + "name": "c_true99a47378", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [], "name": "decimals", diff --git a/artifacts/ERC20Upgradeable.json b/artifacts/ERC20Upgradeable.json deleted file mode 100644 index 10acb06c..00000000 --- a/artifacts/ERC20Upgradeable.json +++ /dev/null @@ -1,294 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ERC20Upgradeable", - "sourceName": "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol", - "abi": [ - { - "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": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "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": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "addedValue", - "type": "uint256" - } - ], - "name": "increaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "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": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b5061123c806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610b19565b60405180910390f35b6100e660048036038101906100e19190610bd4565b610308565b6040516100f39190610c2f565b60405180910390f35b61010461032b565b6040516101119190610c59565b60405180910390f35b610134600480360381019061012f9190610c74565b610335565b6040516101419190610c2f565b60405180910390f35b610152610364565b60405161015f9190610ce3565b60405180910390f35b610182600480360381019061017d9190610bd4565b61036d565b60405161018f9190610c2f565b60405180910390f35b6101b260048036038101906101ad9190610cfe565b6103a4565b6040516101bf9190610c59565b60405180910390f35b6101d06103ed565b6040516101dd9190610b19565b60405180910390f35b61020060048036038101906101fb9190610bd4565b61047f565b60405161020d9190610c2f565b60405180910390f35b610230600480360381019061022b9190610bd4565b6104f6565b60405161023d9190610c2f565b60405180910390f35b610260600480360381019061025b9190610d2b565b610519565b60405161026d9190610c59565b60405180910390f35b60606036805461028590610d9a565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190610d9a565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b6000806103136105a0565b90506103208185856105a8565b600191505092915050565b6000603554905090565b6000806103406105a0565b905061034d858285610771565b6103588585856107fd565b60019150509392505050565b60006012905090565b6000806103786105a0565b905061039981858561038a8589610519565b6103949190610dfa565b6105a8565b600191505092915050565b6000603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060603780546103fc90610d9a565b80601f016020809104026020016040519081016040528092919081815260200182805461042890610d9a565b80156104755780601f1061044a57610100808354040283529160200191610475565b820191906000526020600020905b81548152906001019060200180831161045857829003601f168201915b5050505050905090565b60008061048a6105a0565b905060006104988286610519565b9050838110156104dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d490610ea0565b60405180910390fd5b6104ea82868684036105a8565b60019250505092915050565b6000806105016105a0565b905061050e8185856107fd565b600191505092915050565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060e90610f32565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610686576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067d90610fc4565b60405180910390fd5b80603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107649190610c59565b60405180910390a3505050565b600061077d8484610519565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107f757818110156107e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e090611030565b60405180910390fd5b6107f684848484036105a8565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361086c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610863906110c2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d290611154565b60405180910390fd5b6108e6838383610a7f565b6000603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561096d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610964906111e6565b60405180910390fd5b818103603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a029190610dfa565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a669190610c59565b60405180910390a3610a79848484610a84565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610ac3578082015181840152602081019050610aa8565b60008484015250505050565b6000601f19601f8301169050919050565b6000610aeb82610a89565b610af58185610a94565b9350610b05818560208601610aa5565b610b0e81610acf565b840191505092915050565b60006020820190508181036000830152610b338184610ae0565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610b6b82610b40565b9050919050565b610b7b81610b60565b8114610b8657600080fd5b50565b600081359050610b9881610b72565b92915050565b6000819050919050565b610bb181610b9e565b8114610bbc57600080fd5b50565b600081359050610bce81610ba8565b92915050565b60008060408385031215610beb57610bea610b3b565b5b6000610bf985828601610b89565b9250506020610c0a85828601610bbf565b9150509250929050565b60008115159050919050565b610c2981610c14565b82525050565b6000602082019050610c446000830184610c20565b92915050565b610c5381610b9e565b82525050565b6000602082019050610c6e6000830184610c4a565b92915050565b600080600060608486031215610c8d57610c8c610b3b565b5b6000610c9b86828701610b89565b9350506020610cac86828701610b89565b9250506040610cbd86828701610bbf565b9150509250925092565b600060ff82169050919050565b610cdd81610cc7565b82525050565b6000602082019050610cf86000830184610cd4565b92915050565b600060208284031215610d1457610d13610b3b565b5b6000610d2284828501610b89565b91505092915050565b60008060408385031215610d4257610d41610b3b565b5b6000610d5085828601610b89565b9250506020610d6185828601610b89565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610db257607f821691505b602082108103610dc557610dc4610d6b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610e0582610b9e565b9150610e1083610b9e565b9250828201905080821115610e2857610e27610dcb565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000610e8a602583610a94565b9150610e9582610e2e565b604082019050919050565b60006020820190508181036000830152610eb981610e7d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000610f1c602483610a94565b9150610f2782610ec0565b604082019050919050565b60006020820190508181036000830152610f4b81610f0f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000610fae602283610a94565b9150610fb982610f52565b604082019050919050565b60006020820190508181036000830152610fdd81610fa1565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061101a601d83610a94565b915061102582610fe4565b602082019050919050565b600060208201905081810360008301526110498161100d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006110ac602583610a94565b91506110b782611050565b604082019050919050565b600060208201905081810360008301526110db8161109f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061113e602383610a94565b9150611149826110e2565b604082019050919050565b6000602082019050818103600083015261116d81611131565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006111d0602683610a94565b91506111db82611174565b604082019050919050565b600060208201905081810360008301526111ff816111c3565b905091905056fea2646970667358221220570c0e0d06a73dfa709fe533b769121e01b78900fa0907c7b1e500184231f38464736f6c63430008110033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610b19565b60405180910390f35b6100e660048036038101906100e19190610bd4565b610308565b6040516100f39190610c2f565b60405180910390f35b61010461032b565b6040516101119190610c59565b60405180910390f35b610134600480360381019061012f9190610c74565b610335565b6040516101419190610c2f565b60405180910390f35b610152610364565b60405161015f9190610ce3565b60405180910390f35b610182600480360381019061017d9190610bd4565b61036d565b60405161018f9190610c2f565b60405180910390f35b6101b260048036038101906101ad9190610cfe565b6103a4565b6040516101bf9190610c59565b60405180910390f35b6101d06103ed565b6040516101dd9190610b19565b60405180910390f35b61020060048036038101906101fb9190610bd4565b61047f565b60405161020d9190610c2f565b60405180910390f35b610230600480360381019061022b9190610bd4565b6104f6565b60405161023d9190610c2f565b60405180910390f35b610260600480360381019061025b9190610d2b565b610519565b60405161026d9190610c59565b60405180910390f35b60606036805461028590610d9a565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190610d9a565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b6000806103136105a0565b90506103208185856105a8565b600191505092915050565b6000603554905090565b6000806103406105a0565b905061034d858285610771565b6103588585856107fd565b60019150509392505050565b60006012905090565b6000806103786105a0565b905061039981858561038a8589610519565b6103949190610dfa565b6105a8565b600191505092915050565b6000603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060603780546103fc90610d9a565b80601f016020809104026020016040519081016040528092919081815260200182805461042890610d9a565b80156104755780601f1061044a57610100808354040283529160200191610475565b820191906000526020600020905b81548152906001019060200180831161045857829003601f168201915b5050505050905090565b60008061048a6105a0565b905060006104988286610519565b9050838110156104dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d490610ea0565b60405180910390fd5b6104ea82868684036105a8565b60019250505092915050565b6000806105016105a0565b905061050e8185856107fd565b600191505092915050565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060e90610f32565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610686576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067d90610fc4565b60405180910390fd5b80603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107649190610c59565b60405180910390a3505050565b600061077d8484610519565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107f757818110156107e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e090611030565b60405180910390fd5b6107f684848484036105a8565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361086c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610863906110c2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d290611154565b60405180910390fd5b6108e6838383610a7f565b6000603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561096d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610964906111e6565b60405180910390fd5b818103603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a029190610dfa565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a669190610c59565b60405180910390a3610a79848484610a84565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610ac3578082015181840152602081019050610aa8565b60008484015250505050565b6000601f19601f8301169050919050565b6000610aeb82610a89565b610af58185610a94565b9350610b05818560208601610aa5565b610b0e81610acf565b840191505092915050565b60006020820190508181036000830152610b338184610ae0565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610b6b82610b40565b9050919050565b610b7b81610b60565b8114610b8657600080fd5b50565b600081359050610b9881610b72565b92915050565b6000819050919050565b610bb181610b9e565b8114610bbc57600080fd5b50565b600081359050610bce81610ba8565b92915050565b60008060408385031215610beb57610bea610b3b565b5b6000610bf985828601610b89565b9250506020610c0a85828601610bbf565b9150509250929050565b60008115159050919050565b610c2981610c14565b82525050565b6000602082019050610c446000830184610c20565b92915050565b610c5381610b9e565b82525050565b6000602082019050610c6e6000830184610c4a565b92915050565b600080600060608486031215610c8d57610c8c610b3b565b5b6000610c9b86828701610b89565b9350506020610cac86828701610b89565b9250506040610cbd86828701610bbf565b9150509250925092565b600060ff82169050919050565b610cdd81610cc7565b82525050565b6000602082019050610cf86000830184610cd4565b92915050565b600060208284031215610d1457610d13610b3b565b5b6000610d2284828501610b89565b91505092915050565b60008060408385031215610d4257610d41610b3b565b5b6000610d5085828601610b89565b9250506020610d6185828601610b89565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610db257607f821691505b602082108103610dc557610dc4610d6b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610e0582610b9e565b9150610e1083610b9e565b9250828201905080821115610e2857610e27610dcb565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000610e8a602583610a94565b9150610e9582610e2e565b604082019050919050565b60006020820190508181036000830152610eb981610e7d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000610f1c602483610a94565b9150610f2782610ec0565b604082019050919050565b60006020820190508181036000830152610f4b81610f0f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000610fae602283610a94565b9150610fb982610f52565b604082019050919050565b60006020820190508181036000830152610fdd81610fa1565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061101a601d83610a94565b915061102582610fe4565b602082019050919050565b600060208201905081810360008301526110498161100d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006110ac602583610a94565b91506110b782611050565b604082019050919050565b600060208201905081810360008301526110db8161109f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061113e602383610a94565b9150611149826110e2565b604082019050919050565b6000602082019050818103600083015261116d81611131565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006111d0602683610a94565b91506111db82611174565b604082019050919050565b600060208201905081810360008301526111ff816111c3565b905091905056fea2646970667358221220570c0e0d06a73dfa709fe533b769121e01b78900fa0907c7b1e500184231f38464736f6c63430008110033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/ExternalAccountRegistry.json b/artifacts/ExternalAccountRegistry.json index 8caf5820..8da41c09 100644 --- a/artifacts/ExternalAccountRegistry.json +++ b/artifacts/ExternalAccountRegistry.json @@ -105,6 +105,57 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__9570ce98", + "type": "bytes8" + } + ], + "name": "c_9570ce98", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__9570ce98", + "type": "bytes8" + } + ], + "name": "c_false9570ce98", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__9570ce98", + "type": "bytes8" + } + ], + "name": "c_true9570ce98", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [ { @@ -238,8 +289,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50610fff806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806394000b021161005b57806394000b0214610227578063bb890d3f14610255578063d543c34a146102cf578063e278cfc6146102fd57610088565b806334d323a41461008d57806359b52ef8146101115780638a3133781461017f5780638ecc1365146101e3575b600080fd5b6100f9600480360360608110156100a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610341565b60405180821515815260200191505060405180910390f35b6101676004803603606081101561012757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919050505061040c565b60405180821515815260200191505060405180910390f35b6101cb6004803603604081101561019557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506104ab565b60405180821515815260200191505060405180910390f35b610225600480360360208110156101f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061053f565b005b6102536004803603602081101561023d57600080fd5b8101908080359060200190929190505050610860565b005b6102b76004803603604081101561026b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109f1565b60405180821515815260200191505060405180910390f35b6102fb600480360360208110156102e557600080fd5b8101908080359060200190929190505050610ab1565b005b61033f6004803603602081101561031357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cb2565b005b6000610403826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff16151515158152602001600182015481525050610eb190919063ffffffff16565b90509392505050565b60006104a2826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff16151515158152602001600182015481525050610eb190919063ffffffff16565b90509392505050565b60006105376000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008481526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff16151515158152602001600182015481525050610f00565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156105c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180610f14602d913960400191505060405180910390fd5b61067b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff16151515158152602001600182015481525050610f00565b156106d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180610f6e602d913960400191505060405180910390fd5b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff02191690831515021790555060008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055507f27e282f7712c5b4617277759c834b86d163dfc1aad25c8c3c5926a1c9e5644683382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b6108ea6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008381526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff16151515158152602001600182015481525050610f00565b61093f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180610fc7602c913960400191505060405180910390fd5b436000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000838152602001908152602001600020600101819055507f87dde712783ad4895642c7a875998317a71cf424a2444eb79545ce3795431ff93382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150565b6000610aa96000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff16151515158152602001600182015481525050610f00565b905092915050565b610b3b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008381526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff16151515158152602001600182015481525050610f00565b15610b91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180610f41602d913960400191505060405180910390fd5b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600083815260200190815260200160002060000160006101000a81548160ff02191690831515021790555060008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000838152602001908152602001600020600101819055507f4075b367eed0513a54aa39c287c66d6ae98e5df6f73ac087b26b8f89d05d1aa83382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150565b610d686000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff16151515158152602001600182015481525050610f00565b610dbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180610f9b602c913960400191505060405180910390fd5b436000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055507f1ce3cbbc43ee231e5b950332f2b0b9dd7d349291a3ee411ce5c5c7ed745661bb3382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b60008060009050836000015115610ef657600084602001511415610ed85760019050610ef5565b6000831415610eea5760019050610ef4565b8284602001511190505b5b5b8091505092915050565b6000610f0c8243610eb1565b905091905056fe45787465726e616c4163636f756e7452656769737472793a2063616e6e6f742061646420307830206f776e657245787465726e616c4163636f756e7452656769737472793a2070726f6f6620616c72656164792065786973747345787465726e616c4163636f756e7452656769737472793a206f776e657220616c72656164792065786973747345787465726e616c4163636f756e7452656769737472793a206f776e657220646f65736e277420657869737445787465726e616c4163636f756e7452656769737472793a2070726f6f6620646f65736e2774206578697374a164736f6c634300060c000a", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c806394000b021161005b57806394000b0214610227578063bb890d3f14610255578063d543c34a146102cf578063e278cfc6146102fd57610088565b806334d323a41461008d57806359b52ef8146101115780638a3133781461017f5780638ecc1365146101e3575b600080fd5b6100f9600480360360608110156100a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610341565b60405180821515815260200191505060405180910390f35b6101676004803603606081101561012757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919050505061040c565b60405180821515815260200191505060405180910390f35b6101cb6004803603604081101561019557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506104ab565b60405180821515815260200191505060405180910390f35b610225600480360360208110156101f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061053f565b005b6102536004803603602081101561023d57600080fd5b8101908080359060200190929190505050610860565b005b6102b76004803603604081101561026b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109f1565b60405180821515815260200191505060405180910390f35b6102fb600480360360208110156102e557600080fd5b8101908080359060200190929190505050610ab1565b005b61033f6004803603602081101561031357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cb2565b005b6000610403826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff16151515158152602001600182015481525050610eb190919063ffffffff16565b90509392505050565b60006104a2826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff16151515158152602001600182015481525050610eb190919063ffffffff16565b90509392505050565b60006105376000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008481526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff16151515158152602001600182015481525050610f00565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156105c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180610f14602d913960400191505060405180910390fd5b61067b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff16151515158152602001600182015481525050610f00565b156106d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180610f6e602d913960400191505060405180910390fd5b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff02191690831515021790555060008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055507f27e282f7712c5b4617277759c834b86d163dfc1aad25c8c3c5926a1c9e5644683382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b6108ea6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008381526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff16151515158152602001600182015481525050610f00565b61093f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180610fc7602c913960400191505060405180910390fd5b436000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000838152602001908152602001600020600101819055507f87dde712783ad4895642c7a875998317a71cf424a2444eb79545ce3795431ff93382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150565b6000610aa96000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff16151515158152602001600182015481525050610f00565b905092915050565b610b3b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008381526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff16151515158152602001600182015481525050610f00565b15610b91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180610f41602d913960400191505060405180910390fd5b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600083815260200190815260200160002060000160006101000a81548160ff02191690831515021790555060008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000838152602001908152602001600020600101819055507f4075b367eed0513a54aa39c287c66d6ae98e5df6f73ac087b26b8f89d05d1aa83382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150565b610d686000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff16151515158152602001600182015481525050610f00565b610dbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180610f9b602c913960400191505060405180910390fd5b436000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055507f1ce3cbbc43ee231e5b950332f2b0b9dd7d349291a3ee411ce5c5c7ed745661bb3382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b60008060009050836000015115610ef657600084602001511415610ed85760019050610ef5565b6000831415610eea5760019050610ef4565b8284602001511190505b5b5b8091505092915050565b6000610f0c8243610eb1565b905091905056fe45787465726e616c4163636f756e7452656769737472793a2063616e6e6f742061646420307830206f776e657245787465726e616c4163636f756e7452656769737472793a2070726f6f6620616c72656164792065786973747345787465726e616c4163636f756e7452656769737472793a206f776e657220616c72656164792065786973747345787465726e616c4163636f756e7452656769737472793a206f776e657220646f65736e277420657869737445787465726e616c4163636f756e7452656769737472793a2070726f6f6620646f65736e2774206578697374a164736f6c634300060c000a", + "bytecode": "0x608060405234801561001057600080fd5b506116e1806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80638a313378116100715780638a313378146102a75780638ecc13651461030b57806394000b021461034f578063bb890d3f1461037d578063d543c34a146103f7578063e278cfc614610425576100a9565b806313c5d3d6146100ae5780632dd5e43b146100f757806334d323a414610156578063521a6d99146101da57806359b52ef814610239575b600080fd5b6100f5600480360360208110156100c457600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610469565b005b61013e6004803603602081101561010d57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061046c565b60405180821515815260200191505060405180910390f35b6101c26004803603606081101561016c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610473565b60405180821515815260200191505060405180910390f35b610221600480360360208110156101f057600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061057a565b60405180821515815260200191505060405180910390f35b61028f6004803603606081101561024f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050610585565b60405180821515815260200191505060405180910390f35b6102f3600480360360408110156102bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610660565b60405180821515815260200191505060405180910390f35b61034d6004803603602081101561032157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610730565b005b61037b6004803603602081101561036557600080fd5b8101908080359060200190929190505050610b55565b005b6103df6004803603604081101561039357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d86565b60405180821515815260200191505060405180910390f35b6104236004803603602081101561040d57600080fd5b8101908080359060200190929190505050610e82565b005b6104676004803603602081101561043b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611137565b005b50565b6000919050565b60006104896712aee2a4234e213b60c01b610469565b61049d677f608f86d5ed81d060c01b610469565b6104b167851440c1af22630b60c01b610469565b610571826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff161515151581526020016001820154815250506113d690919063ffffffff16565b90509392505050565b600060019050919050565b600061059b67b677e5dcabcfe2f660c01b610469565b6105af67cd87ea7aff21347260c01b610469565b6105c3679b34ee18ce08f67a60c01b610469565b610657826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff161515151581526020016001820154815250506113d690919063ffffffff16565b90509392505050565b600061067667f4ac95286becf70260c01b610469565b61068a6786eaaf2ebb14eef160c01b610469565b61069e6727010fec581f679c60c01b610469565b6107286000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008481526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff161515151581526020016001820154815250506115a3565b905092915050565b61074467f277242d0eb3a10360c01b610469565b61075867349a5dbd9608c67260c01b610469565b61076c67d8778712b69c370460c01b610469565b6107806779f0022f3961a6a560c01b610469565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610806576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001806115f6602d913960400191505060405180910390fd5b61081a67aa9935183f39be2760c01b610469565b61082e6732a7a8ca89eb668b60c01b610469565b610842671c75b5ac280b25d560c01b610469565b61085667f5c43a38f8aaa7ce60c01b610469565b61090c6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff161515151581526020016001820154815250506115a3565b15610962576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180611650602d913960400191505060405180910390fd5b61097667cb4e32d30cb58f8860c01b610469565b61098a673d458051ca59d16c60c01b610469565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff021916908315150217905550610a38676c020d93a455334f60c01b610469565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550610ad3675e067bbb4241b70e60c01b610469565b610ae7670a1cefa15605c64860c01b610469565b7f27e282f7712c5b4617277759c834b86d163dfc1aad25c8c3c5926a1c9e5644683382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b610b696731dd5d8e4a5787f560c01b610469565b610b7d679152dbe667f7fffa60c01b610469565b610b9167f82f8a54bc2852fe60c01b610469565b610ba567f2a3fac993b2ca5b60c01b610469565b610c2f6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008381526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff161515151581526020016001820154815250506115a3565b610c84576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806116a9602c913960400191505060405180910390fd5b610c9867dd541600e96ab23d60c01b610469565b610cac6733f4e10bff763a2060c01b610469565b436000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600083815260200190815260200160002060010181905550610d1a673f4a3f61667843d860c01b610469565b610d2e67ee08162d1a1a76b560c01b610469565b7f87dde712783ad4895642c7a875998317a71cf424a2444eb79545ce3795431ff93382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150565b6000610d9c67cf11ce1aab4e2dd660c01b610469565b610db067150bddeb94658af360c01b610469565b610dc467bfbdaa54aa93969660c01b610469565b610e7a6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff161515151581526020016001820154815250506115a3565b905092915050565b610e96673452968867b7db5e60c01b610469565b610eaa676cf088855730131a60c01b610469565b610ebe67cc56d769a632b81660c01b610469565b610ed2674395cfaf0f7bc35a60c01b610469565b610f5c6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008381526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff161515151581526020016001820154815250506115a3565b15610fb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180611623602d913960400191505060405180910390fd5b610fc6676295cb0ac9bf889960c01b610469565b610fda67585cbcf2bfe4569f60c01b610469565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600083815260200190815260200160002060000160006101000a81548160ff02191690831515021790555061105c6713473460f014e9a660c01b610469565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000838152602001908152602001600020600101819055506110cb677b5d22bf58f1654760c01b610469565b6110df6716be8639b573c58b60c01b610469565b7f4075b367eed0513a54aa39c287c66d6ae98e5df6f73ac087b26b8f89d05d1aa83382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150565b61114b67203984577370df2460c01b610469565b61115f67cc5e4453e3c9496860c01b610469565b6111736793a5b9a4a7fb0a9460c01b610469565b6111876772d6efaa0caace9160c01b610469565b61123d6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff161515151581526020016001820154815250506115a3565b611292576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061167d602c913960400191505060405180910390fd5b6112a667b2cd93d69430b42360c01b610469565b6112ba6711125f79ef0d0bb160c01b610469565b436000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555061135467b7eaa9480c8beab960c01b610469565b61136867ca228bd94735443360c01b610469565b7f1ce3cbbc43ee231e5b950332f2b0b9dd7d349291a3ee411ce5c5c7ed745661bb3382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b60006113ec679c9d1daabf83176160c01b6115f2565b611400674a60477fa1015d9d60c01b6115f2565b611414671d2dfd1cbc37881260c01b6115f2565b600061142a675c84658542d4247860c01b6115f2565b61143e676c38c63a8395bd4160c01b6115f2565b83600001511561155c5761145c673a129e7e3fa8299860c01b6115f2565b61147067d5d911350233c4aa60c01b6115f2565b6114846788aca451346a904360c01b6115f2565b6000846020015114156114c2576114a5671cab9521da0eae6e60c01b6115f2565b6114b9679a431a7af70a318b60c01b6115f2565b60019050611557565b6114d66728a02509a30cdf2f60c01b6115f2565b6114ea67a315ca16c55cdf1660c01b6115f2565b60008314156115245761150767e5e2fd7cbec5211b60c01b6115f2565b61151b676bc9eb4a60fdc77060c01b6115f2565b60019050611556565b611538670dbcda2f621ef14860c01b6115f2565b61154c67cbf2e8a46e9eb31e60c01b6115f2565b8284602001511190505b5b611571565b611570679312107b7e60296d60c01b6115f2565b5b611585676d1c114b386646c760c01b6115f2565b61159967b26d3c1cf974c30e60c01b6115f2565b8091505092915050565b60006115b9679cab3b0c44b8044060c01b6115f2565b6115cd67ca9af921644e3db460c01b6115f2565b6115e167fb2347240336566c60c01b6115f2565b6115eb82436113d6565b9050919050565b5056fe45787465726e616c4163636f756e7452656769737472793a2063616e6e6f742061646420307830206f776e657245787465726e616c4163636f756e7452656769737472793a2070726f6f6620616c72656164792065786973747345787465726e616c4163636f756e7452656769737472793a206f776e657220616c72656164792065786973747345787465726e616c4163636f756e7452656769737472793a206f776e657220646f65736e277420657869737445787465726e616c4163636f756e7452656769737472793a2070726f6f6620646f65736e2774206578697374a164736f6c634300060c000a", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80638a313378116100715780638a313378146102a75780638ecc13651461030b57806394000b021461034f578063bb890d3f1461037d578063d543c34a146103f7578063e278cfc614610425576100a9565b806313c5d3d6146100ae5780632dd5e43b146100f757806334d323a414610156578063521a6d99146101da57806359b52ef814610239575b600080fd5b6100f5600480360360208110156100c457600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610469565b005b61013e6004803603602081101561010d57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061046c565b60405180821515815260200191505060405180910390f35b6101c26004803603606081101561016c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610473565b60405180821515815260200191505060405180910390f35b610221600480360360208110156101f057600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061057a565b60405180821515815260200191505060405180910390f35b61028f6004803603606081101561024f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050610585565b60405180821515815260200191505060405180910390f35b6102f3600480360360408110156102bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610660565b60405180821515815260200191505060405180910390f35b61034d6004803603602081101561032157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610730565b005b61037b6004803603602081101561036557600080fd5b8101908080359060200190929190505050610b55565b005b6103df6004803603604081101561039357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d86565b60405180821515815260200191505060405180910390f35b6104236004803603602081101561040d57600080fd5b8101908080359060200190929190505050610e82565b005b6104676004803603602081101561043b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611137565b005b50565b6000919050565b60006104896712aee2a4234e213b60c01b610469565b61049d677f608f86d5ed81d060c01b610469565b6104b167851440c1af22630b60c01b610469565b610571826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff161515151581526020016001820154815250506113d690919063ffffffff16565b90509392505050565b600060019050919050565b600061059b67b677e5dcabcfe2f660c01b610469565b6105af67cd87ea7aff21347260c01b610469565b6105c3679b34ee18ce08f67a60c01b610469565b610657826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff161515151581526020016001820154815250506113d690919063ffffffff16565b90509392505050565b600061067667f4ac95286becf70260c01b610469565b61068a6786eaaf2ebb14eef160c01b610469565b61069e6727010fec581f679c60c01b610469565b6107286000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008481526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff161515151581526020016001820154815250506115a3565b905092915050565b61074467f277242d0eb3a10360c01b610469565b61075867349a5dbd9608c67260c01b610469565b61076c67d8778712b69c370460c01b610469565b6107806779f0022f3961a6a560c01b610469565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610806576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001806115f6602d913960400191505060405180910390fd5b61081a67aa9935183f39be2760c01b610469565b61082e6732a7a8ca89eb668b60c01b610469565b610842671c75b5ac280b25d560c01b610469565b61085667f5c43a38f8aaa7ce60c01b610469565b61090c6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff161515151581526020016001820154815250506115a3565b15610962576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180611650602d913960400191505060405180910390fd5b61097667cb4e32d30cb58f8860c01b610469565b61098a673d458051ca59d16c60c01b610469565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff021916908315150217905550610a38676c020d93a455334f60c01b610469565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550610ad3675e067bbb4241b70e60c01b610469565b610ae7670a1cefa15605c64860c01b610469565b7f27e282f7712c5b4617277759c834b86d163dfc1aad25c8c3c5926a1c9e5644683382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b610b696731dd5d8e4a5787f560c01b610469565b610b7d679152dbe667f7fffa60c01b610469565b610b9167f82f8a54bc2852fe60c01b610469565b610ba567f2a3fac993b2ca5b60c01b610469565b610c2f6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008381526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff161515151581526020016001820154815250506115a3565b610c84576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806116a9602c913960400191505060405180910390fd5b610c9867dd541600e96ab23d60c01b610469565b610cac6733f4e10bff763a2060c01b610469565b436000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600083815260200190815260200160002060010181905550610d1a673f4a3f61667843d860c01b610469565b610d2e67ee08162d1a1a76b560c01b610469565b7f87dde712783ad4895642c7a875998317a71cf424a2444eb79545ce3795431ff93382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150565b6000610d9c67cf11ce1aab4e2dd660c01b610469565b610db067150bddeb94658af360c01b610469565b610dc467bfbdaa54aa93969660c01b610469565b610e7a6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff161515151581526020016001820154815250506115a3565b905092915050565b610e96673452968867b7db5e60c01b610469565b610eaa676cf088855730131a60c01b610469565b610ebe67cc56d769a632b81660c01b610469565b610ed2674395cfaf0f7bc35a60c01b610469565b610f5c6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008381526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff161515151581526020016001820154815250506115a3565b15610fb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180611623602d913960400191505060405180910390fd5b610fc6676295cb0ac9bf889960c01b610469565b610fda67585cbcf2bfe4569f60c01b610469565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600083815260200190815260200160002060000160006101000a81548160ff02191690831515021790555061105c6713473460f014e9a660c01b610469565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000838152602001908152602001600020600101819055506110cb677b5d22bf58f1654760c01b610469565b6110df6716be8639b573c58b60c01b610469565b7f4075b367eed0513a54aa39c287c66d6ae98e5df6f73ac087b26b8f89d05d1aa83382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150565b61114b67203984577370df2460c01b610469565b61115f67cc5e4453e3c9496860c01b610469565b6111736793a5b9a4a7fb0a9460c01b610469565b6111876772d6efaa0caace9160c01b610469565b61123d6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff161515151581526020016001820154815250506115a3565b611292576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061167d602c913960400191505060405180910390fd5b6112a667b2cd93d69430b42360c01b610469565b6112ba6711125f79ef0d0bb160c01b610469565b436000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555061135467b7eaa9480c8beab960c01b610469565b61136867ca228bd94735443360c01b610469565b7f1ce3cbbc43ee231e5b950332f2b0b9dd7d349291a3ee411ce5c5c7ed745661bb3382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b60006113ec679c9d1daabf83176160c01b6115f2565b611400674a60477fa1015d9d60c01b6115f2565b611414671d2dfd1cbc37881260c01b6115f2565b600061142a675c84658542d4247860c01b6115f2565b61143e676c38c63a8395bd4160c01b6115f2565b83600001511561155c5761145c673a129e7e3fa8299860c01b6115f2565b61147067d5d911350233c4aa60c01b6115f2565b6114846788aca451346a904360c01b6115f2565b6000846020015114156114c2576114a5671cab9521da0eae6e60c01b6115f2565b6114b9679a431a7af70a318b60c01b6115f2565b60019050611557565b6114d66728a02509a30cdf2f60c01b6115f2565b6114ea67a315ca16c55cdf1660c01b6115f2565b60008314156115245761150767e5e2fd7cbec5211b60c01b6115f2565b61151b676bc9eb4a60fdc77060c01b6115f2565b60019050611556565b611538670dbcda2f621ef14860c01b6115f2565b61154c67cbf2e8a46e9eb31e60c01b6115f2565b8284602001511190505b5b611571565b611570679312107b7e60296d60c01b6115f2565b5b611585676d1c114b386646c760c01b6115f2565b61159967b26d3c1cf974c30e60c01b6115f2565b8091505092915050565b60006115b9679cab3b0c44b8044060c01b6115f2565b6115cd67ca9af921644e3db460c01b6115f2565b6115e167fb2347240336566c60c01b6115f2565b6115eb82436113d6565b9050919050565b5056fe45787465726e616c4163636f756e7452656769737472793a2063616e6e6f742061646420307830206f776e657245787465726e616c4163636f756e7452656769737472793a2070726f6f6620616c72656164792065786973747345787465726e616c4163636f756e7452656769737472793a206f776e657220616c72656164792065786973747345787465726e616c4163636f756e7452656769737472793a206f776e657220646f65736e277420657869737445787465726e616c4163636f756e7452656769737472793a2070726f6f6620646f65736e2774206578697374a164736f6c634300060c000a", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/Gateway.json b/artifacts/Gateway.json index c2e3fea5..95bcbd9a 100644 --- a/artifacts/Gateway.json +++ b/artifacts/Gateway.json @@ -46,6 +46,159 @@ "name": "Initialized", "type": "event" }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__098c0657", + "type": "bytes8" + } + ], + "name": "c_098c0657", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__4b81551d", + "type": "bytes8" + } + ], + "name": "c_4b81551d", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__52615ca8", + "type": "bytes8" + } + ], + "name": "c_52615ca8", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__098c0657", + "type": "bytes8" + } + ], + "name": "c_false098c0657", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__4b81551d", + "type": "bytes8" + } + ], + "name": "c_false4b81551d", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__52615ca8", + "type": "bytes8" + } + ], + "name": "c_false52615ca8", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__098c0657", + "type": "bytes8" + } + ], + "name": "c_true098c0657", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__4b81551d", + "type": "bytes8" + } + ], + "name": "c_true4b81551d", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__52615ca8", + "type": "bytes8" + } + ], + "name": "c_true52615ca8", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [], "name": "chainId", @@ -348,8 +501,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50326000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600046905080600181905550506123f58061006d6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063867519c61161008c5780639f255626116100665780639f255626146101fe578063b5021b161461021a578063d2c83b9a14610236578063f92c5f7c14610254576100cf565b8063867519c6146101a657806387d31313146101c25780639a8a0592146101e0576100cf565b8063231badaf146100d4578063392e53cd146100f0578063485cc9551461010e5780635afaa7bb1461012a57806373e5a13f1461014657806376db2b4c14610176575b600080fd5b6100ee60048036038101906100e99190611438565b610284565b005b6100f861037f565b6040516101059190611e71565b60405180910390f35b610128600480360381019061012391906115e0565b6103d5565b005b610144600480360381019061013f9190611563565b610561565b005b610160600480360381019061015b919061165d565b610739565b60405161016d9190611e8c565b60405180910390f35b610190600480360381019061018b919061161c565b61075e565b60405161019d9190611e8c565b60405180910390f35b6101c060048036038101906101bb91906113b9565b610788565b005b6101ca610799565b6040516101d79190611f07565b60405180910390f35b6101e86107bf565b6040516101f591906120a2565b60405180910390f35b610218600480360381019061021391906114f7565b6107c5565b005b610234600480360381019061022f9190611438565b6107d5565b005b61023e6108d1565b60405161024b9190611eec565b60405180910390f35b61026e60048036038101906102699190611390565b6108f7565b60405161027b91906120a2565b60405180910390f35b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548411610305576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102fc90611f82565b60405180910390fd5b60006103258261031788888888610953565b6109b690919063ffffffff16565b905084600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061037786828686610a71565b505050505050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614610463576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045a90611f42565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e6326040516105559190611def565b60405180910390a15050565b60008251116105a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059c90611fc2565b60405180910390fd5b600080600090505b83518110156106f35760003073ffffffffffffffffffffffffffffffffffffffff168583815181106105db57fe5b60200260200101516040516105f09190611d0b565b6000604051808303816000865af19150503d806000811461062d576040519150601f19603f3d011682016040523d82523d6000602084013e610632565b606091505b505090508315610681578061067c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067390611f62565b60405180910390fd5b610697565b80801561068c575082155b1561069657600192505b5b7f361c14722cc344132c73396113f7164232448b09c544a149f09048648b43d872338684815181106106c557fe5b6020026020010151836040516106dd93929190611e0a565b60405180910390a15080806001019150506105ad565b5080610734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072b90612082565b60405180910390fd5b505050565b60006107578260000151836020015184604001518560600151610953565b9050919050565b600061078182600001518360200151846040015185606001518660800151610edc565b9050919050565b61079483338484610a71565b505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b6107d133338484610a71565b5050565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548411610856576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084d90611f82565b60405180910390fd5b600061087782610869888888883a610edc565b6109b690919063ffffffff16565b905084600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108c986828686610a71565b505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061094c6001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f4290919063ffffffff16565b9050919050565b60006109ac7f6848d0622081db2451400280dead7a739a080cb93852607c381af11e289769b286868661098587610f97565b6040516020016109989493929190611c6e565b604051602081830303815290604052610ffa565b9050949350505050565b60008060009050604183511415610a675760008060006020860151925060408601519150606086015160001a9050601b8160ff1610156109f757601b810190505b601b8160ff161480610a0c5750601c8160ff16145b15610a635760018782858560405160008152602001604052604051610a349493929190611ea7565b6020604051602081039080840390855afa158015610a56573d6000803e3d6000fd5b5050506020604051035193505b5050505b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610ae1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad890611fa2565b60405180910390fd5b6000825111610b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1c90612062565b60405180910390fd5b8151815114610b69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6090612002565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610d3d57600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb890d3f85856040518363ffffffff1660e01b8152600401610bf9929190611e48565b60206040518083038186803b158015610c1157600080fd5b505afa158015610c25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4991906115b7565b80610cfd5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb890d3f85856040518363ffffffff1660e01b8152600401610cac929190611e48565b60206040518083038186803b158015610cc457600080fd5b505afa158015610cd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfc91906115b7565b5b610d3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3390611fe2565b60405180910390fd5b5b600080600090505b8251811015610ed457600073ffffffffffffffffffffffffffffffffffffffff16848281518110610d7257fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff161415610dd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc890611f22565b60405180910390fd5b838181518110610ddd57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16838281518110610e0757fe5b60200260200101518787604051602001610e2393929190611d22565b604051602081830303815290604052604051610e3f9190611d0b565b6000604051808303816000865af19150503d8060008114610e7c576040519150601f19603f3d011682016040523d82523d6000602084013e610e81565b606091505b50508092505081610ec7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebe90612022565b60405180910390fd5b8080600101915050610d45565b505050505050565b6000610f377f6f4e1b2b1e5e49f4269e19e16e67a00cb0a796d96d30be3e4b540d3732e8bcad878787610f0e88610f97565b87604051602001610f23959493929190611cb4565b604051602081830303815290604052610ffa565b905095945050505050565b600080828401905083811015610f8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8490612042565b60405180910390fd5b8091505092915050565b60608060008351905060005b81811015610fef5782858281518110610fb857fe5b6020026020010151604051602001610fd1929190611d5b565b60405160208183030381529060405292508080600101915050610fa3565b508192505050919050565b60006110336001543085856040516020016110189493929190611da5565b6040516020818303038152906040528051906020012061103b565b905092915050565b60008160405160200161104e9190611d7f565b604051602081830303815290604052805190602001209050919050565b60008135905061107a81612375565b92915050565b600082601f83011261109157600080fd5b81356110a461109f826120ea565b6120bd565b915081818352602084019350602081019050838560208402820111156110c957600080fd5b60005b838110156110f957816110df888261106b565b8452602084019350602083019250506001810190506110cc565b5050505092915050565b600082601f83011261111457600080fd5b813561112761112282612112565b6120bd565b9150818183526020840193506020810190508360005b8381101561116d578135860161115388826111a1565b84526020840193506020830192505060018101905061113d565b5050505092915050565b6000813590506111868161238c565b92915050565b60008151905061119b8161238c565b92915050565b600082601f8301126111b257600080fd5b81356111c56111c08261213a565b6120bd565b915080825260208301602083018583830111156111e157600080fd5b6111ec8382846122dd565b50505092915050565b600081359050611204816123a3565b92915050565b600081359050611219816123ba565b92915050565b600060a0828403121561123157600080fd5b61123b60a06120bd565b9050600061124b8482850161106b565b600083015250602061125f8482850161137b565b602083015250604082013567ffffffffffffffff81111561127f57600080fd5b61128b84828501611080565b604083015250606082013567ffffffffffffffff8111156112ab57600080fd5b6112b784828501611103565b60608301525060806112cb8482850161137b565b60808301525092915050565b6000608082840312156112e957600080fd5b6112f360806120bd565b905060006113038482850161106b565b60008301525060206113178482850161137b565b602083015250604082013567ffffffffffffffff81111561133757600080fd5b61134384828501611080565b604083015250606082013567ffffffffffffffff81111561136357600080fd5b61136f84828501611103565b60608301525092915050565b60008135905061138a816123d1565b92915050565b6000602082840312156113a257600080fd5b60006113b08482850161106b565b91505092915050565b6000806000606084860312156113ce57600080fd5b60006113dc8682870161106b565b935050602084013567ffffffffffffffff8111156113f957600080fd5b61140586828701611080565b925050604084013567ffffffffffffffff81111561142257600080fd5b61142e86828701611103565b9150509250925092565b600080600080600060a0868803121561145057600080fd5b600061145e8882890161106b565b955050602061146f8882890161137b565b945050604086013567ffffffffffffffff81111561148c57600080fd5b61149888828901611080565b935050606086013567ffffffffffffffff8111156114b557600080fd5b6114c188828901611103565b925050608086013567ffffffffffffffff8111156114de57600080fd5b6114ea888289016111a1565b9150509295509295909350565b6000806040838503121561150a57600080fd5b600083013567ffffffffffffffff81111561152457600080fd5b61153085828601611080565b925050602083013567ffffffffffffffff81111561154d57600080fd5b61155985828601611103565b9150509250929050565b6000806040838503121561157657600080fd5b600083013567ffffffffffffffff81111561159057600080fd5b61159c85828601611103565b92505060206115ad85828601611177565b9150509250929050565b6000602082840312156115c957600080fd5b60006115d78482850161118c565b91505092915050565b600080604083850312156115f357600080fd5b6000611601858286016111f5565b92505060206116128582860161120a565b9150509250929050565b60006020828403121561162e57600080fd5b600082013567ffffffffffffffff81111561164857600080fd5b6116548482850161121f565b91505092915050565b60006020828403121561166f57600080fd5b600082013567ffffffffffffffff81111561168957600080fd5b611695848285016112d7565b91505092915050565b60006116aa83836116d4565b60208301905092915050565b6116bf8161225f565b82525050565b6116ce816121dc565b82525050565b6116dd816121dc565b82525050565b6116f46116ef826121dc565b61231f565b82525050565b600061170582612176565b61170f8185612199565b935061171a83612166565b8060005b8381101561174b578151611732888261169e565b975061173d8361218c565b92505060018101905061171e565b5085935050505092915050565b611761816121ee565b82525050565b611770816121fa565b82525050565b611787611782826121fa565b612331565b82525050565b600061179882612181565b6117a281856121a4565b93506117b28185602086016122ec565b6117bb81612357565b840191505092915050565b60006117d182612181565b6117db81856121b5565b93506117eb8185602086016122ec565b80840191505092915050565b61180081612271565b82525050565b61180f81612295565b82525050565b6000611822601b836121c0565b91507f476174657761793a2063616e6e6f742073656e6420746f2030783000000000006000830152602082019050919050565b6000611862601c836121d1565b91507f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000830152601c82019050919050565b60006118a2602f836121c0565b91507f496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742060008301527f74686520696e697469616c697a657200000000000000000000000000000000006020830152604082019050919050565b60006119086017836121c0565b91507f476174657761793a2062617463682072657665727465640000000000000000006000830152602082019050919050565b60006119486032836121c0565b91507f476174657761793a206e6f6e6365206973206c6f776572207468616e2063757260008301527f72656e74206163636f756e74206e6f6e636500000000000000000000000000006020830152604082019050919050565b60006119ae6025836121c0565b91507f476174657761793a2063616e6e6f742073656e642066726f6d2030783020616360008301527f636f756e740000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611a146026836121c0565b91507f476174657761793a2063616e6e6f742064656c656761746520656d707479206260008301527f61746368657300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611a7a6028836121c0565b91507f476174657761793a2073656e646572206973206e6f7420746865206163636f7560008301527f6e74206f776e65720000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611ae06016836121c0565b91507f476174657761793a20696e76616c6964206261746368000000000000000000006000830152602082019050919050565b6000611b206023836121c0565b91507f476174657761793a206261746368207472616e73616374696f6e20726576657260008301527f74656400000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611b86601e836121c0565b91507f536166654d6174684c69623a206164646974696f6e206f766572666c6f7700006000830152602082019050919050565b6000611bc66020836121c0565b91507f476174657761793a2063616e6e6f742073656e6420656d7074792062617463686000830152602082019050919050565b6000611c06601d836121c0565b91507f476174657761793a20616c6c20626174636865732072657665727465640000006000830152602082019050919050565b611c4281612248565b82525050565b611c59611c5482612248565b61234d565b82525050565b611c6881612252565b82525050565b6000611c7a82876116e3565b601482019150611c8a8286611c48565b602082019150611c9a82856116fa565b9150611ca682846117c6565b915081905095945050505050565b6000611cc082886116e3565b601482019150611cd08287611c48565b602082019150611ce082866116fa565b9150611cec82856117c6565b9150611cf88284611c48565b6020820191508190509695505050505050565b6000611d1782846117c6565b915081905092915050565b6000611d2e82866117c6565b9150611d3a82856116e3565b601482019150611d4a82846116e3565b601482019150819050949350505050565b6000611d6782856117c6565b9150611d7382846117c6565b91508190509392505050565b6000611d8a82611855565b9150611d968284611776565b60208201915081905092915050565b6000611db18287611c48565b602082019150611dc182866116e3565b601482019150611dd18285611776565b602082019150611de182846117c6565b915081905095945050505050565b6000602082019050611e0460008301846116b6565b92915050565b6000606082019050611e1f60008301866116b6565b8181036020830152611e31818561178d565b9050611e406040830184611758565b949350505050565b6000604082019050611e5d60008301856116c5565b611e6a60208301846116c5565b9392505050565b6000602082019050611e866000830184611758565b92915050565b6000602082019050611ea16000830184611767565b92915050565b6000608082019050611ebc6000830187611767565b611ec96020830186611c5f565b611ed66040830185611767565b611ee36060830184611767565b95945050505050565b6000602082019050611f0160008301846117f7565b92915050565b6000602082019050611f1c6000830184611806565b92915050565b60006020820190508181036000830152611f3b81611815565b9050919050565b60006020820190508181036000830152611f5b81611895565b9050919050565b60006020820190508181036000830152611f7b816118fb565b9050919050565b60006020820190508181036000830152611f9b8161193b565b9050919050565b60006020820190508181036000830152611fbb816119a1565b9050919050565b60006020820190508181036000830152611fdb81611a07565b9050919050565b60006020820190508181036000830152611ffb81611a6d565b9050919050565b6000602082019050818103600083015261201b81611ad3565b9050919050565b6000602082019050818103600083015261203b81611b13565b9050919050565b6000602082019050818103600083015261205b81611b79565b9050919050565b6000602082019050818103600083015261207b81611bb9565b9050919050565b6000602082019050818103600083015261209b81611bf9565b9050919050565b60006020820190506120b76000830184611c39565b92915050565b6000604051905081810181811067ffffffffffffffff821117156120e057600080fd5b8060405250919050565b600067ffffffffffffffff82111561210157600080fd5b602082029050602081019050919050565b600067ffffffffffffffff82111561212957600080fd5b602082029050602081019050919050565b600067ffffffffffffffff82111561215157600080fd5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b60006121e782612228565b9050919050565b60008115159050919050565b6000819050919050565b600061220f826121dc565b9050919050565b6000612221826121dc565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061226a826122b9565b9050919050565b600061227c82612283565b9050919050565b600061228e82612228565b9050919050565b60006122a0826122a7565b9050919050565b60006122b282612228565b9050919050565b60006122c4826122cb565b9050919050565b60006122d682612228565b9050919050565b82818337600083830152505050565b60005b8381101561230a5780820151818401526020810190506122ef565b83811115612319576000848401525b50505050565b600061232a8261233b565b9050919050565b6000819050919050565b600061234682612368565b9050919050565b6000819050919050565b6000601f19601f8301169050919050565b60008160601b9050919050565b61237e816121dc565b811461238957600080fd5b50565b612395816121ee565b81146123a057600080fd5b50565b6123ac81612204565b81146123b757600080fd5b50565b6123c381612216565b81146123ce57600080fd5b50565b6123da81612248565b81146123e557600080fd5b5056fea164736f6c634300060c000a", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063867519c61161008c5780639f255626116100665780639f255626146101fe578063b5021b161461021a578063d2c83b9a14610236578063f92c5f7c14610254576100cf565b8063867519c6146101a657806387d31313146101c25780639a8a0592146101e0576100cf565b8063231badaf146100d4578063392e53cd146100f0578063485cc9551461010e5780635afaa7bb1461012a57806373e5a13f1461014657806376db2b4c14610176575b600080fd5b6100ee60048036038101906100e99190611438565b610284565b005b6100f861037f565b6040516101059190611e71565b60405180910390f35b610128600480360381019061012391906115e0565b6103d5565b005b610144600480360381019061013f9190611563565b610561565b005b610160600480360381019061015b919061165d565b610739565b60405161016d9190611e8c565b60405180910390f35b610190600480360381019061018b919061161c565b61075e565b60405161019d9190611e8c565b60405180910390f35b6101c060048036038101906101bb91906113b9565b610788565b005b6101ca610799565b6040516101d79190611f07565b60405180910390f35b6101e86107bf565b6040516101f591906120a2565b60405180910390f35b610218600480360381019061021391906114f7565b6107c5565b005b610234600480360381019061022f9190611438565b6107d5565b005b61023e6108d1565b60405161024b9190611eec565b60405180910390f35b61026e60048036038101906102699190611390565b6108f7565b60405161027b91906120a2565b60405180910390f35b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548411610305576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102fc90611f82565b60405180910390fd5b60006103258261031788888888610953565b6109b690919063ffffffff16565b905084600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061037786828686610a71565b505050505050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614610463576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045a90611f42565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e6326040516105559190611def565b60405180910390a15050565b60008251116105a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059c90611fc2565b60405180910390fd5b600080600090505b83518110156106f35760003073ffffffffffffffffffffffffffffffffffffffff168583815181106105db57fe5b60200260200101516040516105f09190611d0b565b6000604051808303816000865af19150503d806000811461062d576040519150601f19603f3d011682016040523d82523d6000602084013e610632565b606091505b505090508315610681578061067c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067390611f62565b60405180910390fd5b610697565b80801561068c575082155b1561069657600192505b5b7f361c14722cc344132c73396113f7164232448b09c544a149f09048648b43d872338684815181106106c557fe5b6020026020010151836040516106dd93929190611e0a565b60405180910390a15080806001019150506105ad565b5080610734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072b90612082565b60405180910390fd5b505050565b60006107578260000151836020015184604001518560600151610953565b9050919050565b600061078182600001518360200151846040015185606001518660800151610edc565b9050919050565b61079483338484610a71565b505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b6107d133338484610a71565b5050565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548411610856576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084d90611f82565b60405180910390fd5b600061087782610869888888883a610edc565b6109b690919063ffffffff16565b905084600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108c986828686610a71565b505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061094c6001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f4290919063ffffffff16565b9050919050565b60006109ac7f6848d0622081db2451400280dead7a739a080cb93852607c381af11e289769b286868661098587610f97565b6040516020016109989493929190611c6e565b604051602081830303815290604052610ffa565b9050949350505050565b60008060009050604183511415610a675760008060006020860151925060408601519150606086015160001a9050601b8160ff1610156109f757601b810190505b601b8160ff161480610a0c5750601c8160ff16145b15610a635760018782858560405160008152602001604052604051610a349493929190611ea7565b6020604051602081039080840390855afa158015610a56573d6000803e3d6000fd5b5050506020604051035193505b5050505b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610ae1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad890611fa2565b60405180910390fd5b6000825111610b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1c90612062565b60405180910390fd5b8151815114610b69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6090612002565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610d3d57600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb890d3f85856040518363ffffffff1660e01b8152600401610bf9929190611e48565b60206040518083038186803b158015610c1157600080fd5b505afa158015610c25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4991906115b7565b80610cfd5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb890d3f85856040518363ffffffff1660e01b8152600401610cac929190611e48565b60206040518083038186803b158015610cc457600080fd5b505afa158015610cd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfc91906115b7565b5b610d3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3390611fe2565b60405180910390fd5b5b600080600090505b8251811015610ed457600073ffffffffffffffffffffffffffffffffffffffff16848281518110610d7257fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff161415610dd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc890611f22565b60405180910390fd5b838181518110610ddd57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16838281518110610e0757fe5b60200260200101518787604051602001610e2393929190611d22565b604051602081830303815290604052604051610e3f9190611d0b565b6000604051808303816000865af19150503d8060008114610e7c576040519150601f19603f3d011682016040523d82523d6000602084013e610e81565b606091505b50508092505081610ec7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebe90612022565b60405180910390fd5b8080600101915050610d45565b505050505050565b6000610f377f6f4e1b2b1e5e49f4269e19e16e67a00cb0a796d96d30be3e4b540d3732e8bcad878787610f0e88610f97565b87604051602001610f23959493929190611cb4565b604051602081830303815290604052610ffa565b905095945050505050565b600080828401905083811015610f8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8490612042565b60405180910390fd5b8091505092915050565b60608060008351905060005b81811015610fef5782858281518110610fb857fe5b6020026020010151604051602001610fd1929190611d5b565b60405160208183030381529060405292508080600101915050610fa3565b508192505050919050565b60006110336001543085856040516020016110189493929190611da5565b6040516020818303038152906040528051906020012061103b565b905092915050565b60008160405160200161104e9190611d7f565b604051602081830303815290604052805190602001209050919050565b60008135905061107a81612375565b92915050565b600082601f83011261109157600080fd5b81356110a461109f826120ea565b6120bd565b915081818352602084019350602081019050838560208402820111156110c957600080fd5b60005b838110156110f957816110df888261106b565b8452602084019350602083019250506001810190506110cc565b5050505092915050565b600082601f83011261111457600080fd5b813561112761112282612112565b6120bd565b9150818183526020840193506020810190508360005b8381101561116d578135860161115388826111a1565b84526020840193506020830192505060018101905061113d565b5050505092915050565b6000813590506111868161238c565b92915050565b60008151905061119b8161238c565b92915050565b600082601f8301126111b257600080fd5b81356111c56111c08261213a565b6120bd565b915080825260208301602083018583830111156111e157600080fd5b6111ec8382846122dd565b50505092915050565b600081359050611204816123a3565b92915050565b600081359050611219816123ba565b92915050565b600060a0828403121561123157600080fd5b61123b60a06120bd565b9050600061124b8482850161106b565b600083015250602061125f8482850161137b565b602083015250604082013567ffffffffffffffff81111561127f57600080fd5b61128b84828501611080565b604083015250606082013567ffffffffffffffff8111156112ab57600080fd5b6112b784828501611103565b60608301525060806112cb8482850161137b565b60808301525092915050565b6000608082840312156112e957600080fd5b6112f360806120bd565b905060006113038482850161106b565b60008301525060206113178482850161137b565b602083015250604082013567ffffffffffffffff81111561133757600080fd5b61134384828501611080565b604083015250606082013567ffffffffffffffff81111561136357600080fd5b61136f84828501611103565b60608301525092915050565b60008135905061138a816123d1565b92915050565b6000602082840312156113a257600080fd5b60006113b08482850161106b565b91505092915050565b6000806000606084860312156113ce57600080fd5b60006113dc8682870161106b565b935050602084013567ffffffffffffffff8111156113f957600080fd5b61140586828701611080565b925050604084013567ffffffffffffffff81111561142257600080fd5b61142e86828701611103565b9150509250925092565b600080600080600060a0868803121561145057600080fd5b600061145e8882890161106b565b955050602061146f8882890161137b565b945050604086013567ffffffffffffffff81111561148c57600080fd5b61149888828901611080565b935050606086013567ffffffffffffffff8111156114b557600080fd5b6114c188828901611103565b925050608086013567ffffffffffffffff8111156114de57600080fd5b6114ea888289016111a1565b9150509295509295909350565b6000806040838503121561150a57600080fd5b600083013567ffffffffffffffff81111561152457600080fd5b61153085828601611080565b925050602083013567ffffffffffffffff81111561154d57600080fd5b61155985828601611103565b9150509250929050565b6000806040838503121561157657600080fd5b600083013567ffffffffffffffff81111561159057600080fd5b61159c85828601611103565b92505060206115ad85828601611177565b9150509250929050565b6000602082840312156115c957600080fd5b60006115d78482850161118c565b91505092915050565b600080604083850312156115f357600080fd5b6000611601858286016111f5565b92505060206116128582860161120a565b9150509250929050565b60006020828403121561162e57600080fd5b600082013567ffffffffffffffff81111561164857600080fd5b6116548482850161121f565b91505092915050565b60006020828403121561166f57600080fd5b600082013567ffffffffffffffff81111561168957600080fd5b611695848285016112d7565b91505092915050565b60006116aa83836116d4565b60208301905092915050565b6116bf8161225f565b82525050565b6116ce816121dc565b82525050565b6116dd816121dc565b82525050565b6116f46116ef826121dc565b61231f565b82525050565b600061170582612176565b61170f8185612199565b935061171a83612166565b8060005b8381101561174b578151611732888261169e565b975061173d8361218c565b92505060018101905061171e565b5085935050505092915050565b611761816121ee565b82525050565b611770816121fa565b82525050565b611787611782826121fa565b612331565b82525050565b600061179882612181565b6117a281856121a4565b93506117b28185602086016122ec565b6117bb81612357565b840191505092915050565b60006117d182612181565b6117db81856121b5565b93506117eb8185602086016122ec565b80840191505092915050565b61180081612271565b82525050565b61180f81612295565b82525050565b6000611822601b836121c0565b91507f476174657761793a2063616e6e6f742073656e6420746f2030783000000000006000830152602082019050919050565b6000611862601c836121d1565b91507f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000830152601c82019050919050565b60006118a2602f836121c0565b91507f496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742060008301527f74686520696e697469616c697a657200000000000000000000000000000000006020830152604082019050919050565b60006119086017836121c0565b91507f476174657761793a2062617463682072657665727465640000000000000000006000830152602082019050919050565b60006119486032836121c0565b91507f476174657761793a206e6f6e6365206973206c6f776572207468616e2063757260008301527f72656e74206163636f756e74206e6f6e636500000000000000000000000000006020830152604082019050919050565b60006119ae6025836121c0565b91507f476174657761793a2063616e6e6f742073656e642066726f6d2030783020616360008301527f636f756e740000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611a146026836121c0565b91507f476174657761793a2063616e6e6f742064656c656761746520656d707479206260008301527f61746368657300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611a7a6028836121c0565b91507f476174657761793a2073656e646572206973206e6f7420746865206163636f7560008301527f6e74206f776e65720000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611ae06016836121c0565b91507f476174657761793a20696e76616c6964206261746368000000000000000000006000830152602082019050919050565b6000611b206023836121c0565b91507f476174657761793a206261746368207472616e73616374696f6e20726576657260008301527f74656400000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611b86601e836121c0565b91507f536166654d6174684c69623a206164646974696f6e206f766572666c6f7700006000830152602082019050919050565b6000611bc66020836121c0565b91507f476174657761793a2063616e6e6f742073656e6420656d7074792062617463686000830152602082019050919050565b6000611c06601d836121c0565b91507f476174657761793a20616c6c20626174636865732072657665727465640000006000830152602082019050919050565b611c4281612248565b82525050565b611c59611c5482612248565b61234d565b82525050565b611c6881612252565b82525050565b6000611c7a82876116e3565b601482019150611c8a8286611c48565b602082019150611c9a82856116fa565b9150611ca682846117c6565b915081905095945050505050565b6000611cc082886116e3565b601482019150611cd08287611c48565b602082019150611ce082866116fa565b9150611cec82856117c6565b9150611cf88284611c48565b6020820191508190509695505050505050565b6000611d1782846117c6565b915081905092915050565b6000611d2e82866117c6565b9150611d3a82856116e3565b601482019150611d4a82846116e3565b601482019150819050949350505050565b6000611d6782856117c6565b9150611d7382846117c6565b91508190509392505050565b6000611d8a82611855565b9150611d968284611776565b60208201915081905092915050565b6000611db18287611c48565b602082019150611dc182866116e3565b601482019150611dd18285611776565b602082019150611de182846117c6565b915081905095945050505050565b6000602082019050611e0460008301846116b6565b92915050565b6000606082019050611e1f60008301866116b6565b8181036020830152611e31818561178d565b9050611e406040830184611758565b949350505050565b6000604082019050611e5d60008301856116c5565b611e6a60208301846116c5565b9392505050565b6000602082019050611e866000830184611758565b92915050565b6000602082019050611ea16000830184611767565b92915050565b6000608082019050611ebc6000830187611767565b611ec96020830186611c5f565b611ed66040830185611767565b611ee36060830184611767565b95945050505050565b6000602082019050611f0160008301846117f7565b92915050565b6000602082019050611f1c6000830184611806565b92915050565b60006020820190508181036000830152611f3b81611815565b9050919050565b60006020820190508181036000830152611f5b81611895565b9050919050565b60006020820190508181036000830152611f7b816118fb565b9050919050565b60006020820190508181036000830152611f9b8161193b565b9050919050565b60006020820190508181036000830152611fbb816119a1565b9050919050565b60006020820190508181036000830152611fdb81611a07565b9050919050565b60006020820190508181036000830152611ffb81611a6d565b9050919050565b6000602082019050818103600083015261201b81611ad3565b9050919050565b6000602082019050818103600083015261203b81611b13565b9050919050565b6000602082019050818103600083015261205b81611b79565b9050919050565b6000602082019050818103600083015261207b81611bb9565b9050919050565b6000602082019050818103600083015261209b81611bf9565b9050919050565b60006020820190506120b76000830184611c39565b92915050565b6000604051905081810181811067ffffffffffffffff821117156120e057600080fd5b8060405250919050565b600067ffffffffffffffff82111561210157600080fd5b602082029050602081019050919050565b600067ffffffffffffffff82111561212957600080fd5b602082029050602081019050919050565b600067ffffffffffffffff82111561215157600080fd5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b60006121e782612228565b9050919050565b60008115159050919050565b6000819050919050565b600061220f826121dc565b9050919050565b6000612221826121dc565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061226a826122b9565b9050919050565b600061227c82612283565b9050919050565b600061228e82612228565b9050919050565b60006122a0826122a7565b9050919050565b60006122b282612228565b9050919050565b60006122c4826122cb565b9050919050565b60006122d682612228565b9050919050565b82818337600083830152505050565b60005b8381101561230a5780820151818401526020810190506122ef565b83811115612319576000848401525b50505050565b600061232a8261233b565b9050919050565b6000819050919050565b600061234682612368565b9050919050565b6000819050919050565b6000601f19601f8301169050919050565b60008160601b9050919050565b61237e816121dc565b811461238957600080fd5b50565b612395816121ee565b81146123a057600080fd5b50565b6123ac81612204565b81146123b757600080fd5b50565b6123c381612216565b81146123ce57600080fd5b50565b6123da81612248565b81146123e557600080fd5b5056fea164736f6c634300060c000a", + "bytecode": "0x60806040523480156200001157600080fd5b506200002e67bcc9be562f8a4b0a60c01b6200014560201b60201c565b6200004a67579ae7209daca85260c01b6200014560201b60201c565b326000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000a6676b19898ae2f7725060c01b6200014860201b60201c565b620000c2677c2d0c907f0deddc60c01b6200014860201b60201c565b620000de67f0d1a438b0305bb160c01b6200014860201b60201c565b6000620000fc6737bb5abaf3e7d9d360c01b6200014860201b60201c565b4690506200011b676f86a9c0c67bb39a60c01b6200014860201b60201c565b80600181905550506200013f677c1450e034caf90e60c01b6200014b60201b60201c565b6200014e565b50565b50565b50565b6134c9806200015e6000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80639a8a0592116100b8578063c3e315871161007c578063c3e3158714610371578063c4543305146103a1578063d2c83b9a146103d1578063d6de3a60146103ef578063d84fa10c1461040b578063f92c5f7c1461043b57610142565b80639a8a0592146102cf5780639f255626146102ed578063ae1a7ece14610309578063b5021b1614610339578063bcd483641461035557610142565b80635afaa7bb1161010a5780635afaa7bb146101e95780636a8477281461020557806373e5a13f1461023557806376db2b4c14610265578063867519c61461029557806387d31313146102b157610142565b8063231badaf146101475780632c4bbae614610163578063392e53cd146101935780633e260b13146101b1578063485cc955146101cd575b600080fd5b610161600480360381019061015c91906124a0565b61046b565b005b61017d60048036038101906101789190612648565b61062e565b60405161018a9190612f02565b60405180910390f35b61019b610635565b6040516101a89190612f02565b60405180910390f35b6101cb60048036038101906101c69190612648565b6106c8565b005b6101e760048036038101906101e29190612671565b6106cb565b005b61020360048036038101906101fe91906125cb565b61096f565b005b61021f600480360381019061021a9190612648565b610db5565b60405161022c9190612f02565b60405180910390f35b61024f600480360381019061024a91906126ee565b610dbc565b60405161025c9190612f1d565b60405180910390f35b61027f600480360381019061027a91906126ad565b610e1d565b60405161028c9190612f1d565b60405180910390f35b6102af60048036038101906102aa9190612421565b610e83565b005b6102b9610ed0565b6040516102c69190612f98565b60405180910390f35b6102d7610ef6565b6040516102e49190613133565b60405180910390f35b6103076004803603810190610302919061255f565b610efc565b005b610323600480360381019061031e9190612648565b610f48565b6040516103309190612f02565b60405180910390f35b610353600480360381019061034e91906124a0565b610f53565b005b61036f600480360381019061036a9190612648565b611117565b005b61038b60048036038101906103869190612648565b61111a565b6040516103989190612f02565b60405180910390f35b6103bb60048036038101906103b69190612648565b611125565b6040516103c89190612f02565b60405180910390f35b6103d9611130565b6040516103e69190612f7d565b60405180910390f35b61040960048036038101906104049190612648565b611156565b005b61042560048036038101906104209190612648565b611159565b6040516104329190612f02565b60405180910390f35b610455600480360381019061045091906123f8565b611160565b6040516104629190613133565b60405180910390f35b61047f676d2b441ca5b2d66f60c01b611156565b61049367cba441f73d5890c760c01b611156565b6104a767134063f4b41abd4260c01b611156565b6104bb674032e611215d082760c01b611156565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054841161053c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053390613013565b60405180910390fd5b61055067a9d439bfdf6eb1cc60c01b611156565b610564671f234de3a0d2f60460c01b611156565b61057867f304f663a1c4bbaf60c01b611156565b60006105988261058a888888886111f8565b61129790919063ffffffff16565b90506105ae6756b8cff0e930311760c01b611156565b84600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061060667ee6e52e5d015606460c01b611156565b61061a67bc70da3bfe9cf97760c01b611156565b6106268682868661159f565b505050505050565b6000919050565b600061064b67e29fe2f351ca6b2760c01b6106c8565b61065f676f5dd3f08b97747760c01b6106c8565b610673673a9488d62818322a60c01b6106c8565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b50565b6106df6795203fae258cd5a860c01b611156565b6106f367d2ba19feb39e0b7f60c01b6106c8565b610707670c5ad53cdb9edd1560c01b6106c8565b61071b67b6b588d2ebb9ae6960c01b6106c8565b61072f67c4ec9a90a885875260c01b6106c8565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146107bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b490612fd3565b60405180910390fd5b6107d167c3785ba1534db95460c01b6106c8565b6107e567e4202927591248ef60c01b6106c8565b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061083a67531cfa2817fbdc8660c01b6106c8565b61084e67d52395001d86cd9860c01b611156565b6108626748cf248005035c7260c01b611156565b610876670a50f00a10ef795e60c01b611156565b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506108cb67a40b8397769de3a960c01b611156565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506109206701520f419008b58e60c01b6106c8565b6109346775364c04848b013b60c01b6106c8565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e6326040516109639190612e80565b60405180910390a15050565b61098367cbe3a3b6e4a32fb560c01b611156565b61099767cee3ab3e7b19a5c460c01b611156565b6109ab67ad364c560a61b40260c01b611156565b6109bf678d9e04abff0f7afa60c01b611156565b6000825111610a03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fa90613053565b60405180910390fd5b610a17670fb165cf3195236b60c01b611156565b610a2b6726dade9b5adc877e60c01b611156565b610a3f672e7fc91247b2388a60c01b611156565b6000610a55679dfb6fb8f247e20f60c01b611156565b610a6967873d96ccafa2ea2460c01b611156565b60005b8351811015610cf757610a89673a6281b857c1883a60c01b611156565b610a9d67bb13b5f81353d86f60c01b611156565b60003073ffffffffffffffffffffffffffffffffffffffff16858381518110610ac257fe5b6020026020010151604051610ad79190612d9c565b6000604051808303816000865af19150503d8060008114610b14576040519150601f19603f3d011682016040523d82523d6000602084013e610b19565b606091505b50509050610b31673392a3ac8b79ec4760c01b611156565b610b4567c4bf08d594dff7aa60c01b611156565b8315610bf457610b5f6748ba6292bfbddc1260c01b611156565b610b736715e78cb2b9b4d50760c01b611156565b610b8767766a2b91bb03a82360c01b611156565b610b9b6761f9a7df4f4be02f60c01b611156565b80610bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd290612ff3565b60405180910390fd5b610bef671dd77e7c6333973b60c01b611156565b610c73565b610c086796fadd9814b4767c60c01b611156565b610c1c676b5b88a65ae31eeb60c01b611156565b808015610c27575082155b15610c5d57610c4067bad296d6579f896960c01b611156565b610c5467ca846dec5f0adb7160c01b611156565b60019250610c72565b610c7167c6e3aeb1a5181ce760c01b611156565b5b5b610c876740d2a01cdd1cac7860c01b611156565b610c9b676545d9424f37f96960c01b611156565b7f361c14722cc344132c73396113f7164232448b09c544a149f09048648b43d87233868481518110610cc957fe5b602002602001015183604051610ce193929190612e9b565b60405180910390a1508080600101915050610a6c565b50610d0c677728c6b8ac36981860c01b611156565b610d2067525bb1495be5234360c01b611156565b80610d9c57610d39675e3936a6ac769cc960c01b611156565b610d4d6752887c54c4be9b9e60c01b611156565b610d616749f1236db1207ec760c01b611156565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9390613113565b60405180910390fd5b610db0676fbce0a45d81c8a660c01b611156565b505050565b6000919050565b6000610dd267af82c1046377360460c01b611156565b610de6674039be855323d8d660c01b611156565b610dfa67cf045155f85786c160c01b611156565b610e1682600001518360200151846040015185606001516111f8565b9050919050565b6000610e3367e3b9509f75e5eb8f60c01b611156565b610e4767d5f865209da52da660c01b611156565b610e5b671deb6cb53ce04c8c60c01b611156565b610e7c82600001518360200151846040015185606001518660800151611cec565b9050919050565b610e9767c9e4754bee58077660c01b611156565b610eab6755041238e510c8a460c01b611156565b610ebf679b158f7ea217dd5060c01b611156565b610ecb8333848461159f565b505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b610f10677463f60ab55aa43c60c01b611156565b610f2467310201c2495c1a7060c01b611156565b610f38679792be76dd7fb25a60c01b611156565b610f443333848461159f565b5050565b600060019050919050565b610f6767e2e28a3fd543159560c01b611156565b610f7b67ecd11683dce0448160c01b611156565b610f8f675f914ba846473bb960c01b611156565b610fa3672f7ced2e8998afa060c01b611156565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548411611024576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101b90613013565b60405180910390fd5b611038677b910af083a9208f60c01b611156565b61104c67916f7b8e6d440ebc60c01b611156565b611060678027492c5b06d5cf60c01b611156565b600061108182611073888888883a611cec565b61129790919063ffffffff16565b905061109767e1c9417306b4124060c01b611156565b84600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110ef671b875e4d0564a09360c01b611156565b611103675c1861a0762d6a8760c01b611156565b61110f8682868661159f565b505050505050565b50565b600060019050919050565b600060019050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b50565b6000919050565b600061117667fc9e932269ec50dc60c01b611156565b61118a6725c1a24b83a9221a60c01b611156565b61119e678a8fbbe0a9c15aa760c01b611156565b6111f16001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d8e90919063ffffffff16565b9050919050565b600061120e67eda742b77289556460c01b611156565b611222674b697a77cafec65a60c01b611156565b611236676541c42e522f19c060c01b611156565b61128d7f6848d0622081db2451400280dead7a739a080cb93852607c381af11e289769b286868661126687611e98565b6040516020016112799493929190612cff565b604051602081830303815290604052611fc4565b9050949350505050565b60006112ad670d75db982ec4597160c01b612041565b6112c16725c2c60ab754182560c01b612041565b6112d5673eb64a254569ed0660c01b612041565b60006112eb67fb2a2286066e15e460c01b612041565b6112ff67a440db11ec9e986d60c01b612041565b6041835114156115585761131d6704a5aada48e2763260c01b612041565b611331674b98cf1796e5c26660c01b612041565b61134567d2dfec7b159385fc60c01b612041565b600061135b6772c2a840621b4aa760c01b612041565b61136f67bfd411e6ba4d07c460c01b612041565b600061138567145d23f82764ba9960c01b612041565b61139967acdff958a9c6c5dd60c01b612041565b60006113af673b79e3a80932a6a160c01b612041565b6020860151925060408601519150606086015160001a90506113db679b0cdee01a57ea2f60c01b612041565b6113ef675dbf88583373227960c01b612041565b601b8160ff16101561142e5761140f670dc9a1836eb51c3260c01b612041565b611423677097d8456a6c3e1560c01b612041565b601b81019050611443565b6114426708b39c61216869e760c01b612041565b5b611457672ea4d6db7d2138c560c01b612041565b61146b679ad3f461195a5eee60c01b612041565b601b8160ff1614801561148e575061148d67a24e972b59dc7d0560c01b612044565b5b806114b85750601c8160ff161480156114b757506114b667934bee4849491d9560c01b612044565b5b5b1561153b576114d1676d6a491fc6e072fa60c01b612041565b6114e567aecd1690d1de9f1c60c01b612041565b600187828585604051600081526020016040526040516115089493929190612f38565b6020604051602081039080840390855afa15801561152a573d6000803e3d6000fd5b505050602060405103519350611550565b61154f67513fbc3b3a0ad1c060c01b612041565b5b50505061156d565b61156c6723d6d78de386c96660c01b612041565b5b6115816707d0c4f11e72cfc960c01b612041565b61159567b9689b22f403636c60c01b612041565b8091505092915050565b6115b3673dc6b1fd578a592f60c01b611156565b6115c7675b12e7ee60d8c7a460c01b611156565b6115db6716dd37c4e900fda160c01b611156565b6115ef67aef774dd43d78e1260c01b611156565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561165f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165690613033565b60405180910390fd5b61167367bb8ef6bfca66485960c01b611156565b6116876777214430d6b2247660c01b611156565b61169b67cc7243b862e92dc960c01b611156565b6116af674b1049b37cc0441a60c01b611156565b60008251116116f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ea906130f3565b60405180910390fd5b61170767a401c78b6842967b60c01b611156565b61171b676bc409b80f9cc97560c01b611156565b61172f670c21a13c3f0af80f60c01b611156565b61174367df236f0cb85aa7a760c01b611156565b8151815114611787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177e90613093565b60405180910390fd5b61179b673b0d47612c5bfcb060c01b611156565b6117af677383a757a10ce6a660c01b611156565b6117c367d54972dcc54da96a60c01b611156565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611a375761180a67695f0a5ed6645cb160c01b611156565b61181e673c678a99acd09dfe60c01b611156565b611832672e9b649e87fb1bf160c01b611156565b61184667d21d499d67dd50dd60c01b611156565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb890d3f85856040518363ffffffff1660e01b81526004016118a3929190612ed9565b60206040518083038186803b1580156118bb57600080fd5b505afa1580156118cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f3919061261f565b801561190f575061190e67a6bf4e6eca47d89260c01b61111a565b5b806119df5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb890d3f85856040518363ffffffff1660e01b8152600401611972929190612ed9565b60206040518083038186803b15801561198a57600080fd5b505afa15801561199e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c2919061261f565b80156119de57506119dd678f8df1355d42245960c01b61111a565b5b5b611a1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1590613073565b60405180910390fd5b611a326707751d0d2332acbb60c01b611156565b611a4c565b611a4b678e9477de75c4b33960c01b611156565b5b611a606732451c5d20fa0b0e60c01b611156565b611a7467bde85699afe47a2560c01b611156565b6000611a8a670ac7e6b247a1b23660c01b611156565b611a9e67a4b54381933286a160c01b611156565b60005b8251811015611ce457611abe67e7a575dd079f50e060c01b611156565b611ad267dc63add401f9859960c01b611156565b611ae667c37bca055481b01060c01b611156565b600073ffffffffffffffffffffffffffffffffffffffff16848281518110611b0a57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff161415611b69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6090612fb3565b60405180910390fd5b611b7d67c419a2487f65256460c01b611156565b611b916756305d165003f7c060c01b611156565b838181518110611b9d57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16838281518110611bc757fe5b60200260200101518787604051602001611be393929190612db3565b604051602081830303815290604052604051611bff9190612d9c565b6000604051808303816000865af19150503d8060008114611c3c576040519150601f19603f3d011682016040523d82523d6000602084013e611c41565b606091505b505080925050611c5b670f9dfeab41fb8ea060c01b611156565b611c6f676d8a92db9e4d9eb760c01b611156565b611c836731620bc12623c2a460c01b611156565b81611cc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cba906130b3565b60405180910390fd5b611cd7678d59ec3587b5a94e60c01b611156565b8080600101915050611aa1565b505050505050565b6000611d02671ec04fa3e6433c7060c01b611156565b611d1667f636738c68fd79e260c01b611156565b611d2a6794bdd90ed43103ae60c01b611156565b611d837f6f4e1b2b1e5e49f4269e19e16e67a00cb0a796d96d30be3e4b540d3732e8bcad878787611d5a88611e98565b87604051602001611d6f959493929190612d45565b604051602081830303815290604052611fc4565b905095945050505050565b6000611da4672797d9bbee8e685760c01b61204f565b611db867e25930aa3032662f60c01b61204f565b611dcc673b804ace3fd44ea060c01b61204f565b60008284019050611de767e0d809daafe36a0460c01b61204f565b611dfb67d0d7b021c1a6823260c01b61204f565b611e0f6741f1099b5fa09b9360c01b61204f565b83811015611e52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e49906130d3565b60405180910390fd5b611e666728a352a27e50889560c01b61204f565b611e7a67f55e5f024a80111c60c01b61204f565b611e8e67d865abdcb752192460c01b61204f565b8091505092915050565b6060611eae673d52b345085804d360c01b611156565b611ec267938a3fc7b0db7b7560c01b611156565b611ed667efd64ece1fcae34460c01b611156565b6060611eec678e4f8d3e667dc68060c01b611156565b611f0067058d193f1566526e60c01b611156565b600083519050611f1a678b29a7b925d3ac0a60c01b611156565b611f2e67ba6e3e037213797660c01b611156565b60005b81811015611f9157611f4d6757304e9d85c5f61a60c01b611156565b82858281518110611f5a57fe5b6020026020010151604051602001611f73929190612dec565b60405160208183030381529060405292508080600101915050611f31565b50611fa6672f36155ab352e49460c01b611156565b611fba6720ea1b68fe8bdcf860c01b611156565b8192505050919050565b6000611fda6771b334e2e3162d2e60c01b611117565b611fee6729046581cf97a49460c01b611117565b612002674f9e67c6b1f334b360c01b611117565b61203960015430858560405160200161201e9493929190612e36565b60405160208183030381529060405280519060200120612052565b905092915050565b50565b600060019050919050565b50565b600061206867f3d1beb9fba5b7be60c01b612041565b61207c676cd81a1865d6353260c01b612041565b612090676810828c21da671e60c01b612041565b816040516020016120a19190612e10565b604051602081830303815290604052805190602001209050919050565b6000813590506120cd81613432565b92915050565b600082601f8301126120e457600080fd5b81356120f76120f28261317b565b61314e565b9150818183526020840193506020810190508385602084028201111561211c57600080fd5b60005b8381101561214c578161213288826120be565b84526020840193506020830192505060018101905061211f565b5050505092915050565b600082601f83011261216757600080fd5b813561217a612175826131a3565b61314e565b9150818183526020840193506020810190508360005b838110156121c057813586016121a68882612209565b845260208401935060208301925050600181019050612190565b5050505092915050565b6000813590506121d981613449565b92915050565b6000815190506121ee81613449565b92915050565b60008135905061220381613460565b92915050565b600082601f83011261221a57600080fd5b813561222d612228826131cb565b61314e565b9150808252602083016020830185838301111561224957600080fd5b61225483828461339a565b50505092915050565b60008135905061226c81613477565b92915050565b6000813590506122818161348e565b92915050565b600060a0828403121561229957600080fd5b6122a360a061314e565b905060006122b3848285016120be565b60008301525060206122c7848285016123e3565b602083015250604082013567ffffffffffffffff8111156122e757600080fd5b6122f3848285016120d3565b604083015250606082013567ffffffffffffffff81111561231357600080fd5b61231f84828501612156565b6060830152506080612333848285016123e3565b60808301525092915050565b60006080828403121561235157600080fd5b61235b608061314e565b9050600061236b848285016120be565b600083015250602061237f848285016123e3565b602083015250604082013567ffffffffffffffff81111561239f57600080fd5b6123ab848285016120d3565b604083015250606082013567ffffffffffffffff8111156123cb57600080fd5b6123d784828501612156565b60608301525092915050565b6000813590506123f2816134a5565b92915050565b60006020828403121561240a57600080fd5b6000612418848285016120be565b91505092915050565b60008060006060848603121561243657600080fd5b6000612444868287016120be565b935050602084013567ffffffffffffffff81111561246157600080fd5b61246d868287016120d3565b925050604084013567ffffffffffffffff81111561248a57600080fd5b61249686828701612156565b9150509250925092565b600080600080600060a086880312156124b857600080fd5b60006124c6888289016120be565b95505060206124d7888289016123e3565b945050604086013567ffffffffffffffff8111156124f457600080fd5b612500888289016120d3565b935050606086013567ffffffffffffffff81111561251d57600080fd5b61252988828901612156565b925050608086013567ffffffffffffffff81111561254657600080fd5b61255288828901612209565b9150509295509295909350565b6000806040838503121561257257600080fd5b600083013567ffffffffffffffff81111561258c57600080fd5b612598858286016120d3565b925050602083013567ffffffffffffffff8111156125b557600080fd5b6125c185828601612156565b9150509250929050565b600080604083850312156125de57600080fd5b600083013567ffffffffffffffff8111156125f857600080fd5b61260485828601612156565b9250506020612615858286016121ca565b9150509250929050565b60006020828403121561263157600080fd5b600061263f848285016121df565b91505092915050565b60006020828403121561265a57600080fd5b6000612668848285016121f4565b91505092915050565b6000806040838503121561268457600080fd5b60006126928582860161225d565b92505060206126a385828601612272565b9150509250929050565b6000602082840312156126bf57600080fd5b600082013567ffffffffffffffff8111156126d957600080fd5b6126e584828501612287565b91505092915050565b60006020828403121561270057600080fd5b600082013567ffffffffffffffff81111561271a57600080fd5b6127268482850161233f565b91505092915050565b600061273b8383612765565b60208301905092915050565b6127508161331c565b82525050565b61275f8161326d565b82525050565b61276e8161326d565b82525050565b6127856127808261326d565b6133dc565b82525050565b600061279682613207565b6127a0818561322a565b93506127ab836131f7565b8060005b838110156127dc5781516127c3888261272f565b97506127ce8361321d565b9250506001810190506127af565b5085935050505092915050565b6127f28161327f565b82525050565b6128018161328b565b82525050565b6128186128138261328b565b6133ee565b82525050565b600061282982613212565b6128338185613235565b93506128438185602086016133a9565b61284c81613414565b840191505092915050565b600061286282613212565b61286c8185613246565b935061287c8185602086016133a9565b80840191505092915050565b6128918161332e565b82525050565b6128a081613352565b82525050565b60006128b3601b83613251565b91507f476174657761793a2063616e6e6f742073656e6420746f2030783000000000006000830152602082019050919050565b60006128f3601c83613262565b91507f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000830152601c82019050919050565b6000612933602f83613251565b91507f496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742060008301527f74686520696e697469616c697a657200000000000000000000000000000000006020830152604082019050919050565b6000612999601783613251565b91507f476174657761793a2062617463682072657665727465640000000000000000006000830152602082019050919050565b60006129d9603283613251565b91507f476174657761793a206e6f6e6365206973206c6f776572207468616e2063757260008301527f72656e74206163636f756e74206e6f6e636500000000000000000000000000006020830152604082019050919050565b6000612a3f602583613251565b91507f476174657761793a2063616e6e6f742073656e642066726f6d2030783020616360008301527f636f756e740000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612aa5602683613251565b91507f476174657761793a2063616e6e6f742064656c656761746520656d707479206260008301527f61746368657300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612b0b602883613251565b91507f476174657761793a2073656e646572206973206e6f7420746865206163636f7560008301527f6e74206f776e65720000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612b71601683613251565b91507f476174657761793a20696e76616c6964206261746368000000000000000000006000830152602082019050919050565b6000612bb1602383613251565b91507f476174657761793a206261746368207472616e73616374696f6e20726576657260008301527f74656400000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612c17601e83613251565b91507f536166654d6174684c69623a206164646974696f6e206f766572666c6f7700006000830152602082019050919050565b6000612c57602083613251565b91507f476174657761793a2063616e6e6f742073656e6420656d7074792062617463686000830152602082019050919050565b6000612c97601d83613251565b91507f476174657761793a20616c6c20626174636865732072657665727465640000006000830152602082019050919050565b612cd381613305565b82525050565b612cea612ce582613305565b61340a565b82525050565b612cf98161330f565b82525050565b6000612d0b8287612774565b601482019150612d1b8286612cd9565b602082019150612d2b828561278b565b9150612d378284612857565b915081905095945050505050565b6000612d518288612774565b601482019150612d618287612cd9565b602082019150612d71828661278b565b9150612d7d8285612857565b9150612d898284612cd9565b6020820191508190509695505050505050565b6000612da88284612857565b915081905092915050565b6000612dbf8286612857565b9150612dcb8285612774565b601482019150612ddb8284612774565b601482019150819050949350505050565b6000612df88285612857565b9150612e048284612857565b91508190509392505050565b6000612e1b826128e6565b9150612e278284612807565b60208201915081905092915050565b6000612e428287612cd9565b602082019150612e528286612774565b601482019150612e628285612807565b602082019150612e728284612857565b915081905095945050505050565b6000602082019050612e956000830184612747565b92915050565b6000606082019050612eb06000830186612747565b8181036020830152612ec2818561281e565b9050612ed160408301846127e9565b949350505050565b6000604082019050612eee6000830185612756565b612efb6020830184612756565b9392505050565b6000602082019050612f1760008301846127e9565b92915050565b6000602082019050612f3260008301846127f8565b92915050565b6000608082019050612f4d60008301876127f8565b612f5a6020830186612cf0565b612f6760408301856127f8565b612f7460608301846127f8565b95945050505050565b6000602082019050612f926000830184612888565b92915050565b6000602082019050612fad6000830184612897565b92915050565b60006020820190508181036000830152612fcc816128a6565b9050919050565b60006020820190508181036000830152612fec81612926565b9050919050565b6000602082019050818103600083015261300c8161298c565b9050919050565b6000602082019050818103600083015261302c816129cc565b9050919050565b6000602082019050818103600083015261304c81612a32565b9050919050565b6000602082019050818103600083015261306c81612a98565b9050919050565b6000602082019050818103600083015261308c81612afe565b9050919050565b600060208201905081810360008301526130ac81612b64565b9050919050565b600060208201905081810360008301526130cc81612ba4565b9050919050565b600060208201905081810360008301526130ec81612c0a565b9050919050565b6000602082019050818103600083015261310c81612c4a565b9050919050565b6000602082019050818103600083015261312c81612c8a565b9050919050565b60006020820190506131486000830184612cca565b92915050565b6000604051905081810181811067ffffffffffffffff8211171561317157600080fd5b8060405250919050565b600067ffffffffffffffff82111561319257600080fd5b602082029050602081019050919050565b600067ffffffffffffffff8211156131ba57600080fd5b602082029050602081019050919050565b600067ffffffffffffffff8211156131e257600080fd5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000613278826132e5565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b60006132cc8261326d565b9050919050565b60006132de8261326d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061332782613376565b9050919050565b600061333982613340565b9050919050565b600061334b826132e5565b9050919050565b600061335d82613364565b9050919050565b600061336f826132e5565b9050919050565b600061338182613388565b9050919050565b6000613393826132e5565b9050919050565b82818337600083830152505050565b60005b838110156133c75780820151818401526020810190506133ac565b838111156133d6576000848401525b50505050565b60006133e7826133f8565b9050919050565b6000819050919050565b600061340382613425565b9050919050565b6000819050919050565b6000601f19601f8301169050919050565b60008160601b9050919050565b61343b8161326d565b811461344657600080fd5b50565b6134528161327f565b811461345d57600080fd5b50565b61346981613295565b811461347457600080fd5b50565b613480816132c1565b811461348b57600080fd5b50565b613497816132d3565b81146134a257600080fd5b50565b6134ae81613305565b81146134b957600080fd5b5056fea164736f6c634300060c000a", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c80639a8a0592116100b8578063c3e315871161007c578063c3e3158714610371578063c4543305146103a1578063d2c83b9a146103d1578063d6de3a60146103ef578063d84fa10c1461040b578063f92c5f7c1461043b57610142565b80639a8a0592146102cf5780639f255626146102ed578063ae1a7ece14610309578063b5021b1614610339578063bcd483641461035557610142565b80635afaa7bb1161010a5780635afaa7bb146101e95780636a8477281461020557806373e5a13f1461023557806376db2b4c14610265578063867519c61461029557806387d31313146102b157610142565b8063231badaf146101475780632c4bbae614610163578063392e53cd146101935780633e260b13146101b1578063485cc955146101cd575b600080fd5b610161600480360381019061015c91906124a0565b61046b565b005b61017d60048036038101906101789190612648565b61062e565b60405161018a9190612f02565b60405180910390f35b61019b610635565b6040516101a89190612f02565b60405180910390f35b6101cb60048036038101906101c69190612648565b6106c8565b005b6101e760048036038101906101e29190612671565b6106cb565b005b61020360048036038101906101fe91906125cb565b61096f565b005b61021f600480360381019061021a9190612648565b610db5565b60405161022c9190612f02565b60405180910390f35b61024f600480360381019061024a91906126ee565b610dbc565b60405161025c9190612f1d565b60405180910390f35b61027f600480360381019061027a91906126ad565b610e1d565b60405161028c9190612f1d565b60405180910390f35b6102af60048036038101906102aa9190612421565b610e83565b005b6102b9610ed0565b6040516102c69190612f98565b60405180910390f35b6102d7610ef6565b6040516102e49190613133565b60405180910390f35b6103076004803603810190610302919061255f565b610efc565b005b610323600480360381019061031e9190612648565b610f48565b6040516103309190612f02565b60405180910390f35b610353600480360381019061034e91906124a0565b610f53565b005b61036f600480360381019061036a9190612648565b611117565b005b61038b60048036038101906103869190612648565b61111a565b6040516103989190612f02565b60405180910390f35b6103bb60048036038101906103b69190612648565b611125565b6040516103c89190612f02565b60405180910390f35b6103d9611130565b6040516103e69190612f7d565b60405180910390f35b61040960048036038101906104049190612648565b611156565b005b61042560048036038101906104209190612648565b611159565b6040516104329190612f02565b60405180910390f35b610455600480360381019061045091906123f8565b611160565b6040516104629190613133565b60405180910390f35b61047f676d2b441ca5b2d66f60c01b611156565b61049367cba441f73d5890c760c01b611156565b6104a767134063f4b41abd4260c01b611156565b6104bb674032e611215d082760c01b611156565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054841161053c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053390613013565b60405180910390fd5b61055067a9d439bfdf6eb1cc60c01b611156565b610564671f234de3a0d2f60460c01b611156565b61057867f304f663a1c4bbaf60c01b611156565b60006105988261058a888888886111f8565b61129790919063ffffffff16565b90506105ae6756b8cff0e930311760c01b611156565b84600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061060667ee6e52e5d015606460c01b611156565b61061a67bc70da3bfe9cf97760c01b611156565b6106268682868661159f565b505050505050565b6000919050565b600061064b67e29fe2f351ca6b2760c01b6106c8565b61065f676f5dd3f08b97747760c01b6106c8565b610673673a9488d62818322a60c01b6106c8565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b50565b6106df6795203fae258cd5a860c01b611156565b6106f367d2ba19feb39e0b7f60c01b6106c8565b610707670c5ad53cdb9edd1560c01b6106c8565b61071b67b6b588d2ebb9ae6960c01b6106c8565b61072f67c4ec9a90a885875260c01b6106c8565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146107bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b490612fd3565b60405180910390fd5b6107d167c3785ba1534db95460c01b6106c8565b6107e567e4202927591248ef60c01b6106c8565b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061083a67531cfa2817fbdc8660c01b6106c8565b61084e67d52395001d86cd9860c01b611156565b6108626748cf248005035c7260c01b611156565b610876670a50f00a10ef795e60c01b611156565b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506108cb67a40b8397769de3a960c01b611156565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506109206701520f419008b58e60c01b6106c8565b6109346775364c04848b013b60c01b6106c8565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e6326040516109639190612e80565b60405180910390a15050565b61098367cbe3a3b6e4a32fb560c01b611156565b61099767cee3ab3e7b19a5c460c01b611156565b6109ab67ad364c560a61b40260c01b611156565b6109bf678d9e04abff0f7afa60c01b611156565b6000825111610a03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fa90613053565b60405180910390fd5b610a17670fb165cf3195236b60c01b611156565b610a2b6726dade9b5adc877e60c01b611156565b610a3f672e7fc91247b2388a60c01b611156565b6000610a55679dfb6fb8f247e20f60c01b611156565b610a6967873d96ccafa2ea2460c01b611156565b60005b8351811015610cf757610a89673a6281b857c1883a60c01b611156565b610a9d67bb13b5f81353d86f60c01b611156565b60003073ffffffffffffffffffffffffffffffffffffffff16858381518110610ac257fe5b6020026020010151604051610ad79190612d9c565b6000604051808303816000865af19150503d8060008114610b14576040519150601f19603f3d011682016040523d82523d6000602084013e610b19565b606091505b50509050610b31673392a3ac8b79ec4760c01b611156565b610b4567c4bf08d594dff7aa60c01b611156565b8315610bf457610b5f6748ba6292bfbddc1260c01b611156565b610b736715e78cb2b9b4d50760c01b611156565b610b8767766a2b91bb03a82360c01b611156565b610b9b6761f9a7df4f4be02f60c01b611156565b80610bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd290612ff3565b60405180910390fd5b610bef671dd77e7c6333973b60c01b611156565b610c73565b610c086796fadd9814b4767c60c01b611156565b610c1c676b5b88a65ae31eeb60c01b611156565b808015610c27575082155b15610c5d57610c4067bad296d6579f896960c01b611156565b610c5467ca846dec5f0adb7160c01b611156565b60019250610c72565b610c7167c6e3aeb1a5181ce760c01b611156565b5b5b610c876740d2a01cdd1cac7860c01b611156565b610c9b676545d9424f37f96960c01b611156565b7f361c14722cc344132c73396113f7164232448b09c544a149f09048648b43d87233868481518110610cc957fe5b602002602001015183604051610ce193929190612e9b565b60405180910390a1508080600101915050610a6c565b50610d0c677728c6b8ac36981860c01b611156565b610d2067525bb1495be5234360c01b611156565b80610d9c57610d39675e3936a6ac769cc960c01b611156565b610d4d6752887c54c4be9b9e60c01b611156565b610d616749f1236db1207ec760c01b611156565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9390613113565b60405180910390fd5b610db0676fbce0a45d81c8a660c01b611156565b505050565b6000919050565b6000610dd267af82c1046377360460c01b611156565b610de6674039be855323d8d660c01b611156565b610dfa67cf045155f85786c160c01b611156565b610e1682600001518360200151846040015185606001516111f8565b9050919050565b6000610e3367e3b9509f75e5eb8f60c01b611156565b610e4767d5f865209da52da660c01b611156565b610e5b671deb6cb53ce04c8c60c01b611156565b610e7c82600001518360200151846040015185606001518660800151611cec565b9050919050565b610e9767c9e4754bee58077660c01b611156565b610eab6755041238e510c8a460c01b611156565b610ebf679b158f7ea217dd5060c01b611156565b610ecb8333848461159f565b505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b610f10677463f60ab55aa43c60c01b611156565b610f2467310201c2495c1a7060c01b611156565b610f38679792be76dd7fb25a60c01b611156565b610f443333848461159f565b5050565b600060019050919050565b610f6767e2e28a3fd543159560c01b611156565b610f7b67ecd11683dce0448160c01b611156565b610f8f675f914ba846473bb960c01b611156565b610fa3672f7ced2e8998afa060c01b611156565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548411611024576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101b90613013565b60405180910390fd5b611038677b910af083a9208f60c01b611156565b61104c67916f7b8e6d440ebc60c01b611156565b611060678027492c5b06d5cf60c01b611156565b600061108182611073888888883a611cec565b61129790919063ffffffff16565b905061109767e1c9417306b4124060c01b611156565b84600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110ef671b875e4d0564a09360c01b611156565b611103675c1861a0762d6a8760c01b611156565b61110f8682868661159f565b505050505050565b50565b600060019050919050565b600060019050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b50565b6000919050565b600061117667fc9e932269ec50dc60c01b611156565b61118a6725c1a24b83a9221a60c01b611156565b61119e678a8fbbe0a9c15aa760c01b611156565b6111f16001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d8e90919063ffffffff16565b9050919050565b600061120e67eda742b77289556460c01b611156565b611222674b697a77cafec65a60c01b611156565b611236676541c42e522f19c060c01b611156565b61128d7f6848d0622081db2451400280dead7a739a080cb93852607c381af11e289769b286868661126687611e98565b6040516020016112799493929190612cff565b604051602081830303815290604052611fc4565b9050949350505050565b60006112ad670d75db982ec4597160c01b612041565b6112c16725c2c60ab754182560c01b612041565b6112d5673eb64a254569ed0660c01b612041565b60006112eb67fb2a2286066e15e460c01b612041565b6112ff67a440db11ec9e986d60c01b612041565b6041835114156115585761131d6704a5aada48e2763260c01b612041565b611331674b98cf1796e5c26660c01b612041565b61134567d2dfec7b159385fc60c01b612041565b600061135b6772c2a840621b4aa760c01b612041565b61136f67bfd411e6ba4d07c460c01b612041565b600061138567145d23f82764ba9960c01b612041565b61139967acdff958a9c6c5dd60c01b612041565b60006113af673b79e3a80932a6a160c01b612041565b6020860151925060408601519150606086015160001a90506113db679b0cdee01a57ea2f60c01b612041565b6113ef675dbf88583373227960c01b612041565b601b8160ff16101561142e5761140f670dc9a1836eb51c3260c01b612041565b611423677097d8456a6c3e1560c01b612041565b601b81019050611443565b6114426708b39c61216869e760c01b612041565b5b611457672ea4d6db7d2138c560c01b612041565b61146b679ad3f461195a5eee60c01b612041565b601b8160ff1614801561148e575061148d67a24e972b59dc7d0560c01b612044565b5b806114b85750601c8160ff161480156114b757506114b667934bee4849491d9560c01b612044565b5b5b1561153b576114d1676d6a491fc6e072fa60c01b612041565b6114e567aecd1690d1de9f1c60c01b612041565b600187828585604051600081526020016040526040516115089493929190612f38565b6020604051602081039080840390855afa15801561152a573d6000803e3d6000fd5b505050602060405103519350611550565b61154f67513fbc3b3a0ad1c060c01b612041565b5b50505061156d565b61156c6723d6d78de386c96660c01b612041565b5b6115816707d0c4f11e72cfc960c01b612041565b61159567b9689b22f403636c60c01b612041565b8091505092915050565b6115b3673dc6b1fd578a592f60c01b611156565b6115c7675b12e7ee60d8c7a460c01b611156565b6115db6716dd37c4e900fda160c01b611156565b6115ef67aef774dd43d78e1260c01b611156565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561165f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165690613033565b60405180910390fd5b61167367bb8ef6bfca66485960c01b611156565b6116876777214430d6b2247660c01b611156565b61169b67cc7243b862e92dc960c01b611156565b6116af674b1049b37cc0441a60c01b611156565b60008251116116f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ea906130f3565b60405180910390fd5b61170767a401c78b6842967b60c01b611156565b61171b676bc409b80f9cc97560c01b611156565b61172f670c21a13c3f0af80f60c01b611156565b61174367df236f0cb85aa7a760c01b611156565b8151815114611787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177e90613093565b60405180910390fd5b61179b673b0d47612c5bfcb060c01b611156565b6117af677383a757a10ce6a660c01b611156565b6117c367d54972dcc54da96a60c01b611156565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611a375761180a67695f0a5ed6645cb160c01b611156565b61181e673c678a99acd09dfe60c01b611156565b611832672e9b649e87fb1bf160c01b611156565b61184667d21d499d67dd50dd60c01b611156565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb890d3f85856040518363ffffffff1660e01b81526004016118a3929190612ed9565b60206040518083038186803b1580156118bb57600080fd5b505afa1580156118cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f3919061261f565b801561190f575061190e67a6bf4e6eca47d89260c01b61111a565b5b806119df5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb890d3f85856040518363ffffffff1660e01b8152600401611972929190612ed9565b60206040518083038186803b15801561198a57600080fd5b505afa15801561199e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c2919061261f565b80156119de57506119dd678f8df1355d42245960c01b61111a565b5b5b611a1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1590613073565b60405180910390fd5b611a326707751d0d2332acbb60c01b611156565b611a4c565b611a4b678e9477de75c4b33960c01b611156565b5b611a606732451c5d20fa0b0e60c01b611156565b611a7467bde85699afe47a2560c01b611156565b6000611a8a670ac7e6b247a1b23660c01b611156565b611a9e67a4b54381933286a160c01b611156565b60005b8251811015611ce457611abe67e7a575dd079f50e060c01b611156565b611ad267dc63add401f9859960c01b611156565b611ae667c37bca055481b01060c01b611156565b600073ffffffffffffffffffffffffffffffffffffffff16848281518110611b0a57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff161415611b69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6090612fb3565b60405180910390fd5b611b7d67c419a2487f65256460c01b611156565b611b916756305d165003f7c060c01b611156565b838181518110611b9d57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16838281518110611bc757fe5b60200260200101518787604051602001611be393929190612db3565b604051602081830303815290604052604051611bff9190612d9c565b6000604051808303816000865af19150503d8060008114611c3c576040519150601f19603f3d011682016040523d82523d6000602084013e611c41565b606091505b505080925050611c5b670f9dfeab41fb8ea060c01b611156565b611c6f676d8a92db9e4d9eb760c01b611156565b611c836731620bc12623c2a460c01b611156565b81611cc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cba906130b3565b60405180910390fd5b611cd7678d59ec3587b5a94e60c01b611156565b8080600101915050611aa1565b505050505050565b6000611d02671ec04fa3e6433c7060c01b611156565b611d1667f636738c68fd79e260c01b611156565b611d2a6794bdd90ed43103ae60c01b611156565b611d837f6f4e1b2b1e5e49f4269e19e16e67a00cb0a796d96d30be3e4b540d3732e8bcad878787611d5a88611e98565b87604051602001611d6f959493929190612d45565b604051602081830303815290604052611fc4565b905095945050505050565b6000611da4672797d9bbee8e685760c01b61204f565b611db867e25930aa3032662f60c01b61204f565b611dcc673b804ace3fd44ea060c01b61204f565b60008284019050611de767e0d809daafe36a0460c01b61204f565b611dfb67d0d7b021c1a6823260c01b61204f565b611e0f6741f1099b5fa09b9360c01b61204f565b83811015611e52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e49906130d3565b60405180910390fd5b611e666728a352a27e50889560c01b61204f565b611e7a67f55e5f024a80111c60c01b61204f565b611e8e67d865abdcb752192460c01b61204f565b8091505092915050565b6060611eae673d52b345085804d360c01b611156565b611ec267938a3fc7b0db7b7560c01b611156565b611ed667efd64ece1fcae34460c01b611156565b6060611eec678e4f8d3e667dc68060c01b611156565b611f0067058d193f1566526e60c01b611156565b600083519050611f1a678b29a7b925d3ac0a60c01b611156565b611f2e67ba6e3e037213797660c01b611156565b60005b81811015611f9157611f4d6757304e9d85c5f61a60c01b611156565b82858281518110611f5a57fe5b6020026020010151604051602001611f73929190612dec565b60405160208183030381529060405292508080600101915050611f31565b50611fa6672f36155ab352e49460c01b611156565b611fba6720ea1b68fe8bdcf860c01b611156565b8192505050919050565b6000611fda6771b334e2e3162d2e60c01b611117565b611fee6729046581cf97a49460c01b611117565b612002674f9e67c6b1f334b360c01b611117565b61203960015430858560405160200161201e9493929190612e36565b60405160208183030381529060405280519060200120612052565b905092915050565b50565b600060019050919050565b50565b600061206867f3d1beb9fba5b7be60c01b612041565b61207c676cd81a1865d6353260c01b612041565b612090676810828c21da671e60c01b612041565b816040516020016120a19190612e10565b604051602081830303815290604052805190602001209050919050565b6000813590506120cd81613432565b92915050565b600082601f8301126120e457600080fd5b81356120f76120f28261317b565b61314e565b9150818183526020840193506020810190508385602084028201111561211c57600080fd5b60005b8381101561214c578161213288826120be565b84526020840193506020830192505060018101905061211f565b5050505092915050565b600082601f83011261216757600080fd5b813561217a612175826131a3565b61314e565b9150818183526020840193506020810190508360005b838110156121c057813586016121a68882612209565b845260208401935060208301925050600181019050612190565b5050505092915050565b6000813590506121d981613449565b92915050565b6000815190506121ee81613449565b92915050565b60008135905061220381613460565b92915050565b600082601f83011261221a57600080fd5b813561222d612228826131cb565b61314e565b9150808252602083016020830185838301111561224957600080fd5b61225483828461339a565b50505092915050565b60008135905061226c81613477565b92915050565b6000813590506122818161348e565b92915050565b600060a0828403121561229957600080fd5b6122a360a061314e565b905060006122b3848285016120be565b60008301525060206122c7848285016123e3565b602083015250604082013567ffffffffffffffff8111156122e757600080fd5b6122f3848285016120d3565b604083015250606082013567ffffffffffffffff81111561231357600080fd5b61231f84828501612156565b6060830152506080612333848285016123e3565b60808301525092915050565b60006080828403121561235157600080fd5b61235b608061314e565b9050600061236b848285016120be565b600083015250602061237f848285016123e3565b602083015250604082013567ffffffffffffffff81111561239f57600080fd5b6123ab848285016120d3565b604083015250606082013567ffffffffffffffff8111156123cb57600080fd5b6123d784828501612156565b60608301525092915050565b6000813590506123f2816134a5565b92915050565b60006020828403121561240a57600080fd5b6000612418848285016120be565b91505092915050565b60008060006060848603121561243657600080fd5b6000612444868287016120be565b935050602084013567ffffffffffffffff81111561246157600080fd5b61246d868287016120d3565b925050604084013567ffffffffffffffff81111561248a57600080fd5b61249686828701612156565b9150509250925092565b600080600080600060a086880312156124b857600080fd5b60006124c6888289016120be565b95505060206124d7888289016123e3565b945050604086013567ffffffffffffffff8111156124f457600080fd5b612500888289016120d3565b935050606086013567ffffffffffffffff81111561251d57600080fd5b61252988828901612156565b925050608086013567ffffffffffffffff81111561254657600080fd5b61255288828901612209565b9150509295509295909350565b6000806040838503121561257257600080fd5b600083013567ffffffffffffffff81111561258c57600080fd5b612598858286016120d3565b925050602083013567ffffffffffffffff8111156125b557600080fd5b6125c185828601612156565b9150509250929050565b600080604083850312156125de57600080fd5b600083013567ffffffffffffffff8111156125f857600080fd5b61260485828601612156565b9250506020612615858286016121ca565b9150509250929050565b60006020828403121561263157600080fd5b600061263f848285016121df565b91505092915050565b60006020828403121561265a57600080fd5b6000612668848285016121f4565b91505092915050565b6000806040838503121561268457600080fd5b60006126928582860161225d565b92505060206126a385828601612272565b9150509250929050565b6000602082840312156126bf57600080fd5b600082013567ffffffffffffffff8111156126d957600080fd5b6126e584828501612287565b91505092915050565b60006020828403121561270057600080fd5b600082013567ffffffffffffffff81111561271a57600080fd5b6127268482850161233f565b91505092915050565b600061273b8383612765565b60208301905092915050565b6127508161331c565b82525050565b61275f8161326d565b82525050565b61276e8161326d565b82525050565b6127856127808261326d565b6133dc565b82525050565b600061279682613207565b6127a0818561322a565b93506127ab836131f7565b8060005b838110156127dc5781516127c3888261272f565b97506127ce8361321d565b9250506001810190506127af565b5085935050505092915050565b6127f28161327f565b82525050565b6128018161328b565b82525050565b6128186128138261328b565b6133ee565b82525050565b600061282982613212565b6128338185613235565b93506128438185602086016133a9565b61284c81613414565b840191505092915050565b600061286282613212565b61286c8185613246565b935061287c8185602086016133a9565b80840191505092915050565b6128918161332e565b82525050565b6128a081613352565b82525050565b60006128b3601b83613251565b91507f476174657761793a2063616e6e6f742073656e6420746f2030783000000000006000830152602082019050919050565b60006128f3601c83613262565b91507f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000830152601c82019050919050565b6000612933602f83613251565b91507f496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742060008301527f74686520696e697469616c697a657200000000000000000000000000000000006020830152604082019050919050565b6000612999601783613251565b91507f476174657761793a2062617463682072657665727465640000000000000000006000830152602082019050919050565b60006129d9603283613251565b91507f476174657761793a206e6f6e6365206973206c6f776572207468616e2063757260008301527f72656e74206163636f756e74206e6f6e636500000000000000000000000000006020830152604082019050919050565b6000612a3f602583613251565b91507f476174657761793a2063616e6e6f742073656e642066726f6d2030783020616360008301527f636f756e740000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612aa5602683613251565b91507f476174657761793a2063616e6e6f742064656c656761746520656d707479206260008301527f61746368657300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612b0b602883613251565b91507f476174657761793a2073656e646572206973206e6f7420746865206163636f7560008301527f6e74206f776e65720000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612b71601683613251565b91507f476174657761793a20696e76616c6964206261746368000000000000000000006000830152602082019050919050565b6000612bb1602383613251565b91507f476174657761793a206261746368207472616e73616374696f6e20726576657260008301527f74656400000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612c17601e83613251565b91507f536166654d6174684c69623a206164646974696f6e206f766572666c6f7700006000830152602082019050919050565b6000612c57602083613251565b91507f476174657761793a2063616e6e6f742073656e6420656d7074792062617463686000830152602082019050919050565b6000612c97601d83613251565b91507f476174657761793a20616c6c20626174636865732072657665727465640000006000830152602082019050919050565b612cd381613305565b82525050565b612cea612ce582613305565b61340a565b82525050565b612cf98161330f565b82525050565b6000612d0b8287612774565b601482019150612d1b8286612cd9565b602082019150612d2b828561278b565b9150612d378284612857565b915081905095945050505050565b6000612d518288612774565b601482019150612d618287612cd9565b602082019150612d71828661278b565b9150612d7d8285612857565b9150612d898284612cd9565b6020820191508190509695505050505050565b6000612da88284612857565b915081905092915050565b6000612dbf8286612857565b9150612dcb8285612774565b601482019150612ddb8284612774565b601482019150819050949350505050565b6000612df88285612857565b9150612e048284612857565b91508190509392505050565b6000612e1b826128e6565b9150612e278284612807565b60208201915081905092915050565b6000612e428287612cd9565b602082019150612e528286612774565b601482019150612e628285612807565b602082019150612e728284612857565b915081905095945050505050565b6000602082019050612e956000830184612747565b92915050565b6000606082019050612eb06000830186612747565b8181036020830152612ec2818561281e565b9050612ed160408301846127e9565b949350505050565b6000604082019050612eee6000830185612756565b612efb6020830184612756565b9392505050565b6000602082019050612f1760008301846127e9565b92915050565b6000602082019050612f3260008301846127f8565b92915050565b6000608082019050612f4d60008301876127f8565b612f5a6020830186612cf0565b612f6760408301856127f8565b612f7460608301846127f8565b95945050505050565b6000602082019050612f926000830184612888565b92915050565b6000602082019050612fad6000830184612897565b92915050565b60006020820190508181036000830152612fcc816128a6565b9050919050565b60006020820190508181036000830152612fec81612926565b9050919050565b6000602082019050818103600083015261300c8161298c565b9050919050565b6000602082019050818103600083015261302c816129cc565b9050919050565b6000602082019050818103600083015261304c81612a32565b9050919050565b6000602082019050818103600083015261306c81612a98565b9050919050565b6000602082019050818103600083015261308c81612afe565b9050919050565b600060208201905081810360008301526130ac81612b64565b9050919050565b600060208201905081810360008301526130cc81612ba4565b9050919050565b600060208201905081810360008301526130ec81612c0a565b9050919050565b6000602082019050818103600083015261310c81612c4a565b9050919050565b6000602082019050818103600083015261312c81612c8a565b9050919050565b60006020820190506131486000830184612cca565b92915050565b6000604051905081810181811067ffffffffffffffff8211171561317157600080fd5b8060405250919050565b600067ffffffffffffffff82111561319257600080fd5b602082029050602081019050919050565b600067ffffffffffffffff8211156131ba57600080fd5b602082029050602081019050919050565b600067ffffffffffffffff8211156131e257600080fd5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000613278826132e5565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b60006132cc8261326d565b9050919050565b60006132de8261326d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061332782613376565b9050919050565b600061333982613340565b9050919050565b600061334b826132e5565b9050919050565b600061335d82613364565b9050919050565b600061336f826132e5565b9050919050565b600061338182613388565b9050919050565b6000613393826132e5565b9050919050565b82818337600083830152505050565b60005b838110156133c75780820151818401526020810190506133ac565b838111156133d6576000848401525b50505050565b60006133e7826133f8565b9050919050565b6000819050919050565b600061340382613425565b9050919050565b6000819050919050565b6000601f19601f8301169050919050565b60008160601b9050919050565b61343b8161326d565b811461344657600080fd5b50565b6134528161327f565b811461345d57600080fd5b50565b61346981613295565b811461347457600080fd5b50565b613480816132c1565b811461348b57600080fd5b50565b613497816132d3565b81146134a257600080fd5b50565b6134ae81613305565b81146134b957600080fd5b5056fea164736f6c634300060c000a", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/GatewayRecipient.json b/artifacts/GatewayRecipient.json index 10ea4a88..44da9c5e 100644 --- a/artifacts/GatewayRecipient.json +++ b/artifacts/GatewayRecipient.json @@ -3,6 +3,57 @@ "contractName": "GatewayRecipient", "sourceName": "src/gateway/GatewayRecipient.sol", "abi": [ + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__d18be0f9", + "type": "bytes8" + } + ], + "name": "c_d18be0f9", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__d18be0f9", + "type": "bytes8" + } + ], + "name": "c_falsed18be0f9", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__d18be0f9", + "type": "bytes8" + } + ], + "name": "c_trued18be0f9", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [], "name": "gateway", diff --git a/artifacts/GatewayV2.json b/artifacts/GatewayV2.json index 238b1b6c..62abe060 100644 --- a/artifacts/GatewayV2.json +++ b/artifacts/GatewayV2.json @@ -97,6 +97,210 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__098c0657", + "type": "bytes8" + } + ], + "name": "c_098c0657", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__0b6945c4", + "type": "bytes8" + } + ], + "name": "c_0b6945c4", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__33f6a84f", + "type": "bytes8" + } + ], + "name": "c_33f6a84f", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__52615ca8", + "type": "bytes8" + } + ], + "name": "c_52615ca8", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__098c0657", + "type": "bytes8" + } + ], + "name": "c_false098c0657", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__0b6945c4", + "type": "bytes8" + } + ], + "name": "c_false0b6945c4", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__33f6a84f", + "type": "bytes8" + } + ], + "name": "c_false33f6a84f", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__52615ca8", + "type": "bytes8" + } + ], + "name": "c_false52615ca8", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__098c0657", + "type": "bytes8" + } + ], + "name": "c_true098c0657", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__0b6945c4", + "type": "bytes8" + } + ], + "name": "c_true0b6945c4", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__33f6a84f", + "type": "bytes8" + } + ], + "name": "c_true33f6a84f", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__52615ca8", + "type": "bytes8" + } + ], + "name": "c_true52615ca8", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [], "name": "chainId", @@ -580,8 +784,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50326000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000469050806001819055505061315e8061006d6000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806387d31313116100b8578063b5021b161161007c578063b5021b1614610349578063d0f710d614610365578063d2c83b9a14610395578063d305d0db146103b3578063d9f13021146103cf578063f92c5f7c146103eb57610142565b806387d31313146102b95780639a8a0592146102d75780639f255626146102f5578063a526d83b14610311578063ac2a08cd1461032d57610142565b8063538901341161010a57806353890134146101e95780635afaa7bb14610205578063714041561461022157806373e5a13f1461023d57806376db2b4c1461026d578063867519c61461029d57610142565b80630c68ba2114610147578063231badaf14610177578063371aa71a14610193578063392e53cd146101af578063485cc955146101cd575b600080fd5b610161600480360381019061015c9190611e5b565b61041b565b60405161016e9190612b23565b60405180910390f35b610191600480360381019061018c9190611f03565b610471565b005b6101ad60048036038101906101a89190611f03565b61056c565b005b6101b761060c565b6040516101c49190612b23565b60405180910390f35b6101e760048036038101906101e29190612103565b610662565b005b61020360048036038101906101fe9190611fc2565b6107fa565b005b61021f600480360381019061021a919061202e565b610894565b005b61023b60048036038101906102369190611e5b565b610a6c565b005b61025760048036038101906102529190612180565b610c87565b6040516102649190612b3e565b60405180910390f35b6102876004803603810190610282919061213f565b610cac565b6040516102949190612b3e565b60405180910390f35b6102b760048036038101906102b29190611e84565b610cd6565b005b6102c1610ce7565b6040516102ce9190612bb9565b60405180910390f35b6102df610d0d565b6040516102ec9190612df4565b60405180910390f35b61030f600480360381019061030a9190611fc2565b610d13565b005b61032b60048036038101906103269190611e5b565b610d23565b005b61034760048036038101906103429190611f03565b610dbb565b005b610363600480360381019061035e9190611f03565b610e5b565b005b61037f600480360381019061037a91906120ab565b610f57565b60405161038c9190612b23565b60405180910390f35b61039d610fb0565b6040516103aa9190612b9e565b60405180910390f35b6103cd60048036038101906103c89190611e84565b610fd6565b005b6103e960048036038101906103e4919061202e565b611072565b005b61040560048036038101906104009190611e5b565b61110c565b6040516104129190612df4565b60405180910390f35b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484116104f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e990612c54565b60405180910390fd5b60006105128261050488888888611168565b6111cb90919063ffffffff16565b905084600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061056486828686611286565b505050505050565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166105f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ef90612cf4565b60405180910390fd5b6106058585858585610e5b565b5050505050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146106f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e790612c14565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060606107be816116f1565b507f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e6326040516107ee9190612a78565b60405180910390a15050565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610886576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087d90612cf4565b60405180910390fd5b6108908282610d13565b5050565b60008251116108d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cf90612c94565b60405180910390fd5b600080600090505b8351811015610a265760003073ffffffffffffffffffffffffffffffffffffffff1685838151811061090e57fe5b60200260200101516040516109239190612994565b6000604051808303816000865af19150503d8060008114610960576040519150601f19603f3d011682016040523d82523d6000602084013e610965565b606091505b5050905083156109b457806109af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a690612c34565b60405180910390fd5b6109ca565b8080156109bf575082155b156109c957600192505b5b7f361c14722cc344132c73396113f7164232448b09c544a149f09048648b43d872338684815181106109f857fe5b602002602001015183604051610a1093929190612abc565b60405180910390a15080806001019150506108e0565b5080610a67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5e90612dd4565b60405180910390fd5b505050565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aef90612cf4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415610b67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5e90612db4565b60405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610bf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bea90612d14565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fee943cdb81826d5909c559c6b1ae6908fcaf2dbc16c4b730346736b486283e8b3282604051610c7c929190612a93565b60405180910390a150565b6000610ca58260000151836020015184604001518560600151611168565b9050919050565b6000610ccf82600001518360200151846040015185606001518660800151611749565b9050919050565b610ce283338484611286565b505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b610d1f33338484611286565b5050565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da690612cf4565b60405180910390fd5b610db8816117af565b50565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610e47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3e90612cf4565b60405180910390fd5b610e548585858585610471565b5050505050565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548411610edc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed390612c54565b60405180910390fd5b6000610efd82610eef888888883a611749565b6111cb90919063ffffffff16565b905084600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f4f86828686611286565b505050505050565b6000610fa78484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611940565b90509392505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105990612cf4565b60405180910390fd5b61106d838383610cd6565b505050565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166110fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f590612cf4565b60405180910390fd5b6111088282610894565b5050565b60006111616001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ae90919063ffffffff16565b9050919050565b60006111c17f6848d0622081db2451400280dead7a739a080cb93852607c381af11e289769b286868661119a87611a03565b6040516020016111ad94939291906128f7565b604051602081830303815290604052611a66565b9050949350505050565b6000806000905060418351141561127c5760008060006020860151925060408601519150606086015160001a9050601b8160ff16101561120c57601b810190505b601b8160ff1614806112215750601c8160ff16145b1561127857600187828585604051600081526020016040526040516112499493929190612b59565b6020604051602081039080840390855afa15801561126b573d6000803e3d6000fd5b5050506020604051035193505b5050505b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156112f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ed90612c74565b60405180910390fd5b600082511161133a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133190612d94565b60405180910390fd5b815181511461137e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137590612cd4565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461155257600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb890d3f85856040518363ffffffff1660e01b815260040161140e929190612afa565b60206040518083038186803b15801561142657600080fd5b505afa15801561143a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145e9190612082565b806115125750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb890d3f85856040518363ffffffff1660e01b81526004016114c1929190612afa565b60206040518083038186803b1580156114d957600080fd5b505afa1580156114ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115119190612082565b5b611551576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154890612cb4565b60405180910390fd5b5b600080600090505b82518110156116e957600073ffffffffffffffffffffffffffffffffffffffff1684828151811061158757fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614156115e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dd90612bd4565b60405180910390fd5b8381815181106115f257fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1683828151811061161c57fe5b60200260200101518787604051602001611638939291906129ab565b6040516020818303038152906040526040516116549190612994565b6000604051808303816000865af19150503d8060008114611691576040519150601f19603f3d011682016040523d82523d6000602084013e611696565b606091505b505080925050816116dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d390612d34565b60405180910390fd5b808060010191505061155a565b505050505050565b60008151141561170957611704326117af565b611746565b60008151905060005b818110156117435761173683828151811061172957fe5b60200260200101516117af565b8080600101915050611712565b50505b50565b60006117a47f6f4e1b2b1e5e49f4269e19e16e67a00cb0a796d96d30be3e4b540d3732e8bcad87878761177b88611a03565b8760405160200161179095949392919061293d565b604051602081830303815290604052611a66565b905095945050505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561181f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181690612bf4565b60405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156118ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a390612d74565b60405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fbc3292102fa77e083913064b282926717cdfaede4d35f553d66366c0a3da755a3282604051611935929190612a93565b60405180910390a150565b60008061195683856111cb90919063ffffffff16565b9050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b6000808284019050838110156119f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f090612d54565b60405180910390fd5b8091505092915050565b60608060008351905060005b81811015611a5b5782858281518110611a2457fe5b6020026020010151604051602001611a3d9291906129e4565b60405160208183030381529060405292508080600101915050611a0f565b508192505050919050565b6000611a9f600154308585604051602001611a849493929190612a2e565b60405160208183030381529060405280519060200120611aa7565b905092915050565b600081604051602001611aba9190612a08565b604051602081830303815290604052805190602001209050919050565b600081359050611ae6816130c7565b92915050565b600082601f830112611afd57600080fd5b8135611b10611b0b82612e3c565b612e0f565b91508181835260208401935060208101905083856020840282011115611b3557600080fd5b60005b83811015611b655781611b4b8882611ad7565b845260208401935060208301925050600181019050611b38565b5050505092915050565b600082601f830112611b8057600080fd5b8135611b93611b8e82612e64565b612e0f565b9150818183526020840193506020810190508360005b83811015611bd95781358601611bbf8882611c6c565b845260208401935060208301925050600181019050611ba9565b5050505092915050565b600081359050611bf2816130de565b92915050565b600081519050611c07816130de565b92915050565b600081359050611c1c816130f5565b92915050565b60008083601f840112611c3457600080fd5b8235905067ffffffffffffffff811115611c4d57600080fd5b602083019150836001820283011115611c6557600080fd5b9250929050565b600082601f830112611c7d57600080fd5b8135611c90611c8b82612e8c565b612e0f565b91508082526020830160208301858383011115611cac57600080fd5b611cb783828461302f565b50505092915050565b600081359050611ccf8161310c565b92915050565b600081359050611ce481613123565b92915050565b600060a08284031215611cfc57600080fd5b611d0660a0612e0f565b90506000611d1684828501611ad7565b6000830152506020611d2a84828501611e46565b602083015250604082013567ffffffffffffffff811115611d4a57600080fd5b611d5684828501611aec565b604083015250606082013567ffffffffffffffff811115611d7657600080fd5b611d8284828501611b6f565b6060830152506080611d9684828501611e46565b60808301525092915050565b600060808284031215611db457600080fd5b611dbe6080612e0f565b90506000611dce84828501611ad7565b6000830152506020611de284828501611e46565b602083015250604082013567ffffffffffffffff811115611e0257600080fd5b611e0e84828501611aec565b604083015250606082013567ffffffffffffffff811115611e2e57600080fd5b611e3a84828501611b6f565b60608301525092915050565b600081359050611e558161313a565b92915050565b600060208284031215611e6d57600080fd5b6000611e7b84828501611ad7565b91505092915050565b600080600060608486031215611e9957600080fd5b6000611ea786828701611ad7565b935050602084013567ffffffffffffffff811115611ec457600080fd5b611ed086828701611aec565b925050604084013567ffffffffffffffff811115611eed57600080fd5b611ef986828701611b6f565b9150509250925092565b600080600080600060a08688031215611f1b57600080fd5b6000611f2988828901611ad7565b9550506020611f3a88828901611e46565b945050604086013567ffffffffffffffff811115611f5757600080fd5b611f6388828901611aec565b935050606086013567ffffffffffffffff811115611f8057600080fd5b611f8c88828901611b6f565b925050608086013567ffffffffffffffff811115611fa957600080fd5b611fb588828901611c6c565b9150509295509295909350565b60008060408385031215611fd557600080fd5b600083013567ffffffffffffffff811115611fef57600080fd5b611ffb85828601611aec565b925050602083013567ffffffffffffffff81111561201857600080fd5b61202485828601611b6f565b9150509250929050565b6000806040838503121561204157600080fd5b600083013567ffffffffffffffff81111561205b57600080fd5b61206785828601611b6f565b925050602061207885828601611be3565b9150509250929050565b60006020828403121561209457600080fd5b60006120a284828501611bf8565b91505092915050565b6000806000604084860312156120c057600080fd5b60006120ce86828701611c0d565b935050602084013567ffffffffffffffff8111156120eb57600080fd5b6120f786828701611c22565b92509250509250925092565b6000806040838503121561211657600080fd5b600061212485828601611cc0565b925050602061213585828601611cd5565b9150509250929050565b60006020828403121561215157600080fd5b600082013567ffffffffffffffff81111561216b57600080fd5b61217784828501611cea565b91505092915050565b60006020828403121561219257600080fd5b600082013567ffffffffffffffff8111156121ac57600080fd5b6121b884828501611da2565b91505092915050565b60006121cd83836121f7565b60208301905092915050565b6121e281612fb1565b82525050565b6121f181612f2e565b82525050565b61220081612f2e565b82525050565b61221761221282612f2e565b613071565b82525050565b600061222882612ec8565b6122328185612eeb565b935061223d83612eb8565b8060005b8381101561226e57815161225588826121c1565b975061226083612ede565b925050600181019050612241565b5085935050505092915050565b61228481612f40565b82525050565b61229381612f4c565b82525050565b6122aa6122a582612f4c565b613083565b82525050565b60006122bb82612ed3565b6122c58185612ef6565b93506122d581856020860161303e565b6122de816130a9565b840191505092915050565b60006122f482612ed3565b6122fe8185612f07565b935061230e81856020860161303e565b80840191505092915050565b61232381612fc3565b82525050565b61233281612fe7565b82525050565b6000612345601b83612f12565b91507f476174657761793a2063616e6e6f742073656e6420746f2030783000000000006000830152602082019050919050565b6000612385601c83612f23565b91507f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000830152601c82019050919050565b60006123c5602083612f12565b91507f477561726465643a2063616e6e6f74206164642030783020677561726469616e6000830152602082019050919050565b6000612405602f83612f12565b91507f496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742060008301527f74686520696e697469616c697a657200000000000000000000000000000000006020830152604082019050919050565b600061246b601783612f12565b91507f476174657761793a2062617463682072657665727465640000000000000000006000830152602082019050919050565b60006124ab603283612f12565b91507f476174657761793a206e6f6e6365206973206c6f776572207468616e2063757260008301527f72656e74206163636f756e74206e6f6e636500000000000000000000000000006020830152604082019050919050565b6000612511602583612f12565b91507f476174657761793a2063616e6e6f742073656e642066726f6d2030783020616360008301527f636f756e740000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612577602683612f12565b91507f476174657761793a2063616e6e6f742064656c656761746520656d707479206260008301527f61746368657300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006125dd602883612f12565b91507f476174657761793a2073656e646572206973206e6f7420746865206163636f7560008301527f6e74206f776e65720000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612643601683612f12565b91507f476174657761793a20696e76616c6964206261746368000000000000000000006000830152602082019050919050565b6000612683602683612f12565b91507f477561726465643a2074782e6f726967696e206973206e6f742074686520677560008301527f61726469616e00000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006126e9601f83612f12565b91507f477561726465643a20677561726469616e20646f65736e2774206578697374006000830152602082019050919050565b6000612729602383612f12565b91507f476174657761793a206261746368207472616e73616374696f6e20726576657260008301527f74656400000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061278f601e83612f12565b91507f536166654d6174684c69623a206164646974696f6e206f766572666c6f7700006000830152602082019050919050565b60006127cf602083612f12565b91507f477561726465643a20677561726469616e20616c7265616479206578697374736000830152602082019050919050565b600061280f602083612f12565b91507f476174657761793a2063616e6e6f742073656e6420656d7074792062617463686000830152602082019050919050565b600061284f601b83612f12565b91507f477561726465643a2063616e6e6f742072656d6f76652073656c6600000000006000830152602082019050919050565b600061288f601d83612f12565b91507f476174657761793a20616c6c20626174636865732072657665727465640000006000830152602082019050919050565b6128cb81612f9a565b82525050565b6128e26128dd82612f9a565b61309f565b82525050565b6128f181612fa4565b82525050565b60006129038287612206565b60148201915061291382866128d1565b602082019150612923828561221d565b915061292f82846122e9565b915081905095945050505050565b60006129498288612206565b60148201915061295982876128d1565b602082019150612969828661221d565b915061297582856122e9565b915061298182846128d1565b6020820191508190509695505050505050565b60006129a082846122e9565b915081905092915050565b60006129b782866122e9565b91506129c38285612206565b6014820191506129d38284612206565b601482019150819050949350505050565b60006129f082856122e9565b91506129fc82846122e9565b91508190509392505050565b6000612a1382612378565b9150612a1f8284612299565b60208201915081905092915050565b6000612a3a82876128d1565b602082019150612a4a8286612206565b601482019150612a5a8285612299565b602082019150612a6a82846122e9565b915081905095945050505050565b6000602082019050612a8d60008301846121d9565b92915050565b6000604082019050612aa860008301856121d9565b612ab560208301846121e8565b9392505050565b6000606082019050612ad160008301866121d9565b8181036020830152612ae381856122b0565b9050612af2604083018461227b565b949350505050565b6000604082019050612b0f60008301856121e8565b612b1c60208301846121e8565b9392505050565b6000602082019050612b38600083018461227b565b92915050565b6000602082019050612b53600083018461228a565b92915050565b6000608082019050612b6e600083018761228a565b612b7b60208301866128e8565b612b88604083018561228a565b612b95606083018461228a565b95945050505050565b6000602082019050612bb3600083018461231a565b92915050565b6000602082019050612bce6000830184612329565b92915050565b60006020820190508181036000830152612bed81612338565b9050919050565b60006020820190508181036000830152612c0d816123b8565b9050919050565b60006020820190508181036000830152612c2d816123f8565b9050919050565b60006020820190508181036000830152612c4d8161245e565b9050919050565b60006020820190508181036000830152612c6d8161249e565b9050919050565b60006020820190508181036000830152612c8d81612504565b9050919050565b60006020820190508181036000830152612cad8161256a565b9050919050565b60006020820190508181036000830152612ccd816125d0565b9050919050565b60006020820190508181036000830152612ced81612636565b9050919050565b60006020820190508181036000830152612d0d81612676565b9050919050565b60006020820190508181036000830152612d2d816126dc565b9050919050565b60006020820190508181036000830152612d4d8161271c565b9050919050565b60006020820190508181036000830152612d6d81612782565b9050919050565b60006020820190508181036000830152612d8d816127c2565b9050919050565b60006020820190508181036000830152612dad81612802565b9050919050565b60006020820190508181036000830152612dcd81612842565b9050919050565b60006020820190508181036000830152612ded81612882565b9050919050565b6000602082019050612e0960008301846128c2565b92915050565b6000604051905081810181811067ffffffffffffffff82111715612e3257600080fd5b8060405250919050565b600067ffffffffffffffff821115612e5357600080fd5b602082029050602081019050919050565b600067ffffffffffffffff821115612e7b57600080fd5b602082029050602081019050919050565b600067ffffffffffffffff821115612ea357600080fd5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000612f3982612f7a565b9050919050565b60008115159050919050565b6000819050919050565b6000612f6182612f2e565b9050919050565b6000612f7382612f2e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612fbc8261300b565b9050919050565b6000612fce82612fd5565b9050919050565b6000612fe082612f7a565b9050919050565b6000612ff282612ff9565b9050919050565b600061300482612f7a565b9050919050565b60006130168261301d565b9050919050565b600061302882612f7a565b9050919050565b82818337600083830152505050565b60005b8381101561305c578082015181840152602081019050613041565b8381111561306b576000848401525b50505050565b600061307c8261308d565b9050919050565b6000819050919050565b6000613098826130ba565b9050919050565b6000819050919050565b6000601f19601f8301169050919050565b60008160601b9050919050565b6130d081612f2e565b81146130db57600080fd5b50565b6130e781612f40565b81146130f257600080fd5b50565b6130fe81612f4c565b811461310957600080fd5b50565b61311581612f56565b811461312057600080fd5b50565b61312c81612f68565b811461313757600080fd5b50565b61314381612f9a565b811461314e57600080fd5b5056fea164736f6c634300060c000a", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c806387d31313116100b8578063b5021b161161007c578063b5021b1614610349578063d0f710d614610365578063d2c83b9a14610395578063d305d0db146103b3578063d9f13021146103cf578063f92c5f7c146103eb57610142565b806387d31313146102b95780639a8a0592146102d75780639f255626146102f5578063a526d83b14610311578063ac2a08cd1461032d57610142565b8063538901341161010a57806353890134146101e95780635afaa7bb14610205578063714041561461022157806373e5a13f1461023d57806376db2b4c1461026d578063867519c61461029d57610142565b80630c68ba2114610147578063231badaf14610177578063371aa71a14610193578063392e53cd146101af578063485cc955146101cd575b600080fd5b610161600480360381019061015c9190611e5b565b61041b565b60405161016e9190612b23565b60405180910390f35b610191600480360381019061018c9190611f03565b610471565b005b6101ad60048036038101906101a89190611f03565b61056c565b005b6101b761060c565b6040516101c49190612b23565b60405180910390f35b6101e760048036038101906101e29190612103565b610662565b005b61020360048036038101906101fe9190611fc2565b6107fa565b005b61021f600480360381019061021a919061202e565b610894565b005b61023b60048036038101906102369190611e5b565b610a6c565b005b61025760048036038101906102529190612180565b610c87565b6040516102649190612b3e565b60405180910390f35b6102876004803603810190610282919061213f565b610cac565b6040516102949190612b3e565b60405180910390f35b6102b760048036038101906102b29190611e84565b610cd6565b005b6102c1610ce7565b6040516102ce9190612bb9565b60405180910390f35b6102df610d0d565b6040516102ec9190612df4565b60405180910390f35b61030f600480360381019061030a9190611fc2565b610d13565b005b61032b60048036038101906103269190611e5b565b610d23565b005b61034760048036038101906103429190611f03565b610dbb565b005b610363600480360381019061035e9190611f03565b610e5b565b005b61037f600480360381019061037a91906120ab565b610f57565b60405161038c9190612b23565b60405180910390f35b61039d610fb0565b6040516103aa9190612b9e565b60405180910390f35b6103cd60048036038101906103c89190611e84565b610fd6565b005b6103e960048036038101906103e4919061202e565b611072565b005b61040560048036038101906104009190611e5b565b61110c565b6040516104129190612df4565b60405180910390f35b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484116104f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e990612c54565b60405180910390fd5b60006105128261050488888888611168565b6111cb90919063ffffffff16565b905084600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061056486828686611286565b505050505050565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166105f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ef90612cf4565b60405180910390fd5b6106058585858585610e5b565b5050505050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146106f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e790612c14565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060606107be816116f1565b507f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e6326040516107ee9190612a78565b60405180910390a15050565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610886576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087d90612cf4565b60405180910390fd5b6108908282610d13565b5050565b60008251116108d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cf90612c94565b60405180910390fd5b600080600090505b8351811015610a265760003073ffffffffffffffffffffffffffffffffffffffff1685838151811061090e57fe5b60200260200101516040516109239190612994565b6000604051808303816000865af19150503d8060008114610960576040519150601f19603f3d011682016040523d82523d6000602084013e610965565b606091505b5050905083156109b457806109af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a690612c34565b60405180910390fd5b6109ca565b8080156109bf575082155b156109c957600192505b5b7f361c14722cc344132c73396113f7164232448b09c544a149f09048648b43d872338684815181106109f857fe5b602002602001015183604051610a1093929190612abc565b60405180910390a15080806001019150506108e0565b5080610a67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5e90612dd4565b60405180910390fd5b505050565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aef90612cf4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415610b67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5e90612db4565b60405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610bf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bea90612d14565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fee943cdb81826d5909c559c6b1ae6908fcaf2dbc16c4b730346736b486283e8b3282604051610c7c929190612a93565b60405180910390a150565b6000610ca58260000151836020015184604001518560600151611168565b9050919050565b6000610ccf82600001518360200151846040015185606001518660800151611749565b9050919050565b610ce283338484611286565b505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b610d1f33338484611286565b5050565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da690612cf4565b60405180910390fd5b610db8816117af565b50565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610e47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3e90612cf4565b60405180910390fd5b610e548585858585610471565b5050505050565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548411610edc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed390612c54565b60405180910390fd5b6000610efd82610eef888888883a611749565b6111cb90919063ffffffff16565b905084600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f4f86828686611286565b505050505050565b6000610fa78484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611940565b90509392505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105990612cf4565b60405180910390fd5b61106d838383610cd6565b505050565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166110fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f590612cf4565b60405180910390fd5b6111088282610894565b5050565b60006111616001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ae90919063ffffffff16565b9050919050565b60006111c17f6848d0622081db2451400280dead7a739a080cb93852607c381af11e289769b286868661119a87611a03565b6040516020016111ad94939291906128f7565b604051602081830303815290604052611a66565b9050949350505050565b6000806000905060418351141561127c5760008060006020860151925060408601519150606086015160001a9050601b8160ff16101561120c57601b810190505b601b8160ff1614806112215750601c8160ff16145b1561127857600187828585604051600081526020016040526040516112499493929190612b59565b6020604051602081039080840390855afa15801561126b573d6000803e3d6000fd5b5050506020604051035193505b5050505b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156112f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ed90612c74565b60405180910390fd5b600082511161133a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133190612d94565b60405180910390fd5b815181511461137e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137590612cd4565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461155257600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb890d3f85856040518363ffffffff1660e01b815260040161140e929190612afa565b60206040518083038186803b15801561142657600080fd5b505afa15801561143a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145e9190612082565b806115125750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb890d3f85856040518363ffffffff1660e01b81526004016114c1929190612afa565b60206040518083038186803b1580156114d957600080fd5b505afa1580156114ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115119190612082565b5b611551576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154890612cb4565b60405180910390fd5b5b600080600090505b82518110156116e957600073ffffffffffffffffffffffffffffffffffffffff1684828151811061158757fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614156115e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dd90612bd4565b60405180910390fd5b8381815181106115f257fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1683828151811061161c57fe5b60200260200101518787604051602001611638939291906129ab565b6040516020818303038152906040526040516116549190612994565b6000604051808303816000865af19150503d8060008114611691576040519150601f19603f3d011682016040523d82523d6000602084013e611696565b606091505b505080925050816116dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d390612d34565b60405180910390fd5b808060010191505061155a565b505050505050565b60008151141561170957611704326117af565b611746565b60008151905060005b818110156117435761173683828151811061172957fe5b60200260200101516117af565b8080600101915050611712565b50505b50565b60006117a47f6f4e1b2b1e5e49f4269e19e16e67a00cb0a796d96d30be3e4b540d3732e8bcad87878761177b88611a03565b8760405160200161179095949392919061293d565b604051602081830303815290604052611a66565b905095945050505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561181f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181690612bf4565b60405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156118ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a390612d74565b60405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fbc3292102fa77e083913064b282926717cdfaede4d35f553d66366c0a3da755a3282604051611935929190612a93565b60405180910390a150565b60008061195683856111cb90919063ffffffff16565b9050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b6000808284019050838110156119f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f090612d54565b60405180910390fd5b8091505092915050565b60608060008351905060005b81811015611a5b5782858281518110611a2457fe5b6020026020010151604051602001611a3d9291906129e4565b60405160208183030381529060405292508080600101915050611a0f565b508192505050919050565b6000611a9f600154308585604051602001611a849493929190612a2e565b60405160208183030381529060405280519060200120611aa7565b905092915050565b600081604051602001611aba9190612a08565b604051602081830303815290604052805190602001209050919050565b600081359050611ae6816130c7565b92915050565b600082601f830112611afd57600080fd5b8135611b10611b0b82612e3c565b612e0f565b91508181835260208401935060208101905083856020840282011115611b3557600080fd5b60005b83811015611b655781611b4b8882611ad7565b845260208401935060208301925050600181019050611b38565b5050505092915050565b600082601f830112611b8057600080fd5b8135611b93611b8e82612e64565b612e0f565b9150818183526020840193506020810190508360005b83811015611bd95781358601611bbf8882611c6c565b845260208401935060208301925050600181019050611ba9565b5050505092915050565b600081359050611bf2816130de565b92915050565b600081519050611c07816130de565b92915050565b600081359050611c1c816130f5565b92915050565b60008083601f840112611c3457600080fd5b8235905067ffffffffffffffff811115611c4d57600080fd5b602083019150836001820283011115611c6557600080fd5b9250929050565b600082601f830112611c7d57600080fd5b8135611c90611c8b82612e8c565b612e0f565b91508082526020830160208301858383011115611cac57600080fd5b611cb783828461302f565b50505092915050565b600081359050611ccf8161310c565b92915050565b600081359050611ce481613123565b92915050565b600060a08284031215611cfc57600080fd5b611d0660a0612e0f565b90506000611d1684828501611ad7565b6000830152506020611d2a84828501611e46565b602083015250604082013567ffffffffffffffff811115611d4a57600080fd5b611d5684828501611aec565b604083015250606082013567ffffffffffffffff811115611d7657600080fd5b611d8284828501611b6f565b6060830152506080611d9684828501611e46565b60808301525092915050565b600060808284031215611db457600080fd5b611dbe6080612e0f565b90506000611dce84828501611ad7565b6000830152506020611de284828501611e46565b602083015250604082013567ffffffffffffffff811115611e0257600080fd5b611e0e84828501611aec565b604083015250606082013567ffffffffffffffff811115611e2e57600080fd5b611e3a84828501611b6f565b60608301525092915050565b600081359050611e558161313a565b92915050565b600060208284031215611e6d57600080fd5b6000611e7b84828501611ad7565b91505092915050565b600080600060608486031215611e9957600080fd5b6000611ea786828701611ad7565b935050602084013567ffffffffffffffff811115611ec457600080fd5b611ed086828701611aec565b925050604084013567ffffffffffffffff811115611eed57600080fd5b611ef986828701611b6f565b9150509250925092565b600080600080600060a08688031215611f1b57600080fd5b6000611f2988828901611ad7565b9550506020611f3a88828901611e46565b945050604086013567ffffffffffffffff811115611f5757600080fd5b611f6388828901611aec565b935050606086013567ffffffffffffffff811115611f8057600080fd5b611f8c88828901611b6f565b925050608086013567ffffffffffffffff811115611fa957600080fd5b611fb588828901611c6c565b9150509295509295909350565b60008060408385031215611fd557600080fd5b600083013567ffffffffffffffff811115611fef57600080fd5b611ffb85828601611aec565b925050602083013567ffffffffffffffff81111561201857600080fd5b61202485828601611b6f565b9150509250929050565b6000806040838503121561204157600080fd5b600083013567ffffffffffffffff81111561205b57600080fd5b61206785828601611b6f565b925050602061207885828601611be3565b9150509250929050565b60006020828403121561209457600080fd5b60006120a284828501611bf8565b91505092915050565b6000806000604084860312156120c057600080fd5b60006120ce86828701611c0d565b935050602084013567ffffffffffffffff8111156120eb57600080fd5b6120f786828701611c22565b92509250509250925092565b6000806040838503121561211657600080fd5b600061212485828601611cc0565b925050602061213585828601611cd5565b9150509250929050565b60006020828403121561215157600080fd5b600082013567ffffffffffffffff81111561216b57600080fd5b61217784828501611cea565b91505092915050565b60006020828403121561219257600080fd5b600082013567ffffffffffffffff8111156121ac57600080fd5b6121b884828501611da2565b91505092915050565b60006121cd83836121f7565b60208301905092915050565b6121e281612fb1565b82525050565b6121f181612f2e565b82525050565b61220081612f2e565b82525050565b61221761221282612f2e565b613071565b82525050565b600061222882612ec8565b6122328185612eeb565b935061223d83612eb8565b8060005b8381101561226e57815161225588826121c1565b975061226083612ede565b925050600181019050612241565b5085935050505092915050565b61228481612f40565b82525050565b61229381612f4c565b82525050565b6122aa6122a582612f4c565b613083565b82525050565b60006122bb82612ed3565b6122c58185612ef6565b93506122d581856020860161303e565b6122de816130a9565b840191505092915050565b60006122f482612ed3565b6122fe8185612f07565b935061230e81856020860161303e565b80840191505092915050565b61232381612fc3565b82525050565b61233281612fe7565b82525050565b6000612345601b83612f12565b91507f476174657761793a2063616e6e6f742073656e6420746f2030783000000000006000830152602082019050919050565b6000612385601c83612f23565b91507f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000830152601c82019050919050565b60006123c5602083612f12565b91507f477561726465643a2063616e6e6f74206164642030783020677561726469616e6000830152602082019050919050565b6000612405602f83612f12565b91507f496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742060008301527f74686520696e697469616c697a657200000000000000000000000000000000006020830152604082019050919050565b600061246b601783612f12565b91507f476174657761793a2062617463682072657665727465640000000000000000006000830152602082019050919050565b60006124ab603283612f12565b91507f476174657761793a206e6f6e6365206973206c6f776572207468616e2063757260008301527f72656e74206163636f756e74206e6f6e636500000000000000000000000000006020830152604082019050919050565b6000612511602583612f12565b91507f476174657761793a2063616e6e6f742073656e642066726f6d2030783020616360008301527f636f756e740000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612577602683612f12565b91507f476174657761793a2063616e6e6f742064656c656761746520656d707479206260008301527f61746368657300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006125dd602883612f12565b91507f476174657761793a2073656e646572206973206e6f7420746865206163636f7560008301527f6e74206f776e65720000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612643601683612f12565b91507f476174657761793a20696e76616c6964206261746368000000000000000000006000830152602082019050919050565b6000612683602683612f12565b91507f477561726465643a2074782e6f726967696e206973206e6f742074686520677560008301527f61726469616e00000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006126e9601f83612f12565b91507f477561726465643a20677561726469616e20646f65736e2774206578697374006000830152602082019050919050565b6000612729602383612f12565b91507f476174657761793a206261746368207472616e73616374696f6e20726576657260008301527f74656400000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061278f601e83612f12565b91507f536166654d6174684c69623a206164646974696f6e206f766572666c6f7700006000830152602082019050919050565b60006127cf602083612f12565b91507f477561726465643a20677561726469616e20616c7265616479206578697374736000830152602082019050919050565b600061280f602083612f12565b91507f476174657761793a2063616e6e6f742073656e6420656d7074792062617463686000830152602082019050919050565b600061284f601b83612f12565b91507f477561726465643a2063616e6e6f742072656d6f76652073656c6600000000006000830152602082019050919050565b600061288f601d83612f12565b91507f476174657761793a20616c6c20626174636865732072657665727465640000006000830152602082019050919050565b6128cb81612f9a565b82525050565b6128e26128dd82612f9a565b61309f565b82525050565b6128f181612fa4565b82525050565b60006129038287612206565b60148201915061291382866128d1565b602082019150612923828561221d565b915061292f82846122e9565b915081905095945050505050565b60006129498288612206565b60148201915061295982876128d1565b602082019150612969828661221d565b915061297582856122e9565b915061298182846128d1565b6020820191508190509695505050505050565b60006129a082846122e9565b915081905092915050565b60006129b782866122e9565b91506129c38285612206565b6014820191506129d38284612206565b601482019150819050949350505050565b60006129f082856122e9565b91506129fc82846122e9565b91508190509392505050565b6000612a1382612378565b9150612a1f8284612299565b60208201915081905092915050565b6000612a3a82876128d1565b602082019150612a4a8286612206565b601482019150612a5a8285612299565b602082019150612a6a82846122e9565b915081905095945050505050565b6000602082019050612a8d60008301846121d9565b92915050565b6000604082019050612aa860008301856121d9565b612ab560208301846121e8565b9392505050565b6000606082019050612ad160008301866121d9565b8181036020830152612ae381856122b0565b9050612af2604083018461227b565b949350505050565b6000604082019050612b0f60008301856121e8565b612b1c60208301846121e8565b9392505050565b6000602082019050612b38600083018461227b565b92915050565b6000602082019050612b53600083018461228a565b92915050565b6000608082019050612b6e600083018761228a565b612b7b60208301866128e8565b612b88604083018561228a565b612b95606083018461228a565b95945050505050565b6000602082019050612bb3600083018461231a565b92915050565b6000602082019050612bce6000830184612329565b92915050565b60006020820190508181036000830152612bed81612338565b9050919050565b60006020820190508181036000830152612c0d816123b8565b9050919050565b60006020820190508181036000830152612c2d816123f8565b9050919050565b60006020820190508181036000830152612c4d8161245e565b9050919050565b60006020820190508181036000830152612c6d8161249e565b9050919050565b60006020820190508181036000830152612c8d81612504565b9050919050565b60006020820190508181036000830152612cad8161256a565b9050919050565b60006020820190508181036000830152612ccd816125d0565b9050919050565b60006020820190508181036000830152612ced81612636565b9050919050565b60006020820190508181036000830152612d0d81612676565b9050919050565b60006020820190508181036000830152612d2d816126dc565b9050919050565b60006020820190508181036000830152612d4d8161271c565b9050919050565b60006020820190508181036000830152612d6d81612782565b9050919050565b60006020820190508181036000830152612d8d816127c2565b9050919050565b60006020820190508181036000830152612dad81612802565b9050919050565b60006020820190508181036000830152612dcd81612842565b9050919050565b60006020820190508181036000830152612ded81612882565b9050919050565b6000602082019050612e0960008301846128c2565b92915050565b6000604051905081810181811067ffffffffffffffff82111715612e3257600080fd5b8060405250919050565b600067ffffffffffffffff821115612e5357600080fd5b602082029050602081019050919050565b600067ffffffffffffffff821115612e7b57600080fd5b602082029050602081019050919050565b600067ffffffffffffffff821115612ea357600080fd5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000612f3982612f7a565b9050919050565b60008115159050919050565b6000819050919050565b6000612f6182612f2e565b9050919050565b6000612f7382612f2e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612fbc8261300b565b9050919050565b6000612fce82612fd5565b9050919050565b6000612fe082612f7a565b9050919050565b6000612ff282612ff9565b9050919050565b600061300482612f7a565b9050919050565b60006130168261301d565b9050919050565b600061302882612f7a565b9050919050565b82818337600083830152505050565b60005b8381101561305c578082015181840152602081019050613041565b8381111561306b576000848401525b50505050565b600061307c8261308d565b9050919050565b6000819050919050565b6000613098826130ba565b9050919050565b6000819050919050565b6000601f19601f8301169050919050565b60008160601b9050919050565b6130d081612f2e565b81146130db57600080fd5b50565b6130e781612f40565b81146130f257600080fd5b50565b6130fe81612f4c565b811461310957600080fd5b50565b61311581612f56565b811461312057600080fd5b50565b61312c81612f68565b811461313757600080fd5b50565b61314381612f9a565b811461314e57600080fd5b5056fea164736f6c634300060c000a", + "bytecode": "0x60806040523480156200001157600080fd5b506200002e67bcc9be562f8a4b0a60c01b6200016160201b60201c565b6200004a67579ae7209daca85260c01b6200016160201b60201c565b326000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000a6676b19898ae2f7725060c01b6200016460201b60201c565b620000c2677c2d0c907f0deddc60c01b6200016460201b60201c565b620000de67f0d1a438b0305bb160c01b6200016460201b60201c565b6000620000fc6737bb5abaf3e7d9d360c01b6200016460201b60201c565b4690506200011b676f86a9c0c67bb39a60c01b6200016460201b60201c565b80600181905550506200013f67e6ad6dd6ee73072860c01b6200016760201b60201c565b6200015b674ac8a755b2af6d3f60c01b6200016a60201b60201c565b6200016d565b50565b50565b50565b50565b614ced806200017d6000396000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c806387d313131161011a578063bccb31c6116100ad578063d2c83b9a1161007c578063d2c83b9a14610619578063d305d0db14610637578063d84fa10c14610653578063d9f1302114610683578063f92c5f7c1461069f57610206565b8063bccb31c614610581578063bcd483641461059d578063c4543305146105b9578063d0f710d6146105e957610206565b8063a526d83b116100e9578063a526d83b146104fd578063ac2a08cd14610519578063ae1a7ece14610535578063b5021b161461056557610206565b806387d31313146104755780639a8a0592146104935780639f255626146104b1578063a3561e69146104cd57610206565b80633e260b131161019d5780635afaa7bb1161016c5780635afaa7bb146103c157806371404156146103dd57806373e5a13f146103f957806376db2b4c14610429578063867519c61461045957610206565b80633e260b131461033d578063485cc9551461035957806353890134146103755780635a06fb5f1461039157610206565b80632b49e989116101d95780632b49e989146102a35780632c4bbae6146102d3578063371aa71a14610303578063392e53cd1461031f57610206565b80630c68ba211461020b578063152ec1bc1461023b578063231badaf1461025757806329fbd95714610273575b600080fd5b6102256004803603810190610220919061397e565b6106cf565b604051610232919061466f565b60405180910390f35b61025560048036038101906102509190613c26565b610761565b005b610271600480360381019061026c9190613a26565b610764565b005b61028d60048036038101906102889190613c26565b610927565b60405161029a919061466f565b60405180910390f35b6102bd60048036038101906102b89190613c26565b610932565b6040516102ca919061466f565b60405180910390f35b6102ed60048036038101906102e89190613c26565b61093d565b6040516102fa919061466f565b60405180910390f35b61031d60048036038101906103189190613a26565b610944565b005b610327610ac0565b604051610334919061466f565b60405180910390f35b61035760048036038101906103529190613c26565b610b53565b005b610373600480360381019061036e9190613c4f565b610b56565b005b61038f600480360381019061038a9190613ae5565b610e56565b005b6103ab60048036038101906103a69190613c26565b610fcc565b6040516103b8919061466f565b60405180910390f35b6103db60048036038101906103d69190613b51565b610fd3565b005b6103f760048036038101906103f2919061397e565b611419565b005b610413600480360381019061040e9190613ccc565b6117c4565b604051610420919061468a565b60405180910390f35b610443600480360381019061043e9190613c8b565b611825565b604051610450919061468a565b60405180910390f35b610473600480360381019061046e91906139a7565b61188b565b005b61047d6118d8565b60405161048a9190614705565b60405180910390f35b61049b6118fe565b6040516104a89190614940565b60405180910390f35b6104cb60048036038101906104c69190613ae5565b611904565b005b6104e760048036038101906104e29190613c26565b611950565b6040516104f4919061466f565b60405180910390f35b6105176004803603810190610512919061397e565b611957565b005b610533600480360381019061052e9190613a26565b611acb565b005b61054f600480360381019061054a9190613c26565b611c47565b60405161055c919061466f565b60405180910390f35b61057f600480360381019061057a9190613a26565b611c52565b005b61059b60048036038101906105969190613c26565b611e16565b005b6105b760048036038101906105b29190613c26565b611e19565b005b6105d360048036038101906105ce9190613c26565b611e1c565b6040516105e0919061466f565b60405180910390f35b61060360048036038101906105fe9190613bce565b611e27565b604051610610919061466f565b60405180910390f35b610621611ebc565b60405161062e91906146ea565b60405180910390f35b610651600480360381019061064c91906139a7565b611ee2565b005b61066d60048036038101906106689190613c26565b61205a565b60405161067a919061466f565b60405180910390f35b61069d60048036038101906106989190613b51565b612061565b005b6106b960048036038101906106b4919061397e565b6121d7565b6040516106c69190614940565b60405180910390f35b60006106e5677ab52c65f999e01f60c01b611e16565b6106f96710268b7b424a1bd560c01b611e16565b61070d6713a157f311059a7b60c01b611e16565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b50565b610778672cb965356e53b62460c01b610761565b61078c6726d32791746dc3e760c01b610761565b6107a06716b60443ee3d484960c01b610761565b6107b467cec972bd94c2448360c01b610761565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548411610835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c906147a0565b60405180910390fd5b610849676885a737ccda6b5b60c01b610761565b61085d67b7ec0f056156fc5760c01b610761565b61087167fa7e965b6a90871e60c01b610761565b6000610891826108838888888861226f565b61230e90919063ffffffff16565b90506108a767598623896aa1bd8160c01b610761565b84600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108ff67c3db6fc8702a504560c01b610761565b61091367fbd88fe633d4bf3260c01b610761565b61091f86828686612616565b505050505050565b600060019050919050565b600060019050919050565b6000919050565b61095867f80918793645654b60c01b610761565b61096c67e0600b94c13d066760c01b611e16565b6109806755e8cedcdd449e2360c01b611e16565b61099467ab821ba7fedab67160c01b611e16565b6109a867c540fbd78e0e2a4960c01b611e16565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2b90614840565b60405180910390fd5b610a4867d014260b312542b460c01b611e16565b610a5c674e25985d1c99d1f260c01b611e16565b610a7067d9e2558f3071e89160c01b610761565b610a84673490315f4c7453b860c01b610761565b610a98675952ab5ca3321cf560c01b610761565b610aac679cb6b3466f5d6d7c60c01b610761565b610ab98585858585611c52565b5050505050565b6000610ad667e29fe2f351ca6b2760c01b610b53565b610aea676f5dd3f08b97747760c01b610b53565b610afe673a9488d62818322a60c01b610b53565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b50565b610b6a673697766a57f7a80b60c01b610761565b610b7e67d2ba19feb39e0b7f60c01b610b53565b610b92670c5ad53cdb9edd1560c01b610b53565b610ba667b6b588d2ebb9ae6960c01b610b53565b610bba67c4ec9a90a885875260c01b610b53565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614610c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3f90614760565b60405180910390fd5b610c5c67c3785ba1534db95460c01b610b53565b610c7067e4202927591248ef60c01b610b53565b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cc567531cfa2817fbdc8660c01b610b53565b610cd967bb0a8b65334dd2c460c01b610761565b610ced67b92403dbe97ab63260c01b610761565b610d01671b78f114fbb0b72060c01b610761565b81600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d5667b22295775e3c649e60c01b610761565b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610dab6730acc016638bd43a60c01b610761565b610dbf67c9a34505f7a2971960c01b610761565b6060610dd56739403c970cf16b0b60c01b610761565b610de9673890f2fd064539ca60c01b610761565b610df281612d63565b50610e076701520f419008b58e60c01b610b53565b610e1b6775364c04848b013b60c01b610b53565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e632604051610e4a91906145c4565b60405180910390a15050565b610e6a6706786e491e3250c160c01b610761565b610e7e67e0600b94c13d066760c01b611e16565b610e926755e8cedcdd449e2360c01b611e16565b610ea667ab821ba7fedab67160c01b611e16565b610eba67c540fbd78e0e2a4960c01b611e16565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3d90614840565b60405180910390fd5b610f5a67d014260b312542b460c01b611e16565b610f6e674e25985d1c99d1f260c01b611e16565b610f8267aed871277ddbb64c60c01b610761565b610f96671ec4a771e62fadf860c01b610761565b610faa67f2c24f3ab45357f160c01b610761565b610fbe674a9776de3de1749a60c01b610761565b610fc88282611904565b5050565b6000919050565b610fe76727e530a65c18cf7760c01b610761565b610ffb673479b3b9839be87b60c01b610761565b61100f67ddf24acef953714a60c01b610761565b61102367bb03e151ac9c27de60c01b610761565b6000825111611067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105e906147e0565b60405180910390fd5b61107b67fbecfcb237fc946360c01b610761565b61108f67e27ec692e947323360c01b610761565b6110a367f14d14fac430da9560c01b610761565b60006110b96705f410059ee1a0f960c01b610761565b6110cd6738b1b2fe2e9d053a60c01b610761565b60005b835181101561135b576110ed67c75e73eb292eb02a60c01b610761565b61110167b78b62351a90d44360c01b610761565b60003073ffffffffffffffffffffffffffffffffffffffff1685838151811061112657fe5b602002602001015160405161113b91906144e0565b6000604051808303816000865af19150503d8060008114611178576040519150601f19603f3d011682016040523d82523d6000602084013e61117d565b606091505b5050905061119567736c6d76b82a9add60c01b610761565b6111a967d2553c434ed3db3260c01b610761565b8315611258576111c367deebfac5c773826c60c01b610761565b6111d7679fb439c60501b49f60c01b610761565b6111eb67b3057f4bca04838360c01b610761565b6111ff6730ecce8cedfe20fe60c01b610761565b8061123f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123690614780565b60405180910390fd5b61125367d86dd5b82a9e593660c01b610761565b6112d7565b61126c67346fc3cb5711a6b460c01b610761565b611280673f97de6e927ba93d60c01b610761565b80801561128b575082155b156112c1576112a46771ca7e173b61f90360c01b610761565b6112b867da44f1125610870660c01b610761565b600192506112d6565b6112d5675690ff7de2cfd4dd60c01b610761565b5b5b6112eb677421f9109195b65260c01b610761565b6112ff6701974b34eaa9b13c60c01b610761565b7f361c14722cc344132c73396113f7164232448b09c544a149f09048648b43d8723386848151811061132d57fe5b60200260200101518360405161134593929190614608565b60405180910390a15080806001019150506110d0565b506113706784acc65a9eec5b5f60c01b610761565b61138467c73482fe07164bae60c01b610761565b806114005761139d67504c1c7b7326af2c60c01b610761565b6113b1670e7869282d8fda6f60c01b610761565b6113c56720080506722517aa60c01b610761565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f790614920565b60405180910390fd5b611414673bc70d3d4324861e60c01b610761565b505050565b61142d6747dd6d4e27a092d260c01b611e16565b61144167e0600b94c13d066760c01b611e16565b6114556755e8cedcdd449e2360c01b611e16565b61146967ab821ba7fedab67160c01b611e16565b61147d67c540fbd78e0e2a4960c01b611e16565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150090614840565b60405180910390fd5b61151d67d014260b312542b460c01b611e16565b611531674e25985d1c99d1f260c01b611e16565b61154567736984febec5fd2560c01b611e16565b61155967cbb923c66996310360c01b611e16565b61156d672c114aff1103564b60c01b611e16565b61158167a76a63e34be2bddb60c01b611e16565b61159567a220bc889ca09d2360c01b611e16565b8073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415611604576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fb90614900565b60405180910390fd5b611618679467d7af09c5944d60c01b611e16565b61162c67c28a58b1b15ad6de60c01b611e16565b61164067c70b0fecc7c6d3b160c01b611e16565b61165467e7892f9392d41a6760c01b611e16565b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166116e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d790614860565b60405180910390fd5b6116f4675a0de441d13969aa60c01b611e16565b611708674e473b0a29064fba60c01b611e16565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061177467e398e5606400274660c01b611e16565b6117886738c3bd156a3471c260c01b611e16565b7fee943cdb81826d5909c559c6b1ae6908fcaf2dbc16c4b730346736b486283e8b32826040516117b99291906145df565b60405180910390a150565b60006117da67b71cbc54b79642e460c01b610761565b6117ee671d727cf6c847c49660c01b610761565b61180267b20bfeafcd33afb660c01b610761565b61181e826000015183602001518460400151856060015161226f565b9050919050565b600061183b67b43ba9ef81a9b3fd60c01b610761565b61184f678dcdeb463de7515c60c01b610761565b6118636789a48b615adada4560c01b610761565b61188482600001518360200151846040015185606001518660800151612ebf565b9050919050565b61189f6790077d401774f15b60c01b610761565b6118b367dd8df7e804a647ab60c01b610761565b6118c767e91647c2d11d34f260c01b610761565b6118d383338484612616565b505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b61191867305e7d085ffadf5d60c01b610761565b61192c6754042eeb653cce4660c01b610761565b6119406774bf17ed00241c8560c01b610761565b61194c33338484612616565b5050565b6000919050565b61196b67c17b66a0b198af7b60c01b611e16565b61197f67e0600b94c13d066760c01b611e16565b6119936755e8cedcdd449e2360c01b611e16565b6119a767ab821ba7fedab67160c01b611e16565b6119bb67c540fbd78e0e2a4960c01b611e16565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3e90614840565b60405180910390fd5b611a5b67d014260b312542b460c01b611e16565b611a6f674e25985d1c99d1f260c01b611e16565b611a8367dfa24a8cc198350160c01b611e16565b611a9767f9907d82cd18ee0760c01b611e16565b611aab67dd37ee49f553c5a760c01b611e16565b611abf679ad66b1d98f77fdf60c01b611e16565b611ac881612f61565b50565b611adf6759a806c25eead63f60c01b610761565b611af367e0600b94c13d066760c01b611e16565b611b076755e8cedcdd449e2360c01b611e16565b611b1b67ab821ba7fedab67160c01b611e16565b611b2f67c540fbd78e0e2a4960c01b611e16565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb290614840565b60405180910390fd5b611bcf67d014260b312542b460c01b611e16565b611be3674e25985d1c99d1f260c01b611e16565b611bf767f9ea7b462cc4eda560c01b610761565b611c0b67d3d3cf6ca514249660c01b610761565b611c1f676ef2cd549351305b60c01b610761565b611c33672b1fcb01af64303060c01b610761565b611c408585858585610764565b5050505050565b600060019050919050565b611c666730a97bcc310e329660c01b610761565b611c7a67592cde26837dac1c60c01b610761565b611c8e67e369c1a0804a314e60c01b610761565b611ca2675e97b82ccfd1adc660c01b610761565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548411611d23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1a906147a0565b60405180910390fd5b611d3767bf862c95cc9f5d2260c01b610761565b611d4b67f9a3395c1202545060c01b610761565b611d5f677beaba84e36d3d4a60c01b610761565b6000611d8082611d72888888883a612ebf565b61230e90919063ffffffff16565b9050611d9667dc568d561866531460c01b610761565b84600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dee6768886f5dc5d732ec60c01b610761565b611e02672e35ca05a06d172160c01b610761565b611e0e86828686612616565b505050505050565b50565b50565b600060019050919050565b6000611e3d670fa739e07c029f9060c01b611e16565b611e5167406100042e7653bd60c01b611e16565b611e656784104632bda8198f60c01b611e16565b611eb38484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506131e2565b90509392505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611ef667313903b59a995d7660c01b610761565b611f0a67e0600b94c13d066760c01b611e16565b611f1e6755e8cedcdd449e2360c01b611e16565b611f3267ab821ba7fedab67160c01b611e16565b611f4667c540fbd78e0e2a4960c01b611e16565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611fd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc990614840565b60405180910390fd5b611fe667d014260b312542b460c01b611e16565b611ffa674e25985d1c99d1f260c01b611e16565b61200e671f7542edd3d74d2f60c01b610761565b612022677f6b1c92b6f5e5a960c01b610761565b61203667cad2aa7c334e8b3b60c01b610761565b61204a6703308feac1e8ee1360c01b610761565b61205583838361188b565b505050565b6000919050565b61207567fb2097e639da463260c01b610761565b61208967e0600b94c13d066760c01b611e16565b61209d6755e8cedcdd449e2360c01b611e16565b6120b167ab821ba7fedab67160c01b611e16565b6120c567c540fbd78e0e2a4960c01b611e16565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214890614840565b60405180910390fd5b61216567d014260b312542b460c01b611e16565b612179674e25985d1c99d1f260c01b611e16565b61218d670a8996d09423e9a560c01b610761565b6121a1674c210d2c1091800160c01b610761565b6121b56793370d1f34f52d6160c01b610761565b6121c967cf247f4dcde0a80d60c01b610761565b6121d38282610fd3565b5050565b60006121ed67905ee8ae82cae5cb60c01b610761565b612201672ee07bb43076d99160c01b610761565b61221567798fd982696fe97360c01b610761565b6122686001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132b590919063ffffffff16565b9050919050565b600061228567d6536873dad1c60260c01b610761565b612299673f091c2291af034760c01b610761565b6122ad676c51c993615d51fc60c01b610761565b6123047f6848d0622081db2451400280dead7a739a080cb93852607c381af11e289769b28686866122dd876133bf565b6040516020016122f09493929190614443565b6040516020818303038152906040526134eb565b9050949350505050565b6000612324670d75db982ec4597160c01b613568565b6123386725c2c60ab754182560c01b613568565b61234c673eb64a254569ed0660c01b613568565b600061236267fb2a2286066e15e460c01b613568565b61237667a440db11ec9e986d60c01b613568565b6041835114156125cf576123946704a5aada48e2763260c01b613568565b6123a8674b98cf1796e5c26660c01b613568565b6123bc67d2dfec7b159385fc60c01b613568565b60006123d26772c2a840621b4aa760c01b613568565b6123e667bfd411e6ba4d07c460c01b613568565b60006123fc67145d23f82764ba9960c01b613568565b61241067acdff958a9c6c5dd60c01b613568565b6000612426673b79e3a80932a6a160c01b613568565b6020860151925060408601519150606086015160001a9050612452679b0cdee01a57ea2f60c01b613568565b612466675dbf88583373227960c01b613568565b601b8160ff1610156124a557612486670dc9a1836eb51c3260c01b613568565b61249a677097d8456a6c3e1560c01b613568565b601b810190506124ba565b6124b96708b39c61216869e760c01b613568565b5b6124ce672ea4d6db7d2138c560c01b613568565b6124e2679ad3f461195a5eee60c01b613568565b601b8160ff16148015612505575061250467a24e972b59dc7d0560c01b61356b565b5b8061252f5750601c8160ff1614801561252e575061252d67934bee4849491d9560c01b61356b565b5b5b156125b257612548676d6a491fc6e072fa60c01b613568565b61255c67aecd1690d1de9f1c60c01b613568565b6001878285856040516000815260200160405260405161257f94939291906146a5565b6020604051602081039080840390855afa1580156125a1573d6000803e3d6000fd5b5050506020604051035193506125c7565b6125c667513fbc3b3a0ad1c060c01b613568565b5b5050506125e4565b6125e36723d6d78de386c96660c01b613568565b5b6125f86707d0c4f11e72cfc960c01b613568565b61260c67b9689b22f403636c60c01b613568565b8091505092915050565b61262a6772b534df044a3e6960c01b610761565b61263e67c402abc06978619960c01b610761565b612652679e09810371489d9f60c01b610761565b612666677e7daf08d9a58adb60c01b610761565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156126d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126cd906147c0565b60405180910390fd5b6126ea670b7cbb883e3651ec60c01b610761565b6126fe67d208ff6d7369e98860c01b610761565b61271267491a5cbad1055d5160c01b610761565b612726679e0ff894c768117960c01b610761565b600082511161276a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612761906148e0565b60405180910390fd5b61277e6745254922d222170960c01b610761565b6127926704e613e382681ef660c01b610761565b6127a6675557331c94961ac660c01b610761565b6127ba676a3e2fb0a667717a60c01b610761565b81518151146127fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f590614820565b60405180910390fd5b61281267f28a31992346aa2c60c01b610761565b612826676f88151307ba5cf160c01b610761565b61283a678b6e6de748ac3b0560c01b610761565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612aae57612881679b783d0da44a769760c01b610761565b612895672afe7fb31679725b60c01b610761565b6128a9675f21c809493b9d9c60c01b610761565b6128bd67c4c99b0c5a4bff8660c01b610761565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb890d3f85856040518363ffffffff1660e01b815260040161291a929190614646565b60206040518083038186803b15801561293257600080fd5b505afa158015612946573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061296a9190613ba5565b8015612986575061298567212d2ce404fd77a760c01b610932565b5b80612a565750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb890d3f85856040518363ffffffff1660e01b81526004016129e9929190614646565b60206040518083038186803b158015612a0157600080fd5b505afa158015612a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a399190613ba5565b8015612a555750612a5467d868be8222351b6f60c01b610932565b5b5b612a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8c90614800565b60405180910390fd5b612aa9670d7297c082be9ec360c01b610761565b612ac3565b612ac2671c02678189e2da5e60c01b610761565b5b612ad767220aa3d0956cdf3860c01b610761565b612aeb672ff29057ca2d5a4960c01b610761565b6000612b0167736a7a13fde31abc60c01b610761565b612b1567ad98f24f057dfa4760c01b610761565b60005b8251811015612d5b57612b35673a43fbce6290f8a460c01b610761565b612b496775aca6a5cf35ff4a60c01b610761565b612b5d67fd57b4ad4a413b6860c01b610761565b600073ffffffffffffffffffffffffffffffffffffffff16848281518110612b8157fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff161415612be0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bd790614720565b60405180910390fd5b612bf46767a6d9c274cadc9c60c01b610761565b612c0867cf1addfe3ca8b2bb60c01b610761565b838181518110612c1457fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16838281518110612c3e57fe5b60200260200101518787604051602001612c5a939291906144f7565b604051602081830303815290604052604051612c7691906144e0565b6000604051808303816000865af19150503d8060008114612cb3576040519150601f19603f3d011682016040523d82523d6000602084013e612cb8565b606091505b505080925050612cd267e11e02c50ac3af5a60c01b610761565b612ce66791115981e7972f5360c01b610761565b612cfa671e9de5dd0811b3c160c01b610761565b81612d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3190614880565b60405180910390fd5b612d4e678f29e428e7b0acbe60c01b610761565b8080600101915050612b18565b505050505050565b612d7767f4de5e8e73d6ad8760c01b611e16565b612d8b67db1ce0981035d84760c01b611e16565b612d9f67e97a0a25809a3f0960c01b611e16565b600081511415612df357612dbd67de11b839232da49160c01b611e16565b612dd167b59bd2ea0c1c89a260c01b611e16565b612de567652fe2786000e62060c01b611e16565b612dee32612f61565b612ebc565b612e0767ad5f6f13dddc2ad960c01b611e16565b612e1b672af46088979bcb2160c01b611e16565b612e2f6796cb81cf0bf6606d60c01b611e16565b600081519050612e49672f4c11881b8dca8c60c01b611e16565b612e5d67cec4e8db5057edad60c01b611e16565b60005b81811015612eb957612e7c671a5cc94c8b734dd960c01b611e16565b612e9067e437d14e98e20b2f60c01b611e16565b612eac838281518110612e9f57fe5b6020026020010151612f61565b8080600101915050612e60565b50505b50565b6000612ed5679ee7bdbf7c6900a460c01b610761565b612ee967f0e928808634a64d60c01b610761565b612efd674075c359d3dd889d60c01b610761565b612f567f6f4e1b2b1e5e49f4269e19e16e67a00cb0a796d96d30be3e4b540d3732e8bcad878787612f2d886133bf565b87604051602001612f42959493929190614489565b6040516020818303038152906040526134eb565b905095945050505050565b612f756703611a9e4063d8ea60c01b611e16565b612f8967ee1baacaa033494260c01b611e16565b612f9d6751e5840de998a97760c01b611e16565b612fb1676f82de74e2e2e03560c01b611e16565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415613021576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161301890614740565b60405180910390fd5b6130356717cb80dba7a8a0ea60c01b611e16565b61304967e2f8fabe2a63d8b660c01b611e16565b61305d677550a657f22d30dc60c01b611e16565b613071673c81d7073dbe6f3060c01b611e16565b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156130fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130f5906148c0565b60405180910390fd5b61311267bc5a1f0994a7f54e60c01b611e16565b613126679a7f014629c7374960c01b611e16565b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061319267d71c83e9f3188e9d60c01b611e16565b6131a667e4bfbd26cb5c77e660c01b611e16565b7fbc3292102fa77e083913064b282926717cdfaede4d35f553d66366c0a3da755a32826040516131d79291906145df565b60405180910390a150565b60006131f867fbe9af14abc78ca860c01b611e16565b61320c67bd3616cf00f8ad2b60c01b611e16565b613220670aad941719c9b69b60c01b611e16565b6000613235838561230e90919063ffffffff16565b905061324b6706f556c4601e7cd060c01b611e16565b61325f67344e7bee2db8345860c01b611e16565b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b60006132cb672797d9bbee8e685760c01b613576565b6132df67e25930aa3032662f60c01b613576565b6132f3673b804ace3fd44ea060c01b613576565b6000828401905061330e67e0d809daafe36a0460c01b613576565b61332267d0d7b021c1a6823260c01b613576565b6133366741f1099b5fa09b9360c01b613576565b83811015613379576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613370906148a0565b60405180910390fd5b61338d6728a352a27e50889560c01b613576565b6133a167f55e5f024a80111c60c01b613576565b6133b567d865abdcb752192460c01b613576565b8091505092915050565b60606133d5673c65cd0d57a86f4160c01b610761565b6133e96787729e023af7ebe860c01b610761565b6133fd673eeba47bfbe297d660c01b610761565b606061341367cde6576faf313c1560c01b610761565b613427670ea3dcc6c000079a60c01b610761565b600083519050613441672040a6450836597360c01b610761565b6134556779cc921107583db360c01b610761565b60005b818110156134b8576134746713ae3bb0a3004f3660c01b610761565b8285828151811061348157fe5b602002602001015160405160200161349a929190614530565b60405160208183030381529060405292508080600101915050613458565b506134cd674b78578d8503215f60c01b610761565b6134e167842cae5512e7a35c60c01b610761565b8192505050919050565b60006135016771b334e2e3162d2e60c01b611e19565b6135156729046581cf97a49460c01b611e19565b613529674f9e67c6b1f334b360c01b611e19565b613560600154308585604051602001613545949392919061457a565b60405160208183030381529060405280519060200120613579565b905092915050565b50565b600060019050919050565b50565b600061358f67f3d1beb9fba5b7be60c01b613568565b6135a3676cd81a1865d6353260c01b613568565b6135b7676810828c21da671e60c01b613568565b816040516020016135c89190614554565b604051602081830303815290604052805190602001209050919050565b6000813590506135f481614c3f565b92915050565b600082601f83011261360b57600080fd5b813561361e61361982614988565b61495b565b9150818183526020840193506020810190508385602084028201111561364357600080fd5b60005b83811015613673578161365988826135e5565b845260208401935060208301925050600181019050613646565b5050505092915050565b600082601f83011261368e57600080fd5b81356136a161369c826149b0565b61495b565b9150818183526020840193506020810190508360005b838110156136e757813586016136cd888261378f565b8452602084019350602083019250506001810190506136b7565b5050505092915050565b60008135905061370081614c56565b92915050565b60008151905061371581614c56565b92915050565b60008135905061372a81614c6d565b92915050565b60008135905061373f81614c84565b92915050565b60008083601f84011261375757600080fd5b8235905067ffffffffffffffff81111561377057600080fd5b60208301915083600182028301111561378857600080fd5b9250929050565b600082601f8301126137a057600080fd5b81356137b36137ae826149d8565b61495b565b915080825260208301602083018583830111156137cf57600080fd5b6137da838284614ba7565b50505092915050565b6000813590506137f281614c9b565b92915050565b60008135905061380781614cb2565b92915050565b600060a0828403121561381f57600080fd5b61382960a061495b565b90506000613839848285016135e5565b600083015250602061384d84828501613969565b602083015250604082013567ffffffffffffffff81111561386d57600080fd5b613879848285016135fa565b604083015250606082013567ffffffffffffffff81111561389957600080fd5b6138a58482850161367d565b60608301525060806138b984828501613969565b60808301525092915050565b6000608082840312156138d757600080fd5b6138e1608061495b565b905060006138f1848285016135e5565b600083015250602061390584828501613969565b602083015250604082013567ffffffffffffffff81111561392557600080fd5b613931848285016135fa565b604083015250606082013567ffffffffffffffff81111561395157600080fd5b61395d8482850161367d565b60608301525092915050565b60008135905061397881614cc9565b92915050565b60006020828403121561399057600080fd5b600061399e848285016135e5565b91505092915050565b6000806000606084860312156139bc57600080fd5b60006139ca868287016135e5565b935050602084013567ffffffffffffffff8111156139e757600080fd5b6139f3868287016135fa565b925050604084013567ffffffffffffffff811115613a1057600080fd5b613a1c8682870161367d565b9150509250925092565b600080600080600060a08688031215613a3e57600080fd5b6000613a4c888289016135e5565b9550506020613a5d88828901613969565b945050604086013567ffffffffffffffff811115613a7a57600080fd5b613a86888289016135fa565b935050606086013567ffffffffffffffff811115613aa357600080fd5b613aaf8882890161367d565b925050608086013567ffffffffffffffff811115613acc57600080fd5b613ad88882890161378f565b9150509295509295909350565b60008060408385031215613af857600080fd5b600083013567ffffffffffffffff811115613b1257600080fd5b613b1e858286016135fa565b925050602083013567ffffffffffffffff811115613b3b57600080fd5b613b478582860161367d565b9150509250929050565b60008060408385031215613b6457600080fd5b600083013567ffffffffffffffff811115613b7e57600080fd5b613b8a8582860161367d565b9250506020613b9b858286016136f1565b9150509250929050565b600060208284031215613bb757600080fd5b6000613bc584828501613706565b91505092915050565b600080600060408486031215613be357600080fd5b6000613bf18682870161371b565b935050602084013567ffffffffffffffff811115613c0e57600080fd5b613c1a86828701613745565b92509250509250925092565b600060208284031215613c3857600080fd5b6000613c4684828501613730565b91505092915050565b60008060408385031215613c6257600080fd5b6000613c70858286016137e3565b9250506020613c81858286016137f8565b9150509250929050565b600060208284031215613c9d57600080fd5b600082013567ffffffffffffffff811115613cb757600080fd5b613cc38482850161380d565b91505092915050565b600060208284031215613cde57600080fd5b600082013567ffffffffffffffff811115613cf857600080fd5b613d04848285016138c5565b91505092915050565b6000613d198383613d43565b60208301905092915050565b613d2e81614b29565b82525050565b613d3d81614a7a565b82525050565b613d4c81614a7a565b82525050565b613d63613d5e82614a7a565b614be9565b82525050565b6000613d7482614a14565b613d7e8185614a37565b9350613d8983614a04565b8060005b83811015613dba578151613da18882613d0d565b9750613dac83614a2a565b925050600181019050613d8d565b5085935050505092915050565b613dd081614a8c565b82525050565b613ddf81614a98565b82525050565b613df6613df182614a98565b614bfb565b82525050565b6000613e0782614a1f565b613e118185614a42565b9350613e21818560208601614bb6565b613e2a81614c21565b840191505092915050565b6000613e4082614a1f565b613e4a8185614a53565b9350613e5a818560208601614bb6565b80840191505092915050565b613e6f81614b3b565b82525050565b613e7e81614b5f565b82525050565b6000613e91601b83614a5e565b91507f476174657761793a2063616e6e6f742073656e6420746f2030783000000000006000830152602082019050919050565b6000613ed1601c83614a6f565b91507f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000830152601c82019050919050565b6000613f11602083614a5e565b91507f477561726465643a2063616e6e6f74206164642030783020677561726469616e6000830152602082019050919050565b6000613f51602f83614a5e565b91507f496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742060008301527f74686520696e697469616c697a657200000000000000000000000000000000006020830152604082019050919050565b6000613fb7601783614a5e565b91507f476174657761793a2062617463682072657665727465640000000000000000006000830152602082019050919050565b6000613ff7603283614a5e565b91507f476174657761793a206e6f6e6365206973206c6f776572207468616e2063757260008301527f72656e74206163636f756e74206e6f6e636500000000000000000000000000006020830152604082019050919050565b600061405d602583614a5e565b91507f476174657761793a2063616e6e6f742073656e642066726f6d2030783020616360008301527f636f756e740000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006140c3602683614a5e565b91507f476174657761793a2063616e6e6f742064656c656761746520656d707479206260008301527f61746368657300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000614129602883614a5e565b91507f476174657761793a2073656e646572206973206e6f7420746865206163636f7560008301527f6e74206f776e65720000000000000000000000000000000000000000000000006020830152604082019050919050565b600061418f601683614a5e565b91507f476174657761793a20696e76616c6964206261746368000000000000000000006000830152602082019050919050565b60006141cf602683614a5e565b91507f477561726465643a2074782e6f726967696e206973206e6f742074686520677560008301527f61726469616e00000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000614235601f83614a5e565b91507f477561726465643a20677561726469616e20646f65736e2774206578697374006000830152602082019050919050565b6000614275602383614a5e565b91507f476174657761793a206261746368207472616e73616374696f6e20726576657260008301527f74656400000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006142db601e83614a5e565b91507f536166654d6174684c69623a206164646974696f6e206f766572666c6f7700006000830152602082019050919050565b600061431b602083614a5e565b91507f477561726465643a20677561726469616e20616c7265616479206578697374736000830152602082019050919050565b600061435b602083614a5e565b91507f476174657761793a2063616e6e6f742073656e6420656d7074792062617463686000830152602082019050919050565b600061439b601b83614a5e565b91507f477561726465643a2063616e6e6f742072656d6f76652073656c6600000000006000830152602082019050919050565b60006143db601d83614a5e565b91507f476174657761793a20616c6c20626174636865732072657665727465640000006000830152602082019050919050565b61441781614b12565b82525050565b61442e61442982614b12565b614c17565b82525050565b61443d81614b1c565b82525050565b600061444f8287613d52565b60148201915061445f828661441d565b60208201915061446f8285613d69565b915061447b8284613e35565b915081905095945050505050565b60006144958288613d52565b6014820191506144a5828761441d565b6020820191506144b58286613d69565b91506144c18285613e35565b91506144cd828461441d565b6020820191508190509695505050505050565b60006144ec8284613e35565b915081905092915050565b60006145038286613e35565b915061450f8285613d52565b60148201915061451f8284613d52565b601482019150819050949350505050565b600061453c8285613e35565b91506145488284613e35565b91508190509392505050565b600061455f82613ec4565b915061456b8284613de5565b60208201915081905092915050565b6000614586828761441d565b6020820191506145968286613d52565b6014820191506145a68285613de5565b6020820191506145b68284613e35565b915081905095945050505050565b60006020820190506145d96000830184613d25565b92915050565b60006040820190506145f46000830185613d25565b6146016020830184613d34565b9392505050565b600060608201905061461d6000830186613d25565b818103602083015261462f8185613dfc565b905061463e6040830184613dc7565b949350505050565b600060408201905061465b6000830185613d34565b6146686020830184613d34565b9392505050565b60006020820190506146846000830184613dc7565b92915050565b600060208201905061469f6000830184613dd6565b92915050565b60006080820190506146ba6000830187613dd6565b6146c76020830186614434565b6146d46040830185613dd6565b6146e16060830184613dd6565b95945050505050565b60006020820190506146ff6000830184613e66565b92915050565b600060208201905061471a6000830184613e75565b92915050565b6000602082019050818103600083015261473981613e84565b9050919050565b6000602082019050818103600083015261475981613f04565b9050919050565b6000602082019050818103600083015261477981613f44565b9050919050565b6000602082019050818103600083015261479981613faa565b9050919050565b600060208201905081810360008301526147b981613fea565b9050919050565b600060208201905081810360008301526147d981614050565b9050919050565b600060208201905081810360008301526147f9816140b6565b9050919050565b600060208201905081810360008301526148198161411c565b9050919050565b6000602082019050818103600083015261483981614182565b9050919050565b60006020820190508181036000830152614859816141c2565b9050919050565b6000602082019050818103600083015261487981614228565b9050919050565b6000602082019050818103600083015261489981614268565b9050919050565b600060208201905081810360008301526148b9816142ce565b9050919050565b600060208201905081810360008301526148d98161430e565b9050919050565b600060208201905081810360008301526148f98161434e565b9050919050565b600060208201905081810360008301526149198161438e565b9050919050565b60006020820190508181036000830152614939816143ce565b9050919050565b6000602082019050614955600083018461440e565b92915050565b6000604051905081810181811067ffffffffffffffff8211171561497e57600080fd5b8060405250919050565b600067ffffffffffffffff82111561499f57600080fd5b602082029050602081019050919050565b600067ffffffffffffffff8211156149c757600080fd5b602082029050602081019050919050565b600067ffffffffffffffff8211156149ef57600080fd5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000614a8582614af2565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b6000614ad982614a7a565b9050919050565b6000614aeb82614a7a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000614b3482614b83565b9050919050565b6000614b4682614b4d565b9050919050565b6000614b5882614af2565b9050919050565b6000614b6a82614b71565b9050919050565b6000614b7c82614af2565b9050919050565b6000614b8e82614b95565b9050919050565b6000614ba082614af2565b9050919050565b82818337600083830152505050565b60005b83811015614bd4578082015181840152602081019050614bb9565b83811115614be3576000848401525b50505050565b6000614bf482614c05565b9050919050565b6000819050919050565b6000614c1082614c32565b9050919050565b6000819050919050565b6000601f19601f8301169050919050565b60008160601b9050919050565b614c4881614a7a565b8114614c5357600080fd5b50565b614c5f81614a8c565b8114614c6a57600080fd5b50565b614c7681614a98565b8114614c8157600080fd5b50565b614c8d81614aa2565b8114614c9857600080fd5b50565b614ca481614ace565b8114614caf57600080fd5b50565b614cbb81614ae0565b8114614cc657600080fd5b50565b614cd281614b12565b8114614cdd57600080fd5b5056fea164736f6c634300060c000a", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102065760003560e01c806387d313131161011a578063bccb31c6116100ad578063d2c83b9a1161007c578063d2c83b9a14610619578063d305d0db14610637578063d84fa10c14610653578063d9f1302114610683578063f92c5f7c1461069f57610206565b8063bccb31c614610581578063bcd483641461059d578063c4543305146105b9578063d0f710d6146105e957610206565b8063a526d83b116100e9578063a526d83b146104fd578063ac2a08cd14610519578063ae1a7ece14610535578063b5021b161461056557610206565b806387d31313146104755780639a8a0592146104935780639f255626146104b1578063a3561e69146104cd57610206565b80633e260b131161019d5780635afaa7bb1161016c5780635afaa7bb146103c157806371404156146103dd57806373e5a13f146103f957806376db2b4c14610429578063867519c61461045957610206565b80633e260b131461033d578063485cc9551461035957806353890134146103755780635a06fb5f1461039157610206565b80632b49e989116101d95780632b49e989146102a35780632c4bbae6146102d3578063371aa71a14610303578063392e53cd1461031f57610206565b80630c68ba211461020b578063152ec1bc1461023b578063231badaf1461025757806329fbd95714610273575b600080fd5b6102256004803603810190610220919061397e565b6106cf565b604051610232919061466f565b60405180910390f35b61025560048036038101906102509190613c26565b610761565b005b610271600480360381019061026c9190613a26565b610764565b005b61028d60048036038101906102889190613c26565b610927565b60405161029a919061466f565b60405180910390f35b6102bd60048036038101906102b89190613c26565b610932565b6040516102ca919061466f565b60405180910390f35b6102ed60048036038101906102e89190613c26565b61093d565b6040516102fa919061466f565b60405180910390f35b61031d60048036038101906103189190613a26565b610944565b005b610327610ac0565b604051610334919061466f565b60405180910390f35b61035760048036038101906103529190613c26565b610b53565b005b610373600480360381019061036e9190613c4f565b610b56565b005b61038f600480360381019061038a9190613ae5565b610e56565b005b6103ab60048036038101906103a69190613c26565b610fcc565b6040516103b8919061466f565b60405180910390f35b6103db60048036038101906103d69190613b51565b610fd3565b005b6103f760048036038101906103f2919061397e565b611419565b005b610413600480360381019061040e9190613ccc565b6117c4565b604051610420919061468a565b60405180910390f35b610443600480360381019061043e9190613c8b565b611825565b604051610450919061468a565b60405180910390f35b610473600480360381019061046e91906139a7565b61188b565b005b61047d6118d8565b60405161048a9190614705565b60405180910390f35b61049b6118fe565b6040516104a89190614940565b60405180910390f35b6104cb60048036038101906104c69190613ae5565b611904565b005b6104e760048036038101906104e29190613c26565b611950565b6040516104f4919061466f565b60405180910390f35b6105176004803603810190610512919061397e565b611957565b005b610533600480360381019061052e9190613a26565b611acb565b005b61054f600480360381019061054a9190613c26565b611c47565b60405161055c919061466f565b60405180910390f35b61057f600480360381019061057a9190613a26565b611c52565b005b61059b60048036038101906105969190613c26565b611e16565b005b6105b760048036038101906105b29190613c26565b611e19565b005b6105d360048036038101906105ce9190613c26565b611e1c565b6040516105e0919061466f565b60405180910390f35b61060360048036038101906105fe9190613bce565b611e27565b604051610610919061466f565b60405180910390f35b610621611ebc565b60405161062e91906146ea565b60405180910390f35b610651600480360381019061064c91906139a7565b611ee2565b005b61066d60048036038101906106689190613c26565b61205a565b60405161067a919061466f565b60405180910390f35b61069d60048036038101906106989190613b51565b612061565b005b6106b960048036038101906106b4919061397e565b6121d7565b6040516106c69190614940565b60405180910390f35b60006106e5677ab52c65f999e01f60c01b611e16565b6106f96710268b7b424a1bd560c01b611e16565b61070d6713a157f311059a7b60c01b611e16565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b50565b610778672cb965356e53b62460c01b610761565b61078c6726d32791746dc3e760c01b610761565b6107a06716b60443ee3d484960c01b610761565b6107b467cec972bd94c2448360c01b610761565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548411610835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c906147a0565b60405180910390fd5b610849676885a737ccda6b5b60c01b610761565b61085d67b7ec0f056156fc5760c01b610761565b61087167fa7e965b6a90871e60c01b610761565b6000610891826108838888888861226f565b61230e90919063ffffffff16565b90506108a767598623896aa1bd8160c01b610761565b84600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108ff67c3db6fc8702a504560c01b610761565b61091367fbd88fe633d4bf3260c01b610761565b61091f86828686612616565b505050505050565b600060019050919050565b600060019050919050565b6000919050565b61095867f80918793645654b60c01b610761565b61096c67e0600b94c13d066760c01b611e16565b6109806755e8cedcdd449e2360c01b611e16565b61099467ab821ba7fedab67160c01b611e16565b6109a867c540fbd78e0e2a4960c01b611e16565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2b90614840565b60405180910390fd5b610a4867d014260b312542b460c01b611e16565b610a5c674e25985d1c99d1f260c01b611e16565b610a7067d9e2558f3071e89160c01b610761565b610a84673490315f4c7453b860c01b610761565b610a98675952ab5ca3321cf560c01b610761565b610aac679cb6b3466f5d6d7c60c01b610761565b610ab98585858585611c52565b5050505050565b6000610ad667e29fe2f351ca6b2760c01b610b53565b610aea676f5dd3f08b97747760c01b610b53565b610afe673a9488d62818322a60c01b610b53565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b50565b610b6a673697766a57f7a80b60c01b610761565b610b7e67d2ba19feb39e0b7f60c01b610b53565b610b92670c5ad53cdb9edd1560c01b610b53565b610ba667b6b588d2ebb9ae6960c01b610b53565b610bba67c4ec9a90a885875260c01b610b53565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614610c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3f90614760565b60405180910390fd5b610c5c67c3785ba1534db95460c01b610b53565b610c7067e4202927591248ef60c01b610b53565b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cc567531cfa2817fbdc8660c01b610b53565b610cd967bb0a8b65334dd2c460c01b610761565b610ced67b92403dbe97ab63260c01b610761565b610d01671b78f114fbb0b72060c01b610761565b81600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d5667b22295775e3c649e60c01b610761565b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610dab6730acc016638bd43a60c01b610761565b610dbf67c9a34505f7a2971960c01b610761565b6060610dd56739403c970cf16b0b60c01b610761565b610de9673890f2fd064539ca60c01b610761565b610df281612d63565b50610e076701520f419008b58e60c01b610b53565b610e1b6775364c04848b013b60c01b610b53565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e632604051610e4a91906145c4565b60405180910390a15050565b610e6a6706786e491e3250c160c01b610761565b610e7e67e0600b94c13d066760c01b611e16565b610e926755e8cedcdd449e2360c01b611e16565b610ea667ab821ba7fedab67160c01b611e16565b610eba67c540fbd78e0e2a4960c01b611e16565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3d90614840565b60405180910390fd5b610f5a67d014260b312542b460c01b611e16565b610f6e674e25985d1c99d1f260c01b611e16565b610f8267aed871277ddbb64c60c01b610761565b610f96671ec4a771e62fadf860c01b610761565b610faa67f2c24f3ab45357f160c01b610761565b610fbe674a9776de3de1749a60c01b610761565b610fc88282611904565b5050565b6000919050565b610fe76727e530a65c18cf7760c01b610761565b610ffb673479b3b9839be87b60c01b610761565b61100f67ddf24acef953714a60c01b610761565b61102367bb03e151ac9c27de60c01b610761565b6000825111611067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105e906147e0565b60405180910390fd5b61107b67fbecfcb237fc946360c01b610761565b61108f67e27ec692e947323360c01b610761565b6110a367f14d14fac430da9560c01b610761565b60006110b96705f410059ee1a0f960c01b610761565b6110cd6738b1b2fe2e9d053a60c01b610761565b60005b835181101561135b576110ed67c75e73eb292eb02a60c01b610761565b61110167b78b62351a90d44360c01b610761565b60003073ffffffffffffffffffffffffffffffffffffffff1685838151811061112657fe5b602002602001015160405161113b91906144e0565b6000604051808303816000865af19150503d8060008114611178576040519150601f19603f3d011682016040523d82523d6000602084013e61117d565b606091505b5050905061119567736c6d76b82a9add60c01b610761565b6111a967d2553c434ed3db3260c01b610761565b8315611258576111c367deebfac5c773826c60c01b610761565b6111d7679fb439c60501b49f60c01b610761565b6111eb67b3057f4bca04838360c01b610761565b6111ff6730ecce8cedfe20fe60c01b610761565b8061123f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123690614780565b60405180910390fd5b61125367d86dd5b82a9e593660c01b610761565b6112d7565b61126c67346fc3cb5711a6b460c01b610761565b611280673f97de6e927ba93d60c01b610761565b80801561128b575082155b156112c1576112a46771ca7e173b61f90360c01b610761565b6112b867da44f1125610870660c01b610761565b600192506112d6565b6112d5675690ff7de2cfd4dd60c01b610761565b5b5b6112eb677421f9109195b65260c01b610761565b6112ff6701974b34eaa9b13c60c01b610761565b7f361c14722cc344132c73396113f7164232448b09c544a149f09048648b43d8723386848151811061132d57fe5b60200260200101518360405161134593929190614608565b60405180910390a15080806001019150506110d0565b506113706784acc65a9eec5b5f60c01b610761565b61138467c73482fe07164bae60c01b610761565b806114005761139d67504c1c7b7326af2c60c01b610761565b6113b1670e7869282d8fda6f60c01b610761565b6113c56720080506722517aa60c01b610761565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f790614920565b60405180910390fd5b611414673bc70d3d4324861e60c01b610761565b505050565b61142d6747dd6d4e27a092d260c01b611e16565b61144167e0600b94c13d066760c01b611e16565b6114556755e8cedcdd449e2360c01b611e16565b61146967ab821ba7fedab67160c01b611e16565b61147d67c540fbd78e0e2a4960c01b611e16565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150090614840565b60405180910390fd5b61151d67d014260b312542b460c01b611e16565b611531674e25985d1c99d1f260c01b611e16565b61154567736984febec5fd2560c01b611e16565b61155967cbb923c66996310360c01b611e16565b61156d672c114aff1103564b60c01b611e16565b61158167a76a63e34be2bddb60c01b611e16565b61159567a220bc889ca09d2360c01b611e16565b8073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415611604576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fb90614900565b60405180910390fd5b611618679467d7af09c5944d60c01b611e16565b61162c67c28a58b1b15ad6de60c01b611e16565b61164067c70b0fecc7c6d3b160c01b611e16565b61165467e7892f9392d41a6760c01b611e16565b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166116e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d790614860565b60405180910390fd5b6116f4675a0de441d13969aa60c01b611e16565b611708674e473b0a29064fba60c01b611e16565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061177467e398e5606400274660c01b611e16565b6117886738c3bd156a3471c260c01b611e16565b7fee943cdb81826d5909c559c6b1ae6908fcaf2dbc16c4b730346736b486283e8b32826040516117b99291906145df565b60405180910390a150565b60006117da67b71cbc54b79642e460c01b610761565b6117ee671d727cf6c847c49660c01b610761565b61180267b20bfeafcd33afb660c01b610761565b61181e826000015183602001518460400151856060015161226f565b9050919050565b600061183b67b43ba9ef81a9b3fd60c01b610761565b61184f678dcdeb463de7515c60c01b610761565b6118636789a48b615adada4560c01b610761565b61188482600001518360200151846040015185606001518660800151612ebf565b9050919050565b61189f6790077d401774f15b60c01b610761565b6118b367dd8df7e804a647ab60c01b610761565b6118c767e91647c2d11d34f260c01b610761565b6118d383338484612616565b505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b61191867305e7d085ffadf5d60c01b610761565b61192c6754042eeb653cce4660c01b610761565b6119406774bf17ed00241c8560c01b610761565b61194c33338484612616565b5050565b6000919050565b61196b67c17b66a0b198af7b60c01b611e16565b61197f67e0600b94c13d066760c01b611e16565b6119936755e8cedcdd449e2360c01b611e16565b6119a767ab821ba7fedab67160c01b611e16565b6119bb67c540fbd78e0e2a4960c01b611e16565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3e90614840565b60405180910390fd5b611a5b67d014260b312542b460c01b611e16565b611a6f674e25985d1c99d1f260c01b611e16565b611a8367dfa24a8cc198350160c01b611e16565b611a9767f9907d82cd18ee0760c01b611e16565b611aab67dd37ee49f553c5a760c01b611e16565b611abf679ad66b1d98f77fdf60c01b611e16565b611ac881612f61565b50565b611adf6759a806c25eead63f60c01b610761565b611af367e0600b94c13d066760c01b611e16565b611b076755e8cedcdd449e2360c01b611e16565b611b1b67ab821ba7fedab67160c01b611e16565b611b2f67c540fbd78e0e2a4960c01b611e16565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb290614840565b60405180910390fd5b611bcf67d014260b312542b460c01b611e16565b611be3674e25985d1c99d1f260c01b611e16565b611bf767f9ea7b462cc4eda560c01b610761565b611c0b67d3d3cf6ca514249660c01b610761565b611c1f676ef2cd549351305b60c01b610761565b611c33672b1fcb01af64303060c01b610761565b611c408585858585610764565b5050505050565b600060019050919050565b611c666730a97bcc310e329660c01b610761565b611c7a67592cde26837dac1c60c01b610761565b611c8e67e369c1a0804a314e60c01b610761565b611ca2675e97b82ccfd1adc660c01b610761565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548411611d23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1a906147a0565b60405180910390fd5b611d3767bf862c95cc9f5d2260c01b610761565b611d4b67f9a3395c1202545060c01b610761565b611d5f677beaba84e36d3d4a60c01b610761565b6000611d8082611d72888888883a612ebf565b61230e90919063ffffffff16565b9050611d9667dc568d561866531460c01b610761565b84600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dee6768886f5dc5d732ec60c01b610761565b611e02672e35ca05a06d172160c01b610761565b611e0e86828686612616565b505050505050565b50565b50565b600060019050919050565b6000611e3d670fa739e07c029f9060c01b611e16565b611e5167406100042e7653bd60c01b611e16565b611e656784104632bda8198f60c01b611e16565b611eb38484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506131e2565b90509392505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611ef667313903b59a995d7660c01b610761565b611f0a67e0600b94c13d066760c01b611e16565b611f1e6755e8cedcdd449e2360c01b611e16565b611f3267ab821ba7fedab67160c01b611e16565b611f4667c540fbd78e0e2a4960c01b611e16565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611fd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc990614840565b60405180910390fd5b611fe667d014260b312542b460c01b611e16565b611ffa674e25985d1c99d1f260c01b611e16565b61200e671f7542edd3d74d2f60c01b610761565b612022677f6b1c92b6f5e5a960c01b610761565b61203667cad2aa7c334e8b3b60c01b610761565b61204a6703308feac1e8ee1360c01b610761565b61205583838361188b565b505050565b6000919050565b61207567fb2097e639da463260c01b610761565b61208967e0600b94c13d066760c01b611e16565b61209d6755e8cedcdd449e2360c01b611e16565b6120b167ab821ba7fedab67160c01b611e16565b6120c567c540fbd78e0e2a4960c01b611e16565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214890614840565b60405180910390fd5b61216567d014260b312542b460c01b611e16565b612179674e25985d1c99d1f260c01b611e16565b61218d670a8996d09423e9a560c01b610761565b6121a1674c210d2c1091800160c01b610761565b6121b56793370d1f34f52d6160c01b610761565b6121c967cf247f4dcde0a80d60c01b610761565b6121d38282610fd3565b5050565b60006121ed67905ee8ae82cae5cb60c01b610761565b612201672ee07bb43076d99160c01b610761565b61221567798fd982696fe97360c01b610761565b6122686001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132b590919063ffffffff16565b9050919050565b600061228567d6536873dad1c60260c01b610761565b612299673f091c2291af034760c01b610761565b6122ad676c51c993615d51fc60c01b610761565b6123047f6848d0622081db2451400280dead7a739a080cb93852607c381af11e289769b28686866122dd876133bf565b6040516020016122f09493929190614443565b6040516020818303038152906040526134eb565b9050949350505050565b6000612324670d75db982ec4597160c01b613568565b6123386725c2c60ab754182560c01b613568565b61234c673eb64a254569ed0660c01b613568565b600061236267fb2a2286066e15e460c01b613568565b61237667a440db11ec9e986d60c01b613568565b6041835114156125cf576123946704a5aada48e2763260c01b613568565b6123a8674b98cf1796e5c26660c01b613568565b6123bc67d2dfec7b159385fc60c01b613568565b60006123d26772c2a840621b4aa760c01b613568565b6123e667bfd411e6ba4d07c460c01b613568565b60006123fc67145d23f82764ba9960c01b613568565b61241067acdff958a9c6c5dd60c01b613568565b6000612426673b79e3a80932a6a160c01b613568565b6020860151925060408601519150606086015160001a9050612452679b0cdee01a57ea2f60c01b613568565b612466675dbf88583373227960c01b613568565b601b8160ff1610156124a557612486670dc9a1836eb51c3260c01b613568565b61249a677097d8456a6c3e1560c01b613568565b601b810190506124ba565b6124b96708b39c61216869e760c01b613568565b5b6124ce672ea4d6db7d2138c560c01b613568565b6124e2679ad3f461195a5eee60c01b613568565b601b8160ff16148015612505575061250467a24e972b59dc7d0560c01b61356b565b5b8061252f5750601c8160ff1614801561252e575061252d67934bee4849491d9560c01b61356b565b5b5b156125b257612548676d6a491fc6e072fa60c01b613568565b61255c67aecd1690d1de9f1c60c01b613568565b6001878285856040516000815260200160405260405161257f94939291906146a5565b6020604051602081039080840390855afa1580156125a1573d6000803e3d6000fd5b5050506020604051035193506125c7565b6125c667513fbc3b3a0ad1c060c01b613568565b5b5050506125e4565b6125e36723d6d78de386c96660c01b613568565b5b6125f86707d0c4f11e72cfc960c01b613568565b61260c67b9689b22f403636c60c01b613568565b8091505092915050565b61262a6772b534df044a3e6960c01b610761565b61263e67c402abc06978619960c01b610761565b612652679e09810371489d9f60c01b610761565b612666677e7daf08d9a58adb60c01b610761565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156126d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126cd906147c0565b60405180910390fd5b6126ea670b7cbb883e3651ec60c01b610761565b6126fe67d208ff6d7369e98860c01b610761565b61271267491a5cbad1055d5160c01b610761565b612726679e0ff894c768117960c01b610761565b600082511161276a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612761906148e0565b60405180910390fd5b61277e6745254922d222170960c01b610761565b6127926704e613e382681ef660c01b610761565b6127a6675557331c94961ac660c01b610761565b6127ba676a3e2fb0a667717a60c01b610761565b81518151146127fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f590614820565b60405180910390fd5b61281267f28a31992346aa2c60c01b610761565b612826676f88151307ba5cf160c01b610761565b61283a678b6e6de748ac3b0560c01b610761565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612aae57612881679b783d0da44a769760c01b610761565b612895672afe7fb31679725b60c01b610761565b6128a9675f21c809493b9d9c60c01b610761565b6128bd67c4c99b0c5a4bff8660c01b610761565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb890d3f85856040518363ffffffff1660e01b815260040161291a929190614646565b60206040518083038186803b15801561293257600080fd5b505afa158015612946573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061296a9190613ba5565b8015612986575061298567212d2ce404fd77a760c01b610932565b5b80612a565750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb890d3f85856040518363ffffffff1660e01b81526004016129e9929190614646565b60206040518083038186803b158015612a0157600080fd5b505afa158015612a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a399190613ba5565b8015612a555750612a5467d868be8222351b6f60c01b610932565b5b5b612a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8c90614800565b60405180910390fd5b612aa9670d7297c082be9ec360c01b610761565b612ac3565b612ac2671c02678189e2da5e60c01b610761565b5b612ad767220aa3d0956cdf3860c01b610761565b612aeb672ff29057ca2d5a4960c01b610761565b6000612b0167736a7a13fde31abc60c01b610761565b612b1567ad98f24f057dfa4760c01b610761565b60005b8251811015612d5b57612b35673a43fbce6290f8a460c01b610761565b612b496775aca6a5cf35ff4a60c01b610761565b612b5d67fd57b4ad4a413b6860c01b610761565b600073ffffffffffffffffffffffffffffffffffffffff16848281518110612b8157fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff161415612be0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bd790614720565b60405180910390fd5b612bf46767a6d9c274cadc9c60c01b610761565b612c0867cf1addfe3ca8b2bb60c01b610761565b838181518110612c1457fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16838281518110612c3e57fe5b60200260200101518787604051602001612c5a939291906144f7565b604051602081830303815290604052604051612c7691906144e0565b6000604051808303816000865af19150503d8060008114612cb3576040519150601f19603f3d011682016040523d82523d6000602084013e612cb8565b606091505b505080925050612cd267e11e02c50ac3af5a60c01b610761565b612ce66791115981e7972f5360c01b610761565b612cfa671e9de5dd0811b3c160c01b610761565b81612d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3190614880565b60405180910390fd5b612d4e678f29e428e7b0acbe60c01b610761565b8080600101915050612b18565b505050505050565b612d7767f4de5e8e73d6ad8760c01b611e16565b612d8b67db1ce0981035d84760c01b611e16565b612d9f67e97a0a25809a3f0960c01b611e16565b600081511415612df357612dbd67de11b839232da49160c01b611e16565b612dd167b59bd2ea0c1c89a260c01b611e16565b612de567652fe2786000e62060c01b611e16565b612dee32612f61565b612ebc565b612e0767ad5f6f13dddc2ad960c01b611e16565b612e1b672af46088979bcb2160c01b611e16565b612e2f6796cb81cf0bf6606d60c01b611e16565b600081519050612e49672f4c11881b8dca8c60c01b611e16565b612e5d67cec4e8db5057edad60c01b611e16565b60005b81811015612eb957612e7c671a5cc94c8b734dd960c01b611e16565b612e9067e437d14e98e20b2f60c01b611e16565b612eac838281518110612e9f57fe5b6020026020010151612f61565b8080600101915050612e60565b50505b50565b6000612ed5679ee7bdbf7c6900a460c01b610761565b612ee967f0e928808634a64d60c01b610761565b612efd674075c359d3dd889d60c01b610761565b612f567f6f4e1b2b1e5e49f4269e19e16e67a00cb0a796d96d30be3e4b540d3732e8bcad878787612f2d886133bf565b87604051602001612f42959493929190614489565b6040516020818303038152906040526134eb565b905095945050505050565b612f756703611a9e4063d8ea60c01b611e16565b612f8967ee1baacaa033494260c01b611e16565b612f9d6751e5840de998a97760c01b611e16565b612fb1676f82de74e2e2e03560c01b611e16565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415613021576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161301890614740565b60405180910390fd5b6130356717cb80dba7a8a0ea60c01b611e16565b61304967e2f8fabe2a63d8b660c01b611e16565b61305d677550a657f22d30dc60c01b611e16565b613071673c81d7073dbe6f3060c01b611e16565b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156130fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130f5906148c0565b60405180910390fd5b61311267bc5a1f0994a7f54e60c01b611e16565b613126679a7f014629c7374960c01b611e16565b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061319267d71c83e9f3188e9d60c01b611e16565b6131a667e4bfbd26cb5c77e660c01b611e16565b7fbc3292102fa77e083913064b282926717cdfaede4d35f553d66366c0a3da755a32826040516131d79291906145df565b60405180910390a150565b60006131f867fbe9af14abc78ca860c01b611e16565b61320c67bd3616cf00f8ad2b60c01b611e16565b613220670aad941719c9b69b60c01b611e16565b6000613235838561230e90919063ffffffff16565b905061324b6706f556c4601e7cd060c01b611e16565b61325f67344e7bee2db8345860c01b611e16565b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b60006132cb672797d9bbee8e685760c01b613576565b6132df67e25930aa3032662f60c01b613576565b6132f3673b804ace3fd44ea060c01b613576565b6000828401905061330e67e0d809daafe36a0460c01b613576565b61332267d0d7b021c1a6823260c01b613576565b6133366741f1099b5fa09b9360c01b613576565b83811015613379576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613370906148a0565b60405180910390fd5b61338d6728a352a27e50889560c01b613576565b6133a167f55e5f024a80111c60c01b613576565b6133b567d865abdcb752192460c01b613576565b8091505092915050565b60606133d5673c65cd0d57a86f4160c01b610761565b6133e96787729e023af7ebe860c01b610761565b6133fd673eeba47bfbe297d660c01b610761565b606061341367cde6576faf313c1560c01b610761565b613427670ea3dcc6c000079a60c01b610761565b600083519050613441672040a6450836597360c01b610761565b6134556779cc921107583db360c01b610761565b60005b818110156134b8576134746713ae3bb0a3004f3660c01b610761565b8285828151811061348157fe5b602002602001015160405160200161349a929190614530565b60405160208183030381529060405292508080600101915050613458565b506134cd674b78578d8503215f60c01b610761565b6134e167842cae5512e7a35c60c01b610761565b8192505050919050565b60006135016771b334e2e3162d2e60c01b611e19565b6135156729046581cf97a49460c01b611e19565b613529674f9e67c6b1f334b360c01b611e19565b613560600154308585604051602001613545949392919061457a565b60405160208183030381529060405280519060200120613579565b905092915050565b50565b600060019050919050565b50565b600061358f67f3d1beb9fba5b7be60c01b613568565b6135a3676cd81a1865d6353260c01b613568565b6135b7676810828c21da671e60c01b613568565b816040516020016135c89190614554565b604051602081830303815290604052805190602001209050919050565b6000813590506135f481614c3f565b92915050565b600082601f83011261360b57600080fd5b813561361e61361982614988565b61495b565b9150818183526020840193506020810190508385602084028201111561364357600080fd5b60005b83811015613673578161365988826135e5565b845260208401935060208301925050600181019050613646565b5050505092915050565b600082601f83011261368e57600080fd5b81356136a161369c826149b0565b61495b565b9150818183526020840193506020810190508360005b838110156136e757813586016136cd888261378f565b8452602084019350602083019250506001810190506136b7565b5050505092915050565b60008135905061370081614c56565b92915050565b60008151905061371581614c56565b92915050565b60008135905061372a81614c6d565b92915050565b60008135905061373f81614c84565b92915050565b60008083601f84011261375757600080fd5b8235905067ffffffffffffffff81111561377057600080fd5b60208301915083600182028301111561378857600080fd5b9250929050565b600082601f8301126137a057600080fd5b81356137b36137ae826149d8565b61495b565b915080825260208301602083018583830111156137cf57600080fd5b6137da838284614ba7565b50505092915050565b6000813590506137f281614c9b565b92915050565b60008135905061380781614cb2565b92915050565b600060a0828403121561381f57600080fd5b61382960a061495b565b90506000613839848285016135e5565b600083015250602061384d84828501613969565b602083015250604082013567ffffffffffffffff81111561386d57600080fd5b613879848285016135fa565b604083015250606082013567ffffffffffffffff81111561389957600080fd5b6138a58482850161367d565b60608301525060806138b984828501613969565b60808301525092915050565b6000608082840312156138d757600080fd5b6138e1608061495b565b905060006138f1848285016135e5565b600083015250602061390584828501613969565b602083015250604082013567ffffffffffffffff81111561392557600080fd5b613931848285016135fa565b604083015250606082013567ffffffffffffffff81111561395157600080fd5b61395d8482850161367d565b60608301525092915050565b60008135905061397881614cc9565b92915050565b60006020828403121561399057600080fd5b600061399e848285016135e5565b91505092915050565b6000806000606084860312156139bc57600080fd5b60006139ca868287016135e5565b935050602084013567ffffffffffffffff8111156139e757600080fd5b6139f3868287016135fa565b925050604084013567ffffffffffffffff811115613a1057600080fd5b613a1c8682870161367d565b9150509250925092565b600080600080600060a08688031215613a3e57600080fd5b6000613a4c888289016135e5565b9550506020613a5d88828901613969565b945050604086013567ffffffffffffffff811115613a7a57600080fd5b613a86888289016135fa565b935050606086013567ffffffffffffffff811115613aa357600080fd5b613aaf8882890161367d565b925050608086013567ffffffffffffffff811115613acc57600080fd5b613ad88882890161378f565b9150509295509295909350565b60008060408385031215613af857600080fd5b600083013567ffffffffffffffff811115613b1257600080fd5b613b1e858286016135fa565b925050602083013567ffffffffffffffff811115613b3b57600080fd5b613b478582860161367d565b9150509250929050565b60008060408385031215613b6457600080fd5b600083013567ffffffffffffffff811115613b7e57600080fd5b613b8a8582860161367d565b9250506020613b9b858286016136f1565b9150509250929050565b600060208284031215613bb757600080fd5b6000613bc584828501613706565b91505092915050565b600080600060408486031215613be357600080fd5b6000613bf18682870161371b565b935050602084013567ffffffffffffffff811115613c0e57600080fd5b613c1a86828701613745565b92509250509250925092565b600060208284031215613c3857600080fd5b6000613c4684828501613730565b91505092915050565b60008060408385031215613c6257600080fd5b6000613c70858286016137e3565b9250506020613c81858286016137f8565b9150509250929050565b600060208284031215613c9d57600080fd5b600082013567ffffffffffffffff811115613cb757600080fd5b613cc38482850161380d565b91505092915050565b600060208284031215613cde57600080fd5b600082013567ffffffffffffffff811115613cf857600080fd5b613d04848285016138c5565b91505092915050565b6000613d198383613d43565b60208301905092915050565b613d2e81614b29565b82525050565b613d3d81614a7a565b82525050565b613d4c81614a7a565b82525050565b613d63613d5e82614a7a565b614be9565b82525050565b6000613d7482614a14565b613d7e8185614a37565b9350613d8983614a04565b8060005b83811015613dba578151613da18882613d0d565b9750613dac83614a2a565b925050600181019050613d8d565b5085935050505092915050565b613dd081614a8c565b82525050565b613ddf81614a98565b82525050565b613df6613df182614a98565b614bfb565b82525050565b6000613e0782614a1f565b613e118185614a42565b9350613e21818560208601614bb6565b613e2a81614c21565b840191505092915050565b6000613e4082614a1f565b613e4a8185614a53565b9350613e5a818560208601614bb6565b80840191505092915050565b613e6f81614b3b565b82525050565b613e7e81614b5f565b82525050565b6000613e91601b83614a5e565b91507f476174657761793a2063616e6e6f742073656e6420746f2030783000000000006000830152602082019050919050565b6000613ed1601c83614a6f565b91507f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000830152601c82019050919050565b6000613f11602083614a5e565b91507f477561726465643a2063616e6e6f74206164642030783020677561726469616e6000830152602082019050919050565b6000613f51602f83614a5e565b91507f496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742060008301527f74686520696e697469616c697a657200000000000000000000000000000000006020830152604082019050919050565b6000613fb7601783614a5e565b91507f476174657761793a2062617463682072657665727465640000000000000000006000830152602082019050919050565b6000613ff7603283614a5e565b91507f476174657761793a206e6f6e6365206973206c6f776572207468616e2063757260008301527f72656e74206163636f756e74206e6f6e636500000000000000000000000000006020830152604082019050919050565b600061405d602583614a5e565b91507f476174657761793a2063616e6e6f742073656e642066726f6d2030783020616360008301527f636f756e740000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006140c3602683614a5e565b91507f476174657761793a2063616e6e6f742064656c656761746520656d707479206260008301527f61746368657300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000614129602883614a5e565b91507f476174657761793a2073656e646572206973206e6f7420746865206163636f7560008301527f6e74206f776e65720000000000000000000000000000000000000000000000006020830152604082019050919050565b600061418f601683614a5e565b91507f476174657761793a20696e76616c6964206261746368000000000000000000006000830152602082019050919050565b60006141cf602683614a5e565b91507f477561726465643a2074782e6f726967696e206973206e6f742074686520677560008301527f61726469616e00000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000614235601f83614a5e565b91507f477561726465643a20677561726469616e20646f65736e2774206578697374006000830152602082019050919050565b6000614275602383614a5e565b91507f476174657761793a206261746368207472616e73616374696f6e20726576657260008301527f74656400000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006142db601e83614a5e565b91507f536166654d6174684c69623a206164646974696f6e206f766572666c6f7700006000830152602082019050919050565b600061431b602083614a5e565b91507f477561726465643a20677561726469616e20616c7265616479206578697374736000830152602082019050919050565b600061435b602083614a5e565b91507f476174657761793a2063616e6e6f742073656e6420656d7074792062617463686000830152602082019050919050565b600061439b601b83614a5e565b91507f477561726465643a2063616e6e6f742072656d6f76652073656c6600000000006000830152602082019050919050565b60006143db601d83614a5e565b91507f476174657761793a20616c6c20626174636865732072657665727465640000006000830152602082019050919050565b61441781614b12565b82525050565b61442e61442982614b12565b614c17565b82525050565b61443d81614b1c565b82525050565b600061444f8287613d52565b60148201915061445f828661441d565b60208201915061446f8285613d69565b915061447b8284613e35565b915081905095945050505050565b60006144958288613d52565b6014820191506144a5828761441d565b6020820191506144b58286613d69565b91506144c18285613e35565b91506144cd828461441d565b6020820191508190509695505050505050565b60006144ec8284613e35565b915081905092915050565b60006145038286613e35565b915061450f8285613d52565b60148201915061451f8284613d52565b601482019150819050949350505050565b600061453c8285613e35565b91506145488284613e35565b91508190509392505050565b600061455f82613ec4565b915061456b8284613de5565b60208201915081905092915050565b6000614586828761441d565b6020820191506145968286613d52565b6014820191506145a68285613de5565b6020820191506145b68284613e35565b915081905095945050505050565b60006020820190506145d96000830184613d25565b92915050565b60006040820190506145f46000830185613d25565b6146016020830184613d34565b9392505050565b600060608201905061461d6000830186613d25565b818103602083015261462f8185613dfc565b905061463e6040830184613dc7565b949350505050565b600060408201905061465b6000830185613d34565b6146686020830184613d34565b9392505050565b60006020820190506146846000830184613dc7565b92915050565b600060208201905061469f6000830184613dd6565b92915050565b60006080820190506146ba6000830187613dd6565b6146c76020830186614434565b6146d46040830185613dd6565b6146e16060830184613dd6565b95945050505050565b60006020820190506146ff6000830184613e66565b92915050565b600060208201905061471a6000830184613e75565b92915050565b6000602082019050818103600083015261473981613e84565b9050919050565b6000602082019050818103600083015261475981613f04565b9050919050565b6000602082019050818103600083015261477981613f44565b9050919050565b6000602082019050818103600083015261479981613faa565b9050919050565b600060208201905081810360008301526147b981613fea565b9050919050565b600060208201905081810360008301526147d981614050565b9050919050565b600060208201905081810360008301526147f9816140b6565b9050919050565b600060208201905081810360008301526148198161411c565b9050919050565b6000602082019050818103600083015261483981614182565b9050919050565b60006020820190508181036000830152614859816141c2565b9050919050565b6000602082019050818103600083015261487981614228565b9050919050565b6000602082019050818103600083015261489981614268565b9050919050565b600060208201905081810360008301526148b9816142ce565b9050919050565b600060208201905081810360008301526148d98161430e565b9050919050565b600060208201905081810360008301526148f98161434e565b9050919050565b600060208201905081810360008301526149198161438e565b9050919050565b60006020820190508181036000830152614939816143ce565b9050919050565b6000602082019050614955600083018461440e565b92915050565b6000604051905081810181811067ffffffffffffffff8211171561497e57600080fd5b8060405250919050565b600067ffffffffffffffff82111561499f57600080fd5b602082029050602081019050919050565b600067ffffffffffffffff8211156149c757600080fd5b602082029050602081019050919050565b600067ffffffffffffffff8211156149ef57600080fd5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000614a8582614af2565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b6000614ad982614a7a565b9050919050565b6000614aeb82614a7a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000614b3482614b83565b9050919050565b6000614b4682614b4d565b9050919050565b6000614b5882614af2565b9050919050565b6000614b6a82614b71565b9050919050565b6000614b7c82614af2565b9050919050565b6000614b8e82614b95565b9050919050565b6000614ba082614af2565b9050919050565b82818337600083830152505050565b60005b83811015614bd4578082015181840152602081019050614bb9565b83811115614be3576000848401525b50505050565b6000614bf482614c05565b9050919050565b6000819050919050565b6000614c1082614c32565b9050919050565b6000819050919050565b6000601f19601f8301169050919050565b60008160601b9050919050565b614c4881614a7a565b8114614c5357600080fd5b50565b614c5f81614a8c565b8114614c6a57600080fd5b50565b614c7681614a98565b8114614c8157600080fd5b50565b614c8d81614aa2565b8114614c9857600080fd5b50565b614ca481614ace565b8114614caf57600080fd5b50565b614cbb81614ae0565b8114614cc657600080fd5b50565b614cd281614b12565b8114614cdd57600080fd5b5056fea164736f6c634300060c000a", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/Guarded.json b/artifacts/Guarded.json index 892fa1c1..1afbf595 100644 --- a/artifacts/Guarded.json +++ b/artifacts/Guarded.json @@ -54,6 +54,57 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__0b6945c4", + "type": "bytes8" + } + ], + "name": "c_0b6945c4", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__0b6945c4", + "type": "bytes8" + } + ], + "name": "c_false0b6945c4", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__0b6945c4", + "type": "bytes8" + } + ], + "name": "c_true0b6945c4", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [ { diff --git a/artifacts/HopFacet.json b/artifacts/HopFacet.json index dbac4386..104b86b3 100644 --- a/artifacts/HopFacet.json +++ b/artifacts/HopFacet.json @@ -130,6 +130,108 @@ "name": "HopTokenSwap", "type": "event" }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__9296fc39", + "type": "bytes8" + } + ], + "name": "c_9296fc39", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__99127806", + "type": "bytes8" + } + ], + "name": "c_99127806", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__9296fc39", + "type": "bytes8" + } + ], + "name": "c_false9296fc39", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__99127806", + "type": "bytes8" + } + ], + "name": "c_false99127806", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__9296fc39", + "type": "bytes8" + } + ], + "name": "c_true9296fc39", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__99127806", + "type": "bytes8" + } + ], + "name": "c_true99127806", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [ { @@ -214,8 +316,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50611740806100206000396000f3fe6080604052600436106100295760003560e01c80635254f5a91461002e578063fbdfb9071461004a575b600080fd5b61004860048036038101906100439190610f83565b610073565b005b34801561005657600080fd5b50610071600480360381019061006c9190610fad565b610409565b005b600061007d61046a565b90506001816000015414156100be576040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600181600001819055506100e88260400160208101906100de9190610f31565b8360a00135610497565b600060016100f46104d5565b14156101145782600001602081019061010d9190610f31565b905061012a565b8260200160208101906101279190610f31565b90505b82608001356101376104e8565b141561016f576040517f4ac09ad300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101908360400160208101906101859190610f31565b828560a001356104f5565b60006101ad8460400160208101906101a89190610f31565b610660565b6101b85760006101be565b8360a001355b905060016101ca6104d5565b1415610272578173ffffffffffffffffffffffffffffffffffffffff1663deace8f58286608001358760600160208101906102059190610f31565b8860a001358961012001358a61014001356000806040518963ffffffff1660e01b815260040161023b9796959493929190611340565b6000604051808303818588803b15801561025457600080fd5b505af1158015610268573d6000803e3d6000fd5b505050505061031e565b8173ffffffffffffffffffffffffffffffffffffffff1663eea0d7b28286608001358760600160208101906102a79190610f31565b8860a001358960c001358a60e001358b61010001358c61012001358d61014001356040518a63ffffffff1660e01b81526004016102eb9897969594939291906113af565b6000604051808303818588803b15801561030457600080fd5b505af1158015610318573d6000803e3d6000fd5b50505050505b8360400160208101906103319190610f31565b73ffffffffffffffffffffffffffffffffffffffff1684606001602081019061035a9190610f31565b73ffffffffffffffffffffffffffffffffffffffff1685608001357f35ac5f1aa56e86e7f2e01562289e5bd298773763192f6433fde30f05932381738760000160208101906103a99190610f31565b8860200160208101906103bc9190610f31565b8960a001358a60c001358b60e001358c61010001358d61012001358e61014001356040516103f19897969594939291906111d7565b60405180910390a45050600081600001819055505050565b610411610698565b600061041b610733565b90508181600001819055507f09b9d2d59be87e537ec1f2f9325f524d04c29f20e2c60ce0c3c6435102c7882a61044f6104e8565b8360405161045e92919061142d565b60405180910390a15050565b6000807fc59b5acc5a6673a6c49ca2de898f87adbd9fdfdff36f689476b1c9e0c50964b490508091505090565b6104d18282600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610760565b5050565b60006104df610733565b60000154905090565b6000804690508091505090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561052f5761065b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610596576040517f63ba9bff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b81526004016105d3929190611177565b60206040518083038186803b1580156105eb57600080fd5b505afa1580156105ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106239190610fd6565b9050818110156106595761065884847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610884565b5b505b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6106a06109e2565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610731576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610728906112a0565b60405180910390fd5b565b6000807f82ac262a0ca73826b2defa6066a5cbdaefe5f87d412e3568bfc9bec85eaa985790508091505090565b600082141561079b576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80156107df578134146107da576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61087f565b60003414610818576040517e3f45b500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061082384610a0f565b905061083184333086610adb565b828161083c86610a0f565b6108469190611488565b1461087d576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b505050565b600081148061091d575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b81526004016108cb929190611177565b60206040518083038186803b1580156108e357600080fd5b505afa1580156108f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091b9190610fd6565b145b61095c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095390611320565b60405180910390fd5b6109dd8363095ea7b360e01b848460405160240161097b929190611255565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610bbb565b505050565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610ad2578173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a7d919061115c565b60206040518083038186803b158015610a9557600080fd5b505afa158015610aa9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610acd9190610fd6565b610ad4565b475b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610b42576040517fd1bebf0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ba9576040517f21f7434500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bb584848484610c82565b50505050565b6000610c1d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16610d0b9092919063ffffffff16565b9050600081511115610c7d5780806020019051810190610c3d9190610f5a565b610c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7390611300565b60405180910390fd5b5b505050565b610d05846323b872dd60e01b858585604051602401610ca3939291906111a0565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610bbb565b50505050565b6060610d1a8484600085610d23565b90509392505050565b606082471015610d68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5f906112c0565b60405180910390fd5b610d7185610e37565b610db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da7906112e0565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051610dd99190611145565b60006040518083038185875af1925050503d8060008114610e16576040519150601f19603f3d011682016040523d82523d6000602084013e610e1b565b606091505b5091509150610e2b828286610e5a565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60608315610e6a57829050610eba565b600083511115610e7d5782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb1919061127e565b60405180910390fd5b9392505050565b600081359050610ed0816116ee565b92915050565b600081519050610ee581611705565b92915050565b60006101608284031215610efe57600080fd5b81905092915050565b600081359050610f168161171c565b92915050565b600081519050610f2b8161171c565b92915050565b600060208284031215610f4357600080fd5b6000610f5184828501610ec1565b91505092915050565b600060208284031215610f6c57600080fd5b6000610f7a84828501610ed6565b91505092915050565b60006101608284031215610f9657600080fd5b6000610fa484828501610eeb565b91505092915050565b600060208284031215610fbf57600080fd5b6000610fcd84828501610f07565b91505092915050565b600060208284031215610fe857600080fd5b6000610ff684828501610f1c565b91505092915050565b611008816114bc565b82525050565b600061101982611456565b611023818561146c565b9350611033818560208601611516565b80840191505092915050565b61104881611504565b82525050565b600061105982611461565b6110638185611477565b9350611073818560208601611516565b61107c81611578565b840191505092915050565b6000611094602283611477565b915061109f82611589565b604082019050919050565b60006110b7602683611477565b91506110c2826115d8565b604082019050919050565b60006110da601d83611477565b91506110e582611627565b602082019050919050565b60006110fd602a83611477565b915061110882611650565b604082019050919050565b6000611120603683611477565b915061112b8261169f565b604082019050919050565b61113f816114fa565b82525050565b6000611151828461100e565b915081905092915050565b60006020820190506111716000830184610fff565b92915050565b600060408201905061118c6000830185610fff565b6111996020830184610fff565b9392505050565b60006060820190506111b56000830186610fff565b6111c26020830185610fff565b6111cf6040830184611136565b949350505050565b6000610100820190506111ed600083018b610fff565b6111fa602083018a610fff565b6112076040830189611136565b6112146060830188611136565b6112216080830187611136565b61122e60a0830186611136565b61123b60c0830185611136565b61124860e0830184611136565b9998505050505050505050565b600060408201905061126a6000830185610fff565b6112776020830184611136565b9392505050565b60006020820190508181036000830152611298818461104e565b905092915050565b600060208201905081810360008301526112b981611087565b9050919050565b600060208201905081810360008301526112d9816110aa565b9050919050565b600060208201905081810360008301526112f9816110cd565b9050919050565b60006020820190508181036000830152611319816110f0565b9050919050565b6000602082019050818103600083015261133981611113565b9050919050565b600060e082019050611355600083018a611136565b6113626020830189610fff565b61136f6040830188611136565b61137c6060830187611136565b6113896080830186611136565b61139660a0830185610fff565b6113a360c083018461103f565b98975050505050505050565b6000610100820190506113c5600083018b611136565b6113d2602083018a610fff565b6113df6040830189611136565b6113ec6060830188611136565b6113f96080830187611136565b61140660a0830186611136565b61141360c0830185611136565b61142060e0830184611136565b9998505050505050505050565b60006040820190506114426000830185611136565b61144f6020830184611136565b9392505050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b6000611493826114fa565b915061149e836114fa565b9250828210156114b1576114b0611549565b5b828203905092915050565b60006114c7826114da565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061150f826114fa565b9050919050565b60005b83811015611534578082015181840152602081019050611519565b83811115611543576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000601f19601f8301169050919050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b6116f7816114bc565b811461170257600080fd5b50565b61170e816114ce565b811461171957600080fd5b50565b611725816114fa565b811461173057600080fd5b5056fea164736f6c6343000804000a", - "deployedBytecode": "0x6080604052600436106100295760003560e01c80635254f5a91461002e578063fbdfb9071461004a575b600080fd5b61004860048036038101906100439190610f83565b610073565b005b34801561005657600080fd5b50610071600480360381019061006c9190610fad565b610409565b005b600061007d61046a565b90506001816000015414156100be576040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600181600001819055506100e88260400160208101906100de9190610f31565b8360a00135610497565b600060016100f46104d5565b14156101145782600001602081019061010d9190610f31565b905061012a565b8260200160208101906101279190610f31565b90505b82608001356101376104e8565b141561016f576040517f4ac09ad300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101908360400160208101906101859190610f31565b828560a001356104f5565b60006101ad8460400160208101906101a89190610f31565b610660565b6101b85760006101be565b8360a001355b905060016101ca6104d5565b1415610272578173ffffffffffffffffffffffffffffffffffffffff1663deace8f58286608001358760600160208101906102059190610f31565b8860a001358961012001358a61014001356000806040518963ffffffff1660e01b815260040161023b9796959493929190611340565b6000604051808303818588803b15801561025457600080fd5b505af1158015610268573d6000803e3d6000fd5b505050505061031e565b8173ffffffffffffffffffffffffffffffffffffffff1663eea0d7b28286608001358760600160208101906102a79190610f31565b8860a001358960c001358a60e001358b61010001358c61012001358d61014001356040518a63ffffffff1660e01b81526004016102eb9897969594939291906113af565b6000604051808303818588803b15801561030457600080fd5b505af1158015610318573d6000803e3d6000fd5b50505050505b8360400160208101906103319190610f31565b73ffffffffffffffffffffffffffffffffffffffff1684606001602081019061035a9190610f31565b73ffffffffffffffffffffffffffffffffffffffff1685608001357f35ac5f1aa56e86e7f2e01562289e5bd298773763192f6433fde30f05932381738760000160208101906103a99190610f31565b8860200160208101906103bc9190610f31565b8960a001358a60c001358b60e001358c61010001358d61012001358e61014001356040516103f19897969594939291906111d7565b60405180910390a45050600081600001819055505050565b610411610698565b600061041b610733565b90508181600001819055507f09b9d2d59be87e537ec1f2f9325f524d04c29f20e2c60ce0c3c6435102c7882a61044f6104e8565b8360405161045e92919061142d565b60405180910390a15050565b6000807fc59b5acc5a6673a6c49ca2de898f87adbd9fdfdff36f689476b1c9e0c50964b490508091505090565b6104d18282600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610760565b5050565b60006104df610733565b60000154905090565b6000804690508091505090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561052f5761065b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610596576040517f63ba9bff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b81526004016105d3929190611177565b60206040518083038186803b1580156105eb57600080fd5b505afa1580156105ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106239190610fd6565b9050818110156106595761065884847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610884565b5b505b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6106a06109e2565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610731576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610728906112a0565b60405180910390fd5b565b6000807f82ac262a0ca73826b2defa6066a5cbdaefe5f87d412e3568bfc9bec85eaa985790508091505090565b600082141561079b576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80156107df578134146107da576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61087f565b60003414610818576040517e3f45b500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061082384610a0f565b905061083184333086610adb565b828161083c86610a0f565b6108469190611488565b1461087d576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b505050565b600081148061091d575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b81526004016108cb929190611177565b60206040518083038186803b1580156108e357600080fd5b505afa1580156108f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091b9190610fd6565b145b61095c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095390611320565b60405180910390fd5b6109dd8363095ea7b360e01b848460405160240161097b929190611255565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610bbb565b505050565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610ad2578173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a7d919061115c565b60206040518083038186803b158015610a9557600080fd5b505afa158015610aa9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610acd9190610fd6565b610ad4565b475b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610b42576040517fd1bebf0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ba9576040517f21f7434500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bb584848484610c82565b50505050565b6000610c1d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16610d0b9092919063ffffffff16565b9050600081511115610c7d5780806020019051810190610c3d9190610f5a565b610c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7390611300565b60405180910390fd5b5b505050565b610d05846323b872dd60e01b858585604051602401610ca3939291906111a0565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610bbb565b50505050565b6060610d1a8484600085610d23565b90509392505050565b606082471015610d68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5f906112c0565b60405180910390fd5b610d7185610e37565b610db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da7906112e0565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051610dd99190611145565b60006040518083038185875af1925050503d8060008114610e16576040519150601f19603f3d011682016040523d82523d6000602084013e610e1b565b606091505b5091509150610e2b828286610e5a565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60608315610e6a57829050610eba565b600083511115610e7d5782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb1919061127e565b60405180910390fd5b9392505050565b600081359050610ed0816116ee565b92915050565b600081519050610ee581611705565b92915050565b60006101608284031215610efe57600080fd5b81905092915050565b600081359050610f168161171c565b92915050565b600081519050610f2b8161171c565b92915050565b600060208284031215610f4357600080fd5b6000610f5184828501610ec1565b91505092915050565b600060208284031215610f6c57600080fd5b6000610f7a84828501610ed6565b91505092915050565b60006101608284031215610f9657600080fd5b6000610fa484828501610eeb565b91505092915050565b600060208284031215610fbf57600080fd5b6000610fcd84828501610f07565b91505092915050565b600060208284031215610fe857600080fd5b6000610ff684828501610f1c565b91505092915050565b611008816114bc565b82525050565b600061101982611456565b611023818561146c565b9350611033818560208601611516565b80840191505092915050565b61104881611504565b82525050565b600061105982611461565b6110638185611477565b9350611073818560208601611516565b61107c81611578565b840191505092915050565b6000611094602283611477565b915061109f82611589565b604082019050919050565b60006110b7602683611477565b91506110c2826115d8565b604082019050919050565b60006110da601d83611477565b91506110e582611627565b602082019050919050565b60006110fd602a83611477565b915061110882611650565b604082019050919050565b6000611120603683611477565b915061112b8261169f565b604082019050919050565b61113f816114fa565b82525050565b6000611151828461100e565b915081905092915050565b60006020820190506111716000830184610fff565b92915050565b600060408201905061118c6000830185610fff565b6111996020830184610fff565b9392505050565b60006060820190506111b56000830186610fff565b6111c26020830185610fff565b6111cf6040830184611136565b949350505050565b6000610100820190506111ed600083018b610fff565b6111fa602083018a610fff565b6112076040830189611136565b6112146060830188611136565b6112216080830187611136565b61122e60a0830186611136565b61123b60c0830185611136565b61124860e0830184611136565b9998505050505050505050565b600060408201905061126a6000830185610fff565b6112776020830184611136565b9392505050565b60006020820190508181036000830152611298818461104e565b905092915050565b600060208201905081810360008301526112b981611087565b9050919050565b600060208201905081810360008301526112d9816110aa565b9050919050565b600060208201905081810360008301526112f9816110cd565b9050919050565b60006020820190508181036000830152611319816110f0565b9050919050565b6000602082019050818103600083015261133981611113565b9050919050565b600060e082019050611355600083018a611136565b6113626020830189610fff565b61136f6040830188611136565b61137c6060830187611136565b6113896080830186611136565b61139660a0830185610fff565b6113a360c083018461103f565b98975050505050505050565b6000610100820190506113c5600083018b611136565b6113d2602083018a610fff565b6113df6040830189611136565b6113ec6060830188611136565b6113f96080830187611136565b61140660a0830186611136565b61141360c0830185611136565b61142060e0830184611136565b9998505050505050505050565b60006040820190506114426000830185611136565b61144f6020830184611136565b9392505050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b6000611493826114fa565b915061149e836114fa565b9250828210156114b1576114b0611549565b5b828203905092915050565b60006114c7826114da565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061150f826114fa565b9050919050565b60005b83811015611534578082015181840152602081019050611519565b83811115611543576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000601f19601f8301169050919050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b6116f7816114bc565b811461170257600080fd5b50565b61170e816114ce565b811461171957600080fd5b50565b611725816114fa565b811461173057600080fd5b5056fea164736f6c6343000804000a", + "bytecode": "0x608060405234801561001057600080fd5b5061252d806100206000396000f3fe60806040526004361061007b5760003560e01c80635254f5a91161004e5780635254f5a91461014c5780639d2b482d14610168578063ac0d2b13146101a5578063fbdfb907146101e25761007b565b806314917f991461008057806314fe06e2146100a957806324fd21a3146100d25780634a6f22c41461010f575b600080fd5b34801561008c57600080fd5b506100a760048036038101906100a29190611cda565b61020b565b005b3480156100b557600080fd5b506100d060048036038101906100cb9190611cda565b61020e565b005b3480156100de57600080fd5b506100f960048036038101906100f49190611cda565b610211565b604051610106919061200d565b60405180910390f35b34801561011b57600080fd5b5061013660048036038101906101319190611cda565b61021c565b604051610143919061200d565b60405180910390f35b61016660048036038101906101619190611d03565b610227565b005b34801561017457600080fd5b5061018f600480360381019061018a9190611cda565b61093b565b60405161019c919061200d565b60405180910390f35b3480156101b157600080fd5b506101cc60048036038101906101c79190611cda565b610942565b6040516101d9919061200d565b60405180910390f35b3480156101ee57600080fd5b5061020960048036038101906102049190611d2d565b610949565b005b50565b50565b600060019050919050565b600060019050919050565b61023b67661bb951cdf53d8960c01b61020e565b61024f6770f43b674d4e55d060c01b61020b565b61026367fdb58b8d5e8c5bd260c01b61020b565b61027767f88563faceb9065260c01b61020b565b6000610281610a4a565b905061029767f5511ed184b06f9d60c01b61020b565b6102ab675fe6356e9bb02e7e60c01b61020b565b6001816000015414156102fe576102cc67c2bf72a01148a95560c01b61020b565b6040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103126759328cc6ac1a5b8460c01b61020b565b610326676585023ebf8de8b060c01b61020b565b600181600001819055506103446794e629fc71d8c79e60c01b61020b565b61035867f7c4c5ed2ed29b8760c01b61020e565b61036c672c8916768aa11a0d60c01b61020e565b61038067c0a65b1e3e76c5f160c01b61020e565b61039366682286c57c645760c01b61020e565b6103b38260400160208101906103a99190611c88565b8360a00135610ac8565b6103c7675aa064e00b20e53260c01b61020e565b6103db676629fd295d85650e60c01b61020e565b60006103f1672af44cf5d351024c60c01b61020e565b6104056753fbdf5eb662728e60c01b61020e565b600161040f610b42565b141561045757610429673bb93a90f35cab4360c01b61020e565b61043d67eeb9315c311e0c4a60c01b61020e565b8260000160208101906104509190611c88565b9050610495565b61046b67dae42f06ddcbf88760c01b61020e565b61047f67c33298c7d476a93160c01b61020e565b8260200160208101906104929190611c88565b90505b6104a96780516103bbb46bff60c01b61020e565b6104bd67495a4110dd564c7960c01b61020e565b82608001356104ca610b91565b141561052a576104e4672ad2e94f535bb7c360c01b61020e565b6104f867a071858ad800078d60c01b61020e565b6040517f4ac09ad300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61053e6771fbd3624530aca960c01b61020e565b610552677a27ef6a0f081e7460c01b61020e565b6105666751f57ad3e8af0ae660c01b61020e565b61058783604001602081019061057c9190611c88565b828560a00135610c17565b61059b6732bd3d5fb005932360c01b61020e565b6105af679ee94c753e40a9bd60c01b61020e565b60006105cc8460400160208101906105c79190611c88565b610eef565b80156105e857506105e7671c6cdb2e561b1b7a60c01b610211565b5b806106035750610602673aae476a62e89c5660c01b61093b565b5b61060e576000610614565b8360a001355b905061062a6705ffa9b8053bd55060c01b61020e565b61063e674c1bf98b0497add460c01b61020e565b6001610648610b42565b141561072c57610662675102be4bdc4b236560c01b61020e565b6106766792dcf2d8fc419e0b60c01b61020e565b61068a67c03078e49b8a444360c01b61020e565b8173ffffffffffffffffffffffffffffffffffffffff1663deace8f58286608001358760600160208101906106bf9190611c88565b8860a001358961012001358a61014001356000806040518963ffffffff1660e01b81526004016106f597969594939291906120ea565b6000604051808303818588803b15801561070e57600080fd5b505af1158015610722573d6000803e3d6000fd5b5050505050610814565b61074067fdf9a48dd9fc437a60c01b61020e565b61075467a7dee6e3ed91651860c01b61020e565b61076867f86051a336f1b40760c01b61020e565b8173ffffffffffffffffffffffffffffffffffffffff1663eea0d7b282866080013587606001602081019061079d9190611c88565b8860a001358960c001358a60e001358b61010001358c61012001358d61014001356040518a63ffffffff1660e01b81526004016107e1989796959493929190612159565b6000604051808303818588803b1580156107fa57600080fd5b505af115801561080e573d6000803e3d6000fd5b50505050505b61082867743931de60bec1cb60c01b61020e565b61083c670e27e12512b10ba560c01b61020e565b83604001602081019061084f9190611c88565b73ffffffffffffffffffffffffffffffffffffffff168460600160208101906108789190611c88565b73ffffffffffffffffffffffffffffffffffffffff1685608001357f35ac5f1aa56e86e7f2e01562289e5bd298773763192f6433fde30f05932381738760000160208101906108c79190611c88565b8860200160208101906108da9190611c88565b8960a001358a60c001358b60e001358c61010001358d61012001358e610140013560405161090f989796959493929190611f66565b60405180910390a4505061092d67441391ce80e99b6c60c01b61020b565b600081600001819055505050565b6000919050565b6000919050565b61095d67c5488db08bf3aa7e60c01b61020e565b61097167d7ab695f9ebcf25360c01b61020e565b61098567b16491a2c8df993a60c01b61020e565b61098d610f64565b6109a167239b563e050639e260c01b61020e565b6109b56751706ccc83c3e5bd60c01b61020e565b60006109bf611063565b90506109d5671994d64fd24a342e60c01b61020e565b8181600001819055506109f267495839473eebbf2060c01b61020e565b610a0667436eee75c6aa5af960c01b61020e565b7f09b9d2d59be87e537ec1f2f9325f524d04c29f20e2c60ce0c3c6435102c7882a610a2f610b91565b83604051610a3e9291906121d7565b60405180910390a15050565b6000610a6067fa11c344c1ec53a860c01b61020b565b610a74670fd7b7008acdbf5460c01b61020b565b610a88679fbd6d57c5d665d460c01b61020b565b60007fc59b5acc5a6673a6c49ca2de898f87adbd9fdfdff36f689476b1c9e0c50964b49050610ac167a9235c9a8268ed9060c01b61020b565b8091505090565b610adc6784e2b4191aab0e7160c01b6110e1565b610af067712f6b66126e0b6560c01b6110e1565b610b0467e5482082d9cb542560c01b6110e1565b610b3e8282600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146110e4565b5050565b6000610b586714c0c344270ea6ab60c01b61020e565b610b6c67a6bc01b0a9fd9f3460c01b61020e565b610b80673887afe91e7c57b060c01b61020e565b610b88611063565b60000154905090565b6000610ba7675f090b7904c6545560c01b61020e565b610bbb676dc269d1fb2d3c6560c01b61020e565b610bcf6705c0ac5722f1f16a60c01b61020e565b6000610be5673fd71ef25da613d360c01b61020e565b469050610bfc67e61d6ccc0a6fabcc60c01b61020e565b610c106717c21480dae85d1f60c01b61020e565b8091505090565b610c2b679ca08e8b0dc7164560c01b6110e1565b610c3f677404bbe72845116960c01b6110e1565b610c536753004255cfb9f81160c01b6110e1565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610cb557610c9c67bccf623436530fb560c01b6110e1565b610cb0672f1ccbe7cc38641160c01b6110e1565b610eea565b610cc9671d77c326e3bb51a560c01b6110e1565b610cdd677d550d58d944335060c01b6110e1565b610cf16726446e7a1db47a7260c01b6110e1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d6c57610d3a67480cbdcd365f7cb860c01b6110e1565b6040517f63ba9bff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d806750e20f5aa90611eb60c01b6110e1565b610d9467df7812970f50c3b160c01b6110e1565b610da867e21ae98e185ebeb360c01b6110e1565b60008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401610de5929190611f06565b60206040518083038186803b158015610dfd57600080fd5b505afa158015610e11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e359190611d56565b9050610e4b67de3d312e2c7294dc60c01b6110e1565b610e5f674e70391417d4424060c01b6110e1565b81811015610ed357610e7b675743a1c484c15d3e60c01b6110e1565b610e8f67bfb9af13a56e47bd60c01b6110e1565b610ea367995d48b5586277dc60c01b6110e1565b610ece84847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611410565b610ee8565b610ee767065587006cca868060c01b6110e1565b5b505b505050565b6000610f0567def6e9860ad508e960c01b6110e1565b610f19673a030cae1d937ded60c01b6110e1565b610f2d6766a8e87620041ca260c01b6110e1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b610f786721b40df6734b4e6460c01b61156e565b610f8c677276b6d1bbf7b68b60c01b61156e565b610fa067f8611dbcb55a1f7860c01b61156e565b610fb4676cedf54251a3375160c01b61156e565b610fbc611571565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461104d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110449061204a565b60405180910390fd5b61106167e452355b21bbd41e60c01b61156e565b565b600061107967049762d47eccc99560c01b61020e565b61108d677485aacd7ed494d760c01b61020e565b6110a1670dbb34693527921760c01b61020e565b60007f82ac262a0ca73826b2defa6066a5cbdaefe5f87d412e3568bfc9bec85eaa985790506110da67969465f63fd91b0960c01b61020e565b8091505090565b50565b6110f86739add2da1b0c35d560c01b6110e1565b61110c675c085b526ab8c57b60c01b6110e1565b61112067b3d2dd058c49644760c01b6110e1565b600082141561116f5761113d6705a8046c2df4f5c660c01b6110e1565b6040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611183678ef4e2c97a2bc62860c01b6110e1565b61119767cc697fa1840ca09660c01b6110e1565b6111ab6762088306b7db0d9360c01b6110e1565b8015611253576111c56796660f8106bc366160c01b6110e1565b6111d967fea9b8b23a82a46c60c01b6110e1565b6111ed671ab9f4b32ff9077960c01b6110e1565b81341461123a5761120867de026f7fec4a202a60c01b6110e1565b6040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61124e67deea53e0c61f3eb460c01b6110e1565b61140b565b6112676744732fb2539afe0860c01b6110e1565b61127b6745b5917460c8548c60c01b6110e1565b61128f67b61cda590281d4c760c01b6110e1565b600034146112dc576112ab670406a51ac2aeb89760c01b6110e1565b6040517e3f45b500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112f06771a45bb6142330f460c01b6110e1565b611304676aed5fceffb1a5b160c01b6110e1565b611318671d42f77a5125292a60c01b6110e1565b6000611323846115ef565b9050611339675f2f73f1308f917760c01b6110e1565b61134d67e372a3dad5ac62de60c01b6110e1565b6113598433308661172f565b61136d67102e84bf56110f4360c01b6110e1565b61138167de23d6438fcaff2e60c01b6110e1565b828161138c866115ef565b6113969190612232565b146113f5576113af67b59535ced511891360c01b6110e1565b6113c367b891075f773c113a60c01b6110e1565b6040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61140967ab2bee94dc1c87d160c01b6110e1565b505b505050565b60008114806114a9575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401611457929190611f06565b60206040518083038186803b15801561146f57600080fd5b505afa158015611483573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a79190611d56565b145b6114e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114df906120ca565b60405180910390fd5b6115698363095ea7b360e01b8484604051602401611507929190611fe4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506118eb565b505050565b50565b6000611587674f9afbb757d80e6360c01b61156e565b61159b674b823103125da15660c01b61156e565b6115af674ab715c231c1608d60c01b61156e565b60007fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90506115e867982d9bb86701efa860c01b61156e565b8091505090565b600061160567bb6d3fbf241bf67660c01b6110e1565b611619677ba8e1dcf768e44260c01b6110e1565b61162d674fd0fe73cee512ad60c01b6110e1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611679575061167867f6a472cb1776bcb560c01b6119b2565b5b80611694575061169367d904c8f1fbab9d1f60c01b6119bd565b5b611726578173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016116d19190611eeb565b60206040518083038186803b1580156116e957600080fd5b505afa1580156116fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117219190611d56565b611728565b475b9050919050565b61174367ef583e2039c405c960c01b6110e1565b61175767ace174e366a9f4fc60c01b6110e1565b61176b671bb3b9242bb58a1f60c01b6110e1565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156117e6576117b467434f07c0e3d2754a60c01b6110e1565b6040517fd1bebf0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6117fa679391395d4ba7d68d60c01b6110e1565b61180e671a151b621bcceb6460c01b6110e1565b611822671d62177db93f304360c01b6110e1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561189d5761186b67bfa6da5dd21dbe1f60c01b6110e1565b6040517f21f7434500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6118b167971e37aa923e816660c01b6110e1565b6118c5675dd2e235ffab1cbb60c01b6110e1565b6118d9670980a3febde5381660c01b6110e1565b6118e5848484846119c4565b50505050565b600061194d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611a4d9092919063ffffffff16565b90506000815111156119ad578080602001905181019061196d9190611cb1565b6119ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a3906120aa565b60405180910390fd5b5b505050565b600060019050919050565b6000919050565b611a47846323b872dd60e01b8585856040516024016119e593929190611f2f565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506118eb565b50505050565b6060611a5c8484600085611a65565b90509392505050565b606082471015611aaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa19061206a565b60405180910390fd5b611ab385611b79565b611af2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae99061208a565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051611b1b9190611ed4565b60006040518083038185875af1925050503d8060008114611b58576040519150601f19603f3d011682016040523d82523d6000602084013e611b5d565b606091505b5091509150611b6d828286611b9c565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60608315611bac57829050611bfc565b600083511115611bbf5782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf39190612028565b60405180910390fd5b9392505050565b600081359050611c12816124c4565b92915050565b600081519050611c27816124db565b92915050565b600081359050611c3c816124f2565b92915050565b60006101608284031215611c5557600080fd5b81905092915050565b600081359050611c6d81612509565b92915050565b600081519050611c8281612509565b92915050565b600060208284031215611c9a57600080fd5b6000611ca884828501611c03565b91505092915050565b600060208284031215611cc357600080fd5b6000611cd184828501611c18565b91505092915050565b600060208284031215611cec57600080fd5b6000611cfa84828501611c2d565b91505092915050565b60006101608284031215611d1657600080fd5b6000611d2484828501611c42565b91505092915050565b600060208284031215611d3f57600080fd5b6000611d4d84828501611c5e565b91505092915050565b600060208284031215611d6857600080fd5b6000611d7684828501611c73565b91505092915050565b611d8881612266565b82525050565b611d9781612278565b82525050565b6000611da882612200565b611db28185612216565b9350611dc28185602086016122ec565b80840191505092915050565b611dd7816122da565b82525050565b6000611de88261220b565b611df28185612221565b9350611e028185602086016122ec565b611e0b8161234e565b840191505092915050565b6000611e23602283612221565b9150611e2e8261235f565b604082019050919050565b6000611e46602683612221565b9150611e51826123ae565b604082019050919050565b6000611e69601d83612221565b9150611e74826123fd565b602082019050919050565b6000611e8c602a83612221565b9150611e9782612426565b604082019050919050565b6000611eaf603683612221565b9150611eba82612475565b604082019050919050565b611ece816122d0565b82525050565b6000611ee08284611d9d565b915081905092915050565b6000602082019050611f006000830184611d7f565b92915050565b6000604082019050611f1b6000830185611d7f565b611f286020830184611d7f565b9392505050565b6000606082019050611f446000830186611d7f565b611f516020830185611d7f565b611f5e6040830184611ec5565b949350505050565b600061010082019050611f7c600083018b611d7f565b611f89602083018a611d7f565b611f966040830189611ec5565b611fa36060830188611ec5565b611fb06080830187611ec5565b611fbd60a0830186611ec5565b611fca60c0830185611ec5565b611fd760e0830184611ec5565b9998505050505050505050565b6000604082019050611ff96000830185611d7f565b6120066020830184611ec5565b9392505050565b60006020820190506120226000830184611d8e565b92915050565b600060208201905081810360008301526120428184611ddd565b905092915050565b6000602082019050818103600083015261206381611e16565b9050919050565b6000602082019050818103600083015261208381611e39565b9050919050565b600060208201905081810360008301526120a381611e5c565b9050919050565b600060208201905081810360008301526120c381611e7f565b9050919050565b600060208201905081810360008301526120e381611ea2565b9050919050565b600060e0820190506120ff600083018a611ec5565b61210c6020830189611d7f565b6121196040830188611ec5565b6121266060830187611ec5565b6121336080830186611ec5565b61214060a0830185611d7f565b61214d60c0830184611dce565b98975050505050505050565b60006101008201905061216f600083018b611ec5565b61217c602083018a611d7f565b6121896040830189611ec5565b6121966060830188611ec5565b6121a36080830187611ec5565b6121b060a0830186611ec5565b6121bd60c0830185611ec5565b6121ca60e0830184611ec5565b9998505050505050505050565b60006040820190506121ec6000830185611ec5565b6121f96020830184611ec5565b9392505050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600061223d826122d0565b9150612248836122d0565b92508282101561225b5761225a61231f565b5b828203905092915050565b6000612271826122b0565b9050919050565b60008115159050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006122e5826122d0565b9050919050565b60005b8381101561230a5780820151818401526020810190506122ef565b83811115612319576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000601f19601f8301169050919050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b6124cd81612266565b81146124d857600080fd5b50565b6124e481612278565b81146124ef57600080fd5b50565b6124fb81612284565b811461250657600080fd5b50565b612512816122d0565b811461251d57600080fd5b5056fea164736f6c6343000804000a", + "deployedBytecode": "0x60806040526004361061007b5760003560e01c80635254f5a91161004e5780635254f5a91461014c5780639d2b482d14610168578063ac0d2b13146101a5578063fbdfb907146101e25761007b565b806314917f991461008057806314fe06e2146100a957806324fd21a3146100d25780634a6f22c41461010f575b600080fd5b34801561008c57600080fd5b506100a760048036038101906100a29190611cda565b61020b565b005b3480156100b557600080fd5b506100d060048036038101906100cb9190611cda565b61020e565b005b3480156100de57600080fd5b506100f960048036038101906100f49190611cda565b610211565b604051610106919061200d565b60405180910390f35b34801561011b57600080fd5b5061013660048036038101906101319190611cda565b61021c565b604051610143919061200d565b60405180910390f35b61016660048036038101906101619190611d03565b610227565b005b34801561017457600080fd5b5061018f600480360381019061018a9190611cda565b61093b565b60405161019c919061200d565b60405180910390f35b3480156101b157600080fd5b506101cc60048036038101906101c79190611cda565b610942565b6040516101d9919061200d565b60405180910390f35b3480156101ee57600080fd5b5061020960048036038101906102049190611d2d565b610949565b005b50565b50565b600060019050919050565b600060019050919050565b61023b67661bb951cdf53d8960c01b61020e565b61024f6770f43b674d4e55d060c01b61020b565b61026367fdb58b8d5e8c5bd260c01b61020b565b61027767f88563faceb9065260c01b61020b565b6000610281610a4a565b905061029767f5511ed184b06f9d60c01b61020b565b6102ab675fe6356e9bb02e7e60c01b61020b565b6001816000015414156102fe576102cc67c2bf72a01148a95560c01b61020b565b6040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103126759328cc6ac1a5b8460c01b61020b565b610326676585023ebf8de8b060c01b61020b565b600181600001819055506103446794e629fc71d8c79e60c01b61020b565b61035867f7c4c5ed2ed29b8760c01b61020e565b61036c672c8916768aa11a0d60c01b61020e565b61038067c0a65b1e3e76c5f160c01b61020e565b61039366682286c57c645760c01b61020e565b6103b38260400160208101906103a99190611c88565b8360a00135610ac8565b6103c7675aa064e00b20e53260c01b61020e565b6103db676629fd295d85650e60c01b61020e565b60006103f1672af44cf5d351024c60c01b61020e565b6104056753fbdf5eb662728e60c01b61020e565b600161040f610b42565b141561045757610429673bb93a90f35cab4360c01b61020e565b61043d67eeb9315c311e0c4a60c01b61020e565b8260000160208101906104509190611c88565b9050610495565b61046b67dae42f06ddcbf88760c01b61020e565b61047f67c33298c7d476a93160c01b61020e565b8260200160208101906104929190611c88565b90505b6104a96780516103bbb46bff60c01b61020e565b6104bd67495a4110dd564c7960c01b61020e565b82608001356104ca610b91565b141561052a576104e4672ad2e94f535bb7c360c01b61020e565b6104f867a071858ad800078d60c01b61020e565b6040517f4ac09ad300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61053e6771fbd3624530aca960c01b61020e565b610552677a27ef6a0f081e7460c01b61020e565b6105666751f57ad3e8af0ae660c01b61020e565b61058783604001602081019061057c9190611c88565b828560a00135610c17565b61059b6732bd3d5fb005932360c01b61020e565b6105af679ee94c753e40a9bd60c01b61020e565b60006105cc8460400160208101906105c79190611c88565b610eef565b80156105e857506105e7671c6cdb2e561b1b7a60c01b610211565b5b806106035750610602673aae476a62e89c5660c01b61093b565b5b61060e576000610614565b8360a001355b905061062a6705ffa9b8053bd55060c01b61020e565b61063e674c1bf98b0497add460c01b61020e565b6001610648610b42565b141561072c57610662675102be4bdc4b236560c01b61020e565b6106766792dcf2d8fc419e0b60c01b61020e565b61068a67c03078e49b8a444360c01b61020e565b8173ffffffffffffffffffffffffffffffffffffffff1663deace8f58286608001358760600160208101906106bf9190611c88565b8860a001358961012001358a61014001356000806040518963ffffffff1660e01b81526004016106f597969594939291906120ea565b6000604051808303818588803b15801561070e57600080fd5b505af1158015610722573d6000803e3d6000fd5b5050505050610814565b61074067fdf9a48dd9fc437a60c01b61020e565b61075467a7dee6e3ed91651860c01b61020e565b61076867f86051a336f1b40760c01b61020e565b8173ffffffffffffffffffffffffffffffffffffffff1663eea0d7b282866080013587606001602081019061079d9190611c88565b8860a001358960c001358a60e001358b61010001358c61012001358d61014001356040518a63ffffffff1660e01b81526004016107e1989796959493929190612159565b6000604051808303818588803b1580156107fa57600080fd5b505af115801561080e573d6000803e3d6000fd5b50505050505b61082867743931de60bec1cb60c01b61020e565b61083c670e27e12512b10ba560c01b61020e565b83604001602081019061084f9190611c88565b73ffffffffffffffffffffffffffffffffffffffff168460600160208101906108789190611c88565b73ffffffffffffffffffffffffffffffffffffffff1685608001357f35ac5f1aa56e86e7f2e01562289e5bd298773763192f6433fde30f05932381738760000160208101906108c79190611c88565b8860200160208101906108da9190611c88565b8960a001358a60c001358b60e001358c61010001358d61012001358e610140013560405161090f989796959493929190611f66565b60405180910390a4505061092d67441391ce80e99b6c60c01b61020b565b600081600001819055505050565b6000919050565b6000919050565b61095d67c5488db08bf3aa7e60c01b61020e565b61097167d7ab695f9ebcf25360c01b61020e565b61098567b16491a2c8df993a60c01b61020e565b61098d610f64565b6109a167239b563e050639e260c01b61020e565b6109b56751706ccc83c3e5bd60c01b61020e565b60006109bf611063565b90506109d5671994d64fd24a342e60c01b61020e565b8181600001819055506109f267495839473eebbf2060c01b61020e565b610a0667436eee75c6aa5af960c01b61020e565b7f09b9d2d59be87e537ec1f2f9325f524d04c29f20e2c60ce0c3c6435102c7882a610a2f610b91565b83604051610a3e9291906121d7565b60405180910390a15050565b6000610a6067fa11c344c1ec53a860c01b61020b565b610a74670fd7b7008acdbf5460c01b61020b565b610a88679fbd6d57c5d665d460c01b61020b565b60007fc59b5acc5a6673a6c49ca2de898f87adbd9fdfdff36f689476b1c9e0c50964b49050610ac167a9235c9a8268ed9060c01b61020b565b8091505090565b610adc6784e2b4191aab0e7160c01b6110e1565b610af067712f6b66126e0b6560c01b6110e1565b610b0467e5482082d9cb542560c01b6110e1565b610b3e8282600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146110e4565b5050565b6000610b586714c0c344270ea6ab60c01b61020e565b610b6c67a6bc01b0a9fd9f3460c01b61020e565b610b80673887afe91e7c57b060c01b61020e565b610b88611063565b60000154905090565b6000610ba7675f090b7904c6545560c01b61020e565b610bbb676dc269d1fb2d3c6560c01b61020e565b610bcf6705c0ac5722f1f16a60c01b61020e565b6000610be5673fd71ef25da613d360c01b61020e565b469050610bfc67e61d6ccc0a6fabcc60c01b61020e565b610c106717c21480dae85d1f60c01b61020e565b8091505090565b610c2b679ca08e8b0dc7164560c01b6110e1565b610c3f677404bbe72845116960c01b6110e1565b610c536753004255cfb9f81160c01b6110e1565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610cb557610c9c67bccf623436530fb560c01b6110e1565b610cb0672f1ccbe7cc38641160c01b6110e1565b610eea565b610cc9671d77c326e3bb51a560c01b6110e1565b610cdd677d550d58d944335060c01b6110e1565b610cf16726446e7a1db47a7260c01b6110e1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d6c57610d3a67480cbdcd365f7cb860c01b6110e1565b6040517f63ba9bff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d806750e20f5aa90611eb60c01b6110e1565b610d9467df7812970f50c3b160c01b6110e1565b610da867e21ae98e185ebeb360c01b6110e1565b60008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401610de5929190611f06565b60206040518083038186803b158015610dfd57600080fd5b505afa158015610e11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e359190611d56565b9050610e4b67de3d312e2c7294dc60c01b6110e1565b610e5f674e70391417d4424060c01b6110e1565b81811015610ed357610e7b675743a1c484c15d3e60c01b6110e1565b610e8f67bfb9af13a56e47bd60c01b6110e1565b610ea367995d48b5586277dc60c01b6110e1565b610ece84847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611410565b610ee8565b610ee767065587006cca868060c01b6110e1565b5b505b505050565b6000610f0567def6e9860ad508e960c01b6110e1565b610f19673a030cae1d937ded60c01b6110e1565b610f2d6766a8e87620041ca260c01b6110e1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b610f786721b40df6734b4e6460c01b61156e565b610f8c677276b6d1bbf7b68b60c01b61156e565b610fa067f8611dbcb55a1f7860c01b61156e565b610fb4676cedf54251a3375160c01b61156e565b610fbc611571565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461104d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110449061204a565b60405180910390fd5b61106167e452355b21bbd41e60c01b61156e565b565b600061107967049762d47eccc99560c01b61020e565b61108d677485aacd7ed494d760c01b61020e565b6110a1670dbb34693527921760c01b61020e565b60007f82ac262a0ca73826b2defa6066a5cbdaefe5f87d412e3568bfc9bec85eaa985790506110da67969465f63fd91b0960c01b61020e565b8091505090565b50565b6110f86739add2da1b0c35d560c01b6110e1565b61110c675c085b526ab8c57b60c01b6110e1565b61112067b3d2dd058c49644760c01b6110e1565b600082141561116f5761113d6705a8046c2df4f5c660c01b6110e1565b6040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611183678ef4e2c97a2bc62860c01b6110e1565b61119767cc697fa1840ca09660c01b6110e1565b6111ab6762088306b7db0d9360c01b6110e1565b8015611253576111c56796660f8106bc366160c01b6110e1565b6111d967fea9b8b23a82a46c60c01b6110e1565b6111ed671ab9f4b32ff9077960c01b6110e1565b81341461123a5761120867de026f7fec4a202a60c01b6110e1565b6040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61124e67deea53e0c61f3eb460c01b6110e1565b61140b565b6112676744732fb2539afe0860c01b6110e1565b61127b6745b5917460c8548c60c01b6110e1565b61128f67b61cda590281d4c760c01b6110e1565b600034146112dc576112ab670406a51ac2aeb89760c01b6110e1565b6040517e3f45b500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112f06771a45bb6142330f460c01b6110e1565b611304676aed5fceffb1a5b160c01b6110e1565b611318671d42f77a5125292a60c01b6110e1565b6000611323846115ef565b9050611339675f2f73f1308f917760c01b6110e1565b61134d67e372a3dad5ac62de60c01b6110e1565b6113598433308661172f565b61136d67102e84bf56110f4360c01b6110e1565b61138167de23d6438fcaff2e60c01b6110e1565b828161138c866115ef565b6113969190612232565b146113f5576113af67b59535ced511891360c01b6110e1565b6113c367b891075f773c113a60c01b6110e1565b6040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61140967ab2bee94dc1c87d160c01b6110e1565b505b505050565b60008114806114a9575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401611457929190611f06565b60206040518083038186803b15801561146f57600080fd5b505afa158015611483573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a79190611d56565b145b6114e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114df906120ca565b60405180910390fd5b6115698363095ea7b360e01b8484604051602401611507929190611fe4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506118eb565b505050565b50565b6000611587674f9afbb757d80e6360c01b61156e565b61159b674b823103125da15660c01b61156e565b6115af674ab715c231c1608d60c01b61156e565b60007fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90506115e867982d9bb86701efa860c01b61156e565b8091505090565b600061160567bb6d3fbf241bf67660c01b6110e1565b611619677ba8e1dcf768e44260c01b6110e1565b61162d674fd0fe73cee512ad60c01b6110e1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611679575061167867f6a472cb1776bcb560c01b6119b2565b5b80611694575061169367d904c8f1fbab9d1f60c01b6119bd565b5b611726578173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016116d19190611eeb565b60206040518083038186803b1580156116e957600080fd5b505afa1580156116fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117219190611d56565b611728565b475b9050919050565b61174367ef583e2039c405c960c01b6110e1565b61175767ace174e366a9f4fc60c01b6110e1565b61176b671bb3b9242bb58a1f60c01b6110e1565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156117e6576117b467434f07c0e3d2754a60c01b6110e1565b6040517fd1bebf0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6117fa679391395d4ba7d68d60c01b6110e1565b61180e671a151b621bcceb6460c01b6110e1565b611822671d62177db93f304360c01b6110e1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561189d5761186b67bfa6da5dd21dbe1f60c01b6110e1565b6040517f21f7434500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6118b167971e37aa923e816660c01b6110e1565b6118c5675dd2e235ffab1cbb60c01b6110e1565b6118d9670980a3febde5381660c01b6110e1565b6118e5848484846119c4565b50505050565b600061194d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611a4d9092919063ffffffff16565b90506000815111156119ad578080602001905181019061196d9190611cb1565b6119ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a3906120aa565b60405180910390fd5b5b505050565b600060019050919050565b6000919050565b611a47846323b872dd60e01b8585856040516024016119e593929190611f2f565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506118eb565b50505050565b6060611a5c8484600085611a65565b90509392505050565b606082471015611aaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa19061206a565b60405180910390fd5b611ab385611b79565b611af2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae99061208a565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051611b1b9190611ed4565b60006040518083038185875af1925050503d8060008114611b58576040519150601f19603f3d011682016040523d82523d6000602084013e611b5d565b606091505b5091509150611b6d828286611b9c565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60608315611bac57829050611bfc565b600083511115611bbf5782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf39190612028565b60405180910390fd5b9392505050565b600081359050611c12816124c4565b92915050565b600081519050611c27816124db565b92915050565b600081359050611c3c816124f2565b92915050565b60006101608284031215611c5557600080fd5b81905092915050565b600081359050611c6d81612509565b92915050565b600081519050611c8281612509565b92915050565b600060208284031215611c9a57600080fd5b6000611ca884828501611c03565b91505092915050565b600060208284031215611cc357600080fd5b6000611cd184828501611c18565b91505092915050565b600060208284031215611cec57600080fd5b6000611cfa84828501611c2d565b91505092915050565b60006101608284031215611d1657600080fd5b6000611d2484828501611c42565b91505092915050565b600060208284031215611d3f57600080fd5b6000611d4d84828501611c5e565b91505092915050565b600060208284031215611d6857600080fd5b6000611d7684828501611c73565b91505092915050565b611d8881612266565b82525050565b611d9781612278565b82525050565b6000611da882612200565b611db28185612216565b9350611dc28185602086016122ec565b80840191505092915050565b611dd7816122da565b82525050565b6000611de88261220b565b611df28185612221565b9350611e028185602086016122ec565b611e0b8161234e565b840191505092915050565b6000611e23602283612221565b9150611e2e8261235f565b604082019050919050565b6000611e46602683612221565b9150611e51826123ae565b604082019050919050565b6000611e69601d83612221565b9150611e74826123fd565b602082019050919050565b6000611e8c602a83612221565b9150611e9782612426565b604082019050919050565b6000611eaf603683612221565b9150611eba82612475565b604082019050919050565b611ece816122d0565b82525050565b6000611ee08284611d9d565b915081905092915050565b6000602082019050611f006000830184611d7f565b92915050565b6000604082019050611f1b6000830185611d7f565b611f286020830184611d7f565b9392505050565b6000606082019050611f446000830186611d7f565b611f516020830185611d7f565b611f5e6040830184611ec5565b949350505050565b600061010082019050611f7c600083018b611d7f565b611f89602083018a611d7f565b611f966040830189611ec5565b611fa36060830188611ec5565b611fb06080830187611ec5565b611fbd60a0830186611ec5565b611fca60c0830185611ec5565b611fd760e0830184611ec5565b9998505050505050505050565b6000604082019050611ff96000830185611d7f565b6120066020830184611ec5565b9392505050565b60006020820190506120226000830184611d8e565b92915050565b600060208201905081810360008301526120428184611ddd565b905092915050565b6000602082019050818103600083015261206381611e16565b9050919050565b6000602082019050818103600083015261208381611e39565b9050919050565b600060208201905081810360008301526120a381611e5c565b9050919050565b600060208201905081810360008301526120c381611e7f565b9050919050565b600060208201905081810360008301526120e381611ea2565b9050919050565b600060e0820190506120ff600083018a611ec5565b61210c6020830189611d7f565b6121196040830188611ec5565b6121266060830187611ec5565b6121336080830186611ec5565b61214060a0830185611d7f565b61214d60c0830184611dce565b98975050505050505050565b60006101008201905061216f600083018b611ec5565b61217c602083018a611d7f565b6121896040830189611ec5565b6121966060830188611ec5565b6121a36080830187611ec5565b6121b060a0830186611ec5565b6121bd60c0830185611ec5565b6121ca60e0830184611ec5565b9998505050505050505050565b60006040820190506121ec6000830185611ec5565b6121f96020830184611ec5565b9392505050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600061223d826122d0565b9150612248836122d0565b92508282101561225b5761225a61231f565b5b828203905092915050565b6000612271826122b0565b9050919050565b60008115159050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006122e5826122d0565b9050919050565b60005b8381101561230a5780820151818401526020810190506122ef565b83811115612319576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000601f19601f8301169050919050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b6124cd81612266565b81146124d857600080fd5b50565b6124e481612278565b81146124ef57600080fd5b50565b6124fb81612284565b811461250657600080fd5b50565b612512816122d0565b811461251d57600080fd5b5056fea164736f6c6343000804000a", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/IERC20Metadata.json b/artifacts/IERC20Metadata.json deleted file mode 100644 index 0436b925..00000000 --- a/artifacts/IERC20Metadata.json +++ /dev/null @@ -1,233 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC20Metadata", - "sourceName": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "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": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "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": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/IERC20MetadataUpgradeable.json b/artifacts/IERC20MetadataUpgradeable.json deleted file mode 100644 index 315917ca..00000000 --- a/artifacts/IERC20MetadataUpgradeable.json +++ /dev/null @@ -1,233 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC20MetadataUpgradeable", - "sourceName": "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "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": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "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": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/IERC20Upgradeable.json b/artifacts/IERC20Upgradeable.json deleted file mode 100644 index 5e3329ee..00000000 --- a/artifacts/IERC20Upgradeable.json +++ /dev/null @@ -1,194 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC20Upgradeable", - "sourceName": "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "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": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/IStargateReceiver.json b/artifacts/IStargateReceiver.json index f34dc3b9..31677481 100644 --- a/artifacts/IStargateReceiver.json +++ b/artifacts/IStargateReceiver.json @@ -1,13 +1,13 @@ { "_format": "hh-sol-artifact-1", "contractName": "IStargateReceiver", - "sourceName": "src/bridges/interfaces/IStargateReceiver.sol", + "sourceName": "src/bridges/interfaces/stargate/IStargateReceiver.sol", "abi": [ { "inputs": [ { "internalType": "uint16", - "name": "_srcChainId", + "name": "_chainId", "type": "uint16" }, { diff --git a/artifacts/IStargateRouter.json b/artifacts/IStargateRouter.json index 252ab8ca..d3c2c83a 100644 --- a/artifacts/IStargateRouter.json +++ b/artifacts/IStargateRouter.json @@ -1,7 +1,7 @@ { "_format": "hh-sol-artifact-1", "contractName": "IStargateRouter", - "sourceName": "src/bridges/interfaces/IStargateRouter.sol", + "sourceName": "src/bridges/interfaces/stargate/IStargateRouter.sol", "abi": [ { "inputs": [ diff --git a/artifacts/IStargateRouterETH.json b/artifacts/IStargateRouterETH.json new file mode 100644 index 00000000..fbe27260 --- /dev/null +++ b/artifacts/IStargateRouterETH.json @@ -0,0 +1,51 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IStargateRouterETH", + "sourceName": "src/bridges/interfaces/stargate/IStargateRouterETH.sol", + "abi": [ + { + "inputs": [], + "name": "addLiquidityETH", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "dstChainId", + "type": "uint16" + }, + { + "internalType": "address payable", + "name": "refundAddress", + "type": "address" + }, + { + "internalType": "bytes", + "name": "to", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "amountLD", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minAmountLD", + "type": "uint256" + } + ], + "name": "swapETH", + "outputs": [], + "stateMutability": "payable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/Initializable.json b/artifacts/Initializable.json index 4b29c723..0365cf01 100644 --- a/artifacts/Initializable.json +++ b/artifacts/Initializable.json @@ -1,20 +1,84 @@ { "_format": "hh-sol-artifact-1", "contractName": "Initializable", - "sourceName": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "sourceName": "src/common/lifecycle/Initializable.sol", "abi": [ { "anonymous": false, "inputs": [ { "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" + "internalType": "address", + "name": "initializer", + "type": "address" } ], "name": "Initialized", "type": "event" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__098c0657", + "type": "bytes8" + } + ], + "name": "c_098c0657", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__098c0657", + "type": "bytes8" + } + ], + "name": "c_false098c0657", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__098c0657", + "type": "bytes8" + } + ], + "name": "c_true098c0657", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "isInitialized", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" } ], "bytecode": "0x", diff --git a/artifacts/LibAsset.json b/artifacts/LibAsset.json index 74bbd398..47e3b90e 100644 --- a/artifacts/LibAsset.json +++ b/artifacts/LibAsset.json @@ -2,9 +2,61 @@ "_format": "hh-sol-artifact-1", "contractName": "LibAsset", "sourceName": "src/bridges/libs/LibAsset.sol", - "abi": [], - "bytecode": "0x602d6050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000804000a", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000804000a", + "abi": [ + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__724619c6", + "type": "bytes8" + } + ], + "name": "c_724619c6", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__724619c6", + "type": "bytes8" + } + ], + "name": "c_false724619c6", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__724619c6", + "type": "bytes8" + } + ], + "name": "c_true724619c6", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + } + ], + "bytecode": "0x6101a5610053600b82828239805160001a607314610046577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061004b5760003560e01c80631133eca214610050578063d9e8719e14610080578063e12842d3146100b0575b600080fd5b61006a600480360381019061006591906100f6565b6100cc565b604051610077919061012e565b60405180910390f35b61009a600480360381019061009591906100f6565b6100d3565b6040516100a7919061012e565b60405180910390f35b6100ca60048036038101906100c591906100f6565b6100de565b005b6000919050565b600060019050919050565b50565b6000813590506100f081610181565b92915050565b60006020828403121561010857600080fd5b6000610116848285016100e1565b91505092915050565b61012881610149565b82525050565b6000602082019050610143600083018461011f565b92915050565b60008115159050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b61018a81610155565b811461019557600080fd5b5056fea164736f6c6343000804000a", + "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040526004361061004b5760003560e01c80631133eca214610050578063d9e8719e14610080578063e12842d3146100b0575b600080fd5b61006a600480360381019061006591906100f6565b6100cc565b604051610077919061012e565b60405180910390f35b61009a600480360381019061009591906100f6565b6100d3565b6040516100a7919061012e565b60405180910390f35b6100ca60048036038101906100c591906100f6565b6100de565b005b6000919050565b600060019050919050565b50565b6000813590506100f081610181565b92915050565b60006020828403121561010857600080fd5b6000610116848285016100e1565b91505092915050565b61012881610149565b82525050565b6000602082019050610143600083018461011f565b92915050565b60008115159050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b61018a81610155565b811461019557600080fd5b5056fea164736f6c6343000804000a", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/LibDiamond.json b/artifacts/LibDiamond.json index d17d5c88..d7e5d52d 100644 --- a/artifacts/LibDiamond.json +++ b/artifacts/LibDiamond.json @@ -63,10 +63,61 @@ ], "name": "OwnershipTransferred", "type": "event" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__f9a76502", + "type": "bytes8" + } + ], + "name": "c_f9a76502", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__f9a76502", + "type": "bytes8" + } + ], + "name": "c_falsef9a76502", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__f9a76502", + "type": "bytes8" + } + ], + "name": "c_truef9a76502", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" } ], - "bytecode": "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e443216bcd038ab1823e4b419d4c6f195e30184d868d9d809f07908d8502743064736f6c63430008110033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e443216bcd038ab1823e4b419d4c6f195e30184d868d9d809f07908d8502743064736f6c63430008110033", + "bytecode": "0x6101d7610053600b82828239805160001a607314610046577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061004b5760003560e01c806332446555146100505780637b7164e014610080578063968b8c8b1461009c575b600080fd5b61006a6004803603810190610065919061013e565b6100cc565b6040516100779190610186565b60405180910390f35b61009a6004803603810190610095919061013e565b6100d7565b005b6100b660048036038101906100b1919061013e565b6100da565b6040516100c39190610186565b60405180910390f35b600060019050919050565b50565b6000919050565b600080fd5b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b61011b816100e6565b811461012657600080fd5b50565b60008135905061013881610112565b92915050565b600060208284031215610154576101536100e1565b5b600061016284828501610129565b91505092915050565b60008115159050919050565b6101808161016b565b82525050565b600060208201905061019b6000830184610177565b9291505056fea2646970667358221220bd3ed9c770c81adfc18ce730de0b9c81b3318fa299d0960ffbc5ed6f9f672d7464736f6c63430008110033", + "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040526004361061004b5760003560e01c806332446555146100505780637b7164e014610080578063968b8c8b1461009c575b600080fd5b61006a6004803603810190610065919061013e565b6100cc565b6040516100779190610186565b60405180910390f35b61009a6004803603810190610095919061013e565b6100d7565b005b6100b660048036038101906100b1919061013e565b6100da565b6040516100c39190610186565b60405180910390f35b600060019050919050565b50565b6000919050565b600080fd5b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b61011b816100e6565b811461012657600080fd5b50565b60008135905061013881610112565b92915050565b600060208284031215610154576101536100e1565b5b600061016284828501610129565b91505092915050565b60008115159050919050565b6101808161016b565b82525050565b600060208201905061019b6000830184610177565b9291505056fea2646970667358221220bd3ed9c770c81adfc18ce730de0b9c81b3318fa299d0960ffbc5ed6f9f672d7464736f6c63430008110033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/OwnableUpgradeable.json b/artifacts/OwnableUpgradeable.json deleted file mode 100644 index 52518703..00000000 --- a/artifacts/OwnableUpgradeable.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "OwnableUpgradeable", - "sourceName": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/OwnershipFacet.json b/artifacts/OwnershipFacet.json index 15801b13..7c61cbb9 100644 --- a/artifacts/OwnershipFacet.json +++ b/artifacts/OwnershipFacet.json @@ -3,6 +3,57 @@ "contractName": "OwnershipFacet", "sourceName": "src/bridges/facets/OwnershipFacet.sol", "abi": [ + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__2f222e9f", + "type": "bytes8" + } + ], + "name": "c_2f222e9f", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__2f222e9f", + "type": "bytes8" + } + ], + "name": "c_false2f222e9f", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__2f222e9f", + "type": "bytes8" + } + ], + "name": "c_true2f222e9f", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [], "name": "owner", @@ -30,8 +81,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b506103fd806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80638da5cb5b1461003b578063f2fde38b14610059575b600080fd5b610043610075565b60405161005091906102ab565b60405180910390f35b610073600480360381019061006e91906102f7565b610084565b005b600061007f610098565b905090565b61008c6100cb565b61009581610166565b50565b60006100a261023d565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6100d361023d565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610164576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015b906103a7565b60405180910390fd5b565b600061017061023d565b905060008160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006102958261026a565b9050919050565b6102a58161028a565b82525050565b60006020820190506102c0600083018461029c565b92915050565b600080fd5b6102d48161028a565b81146102df57600080fd5b50565b6000813590506102f1816102cb565b92915050565b60006020828403121561030d5761030c6102c6565b5b600061031b848285016102e2565b91505092915050565b600082825260208201905092915050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b6000610391602283610324565b915061039c82610335565b604082019050919050565b600060208201905081810360008301526103c081610384565b905091905056fea2646970667358221220f36d06e82e43b03b644ee35505424cb4798ec509840fa5dd4ab3863b4ebd66b364736f6c63430008110033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c80638da5cb5b1461003b578063f2fde38b14610059575b600080fd5b610043610075565b60405161005091906102ab565b60405180910390f35b610073600480360381019061006e91906102f7565b610084565b005b600061007f610098565b905090565b61008c6100cb565b61009581610166565b50565b60006100a261023d565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6100d361023d565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610164576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015b906103a7565b60405180910390fd5b565b600061017061023d565b905060008160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006102958261026a565b9050919050565b6102a58161028a565b82525050565b60006020820190506102c0600083018461029c565b92915050565b600080fd5b6102d48161028a565b81146102df57600080fd5b50565b6000813590506102f1816102cb565b92915050565b60006020828403121561030d5761030c6102c6565b5b600061031b848285016102e2565b91505092915050565b600082825260208201905092915050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b6000610391602283610324565b915061039c82610335565b604082019050919050565b600060208201905081810360008301526103c081610384565b905091905056fea2646970667358221220f36d06e82e43b03b644ee35505424cb4798ec509840fa5dd4ab3863b4ebd66b364736f6c63430008110033", + "bytecode": "0x608060405234801561001057600080fd5b50610776806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063433a40cc1461005c57806345a7077e1461008c5780638da5cb5b146100a8578063e673e274146100c6578063f2fde38b146100f6575b600080fd5b61007660048036038101906100719190610585565b610112565b60405161008391906105cd565b60405180910390f35b6100a660048036038101906100a19190610585565b610119565b005b6100b061011c565b6040516100bd9190610629565b60405180910390f35b6100e060048036038101906100db9190610585565b610153565b6040516100ed91906105cd565b60405180910390f35b610110600480360381019061010b9190610670565b61015e565b005b6000919050565b50565b60006101326703b0bbf0cc27d6d060c01b610119565b61014667ddcbd84332b09d5c60c01b610119565b61014e6101d6565b905090565b600060019050919050565b6101726794c7fe791cf6e26660c01b610119565b61018667ecce47dee557841060c01b610119565b61019a67e6e44605ff8269ab60c01b610119565b6101a2610231565b6101b66703d113e82bc56e6960c01b610119565b6101ca6740d917c23072919760c01b610119565b6101d381610330565b50565b60006101ec677d1d35fb9d60316160c01b6104a7565b610200671bba0af24121cdd160c01b6104a7565b6102086104aa565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6102456721b40df6734b4e6460c01b6104a7565b610259677276b6d1bbf7b68b60c01b6104a7565b61026d67f8611dbcb55a1f7860c01b6104a7565b610281676cedf54251a3375160c01b6104a7565b6102896104aa565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461031a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161031190610720565b60405180910390fd5b61032e67e452355b21bbd41e60c01b6104a7565b565b610344674f69fffccbea1a6060c01b6104a7565b61035867254a8afedf49a2bd60c01b6104a7565b61036c6764ae761eae80994a60c01b6104a7565b60006103766104aa565b905061038c6728cf10db04b3ce6a60c01b6104a7565b6103a067254c9c1d52a21ebf60c01b6104a7565b60008160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506103dd67f8cb9d02f213dad260c01b6104a7565b828260040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061043467320b257c7ea8cea760c01b6104a7565b61044867a1ef30c006aa278260c01b6104a7565b8273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b50565b60006104c0674f9afbb757d80e6360c01b6104a7565b6104d4674b823103125da15660c01b6104a7565b6104e8674ab715c231c1608d60c01b6104a7565b60007fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c905061052167982d9bb86701efa860c01b6104a7565b8091505090565b600080fd5b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b6105628161052d565b811461056d57600080fd5b50565b60008135905061057f81610559565b92915050565b60006020828403121561059b5761059a610528565b5b60006105a984828501610570565b91505092915050565b60008115159050919050565b6105c7816105b2565b82525050565b60006020820190506105e260008301846105be565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610613826105e8565b9050919050565b61062381610608565b82525050565b600060208201905061063e600083018461061a565b92915050565b61064d81610608565b811461065857600080fd5b50565b60008135905061066a81610644565b92915050565b60006020828403121561068657610685610528565b5b60006106948482850161065b565b91505092915050565b600082825260208201905092915050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b600061070a60228361069d565b9150610715826106ae565b604082019050919050565b60006020820190508181036000830152610739816106fd565b905091905056fea26469706673582212208059456773fa43aa47714f907ac29974f27210cf3e42cbe6a010339f2fef11cc64736f6c63430008110033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c8063433a40cc1461005c57806345a7077e1461008c5780638da5cb5b146100a8578063e673e274146100c6578063f2fde38b146100f6575b600080fd5b61007660048036038101906100719190610585565b610112565b60405161008391906105cd565b60405180910390f35b6100a660048036038101906100a19190610585565b610119565b005b6100b061011c565b6040516100bd9190610629565b60405180910390f35b6100e060048036038101906100db9190610585565b610153565b6040516100ed91906105cd565b60405180910390f35b610110600480360381019061010b9190610670565b61015e565b005b6000919050565b50565b60006101326703b0bbf0cc27d6d060c01b610119565b61014667ddcbd84332b09d5c60c01b610119565b61014e6101d6565b905090565b600060019050919050565b6101726794c7fe791cf6e26660c01b610119565b61018667ecce47dee557841060c01b610119565b61019a67e6e44605ff8269ab60c01b610119565b6101a2610231565b6101b66703d113e82bc56e6960c01b610119565b6101ca6740d917c23072919760c01b610119565b6101d381610330565b50565b60006101ec677d1d35fb9d60316160c01b6104a7565b610200671bba0af24121cdd160c01b6104a7565b6102086104aa565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6102456721b40df6734b4e6460c01b6104a7565b610259677276b6d1bbf7b68b60c01b6104a7565b61026d67f8611dbcb55a1f7860c01b6104a7565b610281676cedf54251a3375160c01b6104a7565b6102896104aa565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461031a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161031190610720565b60405180910390fd5b61032e67e452355b21bbd41e60c01b6104a7565b565b610344674f69fffccbea1a6060c01b6104a7565b61035867254a8afedf49a2bd60c01b6104a7565b61036c6764ae761eae80994a60c01b6104a7565b60006103766104aa565b905061038c6728cf10db04b3ce6a60c01b6104a7565b6103a067254c9c1d52a21ebf60c01b6104a7565b60008160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506103dd67f8cb9d02f213dad260c01b6104a7565b828260040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061043467320b257c7ea8cea760c01b6104a7565b61044867a1ef30c006aa278260c01b6104a7565b8273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b50565b60006104c0674f9afbb757d80e6360c01b6104a7565b6104d4674b823103125da15660c01b6104a7565b6104e8674ab715c231c1608d60c01b6104a7565b60007fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c905061052167982d9bb86701efa860c01b6104a7565b8091505090565b600080fd5b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b6105628161052d565b811461056d57600080fd5b50565b60008135905061057f81610559565b92915050565b60006020828403121561059b5761059a610528565b5b60006105a984828501610570565b91505092915050565b60008115159050919050565b6105c7816105b2565b82525050565b60006020820190506105e260008301846105be565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610613826105e8565b9050919050565b61062381610608565b82525050565b600060208201905061063e600083018461061a565b92915050565b61064d81610608565b811461065857600080fd5b50565b60008135905061066a81610644565b92915050565b60006020828403121561068657610685610528565b5b60006106948482850161065b565b91505092915050565b600082825260208201905092915050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b600061070a60228361069d565b9150610715826106ae565b604082019050919050565b60006020820190508181036000830152610739816106fd565b905091905056fea26469706673582212208059456773fa43aa47714f907ac29974f27210cf3e42cbe6a010339f2fef11cc64736f6c63430008110033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/PaymentDepositAccount.json b/artifacts/PaymentDepositAccount.json index 34cb53a3..b81aebae 100644 --- a/artifacts/PaymentDepositAccount.json +++ b/artifacts/PaymentDepositAccount.json @@ -8,6 +8,108 @@ "stateMutability": "payable", "type": "constructor" }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__495bfa8b", + "type": "bytes8" + } + ], + "name": "c_495bfa8b", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__90f8af33", + "type": "bytes8" + } + ], + "name": "c_90f8af33", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__495bfa8b", + "type": "bytes8" + } + ], + "name": "c_false495bfa8b", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__90f8af33", + "type": "bytes8" + } + ], + "name": "c_false90f8af33", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__495bfa8b", + "type": "bytes8" + } + ], + "name": "c_true495bfa8b", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__90f8af33", + "type": "bytes8" + } + ], + "name": "c_true90f8af33", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [], "name": "controller", @@ -55,8 +157,8 @@ "type": "receive" } ], - "bytecode": "0x6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103a4806100536000396000f3fe60806040526004361061002d5760003560e01c80633f579f4214610039578063f77c47911461016257610034565b3661003457005b600080fd5b34801561004557600080fd5b506100e76004803603606081101561005c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156100a357600080fd5b8201836020820111156100b557600080fd5b803590602001918460018302840111640100000000831117156100d757600080fd5b90919293919293905050506101a3565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561012757808201518184015260208101905061010c565b50505050905090810190601f1680156101545780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561016e57600080fd5b50610177610347565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b606060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610249576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061036c602c913960400191505060405180910390fd5b606060008673ffffffffffffffffffffffffffffffffffffffff1686868660405180838380828437808301925050509250505060006040518083038185875af1925050503d80600081146102b9576040519150601f19603f3d011682016040523d82523d6000602084013e6102be565b606091505b5080935081925050508061033a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4163636f756e743a207472616e73616374696f6e20726576657274656400000081525060200191505060405180910390fd5b8192505050949350505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fe436f6e74726f6c6c65643a206d73672e73656e646572206973206e6f742074686520636f6e74726f6c6c6572a164736f6c634300060c000a", - "deployedBytecode": "0x60806040526004361061002d5760003560e01c80633f579f4214610039578063f77c47911461016257610034565b3661003457005b600080fd5b34801561004557600080fd5b506100e76004803603606081101561005c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156100a357600080fd5b8201836020820111156100b557600080fd5b803590602001918460018302840111640100000000831117156100d757600080fd5b90919293919293905050506101a3565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561012757808201518184015260208101905061010c565b50505050905090810190601f1680156101545780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561016e57600080fd5b50610177610347565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b606060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610249576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061036c602c913960400191505060405180910390fd5b606060008673ffffffffffffffffffffffffffffffffffffffff1686868660405180838380828437808301925050509250505060006040518083038185875af1925050503d80600081146102b9576040519150601f19603f3d011682016040523d82523d6000602084013e6102be565b606091505b5080935081925050508061033a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4163636f756e743a207472616e73616374696f6e20726576657274656400000081525060200191505060405180910390fd5b8192505050949350505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fe436f6e74726f6c6c65643a206d73672e73656e646572206973206e6f742074686520636f6e74726f6c6c6572a164736f6c634300060c000a", + "bytecode": "0x608060405261001e674c05ed6aa1cd281960c01b61009760201b60201c565b610038675db0dfd7018850c360c01b61009760201b60201c565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610092679098f39fea0730f660c01b61009a60201b60201c565b61009d565b50565b50565b61080c806100ac6000396000f3fe60806040526004361061007f5760003560e01c8063bd04d1391161004e578063bd04d139146102f8578063c478196d14610364578063d1c43eae146103ba578063f77c47911461041057610086565b806326bebb521461008b5780633f579f42146100f7578063550648ff1461022057806356c2fc6c1461028c57610086565b3661008657005b600080fd5b34801561009757600080fd5b506100df600480360360208110156100ae57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610451565b60405180821515815260200191505060405180910390f35b34801561010357600080fd5b506101a56004803603606081101561011a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561016157600080fd5b82018360208201111561017357600080fd5b8035906020019184600183028401116401000000008311171561019557600080fd5b9091929391929390505050610458565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e55780820151818401526020810190506101ca565b50505050905090810190601f1680156102125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022c57600080fd5b506102746004803603602081101561024357600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061078c565b60405180821515815260200191505060405180910390f35b34801561029857600080fd5b506102e0600480360360208110156102af57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610793565b60405180821515815260200191505060405180910390f35b34801561030457600080fd5b5061034c6004803603602081101561031b57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061079e565b60405180821515815260200191505060405180910390f35b34801561037057600080fd5b506103b86004803603602081101561038757600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107a9565b005b3480156103c657600080fd5b5061040e600480360360208110156103dd57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107ac565b005b34801561041c57600080fd5b506104256107af565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000919050565b606061046e6730a6ad52e198db9760c01b6107a9565b61048267f6266a592c249da560c01b6107ac565b6104966728279893f8537e1960c01b6107ac565b6104aa67d300d0a9ecbe6cac60c01b6107ac565b6104be678d5c0caa285e3ec560c01b6107ac565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610562576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806107d4602c913960400191505060405180910390fd5b6105766718b2e4dd03bc759a60c01b6107ac565b61058a67f8b65e28b897a44f60c01b6107ac565b61059e67a0e46df01f8c97cb60c01b6107a9565b6105b267aa5eebb2652f143c60c01b6107a9565b6105c6676d9ffa8149f3dea060c01b6107a9565b6105da678cb9bb07d4779f7e60c01b6107a9565b60606105f067f5ddfa157613111160c01b6107a9565b610604676c82c2c1207b3b7760c01b6107a9565b600061061a673ff4b340667b124160c01b6107a9565b8673ffffffffffffffffffffffffffffffffffffffff1686868660405180838380828437808301925050509250505060006040518083038185875af1925050503d8060008114610686576040519150601f19603f3d011682016040523d82523d6000602084013e61068b565b606091505b5080935081925050506106a86756fbd48014b71d8b60c01b6107a9565b6106bc67e31d8723036de13060c01b6107a9565b6106d067d6b834fbc1dbf84c60c01b6107a9565b80610743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4163636f756e743a207472616e73616374696f6e20726576657274656400000081525060200191505060405180910390fd5b61075767836ca2ae34585e2360c01b6107a9565b61076b67fc0747958022859a60c01b6107a9565b61077f67127f08829e3f368c60c01b6107a9565b8192505050949350505050565b6000919050565b600060019050919050565b600060019050919050565b50565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fe436f6e74726f6c6c65643a206d73672e73656e646572206973206e6f742074686520636f6e74726f6c6c6572a164736f6c634300060c000a", + "deployedBytecode": "0x60806040526004361061007f5760003560e01c8063bd04d1391161004e578063bd04d139146102f8578063c478196d14610364578063d1c43eae146103ba578063f77c47911461041057610086565b806326bebb521461008b5780633f579f42146100f7578063550648ff1461022057806356c2fc6c1461028c57610086565b3661008657005b600080fd5b34801561009757600080fd5b506100df600480360360208110156100ae57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610451565b60405180821515815260200191505060405180910390f35b34801561010357600080fd5b506101a56004803603606081101561011a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561016157600080fd5b82018360208201111561017357600080fd5b8035906020019184600183028401116401000000008311171561019557600080fd5b9091929391929390505050610458565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e55780820151818401526020810190506101ca565b50505050905090810190601f1680156102125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022c57600080fd5b506102746004803603602081101561024357600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061078c565b60405180821515815260200191505060405180910390f35b34801561029857600080fd5b506102e0600480360360208110156102af57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610793565b60405180821515815260200191505060405180910390f35b34801561030457600080fd5b5061034c6004803603602081101561031b57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061079e565b60405180821515815260200191505060405180910390f35b34801561037057600080fd5b506103b86004803603602081101561038757600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107a9565b005b3480156103c657600080fd5b5061040e600480360360208110156103dd57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107ac565b005b34801561041c57600080fd5b506104256107af565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000919050565b606061046e6730a6ad52e198db9760c01b6107a9565b61048267f6266a592c249da560c01b6107ac565b6104966728279893f8537e1960c01b6107ac565b6104aa67d300d0a9ecbe6cac60c01b6107ac565b6104be678d5c0caa285e3ec560c01b6107ac565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610562576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806107d4602c913960400191505060405180910390fd5b6105766718b2e4dd03bc759a60c01b6107ac565b61058a67f8b65e28b897a44f60c01b6107ac565b61059e67a0e46df01f8c97cb60c01b6107a9565b6105b267aa5eebb2652f143c60c01b6107a9565b6105c6676d9ffa8149f3dea060c01b6107a9565b6105da678cb9bb07d4779f7e60c01b6107a9565b60606105f067f5ddfa157613111160c01b6107a9565b610604676c82c2c1207b3b7760c01b6107a9565b600061061a673ff4b340667b124160c01b6107a9565b8673ffffffffffffffffffffffffffffffffffffffff1686868660405180838380828437808301925050509250505060006040518083038185875af1925050503d8060008114610686576040519150601f19603f3d011682016040523d82523d6000602084013e61068b565b606091505b5080935081925050506106a86756fbd48014b71d8b60c01b6107a9565b6106bc67e31d8723036de13060c01b6107a9565b6106d067d6b834fbc1dbf84c60c01b6107a9565b80610743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4163636f756e743a207472616e73616374696f6e20726576657274656400000081525060200191505060405180910390fd5b61075767836ca2ae34585e2360c01b6107a9565b61076b67fc0747958022859a60c01b6107a9565b61077f67127f08829e3f368c60c01b6107a9565b8192505050949350505050565b6000919050565b600060019050919050565b600060019050919050565b50565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fe436f6e74726f6c6c65643a206d73672e73656e646572206973206e6f742074686520636f6e74726f6c6c6572a164736f6c634300060c000a", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/PaymentRegistry.json b/artifacts/PaymentRegistry.json index b3d0f0bf..14ba4284 100644 --- a/artifacts/PaymentRegistry.json +++ b/artifacts/PaymentRegistry.json @@ -315,6 +315,261 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__098c0657", + "type": "bytes8" + } + ], + "name": "c_098c0657", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__0b6945c4", + "type": "bytes8" + } + ], + "name": "c_0b6945c4", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__52615ca8", + "type": "bytes8" + } + ], + "name": "c_52615ca8", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__d18be0f9", + "type": "bytes8" + } + ], + "name": "c_d18be0f9", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__e6f7a58d", + "type": "bytes8" + } + ], + "name": "c_e6f7a58d", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__098c0657", + "type": "bytes8" + } + ], + "name": "c_false098c0657", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__0b6945c4", + "type": "bytes8" + } + ], + "name": "c_false0b6945c4", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__52615ca8", + "type": "bytes8" + } + ], + "name": "c_false52615ca8", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__d18be0f9", + "type": "bytes8" + } + ], + "name": "c_falsed18be0f9", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__e6f7a58d", + "type": "bytes8" + } + ], + "name": "c_falsee6f7a58d", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__098c0657", + "type": "bytes8" + } + ], + "name": "c_true098c0657", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__0b6945c4", + "type": "bytes8" + } + ], + "name": "c_true0b6945c4", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__52615ca8", + "type": "bytes8" + } + ], + "name": "c_true52615ca8", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__d18be0f9", + "type": "bytes8" + } + ], + "name": "c_trued18be0f9", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__e6f7a58d", + "type": "bytes8" + } + ], + "name": "c_truee6f7a58d", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [], "name": "chainId", @@ -905,8 +1160,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5032600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060004690508060028190555050614c138061006e6000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80639130c06e116100de578063c36326e711610097578063da1b213d11610071578063da1b213d146104bb578063dc7d6c31146104d7578063df04338014610507578063e0fe396e146105235761018e565b8063c36326e71461043d578063d0f710d61461046d578063d2c83b9a1461049d5761018e565b80639130c06e146103915780639a85fae2146103ad5780639a8a0592146103c9578063a526d83b146103e7578063b0274a7314610403578063bdff4b3b1461041f5761018e565b80636121fcfc1161014b578063714041561161012557806371404156146102f757806384389a2b1461031357806387d31313146103435780638a1773ab146103615761018e565b80636121fcfc1461028f5780636524a947146102bf5780636866da52146102db5761018e565b80630c68ba2114610193578063116191b6146101c35780632e4f161e146101e15780632e7037a014610211578063392e53cd1461024157806360bf4df21461025f575b600080fd5b6101ad60048036038101906101a89190612f83565b61053f565b6040516101ba91906140a9565b60405180910390f35b6101cb610594565b6040516101d89190613e92565b60405180910390f35b6101fb60048036038101906101f69190612fe8565b6105ba565b60405161020891906140c4565b60405180910390f35b61022b600480360381019061022691906133f5565b6105d2565b60405161023891906140c4565b60405180910390f35b6102496105f2565b60405161025691906140a9565b60405180910390f35b61027960048036038101906102749190612f83565b61064a565b6040516102869190613e92565b60405180910390f35b6102a960048036038101906102a49190612f83565b61065c565b6040516102b691906140a9565b60405180910390f35b6102d960048036038101906102d49190612f83565b6106f7565b005b6102f560048036038101906102f0919061320c565b610703565b005b610311600480360381019061030c9190612f83565b610a28565b005b61032d6004803603810190610328919061341e565b610c40565b60405161033a91906140c4565b60405180910390f35b61034b610c6f565b6040516103589190614200565b60405180910390f35b61037b600480360381019061037691906132a1565b610c95565b604051610388919061449d565b60405180910390f35b6103ab60048036038101906103a69190612f83565b610cb5565b005b6103c760048036038101906103c2919061304b565b610fe9565b005b6103d16110f4565b6040516103de919061449d565b60405180910390f35b61040160048036038101906103fc9190612f83565b6110fa565b005b61041d60048036038101906104189190612f83565b611191565b005b6104276113ac565b604051610434919061449d565b60405180910390f35b61045760048036038101906104529190612fac565b6113b2565b604051610464919061449d565b60405180910390f35b610487600480360381019061048291906132ca565b61143c565b60405161049491906140a9565b60405180910390f35b6104a5611495565b6040516104b291906141e5565b60405180910390f35b6104d560048036038101906104d09190613121565b6114bb565b005b6104f160048036038101906104ec9190612fac565b6115c2565b6040516104fe919061449d565b60405180910390f35b610521600480360381019061051c919061304b565b61164c565b005b61053d60048036038101906105389190613363565b61174f565b005b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006105c885858585611955565b9050949350505050565b60006105eb82600001518360200151846040015161198e565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b6000610655826119e6565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff16600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b61070081611a84565b50565b600061070d611c94565b905060006107a3600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486611ca590919063ffffffff16565b9050600081116107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df9061435d565b60405180910390fd5b60006107f583888861198e565b90506108458186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611cd2565b610884576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087b9061447d565b60405180910390fd5b85600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109128388611d3f565b610980600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848985611efc565b7f95f66b073d65f18e43f6b76c7ab8557787f5f766d86cab7c9c76f41be9f8abc6600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848989604051610a179493929190613f51565b60405180910390a150505050505050565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ab3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aaa9061433d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415610b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b199061443d565b60405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610bad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba4906143dd565b60405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fee943cdb81826d5909c559c6b1ae6908fcaf2dbc16c4b730346736b486283e8b3282604051610c35929190613ec8565b60405180910390a150565b6000610c68826000015183602001518460400151856060015186608001518760a0015161218c565b9050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060086000838152602001908152602001600020600001549050919050565b6000610cbf611c94565b90506000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811415610d89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d80906142fd565b60405180910390fd5b42811115610dcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc39061437d565b60405180910390fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610f0d578173ffffffffffffffffffffffffffffffffffffffff16319050610f99565b8473ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401610f469190613e92565b60206040518083038186803b158015610f5e57600080fd5b505afa158015610f72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f969190613447565b90505b610fa582858784611efc565b7f5300d9a2838baade7cdc628c82cb80c1298853ba5f389d51e2b47330336aeffc82858784604051610fda9493929190613f51565b60405180910390a15050505050565b6000610ff3611c94565b905060008060006110928d858e8e8e8e8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506121ed565b9250925092506110ac826110a5866119e6565b8e84611efc565b7f771bc0494e1a2fcbef19a8762845000d8c4500454c756a7370c955e39ed60fd483826040516110dd929190614140565b60405180910390a150505050505050505050505050565b60025481565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117c9061433d565b60405180910390fd5b61118e81612691565b50565b600061119b611c94565b90506000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008114611264576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125b9061429d565b60405180910390fd5b61126d82611a84565b6112826006544261282090919063ffffffff16565b905080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fed3c8c6cdfc6d7b91dc9db3e1f54866587c26c3c3e0f9e32cd1944974be43a50600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683858460405161139f9493929190613f51565b60405180910390a1505050565b60065481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061148c8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611cd2565b90509392505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006114c5611c94565b905060008060006115648e858f8f8f8f8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506121ed565b92509250925061157782858f848d612875565b7f8b67efde501ee9cd0e771f7436554c44a5c076239ff3a6fbb397646a4689c0f283828b6040516115aa93929190614169565b60405180910390a15050505050505050505050505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000611656611c94565b905060008060006116f58d858e8e8e8e8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506121ed565b92509250925061170782858e84611efc565b7f6675346cd43846f7d47c310d39fb5c15bc7db66b3770338cdf1f133613a5ae988382604051611738929190614140565b60405180910390a150505050505050505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146117df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d69061427d565b60405180910390fd5b6000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008414156118bb576224ea006006819055506118c3565b836006819055505b61190d838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505061293a565b61191681612992565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e6326040516119459190613ead565b60405180910390a1505050505050565b60008484848460405160200161196e9493929190613cd9565b604051602081830303815290604052805190602001209050949350505050565b60006119dd7f3b3087c8f883f1f44cabe66444f5f9d96f69de6a88f364ea10959eef0331414a8585856040516020016119c993929190613d97565b6040516020818303038152906040526129d6565b90509392505050565b600080826040516020016119fa9190613cbe565b604051602081830303815290604052805190602001209050606060405180602001611a2490612cff565b6020820181038252601f19601f820116604052509050600060ff60f81b30848480519060200120604051602001611a5e9493929190613dd4565b6040516020818303038152906040528051906020012090508060001c9350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff16600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611c9157600081604051602001611b2e9190613cbe565b60405160208183030381529060405280519060200120905080604051611b5390612cff565b8190604051809103906000f5905080158015611b73573d6000803e3d6000fd5b50600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd80572c0f2f24f2d9d726d831bd860ed82b12bafaf01cfb6e4d38fb23c4347e9600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683604051611c87929190613ef1565b60405180910390a1505b50565b6000611ca06028612a17565b905090565b6000611cca8383604051806060016040528060218152602001614be660219139612aac565b905092915050565b600080611ce88385612b0190919063ffffffff16565b90506000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611eee576000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fa19281a6f3163da06f6b82f3ecf0130493c52aba23cdc2a312f652742f0d1801600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383604051611ee193929190613f1a565b60405180910390a1611ef8565b611ef782611a84565b5b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612016578373ffffffffffffffffffffffffffffffffffffffff16633f579f428483600067ffffffffffffffff81118015611f6757600080fd5b506040519080825280601f01601f191660200182016040528015611f9a5781602001600182028036833780820191505090505b506040518463ffffffff1660e01b8152600401611fb99392919061406b565b600060405180830381600087803b158015611fd357600080fd5b505af1158015611fe7573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906120109190613322565b50612186565b60608473ffffffffffffffffffffffffffffffffffffffff16633f579f4284600063a9059cbb60e01b8887604051602401612052929190614042565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518463ffffffff1660e01b81526004016120cd93929190614004565b600060405180830381600087803b1580156120e757600080fd5b505af11580156120fb573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906121249190613322565b905060008151111561218457808060200190518101906121449190613278565b612183576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217a9061431d565b60405180910390fd5b5b505b50505050565b60006121e17f745089e29f2abf28f618236a5dc04d214ac05ead3440ba532b69e9d160ba2e728888888888886040516020016121cd96959493929190613d27565b6040516020818303038152906040526129d6565b90509695505050505050565b6000806000806122018c8c8c8c8c8c61218c565b905060008651141561230057600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166359b52ef88d838b6040518463ffffffff1660e01b815260040161226c93929190613fcd565b60206040518083038186803b15801561228457600080fd5b505afa158015612298573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122bc9190613278565b6122fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f29061447d565b60405180910390fd5b6124f1565b60006123158783612b0190919063ffffffff16565b90508073ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff16146124ef57600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166334d323a48e838c6040518463ffffffff1660e01b81526004016123a993929190613f96565b60206040518083038186803b1580156123c157600080fd5b505afa1580156123d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f99190613278565b806124af5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166334d323a48e838c6040518463ffffffff1660e01b815260040161245e93929190613f96565b60206040518083038186803b15801561247657600080fd5b505afa15801561248a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ae9190613278565b5b6124ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e5906143bd565b60405180910390fd5b5b505b6124fb8186611cd2565b61253a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125319061447d565b60405180910390fd5b6125468c8c8c8c611955565b9350612571600860008681526020019081526020016000206000015488611ca590919063ffffffff16565b915060008214156125b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ae906142bd565b60405180910390fd5b8660086000868152602001908152602001600020600001819055506125dc8c8b611d3f565b600760008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1692507f0d1cb77d1fe491f98926195d0b885509da18bc305dd1489f45610237d971ed46848d8d8d8d8c60405161267a969594939291906140df565b60405180910390a150985098509895505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612701576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f89061425d565b60405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561278d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127849061441d565b60405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fbc3292102fa77e083913064b282926717cdfaede4d35f553d66366c0a3da755a3282604051612815929190613ec8565b60405180910390a150565b60008082840190508381101561286b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612862906143fd565b60405180910390fd5b8091505092915050565b600081116128b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128af9061423d565b60405180910390fd5b60006128cd8284611ca590919063ffffffff16565b905060008111612912576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129099061439d565b60405180910390fd5b61291e86868684611efc565b6129328661292b876119e6565b8685611efc565b505050505050565b6000815114156129525761294d32612691565b61298f565b60008151905060005b8181101561298c5761297f83828151811061297257fe5b6020026020010151612691565b808060010191505061295b565b50505b50565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000612a0f6002543085856040516020016129f49493929190613e48565b60405160208183030381529060405280519060200120612bbc565b905092915050565b60008060009050612a26612bec565b15612a9f576000836000369050039050612a9760003683906014850192612a4f9392919061455f565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612c99565b915050612aa3565b3390505b80915050919050565b6000838311158290612af4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aeb919061421b565b60405180910390fd5b5082840390509392505050565b60008060009050604183511415612bb25760008060006020860151925060408601519150606086015160001a9050601b8160ff161015612b4257601b810190505b601b8160ff161480612b575750601c8160ff16145b15612bae5760018782858560405160008152602001604052604051612b7f94939291906141a0565b6020604051602081039080840390855afa158015612ba1573d6000803e3d6000fd5b5050506020604051035193505b5050505b8091505092915050565b600081604051602001612bcf9190613e22565b604051602081830303815290604052805190602001209050919050565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415612c9257602c60003690501015612c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c84906142dd565b60405180910390fd5b600190505b8091505090565b6000806014835114612ce0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cd79061445d565b60405180910390fd5b6c01000000000000000000000000602084015104905080915050919050565b6103f7806147ef83390190565b600081359050612d1b81614764565b92915050565b60008083601f840112612d3357600080fd5b8235905067ffffffffffffffff811115612d4c57600080fd5b602083019150836020820283011115612d6457600080fd5b9250929050565b600081519050612d7a8161477b565b92915050565b600081359050612d8f81614792565b92915050565b60008083601f840112612da757600080fd5b8235905067ffffffffffffffff811115612dc057600080fd5b602083019150836001820283011115612dd857600080fd5b9250929050565b600082601f830112612df057600080fd5b8151612e03612dfe826144e5565b6144b8565b91508082526020830160208301858383011115612e1f57600080fd5b612e2a8382846146d1565b50505092915050565b600081359050612e42816147a9565b92915050565b600081359050612e57816147c0565b92915050565b600060608284031215612e6f57600080fd5b612e7960606144b8565b90506000612e8984828501612d0c565b6000830152506020612e9d84828501612d0c565b6020830152506040612eb184828501612f59565b60408301525092915050565b600060c08284031215612ecf57600080fd5b612ed960c06144b8565b90506000612ee984828501612d0c565b6000830152506020612efd84828501612d0c565b6020830152506040612f1184828501612d0c565b6040830152506060612f2584828501612d80565b6060830152506080612f3984828501612f59565b60808301525060a0612f4d84828501612f59565b60a08301525092915050565b600081359050612f68816147d7565b92915050565b600081519050612f7d816147d7565b92915050565b600060208284031215612f9557600080fd5b6000612fa384828501612d0c565b91505092915050565b60008060408385031215612fbf57600080fd5b6000612fcd85828601612d0c565b9250506020612fde85828601612d0c565b9150509250929050565b60008060008060808587031215612ffe57600080fd5b600061300c87828801612d0c565b945050602061301d87828801612d0c565b935050604061302e87828801612d0c565b925050606061303f87828801612d80565b91505092959194509250565b600080600080600080600080600060e08a8c03121561306957600080fd5b60006130778c828d01612d0c565b99505060206130888c828d01612d0c565b98505060406130998c828d01612d80565b97505060606130aa8c828d01612f59565b96505060806130bb8c828d01612f59565b95505060a08a013567ffffffffffffffff8111156130d857600080fd5b6130e48c828d01612d95565b945094505060c08a013567ffffffffffffffff81111561310357600080fd5b61310f8c828d01612d95565b92509250509295985092959850929598565b6000806000806000806000806000806101008b8d03121561314157600080fd5b600061314f8d828e01612d0c565b9a505060206131608d828e01612d0c565b99505060406131718d828e01612d80565b98505060606131828d828e01612f59565b97505060806131938d828e01612f59565b96505060a06131a48d828e01612f59565b95505060c08b013567ffffffffffffffff8111156131c157600080fd5b6131cd8d828e01612d95565b945094505060e08b013567ffffffffffffffff8111156131ec57600080fd5b6131f88d828e01612d95565b92509250509295989b9194979a5092959850565b6000806000806060858703121561322257600080fd5b600061323087828801612d0c565b945050602061324187828801612f59565b935050604085013567ffffffffffffffff81111561325e57600080fd5b61326a87828801612d95565b925092505092959194509250565b60006020828403121561328a57600080fd5b600061329884828501612d6b565b91505092915050565b6000602082840312156132b357600080fd5b60006132c184828501612d80565b91505092915050565b6000806000604084860312156132df57600080fd5b60006132ed86828701612d80565b935050602084013567ffffffffffffffff81111561330a57600080fd5b61331686828701612d95565b92509250509250925092565b60006020828403121561333457600080fd5b600082015167ffffffffffffffff81111561334e57600080fd5b61335a84828501612ddf565b91505092915050565b60008060008060008060a0878903121561337c57600080fd5b600061338a89828a01612e33565b965050602061339b89828a01612e48565b95505060406133ac89828a01612f59565b945050606087013567ffffffffffffffff8111156133c957600080fd5b6133d589828a01612d21565b935093505060806133e889828a01612d0c565b9150509295509295509295565b60006060828403121561340757600080fd5b600061341584828501612e5d565b91505092915050565b600060c0828403121561343057600080fd5b600061343e84828501612ebd565b91505092915050565b60006020828403121561345957600080fd5b600061346784828501612f6e565b91505092915050565b61347981614641565b82525050565b61348881614592565b82525050565b61349f61349a82614592565b614704565b82525050565b6134ae816145a4565b82525050565b6134c56134c0826145b0565b614716565b82525050565b6134d4816145dc565b82525050565b6134eb6134e6826145dc565b614720565b82525050565b60006134fc82614511565b6135068185614527565b93506135168185602086016146d1565b61351f81614746565b840191505092915050565b600061353582614511565b61353f8185614538565b935061354f8185602086016146d1565b80840191505092915050565b61356481614653565b82525050565b61357381614677565b82525050565b6135828161469b565b82525050565b60006135938261451c565b61359d8185614543565b93506135ad8185602086016146d1565b6135b681614746565b840191505092915050565b60006135ce602683614543565b91507f5061796d656e7452656769737472793a20696e76616c6964206465706f73697460008301527f2076616c756500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613634601c83614554565b91507f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000830152601c82019050919050565b6000613674602083614543565b91507f477561726465643a2063616e6e6f74206164642030783020677561726469616e6000830152602082019050919050565b60006136b4602f83614543565b91507f496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742060008301527f74686520696e697469616c697a657200000000000000000000000000000000006020830152604082019050919050565b600061371a602f83614543565b91507f5061796d656e7452656769737472793a206465706f736974206578697420616c60008301527f72656164792072657175657374656400000000000000000000000000000000006020830152604082019050919050565b6000613780602683614543565b91507f5061796d656e7452656769737472793a20696e76616c6964207061796d656e7460008301527f2076616c756500000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006137e6602283614543565b91507f47617465776179526563697069656e743a20696e76616c6964206d73672e646160008301527f74610000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061384c602b83614543565b91507f5061796d656e7452656769737472793a206465706f7369742065786974206e6f60008301527f74207265717565737465640000000000000000000000000000000000000000006020830152604082019050919050565b60006138b2602d83614543565b91507f5061796d656e7452656769737472793a204552433230546f6b656e207472616e60008301527f73666572207265766572746564000000000000000000000000000000000000006020830152604082019050919050565b6000613918602683614543565b91507f477561726465643a2074782e6f726967696e206973206e6f742074686520677560008301527f61726469616e00000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061397e601f83614543565b91507f5061796d656e7452656769737472793a20696e76616c696420616d6f756e74006000830152602082019050919050565b60006139be602483614543565b91507f5061796d656e7452656769737472793a206465706f7369742065786974206c6f60008301527f636b6564000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613a24602783614543565b91507f5061796d656e7452656769737472793a20696e76616c6964207769746864726160008301527f772076616c7565000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613a8a602983614543565b91507f5061796d656e7452656769737472793a20696e76616c69642073656e6465722060008301527f7369676e617475726500000000000000000000000000000000000000000000006020830152604082019050919050565b6000613af0601f83614543565b91507f477561726465643a20677561726469616e20646f65736e2774206578697374006000830152602082019050919050565b6000613b30601e83614543565b91507f536166654d6174684c69623a206164646974696f6e206f766572666c6f7700006000830152602082019050919050565b6000613b70602083614543565b91507f477561726465643a20677561726469616e20616c7265616479206578697374736000830152602082019050919050565b6000613bb0601b83614543565b91507f477561726465643a2063616e6e6f742072656d6f76652073656c6600000000006000830152602082019050919050565b6000613bf0601d83614543565b91507f42797465734c69623a20696e76616c69642064617461206c656e6774680000006000830152602082019050919050565b6000613c30602b83614543565b91507f5061796d656e7452656769737472793a20696e76616c6964206775617264696160008301527f6e207369676e61747572650000000000000000000000000000000000000000006020830152604082019050919050565b613c928161462a565b82525050565b613ca9613ca48261462a565b61473c565b82525050565b613cb881614634565b82525050565b6000613cca828461348e565b60148201915081905092915050565b6000613ce5828761348e565b601482019150613cf5828661348e565b601482019150613d05828561348e565b601482019150613d1582846134da565b60208201915081905095945050505050565b6000613d33828961348e565b601482019150613d43828861348e565b601482019150613d53828761348e565b601482019150613d6382866134da565b602082019150613d738285613c98565b602082019150613d838284613c98565b602082019150819050979650505050505050565b6000613da3828661348e565b601482019150613db3828561348e565b601482019150613dc38284613c98565b602082019150819050949350505050565b6000613de082876134b4565b600182019150613df0828661348e565b601482019150613e0082856134da565b602082019150613e1082846134da565b60208201915081905095945050505050565b6000613e2d82613627565b9150613e3982846134da565b60208201915081905092915050565b6000613e548287613c98565b602082019150613e64828661348e565b601482019150613e7482856134da565b602082019150613e84828461352a565b915081905095945050505050565b6000602082019050613ea7600083018461347f565b92915050565b6000602082019050613ec26000830184613470565b92915050565b6000604082019050613edd6000830185613470565b613eea602083018461347f565b9392505050565b6000604082019050613f06600083018561347f565b613f13602083018461347f565b9392505050565b6000606082019050613f2f600083018661347f565b613f3c602083018561347f565b613f49604083018461347f565b949350505050565b6000608082019050613f66600083018761347f565b613f73602083018661347f565b613f80604083018561347f565b613f8d6060830184613c89565b95945050505050565b6000606082019050613fab600083018661347f565b613fb8602083018561347f565b613fc56040830184613c89565b949350505050565b6000606082019050613fe2600083018661347f565b613fef60208301856134cb565b613ffc6040830184613c89565b949350505050565b6000606082019050614019600083018661347f565b6140266020830185613579565b818103604083015261403881846134f1565b9050949350505050565b6000604082019050614057600083018561347f565b6140646020830184613c89565b9392505050565b6000606082019050614080600083018661347f565b61408d6020830185613c89565b818103604083015261409f81846134f1565b9050949350505050565b60006020820190506140be60008301846134a5565b92915050565b60006020820190506140d960008301846134cb565b92915050565b600060c0820190506140f460008301896134cb565b614101602083018861347f565b61410e604083018761347f565b61411b606083018661347f565b61412860808301856134cb565b61413560a0830184613c89565b979650505050505050565b600060408201905061415560008301856134cb565b6141626020830184613c89565b9392505050565b600060608201905061417e60008301866134cb565b61418b6020830185613c89565b6141986040830184613c89565b949350505050565b60006080820190506141b560008301876134cb565b6141c26020830186613caf565b6141cf60408301856134cb565b6141dc60608301846134cb565b95945050505050565b60006020820190506141fa600083018461355b565b92915050565b6000602082019050614215600083018461356a565b92915050565b600060208201905081810360008301526142358184613588565b905092915050565b60006020820190508181036000830152614256816135c1565b9050919050565b6000602082019050818103600083015261427681613667565b9050919050565b60006020820190508181036000830152614296816136a7565b9050919050565b600060208201905081810360008301526142b68161370d565b9050919050565b600060208201905081810360008301526142d681613773565b9050919050565b600060208201905081810360008301526142f6816137d9565b9050919050565b600060208201905081810360008301526143168161383f565b9050919050565b60006020820190508181036000830152614336816138a5565b9050919050565b600060208201905081810360008301526143568161390b565b9050919050565b6000602082019050818103600083015261437681613971565b9050919050565b60006020820190508181036000830152614396816139b1565b9050919050565b600060208201905081810360008301526143b681613a17565b9050919050565b600060208201905081810360008301526143d681613a7d565b9050919050565b600060208201905081810360008301526143f681613ae3565b9050919050565b6000602082019050818103600083015261441681613b23565b9050919050565b6000602082019050818103600083015261443681613b63565b9050919050565b6000602082019050818103600083015261445681613ba3565b9050919050565b6000602082019050818103600083015261447681613be3565b9050919050565b6000602082019050818103600083015261449681613c23565b9050919050565b60006020820190506144b26000830184613c89565b92915050565b6000604051905081810181811067ffffffffffffffff821117156144db57600080fd5b8060405250919050565b600067ffffffffffffffff8211156144fc57600080fd5b601f19601f8301169050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000808585111561456f57600080fd5b8386111561457c57600080fd5b6001850283019150848603905094509492505050565b600061459d8261460a565b9050919050565b60008115159050919050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b60006145f182614592565b9050919050565b600061460382614592565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061464c826146ad565b9050919050565b600061465e82614665565b9050919050565b60006146708261460a565b9050919050565b600061468282614689565b9050919050565b60006146948261460a565b9050919050565b60006146a68261462a565b9050919050565b60006146b8826146bf565b9050919050565b60006146ca8261460a565b9050919050565b60005b838110156146ef5780820151818401526020810190506146d4565b838111156146fe576000848401525b50505050565b600061470f8261472a565b9050919050565b6000819050919050565b6000819050919050565b600061473582614757565b9050919050565b6000819050919050565b6000601f19601f8301169050919050565b60008160601b9050919050565b61476d81614592565b811461477857600080fd5b50565b614784816145a4565b811461478f57600080fd5b50565b61479b816145dc565b81146147a657600080fd5b50565b6147b2816145e6565b81146147bd57600080fd5b50565b6147c9816145f8565b81146147d457600080fd5b50565b6147e08161462a565b81146147eb57600080fd5b5056fe6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103a4806100536000396000f3fe60806040526004361061002d5760003560e01c80633f579f4214610039578063f77c47911461016257610034565b3661003457005b600080fd5b34801561004557600080fd5b506100e76004803603606081101561005c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156100a357600080fd5b8201836020820111156100b557600080fd5b803590602001918460018302840111640100000000831117156100d757600080fd5b90919293919293905050506101a3565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561012757808201518184015260208101905061010c565b50505050905090810190601f1680156101545780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561016e57600080fd5b50610177610347565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b606060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610249576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061036c602c913960400191505060405180910390fd5b606060008673ffffffffffffffffffffffffffffffffffffffff1686868660405180838380828437808301925050509250505060006040518083038185875af1925050503d80600081146102b9576040519150601f19603f3d011682016040523d82523d6000602084013e6102be565b606091505b5080935081925050508061033a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4163636f756e743a207472616e73616374696f6e20726576657274656400000081525060200191505060405180910390fd5b8192505050949350505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fe436f6e74726f6c6c65643a206d73672e73656e646572206973206e6f742074686520636f6e74726f6c6c6572a164736f6c634300060c000a536166654d6174684c69623a207375627472616374696f6e206f766572666c6f77a164736f6c634300060c000a", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061018e5760003560e01c80639130c06e116100de578063c36326e711610097578063da1b213d11610071578063da1b213d146104bb578063dc7d6c31146104d7578063df04338014610507578063e0fe396e146105235761018e565b8063c36326e71461043d578063d0f710d61461046d578063d2c83b9a1461049d5761018e565b80639130c06e146103915780639a85fae2146103ad5780639a8a0592146103c9578063a526d83b146103e7578063b0274a7314610403578063bdff4b3b1461041f5761018e565b80636121fcfc1161014b578063714041561161012557806371404156146102f757806384389a2b1461031357806387d31313146103435780638a1773ab146103615761018e565b80636121fcfc1461028f5780636524a947146102bf5780636866da52146102db5761018e565b80630c68ba2114610193578063116191b6146101c35780632e4f161e146101e15780632e7037a014610211578063392e53cd1461024157806360bf4df21461025f575b600080fd5b6101ad60048036038101906101a89190612f83565b61053f565b6040516101ba91906140a9565b60405180910390f35b6101cb610594565b6040516101d89190613e92565b60405180910390f35b6101fb60048036038101906101f69190612fe8565b6105ba565b60405161020891906140c4565b60405180910390f35b61022b600480360381019061022691906133f5565b6105d2565b60405161023891906140c4565b60405180910390f35b6102496105f2565b60405161025691906140a9565b60405180910390f35b61027960048036038101906102749190612f83565b61064a565b6040516102869190613e92565b60405180910390f35b6102a960048036038101906102a49190612f83565b61065c565b6040516102b691906140a9565b60405180910390f35b6102d960048036038101906102d49190612f83565b6106f7565b005b6102f560048036038101906102f0919061320c565b610703565b005b610311600480360381019061030c9190612f83565b610a28565b005b61032d6004803603810190610328919061341e565b610c40565b60405161033a91906140c4565b60405180910390f35b61034b610c6f565b6040516103589190614200565b60405180910390f35b61037b600480360381019061037691906132a1565b610c95565b604051610388919061449d565b60405180910390f35b6103ab60048036038101906103a69190612f83565b610cb5565b005b6103c760048036038101906103c2919061304b565b610fe9565b005b6103d16110f4565b6040516103de919061449d565b60405180910390f35b61040160048036038101906103fc9190612f83565b6110fa565b005b61041d60048036038101906104189190612f83565b611191565b005b6104276113ac565b604051610434919061449d565b60405180910390f35b61045760048036038101906104529190612fac565b6113b2565b604051610464919061449d565b60405180910390f35b610487600480360381019061048291906132ca565b61143c565b60405161049491906140a9565b60405180910390f35b6104a5611495565b6040516104b291906141e5565b60405180910390f35b6104d560048036038101906104d09190613121565b6114bb565b005b6104f160048036038101906104ec9190612fac565b6115c2565b6040516104fe919061449d565b60405180910390f35b610521600480360381019061051c919061304b565b61164c565b005b61053d60048036038101906105389190613363565b61174f565b005b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006105c885858585611955565b9050949350505050565b60006105eb82600001518360200151846040015161198e565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b6000610655826119e6565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff16600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b61070081611a84565b50565b600061070d611c94565b905060006107a3600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486611ca590919063ffffffff16565b9050600081116107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df9061435d565b60405180910390fd5b60006107f583888861198e565b90506108458186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611cd2565b610884576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087b9061447d565b60405180910390fd5b85600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109128388611d3f565b610980600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848985611efc565b7f95f66b073d65f18e43f6b76c7ab8557787f5f766d86cab7c9c76f41be9f8abc6600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848989604051610a179493929190613f51565b60405180910390a150505050505050565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ab3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aaa9061433d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415610b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b199061443d565b60405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610bad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba4906143dd565b60405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fee943cdb81826d5909c559c6b1ae6908fcaf2dbc16c4b730346736b486283e8b3282604051610c35929190613ec8565b60405180910390a150565b6000610c68826000015183602001518460400151856060015186608001518760a0015161218c565b9050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060086000838152602001908152602001600020600001549050919050565b6000610cbf611c94565b90506000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811415610d89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d80906142fd565b60405180910390fd5b42811115610dcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc39061437d565b60405180910390fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610f0d578173ffffffffffffffffffffffffffffffffffffffff16319050610f99565b8473ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401610f469190613e92565b60206040518083038186803b158015610f5e57600080fd5b505afa158015610f72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f969190613447565b90505b610fa582858784611efc565b7f5300d9a2838baade7cdc628c82cb80c1298853ba5f389d51e2b47330336aeffc82858784604051610fda9493929190613f51565b60405180910390a15050505050565b6000610ff3611c94565b905060008060006110928d858e8e8e8e8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506121ed565b9250925092506110ac826110a5866119e6565b8e84611efc565b7f771bc0494e1a2fcbef19a8762845000d8c4500454c756a7370c955e39ed60fd483826040516110dd929190614140565b60405180910390a150505050505050505050505050565b60025481565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117c9061433d565b60405180910390fd5b61118e81612691565b50565b600061119b611c94565b90506000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008114611264576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125b9061429d565b60405180910390fd5b61126d82611a84565b6112826006544261282090919063ffffffff16565b905080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fed3c8c6cdfc6d7b91dc9db3e1f54866587c26c3c3e0f9e32cd1944974be43a50600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683858460405161139f9493929190613f51565b60405180910390a1505050565b60065481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061148c8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611cd2565b90509392505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006114c5611c94565b905060008060006115648e858f8f8f8f8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506121ed565b92509250925061157782858f848d612875565b7f8b67efde501ee9cd0e771f7436554c44a5c076239ff3a6fbb397646a4689c0f283828b6040516115aa93929190614169565b60405180910390a15050505050505050505050505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000611656611c94565b905060008060006116f58d858e8e8e8e8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506121ed565b92509250925061170782858e84611efc565b7f6675346cd43846f7d47c310d39fb5c15bc7db66b3770338cdf1f133613a5ae988382604051611738929190614140565b60405180910390a150505050505050505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146117df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d69061427d565b60405180910390fd5b6000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008414156118bb576224ea006006819055506118c3565b836006819055505b61190d838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505061293a565b61191681612992565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e6326040516119459190613ead565b60405180910390a1505050505050565b60008484848460405160200161196e9493929190613cd9565b604051602081830303815290604052805190602001209050949350505050565b60006119dd7f3b3087c8f883f1f44cabe66444f5f9d96f69de6a88f364ea10959eef0331414a8585856040516020016119c993929190613d97565b6040516020818303038152906040526129d6565b90509392505050565b600080826040516020016119fa9190613cbe565b604051602081830303815290604052805190602001209050606060405180602001611a2490612cff565b6020820181038252601f19601f820116604052509050600060ff60f81b30848480519060200120604051602001611a5e9493929190613dd4565b6040516020818303038152906040528051906020012090508060001c9350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff16600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611c9157600081604051602001611b2e9190613cbe565b60405160208183030381529060405280519060200120905080604051611b5390612cff565b8190604051809103906000f5905080158015611b73573d6000803e3d6000fd5b50600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd80572c0f2f24f2d9d726d831bd860ed82b12bafaf01cfb6e4d38fb23c4347e9600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683604051611c87929190613ef1565b60405180910390a1505b50565b6000611ca06028612a17565b905090565b6000611cca8383604051806060016040528060218152602001614be660219139612aac565b905092915050565b600080611ce88385612b0190919063ffffffff16565b90506000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611eee576000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fa19281a6f3163da06f6b82f3ecf0130493c52aba23cdc2a312f652742f0d1801600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383604051611ee193929190613f1a565b60405180910390a1611ef8565b611ef782611a84565b5b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612016578373ffffffffffffffffffffffffffffffffffffffff16633f579f428483600067ffffffffffffffff81118015611f6757600080fd5b506040519080825280601f01601f191660200182016040528015611f9a5781602001600182028036833780820191505090505b506040518463ffffffff1660e01b8152600401611fb99392919061406b565b600060405180830381600087803b158015611fd357600080fd5b505af1158015611fe7573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906120109190613322565b50612186565b60608473ffffffffffffffffffffffffffffffffffffffff16633f579f4284600063a9059cbb60e01b8887604051602401612052929190614042565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518463ffffffff1660e01b81526004016120cd93929190614004565b600060405180830381600087803b1580156120e757600080fd5b505af11580156120fb573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906121249190613322565b905060008151111561218457808060200190518101906121449190613278565b612183576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217a9061431d565b60405180910390fd5b5b505b50505050565b60006121e17f745089e29f2abf28f618236a5dc04d214ac05ead3440ba532b69e9d160ba2e728888888888886040516020016121cd96959493929190613d27565b6040516020818303038152906040526129d6565b90509695505050505050565b6000806000806122018c8c8c8c8c8c61218c565b905060008651141561230057600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166359b52ef88d838b6040518463ffffffff1660e01b815260040161226c93929190613fcd565b60206040518083038186803b15801561228457600080fd5b505afa158015612298573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122bc9190613278565b6122fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f29061447d565b60405180910390fd5b6124f1565b60006123158783612b0190919063ffffffff16565b90508073ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff16146124ef57600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166334d323a48e838c6040518463ffffffff1660e01b81526004016123a993929190613f96565b60206040518083038186803b1580156123c157600080fd5b505afa1580156123d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f99190613278565b806124af5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166334d323a48e838c6040518463ffffffff1660e01b815260040161245e93929190613f96565b60206040518083038186803b15801561247657600080fd5b505afa15801561248a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ae9190613278565b5b6124ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e5906143bd565b60405180910390fd5b5b505b6124fb8186611cd2565b61253a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125319061447d565b60405180910390fd5b6125468c8c8c8c611955565b9350612571600860008681526020019081526020016000206000015488611ca590919063ffffffff16565b915060008214156125b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ae906142bd565b60405180910390fd5b8660086000868152602001908152602001600020600001819055506125dc8c8b611d3f565b600760008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1692507f0d1cb77d1fe491f98926195d0b885509da18bc305dd1489f45610237d971ed46848d8d8d8d8c60405161267a969594939291906140df565b60405180910390a150985098509895505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612701576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f89061425d565b60405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561278d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127849061441d565b60405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fbc3292102fa77e083913064b282926717cdfaede4d35f553d66366c0a3da755a3282604051612815929190613ec8565b60405180910390a150565b60008082840190508381101561286b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612862906143fd565b60405180910390fd5b8091505092915050565b600081116128b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128af9061423d565b60405180910390fd5b60006128cd8284611ca590919063ffffffff16565b905060008111612912576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129099061439d565b60405180910390fd5b61291e86868684611efc565b6129328661292b876119e6565b8685611efc565b505050505050565b6000815114156129525761294d32612691565b61298f565b60008151905060005b8181101561298c5761297f83828151811061297257fe5b6020026020010151612691565b808060010191505061295b565b50505b50565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000612a0f6002543085856040516020016129f49493929190613e48565b60405160208183030381529060405280519060200120612bbc565b905092915050565b60008060009050612a26612bec565b15612a9f576000836000369050039050612a9760003683906014850192612a4f9392919061455f565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612c99565b915050612aa3565b3390505b80915050919050565b6000838311158290612af4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aeb919061421b565b60405180910390fd5b5082840390509392505050565b60008060009050604183511415612bb25760008060006020860151925060408601519150606086015160001a9050601b8160ff161015612b4257601b810190505b601b8160ff161480612b575750601c8160ff16145b15612bae5760018782858560405160008152602001604052604051612b7f94939291906141a0565b6020604051602081039080840390855afa158015612ba1573d6000803e3d6000fd5b5050506020604051035193505b5050505b8091505092915050565b600081604051602001612bcf9190613e22565b604051602081830303815290604052805190602001209050919050565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415612c9257602c60003690501015612c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c84906142dd565b60405180910390fd5b600190505b8091505090565b6000806014835114612ce0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cd79061445d565b60405180910390fd5b6c01000000000000000000000000602084015104905080915050919050565b6103f7806147ef83390190565b600081359050612d1b81614764565b92915050565b60008083601f840112612d3357600080fd5b8235905067ffffffffffffffff811115612d4c57600080fd5b602083019150836020820283011115612d6457600080fd5b9250929050565b600081519050612d7a8161477b565b92915050565b600081359050612d8f81614792565b92915050565b60008083601f840112612da757600080fd5b8235905067ffffffffffffffff811115612dc057600080fd5b602083019150836001820283011115612dd857600080fd5b9250929050565b600082601f830112612df057600080fd5b8151612e03612dfe826144e5565b6144b8565b91508082526020830160208301858383011115612e1f57600080fd5b612e2a8382846146d1565b50505092915050565b600081359050612e42816147a9565b92915050565b600081359050612e57816147c0565b92915050565b600060608284031215612e6f57600080fd5b612e7960606144b8565b90506000612e8984828501612d0c565b6000830152506020612e9d84828501612d0c565b6020830152506040612eb184828501612f59565b60408301525092915050565b600060c08284031215612ecf57600080fd5b612ed960c06144b8565b90506000612ee984828501612d0c565b6000830152506020612efd84828501612d0c565b6020830152506040612f1184828501612d0c565b6040830152506060612f2584828501612d80565b6060830152506080612f3984828501612f59565b60808301525060a0612f4d84828501612f59565b60a08301525092915050565b600081359050612f68816147d7565b92915050565b600081519050612f7d816147d7565b92915050565b600060208284031215612f9557600080fd5b6000612fa384828501612d0c565b91505092915050565b60008060408385031215612fbf57600080fd5b6000612fcd85828601612d0c565b9250506020612fde85828601612d0c565b9150509250929050565b60008060008060808587031215612ffe57600080fd5b600061300c87828801612d0c565b945050602061301d87828801612d0c565b935050604061302e87828801612d0c565b925050606061303f87828801612d80565b91505092959194509250565b600080600080600080600080600060e08a8c03121561306957600080fd5b60006130778c828d01612d0c565b99505060206130888c828d01612d0c565b98505060406130998c828d01612d80565b97505060606130aa8c828d01612f59565b96505060806130bb8c828d01612f59565b95505060a08a013567ffffffffffffffff8111156130d857600080fd5b6130e48c828d01612d95565b945094505060c08a013567ffffffffffffffff81111561310357600080fd5b61310f8c828d01612d95565b92509250509295985092959850929598565b6000806000806000806000806000806101008b8d03121561314157600080fd5b600061314f8d828e01612d0c565b9a505060206131608d828e01612d0c565b99505060406131718d828e01612d80565b98505060606131828d828e01612f59565b97505060806131938d828e01612f59565b96505060a06131a48d828e01612f59565b95505060c08b013567ffffffffffffffff8111156131c157600080fd5b6131cd8d828e01612d95565b945094505060e08b013567ffffffffffffffff8111156131ec57600080fd5b6131f88d828e01612d95565b92509250509295989b9194979a5092959850565b6000806000806060858703121561322257600080fd5b600061323087828801612d0c565b945050602061324187828801612f59565b935050604085013567ffffffffffffffff81111561325e57600080fd5b61326a87828801612d95565b925092505092959194509250565b60006020828403121561328a57600080fd5b600061329884828501612d6b565b91505092915050565b6000602082840312156132b357600080fd5b60006132c184828501612d80565b91505092915050565b6000806000604084860312156132df57600080fd5b60006132ed86828701612d80565b935050602084013567ffffffffffffffff81111561330a57600080fd5b61331686828701612d95565b92509250509250925092565b60006020828403121561333457600080fd5b600082015167ffffffffffffffff81111561334e57600080fd5b61335a84828501612ddf565b91505092915050565b60008060008060008060a0878903121561337c57600080fd5b600061338a89828a01612e33565b965050602061339b89828a01612e48565b95505060406133ac89828a01612f59565b945050606087013567ffffffffffffffff8111156133c957600080fd5b6133d589828a01612d21565b935093505060806133e889828a01612d0c565b9150509295509295509295565b60006060828403121561340757600080fd5b600061341584828501612e5d565b91505092915050565b600060c0828403121561343057600080fd5b600061343e84828501612ebd565b91505092915050565b60006020828403121561345957600080fd5b600061346784828501612f6e565b91505092915050565b61347981614641565b82525050565b61348881614592565b82525050565b61349f61349a82614592565b614704565b82525050565b6134ae816145a4565b82525050565b6134c56134c0826145b0565b614716565b82525050565b6134d4816145dc565b82525050565b6134eb6134e6826145dc565b614720565b82525050565b60006134fc82614511565b6135068185614527565b93506135168185602086016146d1565b61351f81614746565b840191505092915050565b600061353582614511565b61353f8185614538565b935061354f8185602086016146d1565b80840191505092915050565b61356481614653565b82525050565b61357381614677565b82525050565b6135828161469b565b82525050565b60006135938261451c565b61359d8185614543565b93506135ad8185602086016146d1565b6135b681614746565b840191505092915050565b60006135ce602683614543565b91507f5061796d656e7452656769737472793a20696e76616c6964206465706f73697460008301527f2076616c756500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613634601c83614554565b91507f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000830152601c82019050919050565b6000613674602083614543565b91507f477561726465643a2063616e6e6f74206164642030783020677561726469616e6000830152602082019050919050565b60006136b4602f83614543565b91507f496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742060008301527f74686520696e697469616c697a657200000000000000000000000000000000006020830152604082019050919050565b600061371a602f83614543565b91507f5061796d656e7452656769737472793a206465706f736974206578697420616c60008301527f72656164792072657175657374656400000000000000000000000000000000006020830152604082019050919050565b6000613780602683614543565b91507f5061796d656e7452656769737472793a20696e76616c6964207061796d656e7460008301527f2076616c756500000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006137e6602283614543565b91507f47617465776179526563697069656e743a20696e76616c6964206d73672e646160008301527f74610000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061384c602b83614543565b91507f5061796d656e7452656769737472793a206465706f7369742065786974206e6f60008301527f74207265717565737465640000000000000000000000000000000000000000006020830152604082019050919050565b60006138b2602d83614543565b91507f5061796d656e7452656769737472793a204552433230546f6b656e207472616e60008301527f73666572207265766572746564000000000000000000000000000000000000006020830152604082019050919050565b6000613918602683614543565b91507f477561726465643a2074782e6f726967696e206973206e6f742074686520677560008301527f61726469616e00000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061397e601f83614543565b91507f5061796d656e7452656769737472793a20696e76616c696420616d6f756e74006000830152602082019050919050565b60006139be602483614543565b91507f5061796d656e7452656769737472793a206465706f7369742065786974206c6f60008301527f636b6564000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613a24602783614543565b91507f5061796d656e7452656769737472793a20696e76616c6964207769746864726160008301527f772076616c7565000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613a8a602983614543565b91507f5061796d656e7452656769737472793a20696e76616c69642073656e6465722060008301527f7369676e617475726500000000000000000000000000000000000000000000006020830152604082019050919050565b6000613af0601f83614543565b91507f477561726465643a20677561726469616e20646f65736e2774206578697374006000830152602082019050919050565b6000613b30601e83614543565b91507f536166654d6174684c69623a206164646974696f6e206f766572666c6f7700006000830152602082019050919050565b6000613b70602083614543565b91507f477561726465643a20677561726469616e20616c7265616479206578697374736000830152602082019050919050565b6000613bb0601b83614543565b91507f477561726465643a2063616e6e6f742072656d6f76652073656c6600000000006000830152602082019050919050565b6000613bf0601d83614543565b91507f42797465734c69623a20696e76616c69642064617461206c656e6774680000006000830152602082019050919050565b6000613c30602b83614543565b91507f5061796d656e7452656769737472793a20696e76616c6964206775617264696160008301527f6e207369676e61747572650000000000000000000000000000000000000000006020830152604082019050919050565b613c928161462a565b82525050565b613ca9613ca48261462a565b61473c565b82525050565b613cb881614634565b82525050565b6000613cca828461348e565b60148201915081905092915050565b6000613ce5828761348e565b601482019150613cf5828661348e565b601482019150613d05828561348e565b601482019150613d1582846134da565b60208201915081905095945050505050565b6000613d33828961348e565b601482019150613d43828861348e565b601482019150613d53828761348e565b601482019150613d6382866134da565b602082019150613d738285613c98565b602082019150613d838284613c98565b602082019150819050979650505050505050565b6000613da3828661348e565b601482019150613db3828561348e565b601482019150613dc38284613c98565b602082019150819050949350505050565b6000613de082876134b4565b600182019150613df0828661348e565b601482019150613e0082856134da565b602082019150613e1082846134da565b60208201915081905095945050505050565b6000613e2d82613627565b9150613e3982846134da565b60208201915081905092915050565b6000613e548287613c98565b602082019150613e64828661348e565b601482019150613e7482856134da565b602082019150613e84828461352a565b915081905095945050505050565b6000602082019050613ea7600083018461347f565b92915050565b6000602082019050613ec26000830184613470565b92915050565b6000604082019050613edd6000830185613470565b613eea602083018461347f565b9392505050565b6000604082019050613f06600083018561347f565b613f13602083018461347f565b9392505050565b6000606082019050613f2f600083018661347f565b613f3c602083018561347f565b613f49604083018461347f565b949350505050565b6000608082019050613f66600083018761347f565b613f73602083018661347f565b613f80604083018561347f565b613f8d6060830184613c89565b95945050505050565b6000606082019050613fab600083018661347f565b613fb8602083018561347f565b613fc56040830184613c89565b949350505050565b6000606082019050613fe2600083018661347f565b613fef60208301856134cb565b613ffc6040830184613c89565b949350505050565b6000606082019050614019600083018661347f565b6140266020830185613579565b818103604083015261403881846134f1565b9050949350505050565b6000604082019050614057600083018561347f565b6140646020830184613c89565b9392505050565b6000606082019050614080600083018661347f565b61408d6020830185613c89565b818103604083015261409f81846134f1565b9050949350505050565b60006020820190506140be60008301846134a5565b92915050565b60006020820190506140d960008301846134cb565b92915050565b600060c0820190506140f460008301896134cb565b614101602083018861347f565b61410e604083018761347f565b61411b606083018661347f565b61412860808301856134cb565b61413560a0830184613c89565b979650505050505050565b600060408201905061415560008301856134cb565b6141626020830184613c89565b9392505050565b600060608201905061417e60008301866134cb565b61418b6020830185613c89565b6141986040830184613c89565b949350505050565b60006080820190506141b560008301876134cb565b6141c26020830186613caf565b6141cf60408301856134cb565b6141dc60608301846134cb565b95945050505050565b60006020820190506141fa600083018461355b565b92915050565b6000602082019050614215600083018461356a565b92915050565b600060208201905081810360008301526142358184613588565b905092915050565b60006020820190508181036000830152614256816135c1565b9050919050565b6000602082019050818103600083015261427681613667565b9050919050565b60006020820190508181036000830152614296816136a7565b9050919050565b600060208201905081810360008301526142b68161370d565b9050919050565b600060208201905081810360008301526142d681613773565b9050919050565b600060208201905081810360008301526142f6816137d9565b9050919050565b600060208201905081810360008301526143168161383f565b9050919050565b60006020820190508181036000830152614336816138a5565b9050919050565b600060208201905081810360008301526143568161390b565b9050919050565b6000602082019050818103600083015261437681613971565b9050919050565b60006020820190508181036000830152614396816139b1565b9050919050565b600060208201905081810360008301526143b681613a17565b9050919050565b600060208201905081810360008301526143d681613a7d565b9050919050565b600060208201905081810360008301526143f681613ae3565b9050919050565b6000602082019050818103600083015261441681613b23565b9050919050565b6000602082019050818103600083015261443681613b63565b9050919050565b6000602082019050818103600083015261445681613ba3565b9050919050565b6000602082019050818103600083015261447681613be3565b9050919050565b6000602082019050818103600083015261449681613c23565b9050919050565b60006020820190506144b26000830184613c89565b92915050565b6000604051905081810181811067ffffffffffffffff821117156144db57600080fd5b8060405250919050565b600067ffffffffffffffff8211156144fc57600080fd5b601f19601f8301169050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000808585111561456f57600080fd5b8386111561457c57600080fd5b6001850283019150848603905094509492505050565b600061459d8261460a565b9050919050565b60008115159050919050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b60006145f182614592565b9050919050565b600061460382614592565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061464c826146ad565b9050919050565b600061465e82614665565b9050919050565b60006146708261460a565b9050919050565b600061468282614689565b9050919050565b60006146948261460a565b9050919050565b60006146a68261462a565b9050919050565b60006146b8826146bf565b9050919050565b60006146ca8261460a565b9050919050565b60005b838110156146ef5780820151818401526020810190506146d4565b838111156146fe576000848401525b50505050565b600061470f8261472a565b9050919050565b6000819050919050565b6000819050919050565b600061473582614757565b9050919050565b6000819050919050565b6000601f19601f8301169050919050565b60008160601b9050919050565b61476d81614592565b811461477857600080fd5b50565b614784816145a4565b811461478f57600080fd5b50565b61479b816145dc565b81146147a657600080fd5b50565b6147b2816145e6565b81146147bd57600080fd5b50565b6147c9816145f8565b81146147d457600080fd5b50565b6147e08161462a565b81146147eb57600080fd5b5056fe6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103a4806100536000396000f3fe60806040526004361061002d5760003560e01c80633f579f4214610039578063f77c47911461016257610034565b3661003457005b600080fd5b34801561004557600080fd5b506100e76004803603606081101561005c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156100a357600080fd5b8201836020820111156100b557600080fd5b803590602001918460018302840111640100000000831117156100d757600080fd5b90919293919293905050506101a3565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561012757808201518184015260208101905061010c565b50505050905090810190601f1680156101545780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561016e57600080fd5b50610177610347565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b606060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610249576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061036c602c913960400191505060405180910390fd5b606060008673ffffffffffffffffffffffffffffffffffffffff1686868660405180838380828437808301925050509250505060006040518083038185875af1925050503d80600081146102b9576040519150601f19603f3d011682016040523d82523d6000602084013e6102be565b606091505b5080935081925050508061033a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4163636f756e743a207472616e73616374696f6e20726576657274656400000081525060200191505060405180910390fd5b8192505050949350505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fe436f6e74726f6c6c65643a206d73672e73656e646572206973206e6f742074686520636f6e74726f6c6c6572a164736f6c634300060c000a536166654d6174684c69623a207375627472616374696f6e206f766572666c6f77a164736f6c634300060c000a", + "bytecode": "0x60806040523480156200001157600080fd5b506200002e67e6ad6dd6ee73072860c01b6200017e60201b60201c565b6200004a67bcc9be562f8a4b0a60c01b6200018160201b60201c565b6200006667579ae7209daca85260c01b6200018160201b60201c565b32600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000c3676b19898ae2f7725060c01b6200018460201b60201c565b620000df677c2d0c907f0deddc60c01b6200018460201b60201c565b620000fb67f0d1a438b0305bb160c01b6200018460201b60201c565b6000620001196737bb5abaf3e7d9d360c01b6200018460201b60201c565b46905062000138676f86a9c0c67bb39a60c01b6200018460201b60201c565b80600281905550506200015c674f33f857671bcade60c01b6200018760201b60201c565b6200017867e4c156c896cf481860c01b6200018a60201b60201c565b6200018d565b50565b50565b50565b50565b50565b617d65806200019d6000396000f3fe60806040523480156200001157600080fd5b50600436106200028c5760003560e01c80639a8a05921162000165578063bdff4b3b11620000d5578063d84fa10c1162000093578063d84fa10c1462000889578063da1b213d14620008bf578063dc7d6c3114620008df578063df0433801462000915578063e0fe396e1462000935578063f0af07211462000955576200028c565b8063bdff4b3b14620007a3578063c36326e714620007c5578063c454330514620007fb578063d0f710d61462000831578063d2c83b9a1462000867576200028c565b8063b0274a731162000123578063b0274a7314620006ed578063b41d3df0146200070d578063b852e8861462000743578063bccb31c61462000763578063bcd483641462000783576200028c565b80639a8a059214620006095780639f106f7e146200062b578063a3561e691462000661578063a526d83b1462000697578063ae1a7ece14620006b7576200028c565b80636121fcfc116200020157806384389a2b11620001bf57806384389a2b146200053b57806387d3131314620005715780638a1773ab14620005935780639130c06e14620005c95780639a85fae214620005e9576200028c565b80636121fcfc146200046f5780636524a94714620004a55780636866da5214620004c5578063692b0ad914620004e557806371404156146200051b576200028c565b80632e4f161e116200024f5780632e4f161e146200038b5780632e7037a014620003c1578063392e53cd14620003f75780633e260b13146200041957806360bf4df21462000439576200028c565b80630c68ba211462000291578063116191b614620002c757806329fbd95714620002e95780632c4bbae6146200031f5780632ca595091462000355575b600080fd5b620002af6004803603810190620002a99190620059f7565b62000975565b604051620002be919062006c71565b60405180910390f35b620002d162000a0c565b604051620002e0919062006a24565b60405180910390f35b62000307600480360381019062000301919062005ddf565b62000a32565b60405162000316919062006c71565b60405180910390f35b6200033d600480360381019062000337919062005ddf565b62000a3d565b6040516200034c919062006c71565b60405180910390f35b6200037360048036038101906200036d919062005ddf565b62000a44565b60405162000382919062006c71565b60405180910390f35b620003a96004803603810190620003a3919062005a64565b62000a4f565b604051620003b8919062006c8e565b60405180910390f35b620003df6004803603810190620003d9919062005eee565b62000aab565b604051620003ee919062006c8e565b60405180910390f35b6200040162000b0f565b60405162000410919062006c71565b60405180910390f35b62000437600480360381019062000431919062005ddf565b62000baa565b005b620004576004803603810190620004519190620059f7565b62000bad565b60405162000466919062006a24565b60405180910390f35b6200048d6004803603810190620004879190620059f7565b62000c03565b6040516200049c919062006c71565b60405180910390f35b620004c36004803603810190620004bd9190620059f7565b62000ce1565b005b620004e36004803603810190620004dd919062005cb5565b62000d31565b005b620005036004803603810190620004fd919062005ddf565b6200124e565b60405162000512919062006c71565b60405180910390f35b620005396004803603810190620005339190620059f7565b62001255565b005b62000559600480360381019062000553919062005f1a565b62001630565b60405162000568919062006c8e565b60405180910390f35b6200057b620016a3565b6040516200058a919062006dec565b60405180910390f35b620005b16004803603810190620005ab919062005d55565b620016c9565b604051620005c09190620070b3565b60405180910390f35b620005e76004803603810190620005e19190620059f7565b6200172b565b005b62000607600480360381019062000601919062005ad0565b62001cdc565b005b6200061362001eb7565b604051620006229190620070b3565b60405180910390f35b62000649600480360381019062000643919062005ddf565b62001ebd565b60405162000658919062006c71565b60405180910390f35b6200067f600480360381019062000679919062005ddf565b62001ec8565b6040516200068e919062006c71565b60405180910390f35b620006b56004803603810190620006af9190620059f7565b62001ecf565b005b620006d56004803603810190620006cf919062005ddf565b6200205d565b604051620006e4919062006c71565b60405180910390f35b6200070b6004803603810190620007059190620059f7565b62002068565b005b6200072b600480360381019062000725919062005ddf565b620023d8565b6040516200073a919062006c71565b60405180910390f35b6200076160048036038101906200075b919062005ddf565b620023df565b005b6200078160048036038101906200077b919062005ddf565b620023e2565b005b620007a160048036038101906200079b919062005ddf565b620023e5565b005b620007ad620023e8565b604051620007bc9190620070b3565b60405180910390f35b620007e36004803603810190620007dd919062005a23565b620023ee565b604051620007f29190620070b3565b60405180910390f35b62000819600480360381019062000813919062005ddf565b620024b9565b60405162000828919062006c71565b60405180910390f35b6200084f600480360381019062000849919062005d81565b620024c4565b6040516200085e919062006c71565b60405180910390f35b6200087162002561565b60405162000880919062006dcf565b60405180910390f35b620008a76004803603810190620008a1919062005ddf565b62002587565b604051620008b6919062006c71565b60405180910390f35b620008dd6004803603810190620008d7919062005bb7565b6200258e565b005b620008fd6004803603810190620008f7919062005a23565b62002763565b6040516200090c9190620070b3565b60405180910390f35b6200093360048036038101906200092d919062005ad0565b6200282f565b005b6200095360048036038101906200094d919062005e50565b62002a00565b005b6200097360048036038101906200096d919062005ddf565b62002e21565b005b60006200098d677ab52c65f999e01f60c01b620023e2565b620009a36710268b7b424a1bd560c01b620023e2565b620009b96713a157f311059a7b60c01b620023e2565b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019050919050565b6000919050565b600060019050919050565b600062000a67677a11c1b4df1ca1f560c01b620023df565b62000a7d6722438b178f0ae90360c01b620023df565b62000a9367f4d0ae7810213f3860c01b620023df565b62000aa18585858562002e24565b9050949350505050565b600062000ac3678731a65e96e05a9060c01b620023df565b62000ad96757f3223bdadf332960c01b620023df565b62000aef67a29afa2db961065360c01b620023df565b62000b0882600001518360200151846040015162002ea1565b9050919050565b600062000b2767e29fe2f351ca6b2760c01b62000baa565b62000b3d676f5dd3f08b97747760c01b62000baa565b62000b53673a9488d62818322a60c01b62000baa565b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b50565b600062000bc567f6e1333f9d32e41160c01b620023df565b62000bdb67fdd9d53b8e33944460c01b620023df565b62000bf167698b486da51c956b60c01b620023df565b62000bfc8262002f3f565b9050919050565b600062000c1b677cc879258b9b8ce360c01b620023df565b62000c316745af80c83299f90360c01b620023df565b62000c4767e57f32ecefcae6cd60c01b620023df565b600073ffffffffffffffffffffffffffffffffffffffff16600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b62000cf767d0ced73497b7358460c01b620023df565b62000d0d67fbea73acffce279060c01b620023df565b62000d236770c90e3da20f7de760c01b620023df565b62000d2e81620030aa565b50565b62000d4767c0522379b364a6f360c01b620023df565b62000d5d675058ca825db00d7460c01b620023df565b62000d736782ed1bf7a8fcfd8360c01b620023df565b600062000d7f620033a4565b905062000d97674b653d1c8b6d592360c01b620023df565b62000dad676021df71f2b027d760c01b620023df565b600062000e43600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486620033f990919063ffffffff16565b905062000e5b673b5ac82d29c17eab60c01b620023df565b62000e7167e38d430a97e9424f60c01b620023df565b62000e87673beaf30c76a59ffa60c01b620023df565b6000811162000ecd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ec49062006f5f565b60405180910390fd5b62000ee3678eb8c265193ebb8560c01b620023df565b62000ef967de400f7d5441605260c01b620023df565b62000f0f673b1ce7a286e0eca760c01b620023df565b600062000f1e83888862002ea1565b905062000f3667560d1a6828b72dce60c01b620023df565b62000f4c67011239eb7c122c0760c01b620023df565b62000f62673a2c80a6aac4048460c01b620023df565b62000fb28186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506200346b565b62000ff4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000feb9062007091565b60405180910390fd5b6200100a6798c9308ac236396c60c01b620023df565b62001020679cfd1fa808aaac0e60c01b620023df565b85600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620010ba67fbb2fb2a9aacd34160c01b620023df565b620010d0679fe9956435bdbfe660c01b620023df565b620010dc838862003549565b620010f267d3c67012fd9edb9a60c01b620023df565b620011086719f7b46b98a45b5260c01b620023df565b62001178600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848985620037e8565b6200118e674ba2c71c2ee28c6b60c01b620023df565b620011a46717161c0e31e34fc360c01b620023df565b7f95f66b073d65f18e43f6b76c7ab8557787f5f766d86cab7c9c76f41be9f8abc6600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168489896040516200123d949392919062006af5565b60405180910390a150505050505050565b6000919050565b6200126b6747dd6d4e27a092d260c01b620023e2565b6200128167e0600b94c13d066760c01b620023e2565b620012976755e8cedcdd449e2360c01b620023e2565b620012ad67ab821ba7fedab67160c01b620023e2565b620012c367c540fbd78e0e2a4960c01b620023e2565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1662001351576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620013489062006f3d565b60405180910390fd5b6200136767d014260b312542b460c01b620023e2565b6200137d674e25985d1c99d1f260c01b620023e2565b6200139367736984febec5fd2560c01b620023e2565b620013a967cbb923c66996310360c01b620023e2565b620013bf672c114aff1103564b60c01b620023e2565b620013d567a76a63e34be2bddb60c01b620023e2565b620013eb67a220bc889ca09d2360c01b620023e2565b8073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614156200145d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162001454906200704d565b60405180910390fd5b62001473679467d7af09c5944d60c01b620023e2565b6200148967c28a58b1b15ad6de60c01b620023e2565b6200149f67c70b0fecc7c6d3b160c01b620023e2565b620014b567e7892f9392d41a6760c01b620023e2565b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1662001543576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200153a9062006fe7565b60405180910390fd5b62001559675a0de441d13969aa60c01b620023e2565b6200156f674e473b0a29064fba60c01b620023e2565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620015dc67e398e5606400274660c01b620023e2565b620015f26738c3bd156a3471c260c01b620023e2565b7fee943cdb81826d5909c559c6b1ae6908fcaf2dbc16c4b730346736b486283e8b32826040516200162592919062006a5e565b60405180910390a150565b60006200164867746e84890578918d60c01b620023df565b6200165e676d90e6054f970f8d60c01b620023df565b62001674674283df7d54888c2160c01b620023df565b6200169c826000015183602001518460400151856060015186608001518760a0015162003c0c565b9050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000620016e1674a92df0b2601d80060c01b620023df565b620016f76730e797ee2717b25c60c01b620023df565b6200170d6740cb4346e6f9bbb360c01b620023df565b60086000838152602001908152602001600020600001549050919050565b6200174167b773bc6ea061fbc160c01b620023df565b62001757671e47e14efabccbcb60c01b620023df565b6200176d671faed6e4e38b1a7560c01b620023df565b600062001779620033a4565b9050620017916736891da8159b98ba60c01b620023df565b620017a767178c9047312caef260c01b620023df565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050620018416733c36b59b7a185eb60c01b620023df565b6200185767c84ec4eb44f8e63760c01b620023df565b6200186d67d552fc88e56ef1b860c01b620023df565b6000811415620018b4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620018ab9062006ef9565b60405180910390fd5b620018ca672035200410c747a960c01b620023df565b620018e0670add31c7a189e6db60c01b620023df565b620018f667a6bab72803d7aef560c01b620023df565b6200190c67be9a2f69e7267e4560c01b620023df565b4281111562001952576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620019499062006f81565b60405180910390fd5b62001968677d0e00efaa9167ce60c01b620023df565b6200197e673caa302eebf3b18860c01b620023df565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062001a1967ba24a6bd0393831960c01b620023df565b62001a2f6738a30af50c05383160c01b620023df565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905062001aac67c1ba8f26af786bdf60c01b620023df565b62001ac267da5b0a8094a1696060c01b620023df565b600062001ada67da6c8b42a66d376960c01b620023df565b62001af067d731e57aebb3f92460c01b620023df565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141562001b725762001b3c677885fed62b0c85ce60c01b620023df565b62001b5267e57216c6dd319f5360c01b620023df565b8173ffffffffffffffffffffffffffffffffffffffff1631905062001c30565b62001b886751812ef4de4274a260c01b620023df565b62001b9e67b3b395a9758b968860c01b620023df565b8473ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b815260040162001bd9919062006a24565b60206040518083038186803b15801562001bf257600080fd5b505afa15801562001c07573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001c2d919062005f46565b90505b62001c466796229eb7fe105ae460c01b620023df565b62001c5c67ebeeb2b3f7b8192c60c01b620023df565b62001c6a82858784620037e8565b62001c8067e442679b547af84f60c01b620023df565b62001c96670e1c93412bd8455f60c01b620023df565b7f5300d9a2838baade7cdc628c82cb80c1298853ba5f389d51e2b47330336aeffc8285878460405162001ccd949392919062006af5565b60405180910390a15050505050565b62001cf2678547b4816985ff9f60c01b620023df565b62001d0867e91d0fa0d5165f1060c01b620023df565b62001d1e67ae27d5c6e5a1627860c01b620023df565b600062001d2a620033a4565b905062001d426726e48716281dd6cd60c01b620023df565b62001d58671f02d416ec828e0960c01b620023df565b600080600062001df78d858e8e8e8e8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505062003cb3565b92509250925062001e13673bb0e2de1af97a3b60c01b620023df565b62001e2967bba97aa553e93d0060c01b620023df565b62001e418262001e398662002f3f565b8e84620037e8565b62001e57674a2b86621f73c58e60c01b620023df565b62001e6d67f8b1d1f90ea6458860c01b620023df565b7f771bc0494e1a2fcbef19a8762845000d8c4500454c756a7370c955e39ed60fd4838260405162001ea092919062006d18565b60405180910390a150505050505050505050505050565b60025481565b600060019050919050565b6000919050565b62001ee567c17b66a0b198af7b60c01b620023e2565b62001efb67e0600b94c13d066760c01b620023e2565b62001f116755e8cedcdd449e2360c01b620023e2565b62001f2767ab821ba7fedab67160c01b620023e2565b62001f3d67c540fbd78e0e2a4960c01b620023e2565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1662001fcb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162001fc29062006f3d565b60405180910390fd5b62001fe167d014260b312542b460c01b620023e2565b62001ff7674e25985d1c99d1f260c01b620023e2565b6200200d67dfa24a8cc198350160c01b620023e2565b6200202367f9907d82cd18ee0760c01b620023e2565b6200203967dd37ee49f553c5a760c01b620023e2565b6200204f679ad66b1d98f77fdf60c01b620023e2565b6200205a8162004526565b50565b600060019050919050565b6200207e670469efd33c9235e360c01b620023df565b6200209467f0b2089551c0c81360c01b620023df565b620020aa6704d761f7374b77cd60c01b620023df565b6000620020b6620033a4565b9050620020ce67409657c6111ebeff60c01b620023df565b620020e4679358c4bdb889d18460c01b620023df565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506200217e67e923e341d617b92360c01b620023df565b6200219467b0e7ccea6c1aa7d260c01b620023df565b620021aa674d40fc3ef77568bb60c01b620023df565b60008114620021f0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620021e79062006e93565b60405180910390fd5b62002206679ebbb0402706d7af60c01b620023df565b6200221c6794c20c5a2ce1d39660c01b620023df565b6200223267beca2bc701238ab260c01b620023df565b6200223d82620030aa565b6200225367d033291f0eb9caf760c01b620023df565b6200226a60065442620047c590919063ffffffff16565b905062002282672aade004be31a38c60c01b620023df565b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200231c678164ea09279e604f60c01b620023df565b620023326789b93e679e8b87d160c01b620023df565b7fed3c8c6cdfc6d7b91dc9db3e1f54866587c26c3c3e0f9e32cd1944974be43a50600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16838584604051620023cb949392919062006af5565b60405180910390a1505050565b6000919050565b50565b50565b50565b60065481565b600062002405664a2219036fd2a460c01b620023df565b6200241b675e6e6d17fe704f9760c01b620023df565b6200243167dbbc56fd7f3b5f8960c01b620023df565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600060019050919050565b6000620024dc670fa739e07c029f9060c01b620023e2565b620024f267406100042e7653bd60c01b620023e2565b620025086784104632bda8198f60c01b620023e2565b620025588484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506200346b565b90509392505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000919050565b620025a46740bae9637fb2f02060c01b620023df565b620025ba67eb691ee8670228b060c01b620023df565b620025d0673992eecbf7059d7a60c01b620023df565b6000620025dc620033a4565b9050620025f467c38dab0c9cbfffc060c01b620023df565b6200260a67ff6eebe0f8a2088860c01b620023df565b6000806000620026a98e858f8f8f8f8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505062003cb3565b925092509250620026c5670d40206c41a9e9f160c01b620023df565b620026db6732a3f4b543a6d49960c01b620023df565b620026ea82858f848d620048e4565b6200270067b7953e396f06f2f860c01b620023df565b620027166730471e94ce6c1fb260c01b620023df565b7f8b67efde501ee9cd0e771f7436554c44a5c076239ff3a6fbb397646a4689c0f283828b6040516200274b9392919062006d45565b60405180910390a15050505050505050505050505050565b60006200277b67446e049345b6dc0360c01b620023df565b6200279167958de0fc09af695660c01b620023df565b620027a76792ae15897a87ccb760c01b620023df565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6200284567bcbd9780179cfb1660c01b620023df565b6200285b67318240a4eb8b00cb60c01b620023df565b6200287167fc5cdd89fca1b27160c01b620023df565b60006200287d620033a4565b90506200289567a03d83d93ca8d80260c01b620023df565b620028ab6743d46cb5e50ef82b60c01b620023df565b60008060006200294a8d858e8e8e8e8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505062003cb3565b92509250925062002966677ba957dbb80f30dd60c01b620023df565b6200297c67eb8cdd947a89fa6a60c01b620023df565b6200298a82858e84620037e8565b620029a0672efb5286ef6b799760c01b620023df565b620029b6679d0f67b91b85269360c01b620023df565b7f6675346cd43846f7d47c310d39fb5c15bc7db66b3770338cdf1f133613a5ae988382604051620029e992919062006d18565b60405180910390a150505050505050505050505050565b62002a16675d6a36075962234660c01b620023df565b62002a2c67d2ba19feb39e0b7f60c01b62000baa565b62002a42670c5ad53cdb9edd1560c01b62000baa565b62002a5867b6b588d2ebb9ae6960c01b62000baa565b62002a6e67c4ec9a90a885875260c01b62000baa565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161462002b01576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162002af89062006e71565b60405180910390fd5b62002b1767c3785ba1534db95460c01b62000baa565b62002b2d67e4202927591248ef60c01b62000baa565b6000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062002b8567531cfa2817fbdc8660c01b62000baa565b62002b9b67de26df4d387f673160c01b620023df565b62002bb1674ebd43ec99830d3060c01b620023df565b62002bc767bb152469ff2c92e660c01b620023df565b85600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062002c1e67d35d915692b00daa60c01b620023df565b84600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062002c7567a817395cf9ca065c60c01b620023df565b62002c8b678615344e6972361e60c01b620023df565b600084141562002cd15762002cab67629416985776820d60c01b620023df565b62002cc1678885a164a9f3ec4260c01b620023df565b6224ea0060068190555062002d05565b62002ce76716f8786f8b5ecdbf60c01b620023df565b62002cfd67be06e23d7dfb9f2a60c01b620023df565b836006819055505b62002d1b675fb68d901bcd3a4a60c01b620023df565b62002d31679a8ebcf09fa7f9b860c01b620023df565b62002d7d838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505062004b01565b62002d936721ac7ab39c91777260c01b620023df565b62002da9670a38c83eb402380960c01b620023df565b62002db48162004c80565b62002dca6701520f419008b58e60c01b62000baa565b62002de06775364c04848b013b60c01b62000baa565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e63260405162002e11919062006a41565b60405180910390a1505050505050565b50565b600062002e3c670600b8dacbc0f5b060c01b620023df565b62002e5267a51a8e2c949b38d860c01b620023df565b62002e68670995b3651a997c6e60c01b620023df565b8484848460405160200162002e8194939291906200683d565b604051602081830303815290604052805190602001209050949350505050565b600062002eb967ab0839cc447a85be60c01b620023df565b62002ecf6757963282530d51cf60c01b620023df565b62002ee567943633a1f102620860c01b620023df565b62002f367f3b3087c8f883f1f44cabe66444f5f9d96f69de6a88f364ea10959eef0331414a85858560405160200162002f21939291906200690f565b60405160208183030381529060405262004cf0565b90509392505050565b600062002f5767a6241f48aba60f2360c01b620023df565b62002f6d6760801bc25d3681f060c01b620023df565b62002f8367032311da4b2958a160c01b620023df565b60008260405160200162002f98919062006820565b60405160208183030381529060405280519060200120905062002fc667d57236925b01eaef60c01b620023df565b62002fdc678d10ddc344cfc56660c01b620023df565b60606040518060200162002ff09062005727565b6020820181038252601f19601f8201166040525090506200301c6783bd86ecf08f2dd360c01b620023df565b62003032675bccd458cea2ca7e60c01b620023df565b600060ff60f81b3084848051906020012060405160200162003058949392919062006952565b6040516020818303038152906040528051906020012090506200308667d2153fdf44ab7c8a60c01b620023df565b6200309c679430141534c0f6f160c01b620023df565b8060001c9350505050919050565b620030c06733e6264130761ab860c01b620023df565b620030d667211cfd602532dd7360c01b620023df565b620030ec673b14d30a708bc54460c01b620023df565b600073ffffffffffffffffffffffffffffffffffffffff16600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156200338a576200319a67f83ecc64c556d1f760c01b620023df565b620031b067f6e1d3201424c63f60c01b620023df565b620031c6676267bb6430c32dbe60c01b620023df565b600081604051602001620031db919062006820565b6040516020818303038152906040528051906020012090506200320967538e7ffac01a39d760c01b620023df565b80604051620032189062005727565b8190604051809103906000f590508015801562003239573d6000803e3d6000fd5b50600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620032d0679d112f9daf47871e60c01b620023df565b620032e667986a0454bcd99e2560c01b620023df565b7fd80572c0f2f24f2d9d726d831bd860ed82b12bafaf01cfb6e4d38fb23c4347e9600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040516200337b92919062006a8b565b60405180910390a150620033a1565b620033a067d3ab13cff696adf660c01b620023df565b5b50565b6000620033bc677ac614d5268cc8ac60c01b62002e21565b620033d2670a6b7ac33c94c4ed60c01b62002e21565b620033e867e7ef433820a2765360c01b62002e21565b620033f4602862004d77565b905090565b60006200341167e0716c1000d7d1da60c01b62004f2f565b62003427674e44df08c8f0b5bb60c01b62004f2f565b6200343d679b7e32e8ae0c005160c01b62004f2f565b62003463838360405180606001604052806021815260200162007d386021913962004f32565b905092915050565b60006200348367fbe9af14abc78ca860c01b620023e2565b6200349967bd3616cf00f8ad2b60c01b620023e2565b620034af670aad941719c9b69b60c01b620023e2565b6000620034c683856200502490919063ffffffff16565b9050620034de6706f556c4601e7cd060c01b620023e2565b620034f467344e7bee2db8345860c01b620023e2565b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b6200355f67b137a792eeffc94960c01b620023df565b62003575676cebd0716e109ec060c01b620023df565b6200358b67227b6ac9d83cb95360c01b620023df565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111562003796576200362a678791f8da1a3e1edf60c01b620023df565b6200364067a20c246c9c5e907f60c01b620023df565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620036db67f884f17fe3454b4f60c01b620023df565b620036f167c3d63cf5fa919f0460c01b620023df565b7fa19281a6f3163da06f6b82f3ecf0130493c52aba23cdc2a312f652742f0d1801600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383604051620037889392919062006ab8565b60405180910390a1620037e4565b620037ac6764fe4e265a60b8b260c01b620023df565b620037c267e8c510292ed038a160c01b620023df565b620037d86798a079e54e32501e60c01b620023df565b620037e382620030aa565b5b5050565b620037fe67425ae998c798c82e60c01b620023df565b6200381467e66cf7af275cf8b160c01b620023df565b6200382a67d8bd53129853df4f60c01b620023df565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562003990576200387667111891f7aa278fd260c01b620023df565b6200388c67241016650f63728860c01b620023df565b620038a2672a09400165e7657260c01b620023df565b8373ffffffffffffffffffffffffffffffffffffffff16633f579f428483600067ffffffffffffffff81118015620038d957600080fd5b506040519080825280601f01601f1916602001820160405280156200390d5781602001600182028036833780820191505090505b506040518463ffffffff1660e01b81526004016200392e9392919062006c2d565b600060405180830381600087803b1580156200394957600080fd5b505af11580156200395e573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019062003989919062005e0b565b5062003c06565b620039a6677b4ef9f87d72b7a960c01b620023df565b620039bc67a88798cd3aa7d74a60c01b620023df565b620039d267d91d0c8e6448665a60c01b620023df565b60608473ffffffffffffffffffffffffffffffffffffffff16633f579f4284600063a9059cbb60e01b888760405160240162003a1092919062006c00565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518463ffffffff1660e01b815260040162003a8d9392919062006bbc565b600060405180830381600087803b15801562003aa857600080fd5b505af115801562003abd573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019062003ae8919062005e0b565b905062003b0067048c8450ee4bf7b760c01b620023df565b62003b1667201720d43ce7357560c01b620023df565b60008151111562003bed5762003b376720ffb51a4023618960c01b620023df565b62003b4d674c5a559407f7467360c01b620023df565b62003b6367d18f03c9226f332260c01b620023df565b62003b79675a5ec2d22eeefafd60c01b620023df565b8080602001905181019062003b8f919062005d29565b62003bd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162003bc89062006f1b565b60405180910390fd5b62003be76742a84bad8afeeb5c60c01b620023df565b62003c04565b62003c03670fe67714ff92436960c01b620023df565b5b505b50505050565b600062003c246751a80809ea045ef460c01b620023df565b62003c3a671ae84f9badc6251360c01b620023df565b62003c5067e4da76a2a2a1edc760c01b620023df565b62003ca77f745089e29f2abf28f618236a5dc04d214ac05ead3440ba532b69e9d160ba2e7288888888888860405160200162003c929695949392919062006893565b60405160208183030381529060405262004cf0565b90509695505050505050565b600080600062003cce6713f01d9025565f3960c01b620023df565b62003ce467ae5fd9cd87222a2b60c01b620023df565b62003cfa67152227d79de099c160c01b620023df565b600062003d0c8c8c8c8c8c8c62003c0c565b905062003d2467904fdcf2e56cec1360c01b620023df565b62003d3a674cb6148653b6f05c60c01b620023df565b60008651141562003eb05762003d5b6788da320677cf5e7d60c01b620023df565b62003d7167031a875bca0aaab360c01b620023df565b62003d87673a5cc07e4b44a6d560c01b620023df565b62003d9d67016d2c61f6dd6c2d60c01b620023df565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166359b52ef88d838b6040518463ffffffff1660e01b815260040162003dfe9392919062006b7f565b60206040518083038186803b15801562003e1757600080fd5b505afa15801562003e2c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003e52919062005d29565b62003e94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162003e8b9062007091565b60405180910390fd5b62003eaa67e8aefadc281bef2d60c01b620023df565b620041ea565b62003ec667d1ebedc8c05d2dc060c01b620023df565b62003edc67608da72d0095b9d160c01b620023df565b62003ef267cb30b3cc980493e660c01b620023df565b600062003f0987836200502490919063ffffffff16565b905062003f2167b9f9dace39395bba60c01b620023df565b62003f376719d2e2b0100cef0c60c01b620023df565b8073ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff1614620041d15762003f8167cf4babd7c1f5517660c01b620023df565b62003f9767e7be9dc6df87f59460c01b620023df565b62003fad6754ffef844048aeac60c01b620023df565b62003fc3678bad387c237a9c8260c01b620023df565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166334d323a48e838c6040518463ffffffff1660e01b8152600401620040249392919062006b42565b60206040518083038186803b1580156200403d57600080fd5b505afa15801562004052573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004078919062005d29565b80156200409757506200409667e43e558222a48e9060c01b62000a44565b5b80620041735750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166334d323a48e838c6040518463ffffffff1660e01b8152600401620040ff9392919062006b42565b60206040518083038186803b1580156200411857600080fd5b505afa1580156200412d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004153919062005d29565b8015620041725750620041716774a6a859f68a407460c01b62000a44565b5b5b620041b5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620041ac9062006fc5565b60405180910390fd5b620041cb670428b6277130e17d60c01b620023df565b620041e8565b620041e767b01b02d7a8b0a1ed60c01b620023df565b5b505b620042006793fbbda3cd7202e460c01b620023df565b6200421667344b7c04098b91b760c01b620023df565b6200422c675b66ad7740fae35760c01b620023df565b6200423881866200346b565b6200427a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620042719062007091565b60405180910390fd5b62004290675aadace45521e33360c01b620023df565b620042a6677f35810285c6353c60c01b620023df565b620042b48c8c8c8c62002e24565b9350620042cc671f486a3a2a1f3c0860c01b620023df565b620042f7600860008681526020019081526020016000206000015488620033f990919063ffffffff16565b91506200430f67075543c764304fab60c01b620023df565b6200432567ce6ce88fc4a1598e60c01b620023df565b6200433b677d0e86c7ce33d4f660c01b620023df565b600082141562004382576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620043799062006eb5565b60405180910390fd5b620043986750c2bd53c8b3f1e260c01b620023df565b620043ae6728b9cf703bd950f660c01b620023df565b866008600086815260200190815260200160002060000181905550620043df672f82c89e17c153f160c01b620023df565b620043f5678e33b0f493a5625360c01b620023df565b620044018c8b62003549565b6200441767573964feb8c10ce960c01b620023df565b600760008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16925062004492675ae960e149ffdaca60c01b620023df565b620044a867b30c6d7c0b6f6ab860c01b620023df565b7f0d1cb77d1fe491f98926195d0b885509da18bc305dd1489f45610237d971ed46848d8d8d8d8c604051620044e39695949392919062006cab565b60405180910390a16200450167dafdb72d466fc30f60c01b620023df565b6200451767de0355caa72dcb9160c01b620023df565b50985098509895505050505050565b6200453c6703611a9e4063d8ea60c01b620023e2565b6200455267ee1baacaa033494260c01b620023e2565b620045686751e5840de998a97760c01b620023e2565b6200457e676f82de74e2e2e03560c01b620023e2565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620045f1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620045e89062006e4f565b60405180910390fd5b620046076717cb80dba7a8a0ea60c01b620023e2565b6200461d67e2f8fabe2a63d8b660c01b620023e2565b62004633677550a657f22d30dc60c01b620023e2565b62004649673c81d7073dbe6f3060c01b620023e2565b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615620046d8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620046cf906200702b565b60405180910390fd5b620046ee67bc5a1f0994a7f54e60c01b620023e2565b62004704679a7f014629c7374960c01b620023e2565b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200477167d71c83e9f3188e9d60c01b620023e2565b6200478767e4bfbd26cb5c77e660c01b620023e2565b7fbc3292102fa77e083913064b282926717cdfaede4d35f553d66366c0a3da755a3282604051620047ba92919062006a5e565b60405180910390a150565b6000620047dd672797d9bbee8e685760c01b62004f2f565b620047f367e25930aa3032662f60c01b62004f2f565b62004809673b804ace3fd44ea060c01b62004f2f565b600082840190506200482667e0d809daafe36a0460c01b62004f2f565b6200483c67d0d7b021c1a6823260c01b62004f2f565b620048526741f1099b5fa09b9360c01b62004f2f565b8381101562004898576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200488f9062007009565b60405180910390fd5b620048ae6728a352a27e50889560c01b62004f2f565b620048c467f55e5f024a80111c60c01b62004f2f565b620048da67d865abdcb752192460c01b62004f2f565b8091505092915050565b620048fa6795769c0422dd2f3760c01b620023df565b6200491067dd92d87d27b8031560c01b620023df565b6200492667fc7095cb44e42da760c01b620023df565b6200493c674d2f9244eb82daf860c01b620023df565b6000811162004982576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620049799062006e2d565b60405180910390fd5b6200499867cea04fa968fc503360c01b620023df565b620049ae6713ae60570dc4ced160c01b620023df565b620049c46752a28bf08a5df63560c01b620023df565b6000620049db8284620033f990919063ffffffff16565b9050620049f36763423272cdb2553660c01b620023df565b62004a096716f88c019291390f60c01b620023df565b62004a1f67be2b24391508025160c01b620023df565b6000811162004a65576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162004a5c9062006fa3565b60405180910390fd5b62004a7b6742c11e45abeb8eec60c01b620023df565b62004a9167f316021b46c8f80a60c01b620023df565b62004aa767d8f0bc071782644460c01b620023df565b62004ab586868684620037e8565b62004acb671a738fed97e4b59060c01b620023df565b62004ae1672c9b480f5094a0f660c01b620023df565b62004af98662004af18762002f3f565b8685620037e8565b505050505050565b62004b1767f4de5e8e73d6ad8760c01b620023e2565b62004b2d67db1ce0981035d84760c01b620023e2565b62004b4367e97a0a25809a3f0960c01b620023e2565b60008151141562004ba15762004b6467de11b839232da49160c01b620023e2565b62004b7a67b59bd2ea0c1c89a260c01b620023e2565b62004b9067652fe2786000e62060c01b620023e2565b62004b9b3262004526565b62004c7d565b62004bb767ad5f6f13dddc2ad960c01b620023e2565b62004bcd672af46088979bcb2160c01b620023e2565b62004be36796cb81cf0bf6606d60c01b620023e2565b60008151905062004bff672f4c11881b8dca8c60c01b620023e2565b62004c1567cec4e8db5057edad60c01b620023e2565b60005b8181101562004c7a5762004c37671a5cc94c8b734dd960c01b620023e2565b62004c4d67e437d14e98e20b2f60c01b620023e2565b62004c6c83828151811062004c5e57fe5b602002602001015162004526565b808060010191505062004c18565b50505b50565b62004c96670beab42e12728d3b60c01b62002e21565b62004cac675ecbac840a5512ec60c01b62002e21565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600062004d086771b334e2e3162d2e60c01b620023e5565b62004d1e6729046581cf97a49460c01b620023e5565b62004d34674f9e67c6b1f334b360c01b620023e5565b62004d6f60025430858560405160200162004d539493929190620069d2565b6040516020818303038152906040528051906020012062005370565b905092915050565b600062004d8f6787c8246a4b35d1f160c01b62002e21565b62004da567976a1e8d41064d2460c01b62002e21565b62004dbb671867d8bf077bb31160c01b62002e21565b600062004dd367bdfeda5454a1273960c01b62002e21565b62004de9677709e048711a13c960c01b62002e21565b62004df3620053e4565b1562004eca5762004e0f67d3c6f6b0bcac9b6e60c01b62002e21565b62004e25673b2573735f5d680260c01b62002e21565b62004e3b675089eb0622c78a2260c01b62002e21565b600083600036905003905062004e5c674bc94a8e9a6ee57960c01b62002e21565b62004ec16000368390601485019262004e789392919062007179565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050620055d0565b91505062004efa565b62004ee0677e45e81af2ec2edc60c01b62002e21565b62004ef667391e31dbfdfb407e60c01b62002e21565b3390505b62004f1067c4042e2c7c2c999760c01b62002e21565b62004f2667fc44c5cccf2cd16760c01b62002e21565b80915050919050565b50565b600062004f4a677d731b0c9f0e103a60c01b62004f2f565b62004f60672e44734f88495e8b60c01b62004f2f565b62004f76670d025d40fd1bee3e60c01b62004f2f565b62004f8c67025828287ef1fd1b60c01b62004f2f565b83831115829062004fd5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162004fcc919062006e09565b60405180910390fd5b5062004fec67e9c31dd44a0bf91260c01b62004f2f565b62005002675031ed2b8fb2561960c01b62004f2f565b6200501867301f4385f3c6735c60c01b62004f2f565b82840390509392505050565b60006200503c670d75db982ec4597160c01b62005716565b620050526725c2c60ab754182560c01b62005716565b62005068673eb64a254569ed0660c01b62005716565b60006200508067fb2a2286066e15e460c01b62005716565b6200509667a440db11ec9e986d60c01b62005716565b6041835114156200532357620050b76704a5aada48e2763260c01b62005716565b620050cd674b98cf1796e5c26660c01b62005716565b620050e367d2dfec7b159385fc60c01b62005716565b6000620050fb6772c2a840621b4aa760c01b62005716565b6200511167bfd411e6ba4d07c460c01b62005716565b60006200512967145d23f82764ba9960c01b62005716565b6200513f67acdff958a9c6c5dd60c01b62005716565b600062005157673b79e3a80932a6a160c01b62005716565b6020860151925060408601519150606086015160001a905062005185679b0cdee01a57ea2f60c01b62005716565b6200519b675dbf88583373227960c01b62005716565b601b8160ff161015620051e057620051be670dc9a1836eb51c3260c01b62005716565b620051d4677097d8456a6c3e1560c01b62005716565b601b81019050620051f7565b620051f66708b39c61216869e760c01b62005716565b5b6200520d672ea4d6db7d2138c560c01b62005716565b62005223679ad3f461195a5eee60c01b62005716565b601b8160ff161480156200524957506200524867a24e972b59dc7d0560c01b62005719565b5b80620052775750601c8160ff161480156200527657506200527567934bee4849491d9560c01b62005719565b5b5b15620053035762005293676d6a491fc6e072fa60c01b62005716565b620052a967aecd1690d1de9f1c60c01b62005716565b60018782858560405160008152602001604052604051620052ce949392919062006d82565b6020604051602081039080840390855afa158015620052f1573d6000803e3d6000fd5b5050506020604051035193506200531a565b6200531967513fbc3b3a0ad1c060c01b62005716565b5b5050506200533a565b620053396723d6d78de386c96660c01b62005716565b5b620053506707d0c4f11e72cfc960c01b62005716565b6200536667b9689b22f403636c60c01b62005716565b8091505092915050565b60006200538867f3d1beb9fba5b7be60c01b62005716565b6200539e676cd81a1865d6353260c01b62005716565b620053b4676810828c21da671e60c01b62005716565b81604051602001620053c79190620069a8565b604051602081830303815290604052805190602001209050919050565b6000620053fc6714ec9ba31585b6f760c01b62002e21565b620054126764d00f8ee4cbc0f460c01b62002e21565b620054286728aef4b71ffef7e260c01b62002e21565b600062005440677b6cf6392b8d09d960c01b62002e21565b6200545667da655f124163f4bc60c01b62002e21565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156200558657620054c3678c4556fd14dc507160c01b62002e21565b620054d9674811af4455ee520960c01b62002e21565b620054ef67ae36e4b52033411860c01b62002e21565b6200550567ffe63a27679b309260c01b62002e21565b602c6000369050101562005550576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620055479062006ed7565b60405180910390fd5b6200556667d1762b0b1ca636f360c01b62002e21565b6200557c6769c465f7e405b9f660c01b62002e21565b600190506200559d565b6200559c6710f40798097af22060c01b62002e21565b5b620055b3671855328cbdf7411660c01b62002e21565b620055c9670e4f1457e534f9ac60c01b62002e21565b8091505090565b6000620055e8670df8d76b8cabf76a60c01b62005724565b620055fe67e180fcce9e2bf4c560c01b62005724565b62005614670dcb70abe8e8bb0b60c01b62005724565b60006200562c67c9f13cc22eb780e060c01b62005724565b6200564267c60f8d891ff21de960c01b62005724565b620056586782bb9e679e55c73460c01b62005724565b60148351146200569f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162005696906200706f565b60405180910390fd5b620056b5679ea304b1b6348ade60c01b62005724565b620056cb67a0049b4768bf518260c01b62005724565b6c010000000000000000000000006020840151049050620056f7671f4dc55703cfba1860c01b62005724565b6200570d67afb63a07e82275e260c01b62005724565b80915050919050565b50565b600060019050919050565b50565b6108b8806200748083390190565b6000813590506200574681620073c9565b92915050565b60008083601f8401126200575f57600080fd5b8235905067ffffffffffffffff8111156200577957600080fd5b6020830191508360208202830111156200579257600080fd5b9250929050565b600081519050620057aa81620073e3565b92915050565b600081359050620057c181620073fd565b92915050565b600081359050620057d88162007417565b92915050565b60008083601f840112620057f157600080fd5b8235905067ffffffffffffffff8111156200580b57600080fd5b6020830191508360018202830111156200582457600080fd5b9250929050565b600082601f8301126200583d57600080fd5b8151620058546200584e82620070fe565b620070d0565b915080825260208301602083018583830111156200587157600080fd5b6200587e8382846200732f565b50505092915050565b600081359050620058988162007431565b92915050565b600081359050620058af816200744b565b92915050565b600060608284031215620058c857600080fd5b620058d46060620070d0565b90506000620058e68482850162005735565b6000830152506020620058fc8482850162005735565b60208301525060406200591284828501620059c9565b60408301525092915050565b600060c082840312156200593157600080fd5b6200593d60c0620070d0565b905060006200594f8482850162005735565b6000830152506020620059658482850162005735565b60208301525060406200597b8482850162005735565b60408301525060606200599184828501620057b0565b6060830152506080620059a784828501620059c9565b60808301525060a0620059bd84828501620059c9565b60a08301525092915050565b600081359050620059da8162007465565b92915050565b600081519050620059f18162007465565b92915050565b60006020828403121562005a0a57600080fd5b600062005a1a8482850162005735565b91505092915050565b6000806040838503121562005a3757600080fd5b600062005a478582860162005735565b925050602062005a5a8582860162005735565b9150509250929050565b6000806000806080858703121562005a7b57600080fd5b600062005a8b8782880162005735565b945050602062005a9e8782880162005735565b935050604062005ab18782880162005735565b925050606062005ac487828801620057b0565b91505092959194509250565b600080600080600080600080600060e08a8c03121562005aef57600080fd5b600062005aff8c828d0162005735565b995050602062005b128c828d0162005735565b985050604062005b258c828d01620057b0565b975050606062005b388c828d01620059c9565b965050608062005b4b8c828d01620059c9565b95505060a08a013567ffffffffffffffff81111562005b6957600080fd5b62005b778c828d01620057de565b945094505060c08a013567ffffffffffffffff81111562005b9757600080fd5b62005ba58c828d01620057de565b92509250509295985092959850929598565b6000806000806000806000806000806101008b8d03121562005bd857600080fd5b600062005be88d828e0162005735565b9a5050602062005bfb8d828e0162005735565b995050604062005c0e8d828e01620057b0565b985050606062005c218d828e01620059c9565b975050608062005c348d828e01620059c9565b96505060a062005c478d828e01620059c9565b95505060c08b013567ffffffffffffffff81111562005c6557600080fd5b62005c738d828e01620057de565b945094505060e08b013567ffffffffffffffff81111562005c9357600080fd5b62005ca18d828e01620057de565b92509250509295989b9194979a5092959850565b6000806000806060858703121562005ccc57600080fd5b600062005cdc8782880162005735565b945050602062005cef87828801620059c9565b935050604085013567ffffffffffffffff81111562005d0d57600080fd5b62005d1b87828801620057de565b925092505092959194509250565b60006020828403121562005d3c57600080fd5b600062005d4c8482850162005799565b91505092915050565b60006020828403121562005d6857600080fd5b600062005d7884828501620057b0565b91505092915050565b60008060006040848603121562005d9757600080fd5b600062005da786828701620057b0565b935050602084013567ffffffffffffffff81111562005dc557600080fd5b62005dd386828701620057de565b92509250509250925092565b60006020828403121562005df257600080fd5b600062005e0284828501620057c7565b91505092915050565b60006020828403121562005e1e57600080fd5b600082015167ffffffffffffffff81111562005e3957600080fd5b62005e47848285016200582b565b91505092915050565b60008060008060008060a0878903121562005e6a57600080fd5b600062005e7a89828a0162005887565b965050602062005e8d89828a016200589e565b955050604062005ea089828a01620059c9565b945050606087013567ffffffffffffffff81111562005ebe57600080fd5b62005ecc89828a016200574c565b9350935050608062005ee189828a0162005735565b9150509295509295509295565b60006060828403121562005f0157600080fd5b600062005f1184828501620058b5565b91505092915050565b600060c0828403121562005f2d57600080fd5b600062005f3d848285016200591e565b91505092915050565b60006020828403121562005f5957600080fd5b600062005f6984828501620059e0565b91505092915050565b62005f7d816200728f565b82525050565b62005f8e81620071ae565b82525050565b62005fa962005fa382620071ae565b62007365565b82525050565b62005fba81620071c2565b82525050565b62005fd562005fcf82620071ce565b62007379565b82525050565b62005fe681620071fa565b82525050565b6200600162005ffb82620071fa565b62007383565b82525050565b600062006014826200712b565b62006020818562007141565b9350620060328185602086016200732f565b6200603d81620073ab565b840191505092915050565b600062006055826200712b565b62006061818562007152565b9350620060738185602086016200732f565b80840191505092915050565b6200608a81620072a3565b82525050565b6200609b81620072cb565b82525050565b620060ac81620072f3565b82525050565b6000620060bf8262007136565b620060cb81856200715d565b9350620060dd8185602086016200732f565b620060e881620073ab565b840191505092915050565b6000620061026026836200715d565b91507f5061796d656e7452656769737472793a20696e76616c6964206465706f73697460008301527f2076616c756500000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006200616a601c836200716e565b91507f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000830152601c82019050919050565b6000620061ac6020836200715d565b91507f477561726465643a2063616e6e6f74206164642030783020677561726469616e6000830152602082019050919050565b6000620061ee602f836200715d565b91507f496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742060008301527f74686520696e697469616c697a657200000000000000000000000000000000006020830152604082019050919050565b600062006256602f836200715d565b91507f5061796d656e7452656769737472793a206465706f736974206578697420616c60008301527f72656164792072657175657374656400000000000000000000000000000000006020830152604082019050919050565b6000620062be6026836200715d565b91507f5061796d656e7452656769737472793a20696e76616c6964207061796d656e7460008301527f2076616c756500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000620063266022836200715d565b91507f47617465776179526563697069656e743a20696e76616c6964206d73672e646160008301527f74610000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006200638e602b836200715d565b91507f5061796d656e7452656769737472793a206465706f7369742065786974206e6f60008301527f74207265717565737465640000000000000000000000000000000000000000006020830152604082019050919050565b6000620063f6602d836200715d565b91507f5061796d656e7452656769737472793a204552433230546f6b656e207472616e60008301527f73666572207265766572746564000000000000000000000000000000000000006020830152604082019050919050565b60006200645e6026836200715d565b91507f477561726465643a2074782e6f726967696e206973206e6f742074686520677560008301527f61726469616e00000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000620064c6601f836200715d565b91507f5061796d656e7452656769737472793a20696e76616c696420616d6f756e74006000830152602082019050919050565b6000620065086024836200715d565b91507f5061796d656e7452656769737472793a206465706f7369742065786974206c6f60008301527f636b6564000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000620065706027836200715d565b91507f5061796d656e7452656769737472793a20696e76616c6964207769746864726160008301527f772076616c7565000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000620065d86029836200715d565b91507f5061796d656e7452656769737472793a20696e76616c69642073656e6465722060008301527f7369676e617475726500000000000000000000000000000000000000000000006020830152604082019050919050565b600062006640601f836200715d565b91507f477561726465643a20677561726469616e20646f65736e2774206578697374006000830152602082019050919050565b600062006682601e836200715d565b91507f536166654d6174684c69623a206164646974696f6e206f766572666c6f7700006000830152602082019050919050565b6000620066c46020836200715d565b91507f477561726465643a20677561726469616e20616c7265616479206578697374736000830152602082019050919050565b600062006706601b836200715d565b91507f477561726465643a2063616e6e6f742072656d6f76652073656c6600000000006000830152602082019050919050565b600062006748601d836200715d565b91507f42797465734c69623a20696e76616c69642064617461206c656e6774680000006000830152602082019050919050565b60006200678a602b836200715d565b91507f5061796d656e7452656769737472793a20696e76616c6964206775617264696160008301527f6e207369676e61747572650000000000000000000000000000000000000000006020830152604082019050919050565b620067ee8162007278565b82525050565b62006809620068038262007278565b620073a1565b82525050565b6200681a8162007282565b82525050565b60006200682e828462005f94565b60148201915081905092915050565b60006200684b828762005f94565b6014820191506200685d828662005f94565b6014820191506200686f828562005f94565b60148201915062006881828462005fec565b60208201915081905095945050505050565b6000620068a1828962005f94565b601482019150620068b3828862005f94565b601482019150620068c5828762005f94565b601482019150620068d7828662005fec565b602082019150620068e98285620067f4565b602082019150620068fb8284620067f4565b602082019150819050979650505050505050565b60006200691d828662005f94565b6014820191506200692f828562005f94565b601482019150620069418284620067f4565b602082019150819050949350505050565b600062006960828762005fc0565b60018201915062006972828662005f94565b60148201915062006984828562005fec565b60208201915062006996828462005fec565b60208201915081905095945050505050565b6000620069b5826200615b565b9150620069c3828462005fec565b60208201915081905092915050565b6000620069e08287620067f4565b602082019150620069f2828662005f94565b60148201915062006a04828562005fec565b60208201915062006a16828462006048565b915081905095945050505050565b600060208201905062006a3b600083018462005f83565b92915050565b600060208201905062006a58600083018462005f72565b92915050565b600060408201905062006a75600083018562005f72565b62006a84602083018462005f83565b9392505050565b600060408201905062006aa2600083018562005f83565b62006ab1602083018462005f83565b9392505050565b600060608201905062006acf600083018662005f83565b62006ade602083018562005f83565b62006aed604083018462005f83565b949350505050565b600060808201905062006b0c600083018762005f83565b62006b1b602083018662005f83565b62006b2a604083018562005f83565b62006b396060830184620067e3565b95945050505050565b600060608201905062006b59600083018662005f83565b62006b68602083018562005f83565b62006b776040830184620067e3565b949350505050565b600060608201905062006b96600083018662005f83565b62006ba5602083018562005fdb565b62006bb46040830184620067e3565b949350505050565b600060608201905062006bd3600083018662005f83565b62006be26020830185620060a1565b818103604083015262006bf6818462006007565b9050949350505050565b600060408201905062006c17600083018562005f83565b62006c266020830184620067e3565b9392505050565b600060608201905062006c44600083018662005f83565b62006c536020830185620067e3565b818103604083015262006c67818462006007565b9050949350505050565b600060208201905062006c88600083018462005faf565b92915050565b600060208201905062006ca5600083018462005fdb565b92915050565b600060c08201905062006cc2600083018962005fdb565b62006cd1602083018862005f83565b62006ce0604083018762005f83565b62006cef606083018662005f83565b62006cfe608083018562005fdb565b62006d0d60a0830184620067e3565b979650505050505050565b600060408201905062006d2f600083018562005fdb565b62006d3e6020830184620067e3565b9392505050565b600060608201905062006d5c600083018662005fdb565b62006d6b6020830185620067e3565b62006d7a6040830184620067e3565b949350505050565b600060808201905062006d99600083018762005fdb565b62006da860208301866200680f565b62006db7604083018562005fdb565b62006dc6606083018462005fdb565b95945050505050565b600060208201905062006de660008301846200607f565b92915050565b600060208201905062006e03600083018462006090565b92915050565b6000602082019050818103600083015262006e258184620060b2565b905092915050565b6000602082019050818103600083015262006e4881620060f3565b9050919050565b6000602082019050818103600083015262006e6a816200619d565b9050919050565b6000602082019050818103600083015262006e8c81620061df565b9050919050565b6000602082019050818103600083015262006eae8162006247565b9050919050565b6000602082019050818103600083015262006ed081620062af565b9050919050565b6000602082019050818103600083015262006ef28162006317565b9050919050565b6000602082019050818103600083015262006f14816200637f565b9050919050565b6000602082019050818103600083015262006f3681620063e7565b9050919050565b6000602082019050818103600083015262006f58816200644f565b9050919050565b6000602082019050818103600083015262006f7a81620064b7565b9050919050565b6000602082019050818103600083015262006f9c81620064f9565b9050919050565b6000602082019050818103600083015262006fbe8162006561565b9050919050565b6000602082019050818103600083015262006fe081620065c9565b9050919050565b60006020820190508181036000830152620070028162006631565b9050919050565b60006020820190508181036000830152620070248162006673565b9050919050565b600060208201905081810360008301526200704681620066b5565b9050919050565b600060208201905081810360008301526200706881620066f7565b9050919050565b600060208201905081810360008301526200708a8162006739565b9050919050565b60006020820190508181036000830152620070ac816200677b565b9050919050565b6000602082019050620070ca6000830184620067e3565b92915050565b6000604051905081810181811067ffffffffffffffff82111715620070f457600080fd5b8060405250919050565b600067ffffffffffffffff8211156200711657600080fd5b601f19601f8301169050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b600080858511156200718a57600080fd5b838611156200719857600080fd5b6001850283019150848603905094509492505050565b6000620071bb8262007258565b9050919050565b60008115159050919050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b60006200723d82620071ae565b9050919050565b60006200725182620071ae565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006200729c8262007307565b9050919050565b6000620072b082620072b7565b9050919050565b6000620072c48262007258565b9050919050565b6000620072d882620072df565b9050919050565b6000620072ec8262007258565b9050919050565b6000620073008262007278565b9050919050565b600062007314826200731b565b9050919050565b6000620073288262007258565b9050919050565b60005b838110156200734f57808201518184015260208101905062007332565b838111156200735f576000848401525b50505050565b600062007372826200738d565b9050919050565b6000819050919050565b6000819050919050565b60006200739a82620073bc565b9050919050565b6000819050919050565b6000601f19601f8301169050919050565b60008160601b9050919050565b620073d481620071ae565b8114620073e057600080fd5b50565b620073ee81620071c2565b8114620073fa57600080fd5b50565b6200740881620071fa565b81146200741457600080fd5b50565b620074228162007204565b81146200742e57600080fd5b50565b6200743c8162007230565b81146200744857600080fd5b50565b620074568162007244565b81146200746257600080fd5b50565b620074708162007278565b81146200747c57600080fd5b5056fe608060405261001e674c05ed6aa1cd281960c01b61009760201b60201c565b610038675db0dfd7018850c360c01b61009760201b60201c565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610092679098f39fea0730f660c01b61009a60201b60201c565b61009d565b50565b50565b61080c806100ac6000396000f3fe60806040526004361061007f5760003560e01c8063bd04d1391161004e578063bd04d139146102f8578063c478196d14610364578063d1c43eae146103ba578063f77c47911461041057610086565b806326bebb521461008b5780633f579f42146100f7578063550648ff1461022057806356c2fc6c1461028c57610086565b3661008657005b600080fd5b34801561009757600080fd5b506100df600480360360208110156100ae57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610451565b60405180821515815260200191505060405180910390f35b34801561010357600080fd5b506101a56004803603606081101561011a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561016157600080fd5b82018360208201111561017357600080fd5b8035906020019184600183028401116401000000008311171561019557600080fd5b9091929391929390505050610458565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e55780820151818401526020810190506101ca565b50505050905090810190601f1680156102125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022c57600080fd5b506102746004803603602081101561024357600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061078c565b60405180821515815260200191505060405180910390f35b34801561029857600080fd5b506102e0600480360360208110156102af57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610793565b60405180821515815260200191505060405180910390f35b34801561030457600080fd5b5061034c6004803603602081101561031b57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061079e565b60405180821515815260200191505060405180910390f35b34801561037057600080fd5b506103b86004803603602081101561038757600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107a9565b005b3480156103c657600080fd5b5061040e600480360360208110156103dd57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107ac565b005b34801561041c57600080fd5b506104256107af565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000919050565b606061046e6730a6ad52e198db9760c01b6107a9565b61048267f6266a592c249da560c01b6107ac565b6104966728279893f8537e1960c01b6107ac565b6104aa67d300d0a9ecbe6cac60c01b6107ac565b6104be678d5c0caa285e3ec560c01b6107ac565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610562576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806107d4602c913960400191505060405180910390fd5b6105766718b2e4dd03bc759a60c01b6107ac565b61058a67f8b65e28b897a44f60c01b6107ac565b61059e67a0e46df01f8c97cb60c01b6107a9565b6105b267aa5eebb2652f143c60c01b6107a9565b6105c6676d9ffa8149f3dea060c01b6107a9565b6105da678cb9bb07d4779f7e60c01b6107a9565b60606105f067f5ddfa157613111160c01b6107a9565b610604676c82c2c1207b3b7760c01b6107a9565b600061061a673ff4b340667b124160c01b6107a9565b8673ffffffffffffffffffffffffffffffffffffffff1686868660405180838380828437808301925050509250505060006040518083038185875af1925050503d8060008114610686576040519150601f19603f3d011682016040523d82523d6000602084013e61068b565b606091505b5080935081925050506106a86756fbd48014b71d8b60c01b6107a9565b6106bc67e31d8723036de13060c01b6107a9565b6106d067d6b834fbc1dbf84c60c01b6107a9565b80610743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4163636f756e743a207472616e73616374696f6e20726576657274656400000081525060200191505060405180910390fd5b61075767836ca2ae34585e2360c01b6107a9565b61076b67fc0747958022859a60c01b6107a9565b61077f67127f08829e3f368c60c01b6107a9565b8192505050949350505050565b6000919050565b600060019050919050565b600060019050919050565b50565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fe436f6e74726f6c6c65643a206d73672e73656e646572206973206e6f742074686520636f6e74726f6c6c6572a164736f6c634300060c000a536166654d6174684c69623a207375627472616374696f6e206f766572666c6f77a164736f6c634300060c000a", + "deployedBytecode": "0x60806040523480156200001157600080fd5b50600436106200028c5760003560e01c80639a8a05921162000165578063bdff4b3b11620000d5578063d84fa10c1162000093578063d84fa10c1462000889578063da1b213d14620008bf578063dc7d6c3114620008df578063df0433801462000915578063e0fe396e1462000935578063f0af07211462000955576200028c565b8063bdff4b3b14620007a3578063c36326e714620007c5578063c454330514620007fb578063d0f710d61462000831578063d2c83b9a1462000867576200028c565b8063b0274a731162000123578063b0274a7314620006ed578063b41d3df0146200070d578063b852e8861462000743578063bccb31c61462000763578063bcd483641462000783576200028c565b80639a8a059214620006095780639f106f7e146200062b578063a3561e691462000661578063a526d83b1462000697578063ae1a7ece14620006b7576200028c565b80636121fcfc116200020157806384389a2b11620001bf57806384389a2b146200053b57806387d3131314620005715780638a1773ab14620005935780639130c06e14620005c95780639a85fae214620005e9576200028c565b80636121fcfc146200046f5780636524a94714620004a55780636866da5214620004c5578063692b0ad914620004e557806371404156146200051b576200028c565b80632e4f161e116200024f5780632e4f161e146200038b5780632e7037a014620003c1578063392e53cd14620003f75780633e260b13146200041957806360bf4df21462000439576200028c565b80630c68ba211462000291578063116191b614620002c757806329fbd95714620002e95780632c4bbae6146200031f5780632ca595091462000355575b600080fd5b620002af6004803603810190620002a99190620059f7565b62000975565b604051620002be919062006c71565b60405180910390f35b620002d162000a0c565b604051620002e0919062006a24565b60405180910390f35b62000307600480360381019062000301919062005ddf565b62000a32565b60405162000316919062006c71565b60405180910390f35b6200033d600480360381019062000337919062005ddf565b62000a3d565b6040516200034c919062006c71565b60405180910390f35b6200037360048036038101906200036d919062005ddf565b62000a44565b60405162000382919062006c71565b60405180910390f35b620003a96004803603810190620003a3919062005a64565b62000a4f565b604051620003b8919062006c8e565b60405180910390f35b620003df6004803603810190620003d9919062005eee565b62000aab565b604051620003ee919062006c8e565b60405180910390f35b6200040162000b0f565b60405162000410919062006c71565b60405180910390f35b62000437600480360381019062000431919062005ddf565b62000baa565b005b620004576004803603810190620004519190620059f7565b62000bad565b60405162000466919062006a24565b60405180910390f35b6200048d6004803603810190620004879190620059f7565b62000c03565b6040516200049c919062006c71565b60405180910390f35b620004c36004803603810190620004bd9190620059f7565b62000ce1565b005b620004e36004803603810190620004dd919062005cb5565b62000d31565b005b620005036004803603810190620004fd919062005ddf565b6200124e565b60405162000512919062006c71565b60405180910390f35b620005396004803603810190620005339190620059f7565b62001255565b005b62000559600480360381019062000553919062005f1a565b62001630565b60405162000568919062006c8e565b60405180910390f35b6200057b620016a3565b6040516200058a919062006dec565b60405180910390f35b620005b16004803603810190620005ab919062005d55565b620016c9565b604051620005c09190620070b3565b60405180910390f35b620005e76004803603810190620005e19190620059f7565b6200172b565b005b62000607600480360381019062000601919062005ad0565b62001cdc565b005b6200061362001eb7565b604051620006229190620070b3565b60405180910390f35b62000649600480360381019062000643919062005ddf565b62001ebd565b60405162000658919062006c71565b60405180910390f35b6200067f600480360381019062000679919062005ddf565b62001ec8565b6040516200068e919062006c71565b60405180910390f35b620006b56004803603810190620006af9190620059f7565b62001ecf565b005b620006d56004803603810190620006cf919062005ddf565b6200205d565b604051620006e4919062006c71565b60405180910390f35b6200070b6004803603810190620007059190620059f7565b62002068565b005b6200072b600480360381019062000725919062005ddf565b620023d8565b6040516200073a919062006c71565b60405180910390f35b6200076160048036038101906200075b919062005ddf565b620023df565b005b6200078160048036038101906200077b919062005ddf565b620023e2565b005b620007a160048036038101906200079b919062005ddf565b620023e5565b005b620007ad620023e8565b604051620007bc9190620070b3565b60405180910390f35b620007e36004803603810190620007dd919062005a23565b620023ee565b604051620007f29190620070b3565b60405180910390f35b62000819600480360381019062000813919062005ddf565b620024b9565b60405162000828919062006c71565b60405180910390f35b6200084f600480360381019062000849919062005d81565b620024c4565b6040516200085e919062006c71565b60405180910390f35b6200087162002561565b60405162000880919062006dcf565b60405180910390f35b620008a76004803603810190620008a1919062005ddf565b62002587565b604051620008b6919062006c71565b60405180910390f35b620008dd6004803603810190620008d7919062005bb7565b6200258e565b005b620008fd6004803603810190620008f7919062005a23565b62002763565b6040516200090c9190620070b3565b60405180910390f35b6200093360048036038101906200092d919062005ad0565b6200282f565b005b6200095360048036038101906200094d919062005e50565b62002a00565b005b6200097360048036038101906200096d919062005ddf565b62002e21565b005b60006200098d677ab52c65f999e01f60c01b620023e2565b620009a36710268b7b424a1bd560c01b620023e2565b620009b96713a157f311059a7b60c01b620023e2565b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019050919050565b6000919050565b600060019050919050565b600062000a67677a11c1b4df1ca1f560c01b620023df565b62000a7d6722438b178f0ae90360c01b620023df565b62000a9367f4d0ae7810213f3860c01b620023df565b62000aa18585858562002e24565b9050949350505050565b600062000ac3678731a65e96e05a9060c01b620023df565b62000ad96757f3223bdadf332960c01b620023df565b62000aef67a29afa2db961065360c01b620023df565b62000b0882600001518360200151846040015162002ea1565b9050919050565b600062000b2767e29fe2f351ca6b2760c01b62000baa565b62000b3d676f5dd3f08b97747760c01b62000baa565b62000b53673a9488d62818322a60c01b62000baa565b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b50565b600062000bc567f6e1333f9d32e41160c01b620023df565b62000bdb67fdd9d53b8e33944460c01b620023df565b62000bf167698b486da51c956b60c01b620023df565b62000bfc8262002f3f565b9050919050565b600062000c1b677cc879258b9b8ce360c01b620023df565b62000c316745af80c83299f90360c01b620023df565b62000c4767e57f32ecefcae6cd60c01b620023df565b600073ffffffffffffffffffffffffffffffffffffffff16600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b62000cf767d0ced73497b7358460c01b620023df565b62000d0d67fbea73acffce279060c01b620023df565b62000d236770c90e3da20f7de760c01b620023df565b62000d2e81620030aa565b50565b62000d4767c0522379b364a6f360c01b620023df565b62000d5d675058ca825db00d7460c01b620023df565b62000d736782ed1bf7a8fcfd8360c01b620023df565b600062000d7f620033a4565b905062000d97674b653d1c8b6d592360c01b620023df565b62000dad676021df71f2b027d760c01b620023df565b600062000e43600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486620033f990919063ffffffff16565b905062000e5b673b5ac82d29c17eab60c01b620023df565b62000e7167e38d430a97e9424f60c01b620023df565b62000e87673beaf30c76a59ffa60c01b620023df565b6000811162000ecd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ec49062006f5f565b60405180910390fd5b62000ee3678eb8c265193ebb8560c01b620023df565b62000ef967de400f7d5441605260c01b620023df565b62000f0f673b1ce7a286e0eca760c01b620023df565b600062000f1e83888862002ea1565b905062000f3667560d1a6828b72dce60c01b620023df565b62000f4c67011239eb7c122c0760c01b620023df565b62000f62673a2c80a6aac4048460c01b620023df565b62000fb28186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506200346b565b62000ff4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000feb9062007091565b60405180910390fd5b6200100a6798c9308ac236396c60c01b620023df565b62001020679cfd1fa808aaac0e60c01b620023df565b85600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620010ba67fbb2fb2a9aacd34160c01b620023df565b620010d0679fe9956435bdbfe660c01b620023df565b620010dc838862003549565b620010f267d3c67012fd9edb9a60c01b620023df565b620011086719f7b46b98a45b5260c01b620023df565b62001178600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848985620037e8565b6200118e674ba2c71c2ee28c6b60c01b620023df565b620011a46717161c0e31e34fc360c01b620023df565b7f95f66b073d65f18e43f6b76c7ab8557787f5f766d86cab7c9c76f41be9f8abc6600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168489896040516200123d949392919062006af5565b60405180910390a150505050505050565b6000919050565b6200126b6747dd6d4e27a092d260c01b620023e2565b6200128167e0600b94c13d066760c01b620023e2565b620012976755e8cedcdd449e2360c01b620023e2565b620012ad67ab821ba7fedab67160c01b620023e2565b620012c367c540fbd78e0e2a4960c01b620023e2565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1662001351576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620013489062006f3d565b60405180910390fd5b6200136767d014260b312542b460c01b620023e2565b6200137d674e25985d1c99d1f260c01b620023e2565b6200139367736984febec5fd2560c01b620023e2565b620013a967cbb923c66996310360c01b620023e2565b620013bf672c114aff1103564b60c01b620023e2565b620013d567a76a63e34be2bddb60c01b620023e2565b620013eb67a220bc889ca09d2360c01b620023e2565b8073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614156200145d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162001454906200704d565b60405180910390fd5b62001473679467d7af09c5944d60c01b620023e2565b6200148967c28a58b1b15ad6de60c01b620023e2565b6200149f67c70b0fecc7c6d3b160c01b620023e2565b620014b567e7892f9392d41a6760c01b620023e2565b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1662001543576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200153a9062006fe7565b60405180910390fd5b62001559675a0de441d13969aa60c01b620023e2565b6200156f674e473b0a29064fba60c01b620023e2565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620015dc67e398e5606400274660c01b620023e2565b620015f26738c3bd156a3471c260c01b620023e2565b7fee943cdb81826d5909c559c6b1ae6908fcaf2dbc16c4b730346736b486283e8b32826040516200162592919062006a5e565b60405180910390a150565b60006200164867746e84890578918d60c01b620023df565b6200165e676d90e6054f970f8d60c01b620023df565b62001674674283df7d54888c2160c01b620023df565b6200169c826000015183602001518460400151856060015186608001518760a0015162003c0c565b9050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000620016e1674a92df0b2601d80060c01b620023df565b620016f76730e797ee2717b25c60c01b620023df565b6200170d6740cb4346e6f9bbb360c01b620023df565b60086000838152602001908152602001600020600001549050919050565b6200174167b773bc6ea061fbc160c01b620023df565b62001757671e47e14efabccbcb60c01b620023df565b6200176d671faed6e4e38b1a7560c01b620023df565b600062001779620033a4565b9050620017916736891da8159b98ba60c01b620023df565b620017a767178c9047312caef260c01b620023df565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050620018416733c36b59b7a185eb60c01b620023df565b6200185767c84ec4eb44f8e63760c01b620023df565b6200186d67d552fc88e56ef1b860c01b620023df565b6000811415620018b4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620018ab9062006ef9565b60405180910390fd5b620018ca672035200410c747a960c01b620023df565b620018e0670add31c7a189e6db60c01b620023df565b620018f667a6bab72803d7aef560c01b620023df565b6200190c67be9a2f69e7267e4560c01b620023df565b4281111562001952576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620019499062006f81565b60405180910390fd5b62001968677d0e00efaa9167ce60c01b620023df565b6200197e673caa302eebf3b18860c01b620023df565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062001a1967ba24a6bd0393831960c01b620023df565b62001a2f6738a30af50c05383160c01b620023df565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905062001aac67c1ba8f26af786bdf60c01b620023df565b62001ac267da5b0a8094a1696060c01b620023df565b600062001ada67da6c8b42a66d376960c01b620023df565b62001af067d731e57aebb3f92460c01b620023df565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141562001b725762001b3c677885fed62b0c85ce60c01b620023df565b62001b5267e57216c6dd319f5360c01b620023df565b8173ffffffffffffffffffffffffffffffffffffffff1631905062001c30565b62001b886751812ef4de4274a260c01b620023df565b62001b9e67b3b395a9758b968860c01b620023df565b8473ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b815260040162001bd9919062006a24565b60206040518083038186803b15801562001bf257600080fd5b505afa15801562001c07573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001c2d919062005f46565b90505b62001c466796229eb7fe105ae460c01b620023df565b62001c5c67ebeeb2b3f7b8192c60c01b620023df565b62001c6a82858784620037e8565b62001c8067e442679b547af84f60c01b620023df565b62001c96670e1c93412bd8455f60c01b620023df565b7f5300d9a2838baade7cdc628c82cb80c1298853ba5f389d51e2b47330336aeffc8285878460405162001ccd949392919062006af5565b60405180910390a15050505050565b62001cf2678547b4816985ff9f60c01b620023df565b62001d0867e91d0fa0d5165f1060c01b620023df565b62001d1e67ae27d5c6e5a1627860c01b620023df565b600062001d2a620033a4565b905062001d426726e48716281dd6cd60c01b620023df565b62001d58671f02d416ec828e0960c01b620023df565b600080600062001df78d858e8e8e8e8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505062003cb3565b92509250925062001e13673bb0e2de1af97a3b60c01b620023df565b62001e2967bba97aa553e93d0060c01b620023df565b62001e418262001e398662002f3f565b8e84620037e8565b62001e57674a2b86621f73c58e60c01b620023df565b62001e6d67f8b1d1f90ea6458860c01b620023df565b7f771bc0494e1a2fcbef19a8762845000d8c4500454c756a7370c955e39ed60fd4838260405162001ea092919062006d18565b60405180910390a150505050505050505050505050565b60025481565b600060019050919050565b6000919050565b62001ee567c17b66a0b198af7b60c01b620023e2565b62001efb67e0600b94c13d066760c01b620023e2565b62001f116755e8cedcdd449e2360c01b620023e2565b62001f2767ab821ba7fedab67160c01b620023e2565b62001f3d67c540fbd78e0e2a4960c01b620023e2565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1662001fcb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162001fc29062006f3d565b60405180910390fd5b62001fe167d014260b312542b460c01b620023e2565b62001ff7674e25985d1c99d1f260c01b620023e2565b6200200d67dfa24a8cc198350160c01b620023e2565b6200202367f9907d82cd18ee0760c01b620023e2565b6200203967dd37ee49f553c5a760c01b620023e2565b6200204f679ad66b1d98f77fdf60c01b620023e2565b6200205a8162004526565b50565b600060019050919050565b6200207e670469efd33c9235e360c01b620023df565b6200209467f0b2089551c0c81360c01b620023df565b620020aa6704d761f7374b77cd60c01b620023df565b6000620020b6620033a4565b9050620020ce67409657c6111ebeff60c01b620023df565b620020e4679358c4bdb889d18460c01b620023df565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506200217e67e923e341d617b92360c01b620023df565b6200219467b0e7ccea6c1aa7d260c01b620023df565b620021aa674d40fc3ef77568bb60c01b620023df565b60008114620021f0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620021e79062006e93565b60405180910390fd5b62002206679ebbb0402706d7af60c01b620023df565b6200221c6794c20c5a2ce1d39660c01b620023df565b6200223267beca2bc701238ab260c01b620023df565b6200223d82620030aa565b6200225367d033291f0eb9caf760c01b620023df565b6200226a60065442620047c590919063ffffffff16565b905062002282672aade004be31a38c60c01b620023df565b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200231c678164ea09279e604f60c01b620023df565b620023326789b93e679e8b87d160c01b620023df565b7fed3c8c6cdfc6d7b91dc9db3e1f54866587c26c3c3e0f9e32cd1944974be43a50600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16838584604051620023cb949392919062006af5565b60405180910390a1505050565b6000919050565b50565b50565b50565b60065481565b600062002405664a2219036fd2a460c01b620023df565b6200241b675e6e6d17fe704f9760c01b620023df565b6200243167dbbc56fd7f3b5f8960c01b620023df565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600060019050919050565b6000620024dc670fa739e07c029f9060c01b620023e2565b620024f267406100042e7653bd60c01b620023e2565b620025086784104632bda8198f60c01b620023e2565b620025588484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506200346b565b90509392505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000919050565b620025a46740bae9637fb2f02060c01b620023df565b620025ba67eb691ee8670228b060c01b620023df565b620025d0673992eecbf7059d7a60c01b620023df565b6000620025dc620033a4565b9050620025f467c38dab0c9cbfffc060c01b620023df565b6200260a67ff6eebe0f8a2088860c01b620023df565b6000806000620026a98e858f8f8f8f8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505062003cb3565b925092509250620026c5670d40206c41a9e9f160c01b620023df565b620026db6732a3f4b543a6d49960c01b620023df565b620026ea82858f848d620048e4565b6200270067b7953e396f06f2f860c01b620023df565b620027166730471e94ce6c1fb260c01b620023df565b7f8b67efde501ee9cd0e771f7436554c44a5c076239ff3a6fbb397646a4689c0f283828b6040516200274b9392919062006d45565b60405180910390a15050505050505050505050505050565b60006200277b67446e049345b6dc0360c01b620023df565b6200279167958de0fc09af695660c01b620023df565b620027a76792ae15897a87ccb760c01b620023df565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6200284567bcbd9780179cfb1660c01b620023df565b6200285b67318240a4eb8b00cb60c01b620023df565b6200287167fc5cdd89fca1b27160c01b620023df565b60006200287d620033a4565b90506200289567a03d83d93ca8d80260c01b620023df565b620028ab6743d46cb5e50ef82b60c01b620023df565b60008060006200294a8d858e8e8e8e8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505062003cb3565b92509250925062002966677ba957dbb80f30dd60c01b620023df565b6200297c67eb8cdd947a89fa6a60c01b620023df565b6200298a82858e84620037e8565b620029a0672efb5286ef6b799760c01b620023df565b620029b6679d0f67b91b85269360c01b620023df565b7f6675346cd43846f7d47c310d39fb5c15bc7db66b3770338cdf1f133613a5ae988382604051620029e992919062006d18565b60405180910390a150505050505050505050505050565b62002a16675d6a36075962234660c01b620023df565b62002a2c67d2ba19feb39e0b7f60c01b62000baa565b62002a42670c5ad53cdb9edd1560c01b62000baa565b62002a5867b6b588d2ebb9ae6960c01b62000baa565b62002a6e67c4ec9a90a885875260c01b62000baa565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161462002b01576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162002af89062006e71565b60405180910390fd5b62002b1767c3785ba1534db95460c01b62000baa565b62002b2d67e4202927591248ef60c01b62000baa565b6000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062002b8567531cfa2817fbdc8660c01b62000baa565b62002b9b67de26df4d387f673160c01b620023df565b62002bb1674ebd43ec99830d3060c01b620023df565b62002bc767bb152469ff2c92e660c01b620023df565b85600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062002c1e67d35d915692b00daa60c01b620023df565b84600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062002c7567a817395cf9ca065c60c01b620023df565b62002c8b678615344e6972361e60c01b620023df565b600084141562002cd15762002cab67629416985776820d60c01b620023df565b62002cc1678885a164a9f3ec4260c01b620023df565b6224ea0060068190555062002d05565b62002ce76716f8786f8b5ecdbf60c01b620023df565b62002cfd67be06e23d7dfb9f2a60c01b620023df565b836006819055505b62002d1b675fb68d901bcd3a4a60c01b620023df565b62002d31679a8ebcf09fa7f9b860c01b620023df565b62002d7d838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505062004b01565b62002d936721ac7ab39c91777260c01b620023df565b62002da9670a38c83eb402380960c01b620023df565b62002db48162004c80565b62002dca6701520f419008b58e60c01b62000baa565b62002de06775364c04848b013b60c01b62000baa565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e63260405162002e11919062006a41565b60405180910390a1505050505050565b50565b600062002e3c670600b8dacbc0f5b060c01b620023df565b62002e5267a51a8e2c949b38d860c01b620023df565b62002e68670995b3651a997c6e60c01b620023df565b8484848460405160200162002e8194939291906200683d565b604051602081830303815290604052805190602001209050949350505050565b600062002eb967ab0839cc447a85be60c01b620023df565b62002ecf6757963282530d51cf60c01b620023df565b62002ee567943633a1f102620860c01b620023df565b62002f367f3b3087c8f883f1f44cabe66444f5f9d96f69de6a88f364ea10959eef0331414a85858560405160200162002f21939291906200690f565b60405160208183030381529060405262004cf0565b90509392505050565b600062002f5767a6241f48aba60f2360c01b620023df565b62002f6d6760801bc25d3681f060c01b620023df565b62002f8367032311da4b2958a160c01b620023df565b60008260405160200162002f98919062006820565b60405160208183030381529060405280519060200120905062002fc667d57236925b01eaef60c01b620023df565b62002fdc678d10ddc344cfc56660c01b620023df565b60606040518060200162002ff09062005727565b6020820181038252601f19601f8201166040525090506200301c6783bd86ecf08f2dd360c01b620023df565b62003032675bccd458cea2ca7e60c01b620023df565b600060ff60f81b3084848051906020012060405160200162003058949392919062006952565b6040516020818303038152906040528051906020012090506200308667d2153fdf44ab7c8a60c01b620023df565b6200309c679430141534c0f6f160c01b620023df565b8060001c9350505050919050565b620030c06733e6264130761ab860c01b620023df565b620030d667211cfd602532dd7360c01b620023df565b620030ec673b14d30a708bc54460c01b620023df565b600073ffffffffffffffffffffffffffffffffffffffff16600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156200338a576200319a67f83ecc64c556d1f760c01b620023df565b620031b067f6e1d3201424c63f60c01b620023df565b620031c6676267bb6430c32dbe60c01b620023df565b600081604051602001620031db919062006820565b6040516020818303038152906040528051906020012090506200320967538e7ffac01a39d760c01b620023df565b80604051620032189062005727565b8190604051809103906000f590508015801562003239573d6000803e3d6000fd5b50600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620032d0679d112f9daf47871e60c01b620023df565b620032e667986a0454bcd99e2560c01b620023df565b7fd80572c0f2f24f2d9d726d831bd860ed82b12bafaf01cfb6e4d38fb23c4347e9600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040516200337b92919062006a8b565b60405180910390a150620033a1565b620033a067d3ab13cff696adf660c01b620023df565b5b50565b6000620033bc677ac614d5268cc8ac60c01b62002e21565b620033d2670a6b7ac33c94c4ed60c01b62002e21565b620033e867e7ef433820a2765360c01b62002e21565b620033f4602862004d77565b905090565b60006200341167e0716c1000d7d1da60c01b62004f2f565b62003427674e44df08c8f0b5bb60c01b62004f2f565b6200343d679b7e32e8ae0c005160c01b62004f2f565b62003463838360405180606001604052806021815260200162007d386021913962004f32565b905092915050565b60006200348367fbe9af14abc78ca860c01b620023e2565b6200349967bd3616cf00f8ad2b60c01b620023e2565b620034af670aad941719c9b69b60c01b620023e2565b6000620034c683856200502490919063ffffffff16565b9050620034de6706f556c4601e7cd060c01b620023e2565b620034f467344e7bee2db8345860c01b620023e2565b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b6200355f67b137a792eeffc94960c01b620023df565b62003575676cebd0716e109ec060c01b620023df565b6200358b67227b6ac9d83cb95360c01b620023df565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111562003796576200362a678791f8da1a3e1edf60c01b620023df565b6200364067a20c246c9c5e907f60c01b620023df565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620036db67f884f17fe3454b4f60c01b620023df565b620036f167c3d63cf5fa919f0460c01b620023df565b7fa19281a6f3163da06f6b82f3ecf0130493c52aba23cdc2a312f652742f0d1801600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383604051620037889392919062006ab8565b60405180910390a1620037e4565b620037ac6764fe4e265a60b8b260c01b620023df565b620037c267e8c510292ed038a160c01b620023df565b620037d86798a079e54e32501e60c01b620023df565b620037e382620030aa565b5b5050565b620037fe67425ae998c798c82e60c01b620023df565b6200381467e66cf7af275cf8b160c01b620023df565b6200382a67d8bd53129853df4f60c01b620023df565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562003990576200387667111891f7aa278fd260c01b620023df565b6200388c67241016650f63728860c01b620023df565b620038a2672a09400165e7657260c01b620023df565b8373ffffffffffffffffffffffffffffffffffffffff16633f579f428483600067ffffffffffffffff81118015620038d957600080fd5b506040519080825280601f01601f1916602001820160405280156200390d5781602001600182028036833780820191505090505b506040518463ffffffff1660e01b81526004016200392e9392919062006c2d565b600060405180830381600087803b1580156200394957600080fd5b505af11580156200395e573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019062003989919062005e0b565b5062003c06565b620039a6677b4ef9f87d72b7a960c01b620023df565b620039bc67a88798cd3aa7d74a60c01b620023df565b620039d267d91d0c8e6448665a60c01b620023df565b60608473ffffffffffffffffffffffffffffffffffffffff16633f579f4284600063a9059cbb60e01b888760405160240162003a1092919062006c00565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518463ffffffff1660e01b815260040162003a8d9392919062006bbc565b600060405180830381600087803b15801562003aa857600080fd5b505af115801562003abd573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019062003ae8919062005e0b565b905062003b0067048c8450ee4bf7b760c01b620023df565b62003b1667201720d43ce7357560c01b620023df565b60008151111562003bed5762003b376720ffb51a4023618960c01b620023df565b62003b4d674c5a559407f7467360c01b620023df565b62003b6367d18f03c9226f332260c01b620023df565b62003b79675a5ec2d22eeefafd60c01b620023df565b8080602001905181019062003b8f919062005d29565b62003bd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162003bc89062006f1b565b60405180910390fd5b62003be76742a84bad8afeeb5c60c01b620023df565b62003c04565b62003c03670fe67714ff92436960c01b620023df565b5b505b50505050565b600062003c246751a80809ea045ef460c01b620023df565b62003c3a671ae84f9badc6251360c01b620023df565b62003c5067e4da76a2a2a1edc760c01b620023df565b62003ca77f745089e29f2abf28f618236a5dc04d214ac05ead3440ba532b69e9d160ba2e7288888888888860405160200162003c929695949392919062006893565b60405160208183030381529060405262004cf0565b90509695505050505050565b600080600062003cce6713f01d9025565f3960c01b620023df565b62003ce467ae5fd9cd87222a2b60c01b620023df565b62003cfa67152227d79de099c160c01b620023df565b600062003d0c8c8c8c8c8c8c62003c0c565b905062003d2467904fdcf2e56cec1360c01b620023df565b62003d3a674cb6148653b6f05c60c01b620023df565b60008651141562003eb05762003d5b6788da320677cf5e7d60c01b620023df565b62003d7167031a875bca0aaab360c01b620023df565b62003d87673a5cc07e4b44a6d560c01b620023df565b62003d9d67016d2c61f6dd6c2d60c01b620023df565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166359b52ef88d838b6040518463ffffffff1660e01b815260040162003dfe9392919062006b7f565b60206040518083038186803b15801562003e1757600080fd5b505afa15801562003e2c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003e52919062005d29565b62003e94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162003e8b9062007091565b60405180910390fd5b62003eaa67e8aefadc281bef2d60c01b620023df565b620041ea565b62003ec667d1ebedc8c05d2dc060c01b620023df565b62003edc67608da72d0095b9d160c01b620023df565b62003ef267cb30b3cc980493e660c01b620023df565b600062003f0987836200502490919063ffffffff16565b905062003f2167b9f9dace39395bba60c01b620023df565b62003f376719d2e2b0100cef0c60c01b620023df565b8073ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff1614620041d15762003f8167cf4babd7c1f5517660c01b620023df565b62003f9767e7be9dc6df87f59460c01b620023df565b62003fad6754ffef844048aeac60c01b620023df565b62003fc3678bad387c237a9c8260c01b620023df565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166334d323a48e838c6040518463ffffffff1660e01b8152600401620040249392919062006b42565b60206040518083038186803b1580156200403d57600080fd5b505afa15801562004052573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004078919062005d29565b80156200409757506200409667e43e558222a48e9060c01b62000a44565b5b80620041735750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166334d323a48e838c6040518463ffffffff1660e01b8152600401620040ff9392919062006b42565b60206040518083038186803b1580156200411857600080fd5b505afa1580156200412d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004153919062005d29565b8015620041725750620041716774a6a859f68a407460c01b62000a44565b5b5b620041b5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620041ac9062006fc5565b60405180910390fd5b620041cb670428b6277130e17d60c01b620023df565b620041e8565b620041e767b01b02d7a8b0a1ed60c01b620023df565b5b505b620042006793fbbda3cd7202e460c01b620023df565b6200421667344b7c04098b91b760c01b620023df565b6200422c675b66ad7740fae35760c01b620023df565b6200423881866200346b565b6200427a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620042719062007091565b60405180910390fd5b62004290675aadace45521e33360c01b620023df565b620042a6677f35810285c6353c60c01b620023df565b620042b48c8c8c8c62002e24565b9350620042cc671f486a3a2a1f3c0860c01b620023df565b620042f7600860008681526020019081526020016000206000015488620033f990919063ffffffff16565b91506200430f67075543c764304fab60c01b620023df565b6200432567ce6ce88fc4a1598e60c01b620023df565b6200433b677d0e86c7ce33d4f660c01b620023df565b600082141562004382576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620043799062006eb5565b60405180910390fd5b620043986750c2bd53c8b3f1e260c01b620023df565b620043ae6728b9cf703bd950f660c01b620023df565b866008600086815260200190815260200160002060000181905550620043df672f82c89e17c153f160c01b620023df565b620043f5678e33b0f493a5625360c01b620023df565b620044018c8b62003549565b6200441767573964feb8c10ce960c01b620023df565b600760008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16925062004492675ae960e149ffdaca60c01b620023df565b620044a867b30c6d7c0b6f6ab860c01b620023df565b7f0d1cb77d1fe491f98926195d0b885509da18bc305dd1489f45610237d971ed46848d8d8d8d8c604051620044e39695949392919062006cab565b60405180910390a16200450167dafdb72d466fc30f60c01b620023df565b6200451767de0355caa72dcb9160c01b620023df565b50985098509895505050505050565b6200453c6703611a9e4063d8ea60c01b620023e2565b6200455267ee1baacaa033494260c01b620023e2565b620045686751e5840de998a97760c01b620023e2565b6200457e676f82de74e2e2e03560c01b620023e2565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620045f1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620045e89062006e4f565b60405180910390fd5b620046076717cb80dba7a8a0ea60c01b620023e2565b6200461d67e2f8fabe2a63d8b660c01b620023e2565b62004633677550a657f22d30dc60c01b620023e2565b62004649673c81d7073dbe6f3060c01b620023e2565b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615620046d8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620046cf906200702b565b60405180910390fd5b620046ee67bc5a1f0994a7f54e60c01b620023e2565b62004704679a7f014629c7374960c01b620023e2565b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200477167d71c83e9f3188e9d60c01b620023e2565b6200478767e4bfbd26cb5c77e660c01b620023e2565b7fbc3292102fa77e083913064b282926717cdfaede4d35f553d66366c0a3da755a3282604051620047ba92919062006a5e565b60405180910390a150565b6000620047dd672797d9bbee8e685760c01b62004f2f565b620047f367e25930aa3032662f60c01b62004f2f565b62004809673b804ace3fd44ea060c01b62004f2f565b600082840190506200482667e0d809daafe36a0460c01b62004f2f565b6200483c67d0d7b021c1a6823260c01b62004f2f565b620048526741f1099b5fa09b9360c01b62004f2f565b8381101562004898576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200488f9062007009565b60405180910390fd5b620048ae6728a352a27e50889560c01b62004f2f565b620048c467f55e5f024a80111c60c01b62004f2f565b620048da67d865abdcb752192460c01b62004f2f565b8091505092915050565b620048fa6795769c0422dd2f3760c01b620023df565b6200491067dd92d87d27b8031560c01b620023df565b6200492667fc7095cb44e42da760c01b620023df565b6200493c674d2f9244eb82daf860c01b620023df565b6000811162004982576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620049799062006e2d565b60405180910390fd5b6200499867cea04fa968fc503360c01b620023df565b620049ae6713ae60570dc4ced160c01b620023df565b620049c46752a28bf08a5df63560c01b620023df565b6000620049db8284620033f990919063ffffffff16565b9050620049f36763423272cdb2553660c01b620023df565b62004a096716f88c019291390f60c01b620023df565b62004a1f67be2b24391508025160c01b620023df565b6000811162004a65576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162004a5c9062006fa3565b60405180910390fd5b62004a7b6742c11e45abeb8eec60c01b620023df565b62004a9167f316021b46c8f80a60c01b620023df565b62004aa767d8f0bc071782644460c01b620023df565b62004ab586868684620037e8565b62004acb671a738fed97e4b59060c01b620023df565b62004ae1672c9b480f5094a0f660c01b620023df565b62004af98662004af18762002f3f565b8685620037e8565b505050505050565b62004b1767f4de5e8e73d6ad8760c01b620023e2565b62004b2d67db1ce0981035d84760c01b620023e2565b62004b4367e97a0a25809a3f0960c01b620023e2565b60008151141562004ba15762004b6467de11b839232da49160c01b620023e2565b62004b7a67b59bd2ea0c1c89a260c01b620023e2565b62004b9067652fe2786000e62060c01b620023e2565b62004b9b3262004526565b62004c7d565b62004bb767ad5f6f13dddc2ad960c01b620023e2565b62004bcd672af46088979bcb2160c01b620023e2565b62004be36796cb81cf0bf6606d60c01b620023e2565b60008151905062004bff672f4c11881b8dca8c60c01b620023e2565b62004c1567cec4e8db5057edad60c01b620023e2565b60005b8181101562004c7a5762004c37671a5cc94c8b734dd960c01b620023e2565b62004c4d67e437d14e98e20b2f60c01b620023e2565b62004c6c83828151811062004c5e57fe5b602002602001015162004526565b808060010191505062004c18565b50505b50565b62004c96670beab42e12728d3b60c01b62002e21565b62004cac675ecbac840a5512ec60c01b62002e21565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600062004d086771b334e2e3162d2e60c01b620023e5565b62004d1e6729046581cf97a49460c01b620023e5565b62004d34674f9e67c6b1f334b360c01b620023e5565b62004d6f60025430858560405160200162004d539493929190620069d2565b6040516020818303038152906040528051906020012062005370565b905092915050565b600062004d8f6787c8246a4b35d1f160c01b62002e21565b62004da567976a1e8d41064d2460c01b62002e21565b62004dbb671867d8bf077bb31160c01b62002e21565b600062004dd367bdfeda5454a1273960c01b62002e21565b62004de9677709e048711a13c960c01b62002e21565b62004df3620053e4565b1562004eca5762004e0f67d3c6f6b0bcac9b6e60c01b62002e21565b62004e25673b2573735f5d680260c01b62002e21565b62004e3b675089eb0622c78a2260c01b62002e21565b600083600036905003905062004e5c674bc94a8e9a6ee57960c01b62002e21565b62004ec16000368390601485019262004e789392919062007179565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050620055d0565b91505062004efa565b62004ee0677e45e81af2ec2edc60c01b62002e21565b62004ef667391e31dbfdfb407e60c01b62002e21565b3390505b62004f1067c4042e2c7c2c999760c01b62002e21565b62004f2667fc44c5cccf2cd16760c01b62002e21565b80915050919050565b50565b600062004f4a677d731b0c9f0e103a60c01b62004f2f565b62004f60672e44734f88495e8b60c01b62004f2f565b62004f76670d025d40fd1bee3e60c01b62004f2f565b62004f8c67025828287ef1fd1b60c01b62004f2f565b83831115829062004fd5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162004fcc919062006e09565b60405180910390fd5b5062004fec67e9c31dd44a0bf91260c01b62004f2f565b62005002675031ed2b8fb2561960c01b62004f2f565b6200501867301f4385f3c6735c60c01b62004f2f565b82840390509392505050565b60006200503c670d75db982ec4597160c01b62005716565b620050526725c2c60ab754182560c01b62005716565b62005068673eb64a254569ed0660c01b62005716565b60006200508067fb2a2286066e15e460c01b62005716565b6200509667a440db11ec9e986d60c01b62005716565b6041835114156200532357620050b76704a5aada48e2763260c01b62005716565b620050cd674b98cf1796e5c26660c01b62005716565b620050e367d2dfec7b159385fc60c01b62005716565b6000620050fb6772c2a840621b4aa760c01b62005716565b6200511167bfd411e6ba4d07c460c01b62005716565b60006200512967145d23f82764ba9960c01b62005716565b6200513f67acdff958a9c6c5dd60c01b62005716565b600062005157673b79e3a80932a6a160c01b62005716565b6020860151925060408601519150606086015160001a905062005185679b0cdee01a57ea2f60c01b62005716565b6200519b675dbf88583373227960c01b62005716565b601b8160ff161015620051e057620051be670dc9a1836eb51c3260c01b62005716565b620051d4677097d8456a6c3e1560c01b62005716565b601b81019050620051f7565b620051f66708b39c61216869e760c01b62005716565b5b6200520d672ea4d6db7d2138c560c01b62005716565b62005223679ad3f461195a5eee60c01b62005716565b601b8160ff161480156200524957506200524867a24e972b59dc7d0560c01b62005719565b5b80620052775750601c8160ff161480156200527657506200527567934bee4849491d9560c01b62005719565b5b5b15620053035762005293676d6a491fc6e072fa60c01b62005716565b620052a967aecd1690d1de9f1c60c01b62005716565b60018782858560405160008152602001604052604051620052ce949392919062006d82565b6020604051602081039080840390855afa158015620052f1573d6000803e3d6000fd5b5050506020604051035193506200531a565b6200531967513fbc3b3a0ad1c060c01b62005716565b5b5050506200533a565b620053396723d6d78de386c96660c01b62005716565b5b620053506707d0c4f11e72cfc960c01b62005716565b6200536667b9689b22f403636c60c01b62005716565b8091505092915050565b60006200538867f3d1beb9fba5b7be60c01b62005716565b6200539e676cd81a1865d6353260c01b62005716565b620053b4676810828c21da671e60c01b62005716565b81604051602001620053c79190620069a8565b604051602081830303815290604052805190602001209050919050565b6000620053fc6714ec9ba31585b6f760c01b62002e21565b620054126764d00f8ee4cbc0f460c01b62002e21565b620054286728aef4b71ffef7e260c01b62002e21565b600062005440677b6cf6392b8d09d960c01b62002e21565b6200545667da655f124163f4bc60c01b62002e21565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156200558657620054c3678c4556fd14dc507160c01b62002e21565b620054d9674811af4455ee520960c01b62002e21565b620054ef67ae36e4b52033411860c01b62002e21565b6200550567ffe63a27679b309260c01b62002e21565b602c6000369050101562005550576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620055479062006ed7565b60405180910390fd5b6200556667d1762b0b1ca636f360c01b62002e21565b6200557c6769c465f7e405b9f660c01b62002e21565b600190506200559d565b6200559c6710f40798097af22060c01b62002e21565b5b620055b3671855328cbdf7411660c01b62002e21565b620055c9670e4f1457e534f9ac60c01b62002e21565b8091505090565b6000620055e8670df8d76b8cabf76a60c01b62005724565b620055fe67e180fcce9e2bf4c560c01b62005724565b62005614670dcb70abe8e8bb0b60c01b62005724565b60006200562c67c9f13cc22eb780e060c01b62005724565b6200564267c60f8d891ff21de960c01b62005724565b620056586782bb9e679e55c73460c01b62005724565b60148351146200569f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162005696906200706f565b60405180910390fd5b620056b5679ea304b1b6348ade60c01b62005724565b620056cb67a0049b4768bf518260c01b62005724565b6c010000000000000000000000006020840151049050620056f7671f4dc55703cfba1860c01b62005724565b6200570d67afb63a07e82275e260c01b62005724565b80915050919050565b50565b600060019050919050565b50565b6108b8806200748083390190565b6000813590506200574681620073c9565b92915050565b60008083601f8401126200575f57600080fd5b8235905067ffffffffffffffff8111156200577957600080fd5b6020830191508360208202830111156200579257600080fd5b9250929050565b600081519050620057aa81620073e3565b92915050565b600081359050620057c181620073fd565b92915050565b600081359050620057d88162007417565b92915050565b60008083601f840112620057f157600080fd5b8235905067ffffffffffffffff8111156200580b57600080fd5b6020830191508360018202830111156200582457600080fd5b9250929050565b600082601f8301126200583d57600080fd5b8151620058546200584e82620070fe565b620070d0565b915080825260208301602083018583830111156200587157600080fd5b6200587e8382846200732f565b50505092915050565b600081359050620058988162007431565b92915050565b600081359050620058af816200744b565b92915050565b600060608284031215620058c857600080fd5b620058d46060620070d0565b90506000620058e68482850162005735565b6000830152506020620058fc8482850162005735565b60208301525060406200591284828501620059c9565b60408301525092915050565b600060c082840312156200593157600080fd5b6200593d60c0620070d0565b905060006200594f8482850162005735565b6000830152506020620059658482850162005735565b60208301525060406200597b8482850162005735565b60408301525060606200599184828501620057b0565b6060830152506080620059a784828501620059c9565b60808301525060a0620059bd84828501620059c9565b60a08301525092915050565b600081359050620059da8162007465565b92915050565b600081519050620059f18162007465565b92915050565b60006020828403121562005a0a57600080fd5b600062005a1a8482850162005735565b91505092915050565b6000806040838503121562005a3757600080fd5b600062005a478582860162005735565b925050602062005a5a8582860162005735565b9150509250929050565b6000806000806080858703121562005a7b57600080fd5b600062005a8b8782880162005735565b945050602062005a9e8782880162005735565b935050604062005ab18782880162005735565b925050606062005ac487828801620057b0565b91505092959194509250565b600080600080600080600080600060e08a8c03121562005aef57600080fd5b600062005aff8c828d0162005735565b995050602062005b128c828d0162005735565b985050604062005b258c828d01620057b0565b975050606062005b388c828d01620059c9565b965050608062005b4b8c828d01620059c9565b95505060a08a013567ffffffffffffffff81111562005b6957600080fd5b62005b778c828d01620057de565b945094505060c08a013567ffffffffffffffff81111562005b9757600080fd5b62005ba58c828d01620057de565b92509250509295985092959850929598565b6000806000806000806000806000806101008b8d03121562005bd857600080fd5b600062005be88d828e0162005735565b9a5050602062005bfb8d828e0162005735565b995050604062005c0e8d828e01620057b0565b985050606062005c218d828e01620059c9565b975050608062005c348d828e01620059c9565b96505060a062005c478d828e01620059c9565b95505060c08b013567ffffffffffffffff81111562005c6557600080fd5b62005c738d828e01620057de565b945094505060e08b013567ffffffffffffffff81111562005c9357600080fd5b62005ca18d828e01620057de565b92509250509295989b9194979a5092959850565b6000806000806060858703121562005ccc57600080fd5b600062005cdc8782880162005735565b945050602062005cef87828801620059c9565b935050604085013567ffffffffffffffff81111562005d0d57600080fd5b62005d1b87828801620057de565b925092505092959194509250565b60006020828403121562005d3c57600080fd5b600062005d4c8482850162005799565b91505092915050565b60006020828403121562005d6857600080fd5b600062005d7884828501620057b0565b91505092915050565b60008060006040848603121562005d9757600080fd5b600062005da786828701620057b0565b935050602084013567ffffffffffffffff81111562005dc557600080fd5b62005dd386828701620057de565b92509250509250925092565b60006020828403121562005df257600080fd5b600062005e0284828501620057c7565b91505092915050565b60006020828403121562005e1e57600080fd5b600082015167ffffffffffffffff81111562005e3957600080fd5b62005e47848285016200582b565b91505092915050565b60008060008060008060a0878903121562005e6a57600080fd5b600062005e7a89828a0162005887565b965050602062005e8d89828a016200589e565b955050604062005ea089828a01620059c9565b945050606087013567ffffffffffffffff81111562005ebe57600080fd5b62005ecc89828a016200574c565b9350935050608062005ee189828a0162005735565b9150509295509295509295565b60006060828403121562005f0157600080fd5b600062005f1184828501620058b5565b91505092915050565b600060c0828403121562005f2d57600080fd5b600062005f3d848285016200591e565b91505092915050565b60006020828403121562005f5957600080fd5b600062005f6984828501620059e0565b91505092915050565b62005f7d816200728f565b82525050565b62005f8e81620071ae565b82525050565b62005fa962005fa382620071ae565b62007365565b82525050565b62005fba81620071c2565b82525050565b62005fd562005fcf82620071ce565b62007379565b82525050565b62005fe681620071fa565b82525050565b6200600162005ffb82620071fa565b62007383565b82525050565b600062006014826200712b565b62006020818562007141565b9350620060328185602086016200732f565b6200603d81620073ab565b840191505092915050565b600062006055826200712b565b62006061818562007152565b9350620060738185602086016200732f565b80840191505092915050565b6200608a81620072a3565b82525050565b6200609b81620072cb565b82525050565b620060ac81620072f3565b82525050565b6000620060bf8262007136565b620060cb81856200715d565b9350620060dd8185602086016200732f565b620060e881620073ab565b840191505092915050565b6000620061026026836200715d565b91507f5061796d656e7452656769737472793a20696e76616c6964206465706f73697460008301527f2076616c756500000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006200616a601c836200716e565b91507f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000830152601c82019050919050565b6000620061ac6020836200715d565b91507f477561726465643a2063616e6e6f74206164642030783020677561726469616e6000830152602082019050919050565b6000620061ee602f836200715d565b91507f496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742060008301527f74686520696e697469616c697a657200000000000000000000000000000000006020830152604082019050919050565b600062006256602f836200715d565b91507f5061796d656e7452656769737472793a206465706f736974206578697420616c60008301527f72656164792072657175657374656400000000000000000000000000000000006020830152604082019050919050565b6000620062be6026836200715d565b91507f5061796d656e7452656769737472793a20696e76616c6964207061796d656e7460008301527f2076616c756500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000620063266022836200715d565b91507f47617465776179526563697069656e743a20696e76616c6964206d73672e646160008301527f74610000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006200638e602b836200715d565b91507f5061796d656e7452656769737472793a206465706f7369742065786974206e6f60008301527f74207265717565737465640000000000000000000000000000000000000000006020830152604082019050919050565b6000620063f6602d836200715d565b91507f5061796d656e7452656769737472793a204552433230546f6b656e207472616e60008301527f73666572207265766572746564000000000000000000000000000000000000006020830152604082019050919050565b60006200645e6026836200715d565b91507f477561726465643a2074782e6f726967696e206973206e6f742074686520677560008301527f61726469616e00000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000620064c6601f836200715d565b91507f5061796d656e7452656769737472793a20696e76616c696420616d6f756e74006000830152602082019050919050565b6000620065086024836200715d565b91507f5061796d656e7452656769737472793a206465706f7369742065786974206c6f60008301527f636b6564000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000620065706027836200715d565b91507f5061796d656e7452656769737472793a20696e76616c6964207769746864726160008301527f772076616c7565000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000620065d86029836200715d565b91507f5061796d656e7452656769737472793a20696e76616c69642073656e6465722060008301527f7369676e617475726500000000000000000000000000000000000000000000006020830152604082019050919050565b600062006640601f836200715d565b91507f477561726465643a20677561726469616e20646f65736e2774206578697374006000830152602082019050919050565b600062006682601e836200715d565b91507f536166654d6174684c69623a206164646974696f6e206f766572666c6f7700006000830152602082019050919050565b6000620066c46020836200715d565b91507f477561726465643a20677561726469616e20616c7265616479206578697374736000830152602082019050919050565b600062006706601b836200715d565b91507f477561726465643a2063616e6e6f742072656d6f76652073656c6600000000006000830152602082019050919050565b600062006748601d836200715d565b91507f42797465734c69623a20696e76616c69642064617461206c656e6774680000006000830152602082019050919050565b60006200678a602b836200715d565b91507f5061796d656e7452656769737472793a20696e76616c6964206775617264696160008301527f6e207369676e61747572650000000000000000000000000000000000000000006020830152604082019050919050565b620067ee8162007278565b82525050565b62006809620068038262007278565b620073a1565b82525050565b6200681a8162007282565b82525050565b60006200682e828462005f94565b60148201915081905092915050565b60006200684b828762005f94565b6014820191506200685d828662005f94565b6014820191506200686f828562005f94565b60148201915062006881828462005fec565b60208201915081905095945050505050565b6000620068a1828962005f94565b601482019150620068b3828862005f94565b601482019150620068c5828762005f94565b601482019150620068d7828662005fec565b602082019150620068e98285620067f4565b602082019150620068fb8284620067f4565b602082019150819050979650505050505050565b60006200691d828662005f94565b6014820191506200692f828562005f94565b601482019150620069418284620067f4565b602082019150819050949350505050565b600062006960828762005fc0565b60018201915062006972828662005f94565b60148201915062006984828562005fec565b60208201915062006996828462005fec565b60208201915081905095945050505050565b6000620069b5826200615b565b9150620069c3828462005fec565b60208201915081905092915050565b6000620069e08287620067f4565b602082019150620069f2828662005f94565b60148201915062006a04828562005fec565b60208201915062006a16828462006048565b915081905095945050505050565b600060208201905062006a3b600083018462005f83565b92915050565b600060208201905062006a58600083018462005f72565b92915050565b600060408201905062006a75600083018562005f72565b62006a84602083018462005f83565b9392505050565b600060408201905062006aa2600083018562005f83565b62006ab1602083018462005f83565b9392505050565b600060608201905062006acf600083018662005f83565b62006ade602083018562005f83565b62006aed604083018462005f83565b949350505050565b600060808201905062006b0c600083018762005f83565b62006b1b602083018662005f83565b62006b2a604083018562005f83565b62006b396060830184620067e3565b95945050505050565b600060608201905062006b59600083018662005f83565b62006b68602083018562005f83565b62006b776040830184620067e3565b949350505050565b600060608201905062006b96600083018662005f83565b62006ba5602083018562005fdb565b62006bb46040830184620067e3565b949350505050565b600060608201905062006bd3600083018662005f83565b62006be26020830185620060a1565b818103604083015262006bf6818462006007565b9050949350505050565b600060408201905062006c17600083018562005f83565b62006c266020830184620067e3565b9392505050565b600060608201905062006c44600083018662005f83565b62006c536020830185620067e3565b818103604083015262006c67818462006007565b9050949350505050565b600060208201905062006c88600083018462005faf565b92915050565b600060208201905062006ca5600083018462005fdb565b92915050565b600060c08201905062006cc2600083018962005fdb565b62006cd1602083018862005f83565b62006ce0604083018762005f83565b62006cef606083018662005f83565b62006cfe608083018562005fdb565b62006d0d60a0830184620067e3565b979650505050505050565b600060408201905062006d2f600083018562005fdb565b62006d3e6020830184620067e3565b9392505050565b600060608201905062006d5c600083018662005fdb565b62006d6b6020830185620067e3565b62006d7a6040830184620067e3565b949350505050565b600060808201905062006d99600083018762005fdb565b62006da860208301866200680f565b62006db7604083018562005fdb565b62006dc6606083018462005fdb565b95945050505050565b600060208201905062006de660008301846200607f565b92915050565b600060208201905062006e03600083018462006090565b92915050565b6000602082019050818103600083015262006e258184620060b2565b905092915050565b6000602082019050818103600083015262006e4881620060f3565b9050919050565b6000602082019050818103600083015262006e6a816200619d565b9050919050565b6000602082019050818103600083015262006e8c81620061df565b9050919050565b6000602082019050818103600083015262006eae8162006247565b9050919050565b6000602082019050818103600083015262006ed081620062af565b9050919050565b6000602082019050818103600083015262006ef28162006317565b9050919050565b6000602082019050818103600083015262006f14816200637f565b9050919050565b6000602082019050818103600083015262006f3681620063e7565b9050919050565b6000602082019050818103600083015262006f58816200644f565b9050919050565b6000602082019050818103600083015262006f7a81620064b7565b9050919050565b6000602082019050818103600083015262006f9c81620064f9565b9050919050565b6000602082019050818103600083015262006fbe8162006561565b9050919050565b6000602082019050818103600083015262006fe081620065c9565b9050919050565b60006020820190508181036000830152620070028162006631565b9050919050565b60006020820190508181036000830152620070248162006673565b9050919050565b600060208201905081810360008301526200704681620066b5565b9050919050565b600060208201905081810360008301526200706881620066f7565b9050919050565b600060208201905081810360008301526200708a8162006739565b9050919050565b60006020820190508181036000830152620070ac816200677b565b9050919050565b6000602082019050620070ca6000830184620067e3565b92915050565b6000604051905081810181811067ffffffffffffffff82111715620070f457600080fd5b8060405250919050565b600067ffffffffffffffff8211156200711657600080fd5b601f19601f8301169050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b600080858511156200718a57600080fd5b838611156200719857600080fd5b6001850283019150848603905094509492505050565b6000620071bb8262007258565b9050919050565b60008115159050919050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b60006200723d82620071ae565b9050919050565b60006200725182620071ae565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006200729c8262007307565b9050919050565b6000620072b082620072b7565b9050919050565b6000620072c48262007258565b9050919050565b6000620072d882620072df565b9050919050565b6000620072ec8262007258565b9050919050565b6000620073008262007278565b9050919050565b600062007314826200731b565b9050919050565b6000620073288262007258565b9050919050565b60005b838110156200734f57808201518184015260208101905062007332565b838111156200735f576000848401525b50505050565b600062007372826200738d565b9050919050565b6000819050919050565b6000819050919050565b60006200739a82620073bc565b9050919050565b6000819050919050565b6000601f19601f8301169050919050565b60008160601b9050919050565b620073d481620071ae565b8114620073e057600080fd5b50565b620073ee81620071c2565b8114620073fa57600080fd5b50565b6200740881620071fa565b81146200741457600080fd5b50565b620074228162007204565b81146200742e57600080fd5b50565b6200743c8162007230565b81146200744857600080fd5b50565b620074568162007244565b81146200746257600080fd5b50565b620074708162007278565b81146200747c57600080fd5b5056fe608060405261001e674c05ed6aa1cd281960c01b61009760201b60201c565b610038675db0dfd7018850c360c01b61009760201b60201c565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610092679098f39fea0730f660c01b61009a60201b60201c565b61009d565b50565b50565b61080c806100ac6000396000f3fe60806040526004361061007f5760003560e01c8063bd04d1391161004e578063bd04d139146102f8578063c478196d14610364578063d1c43eae146103ba578063f77c47911461041057610086565b806326bebb521461008b5780633f579f42146100f7578063550648ff1461022057806356c2fc6c1461028c57610086565b3661008657005b600080fd5b34801561009757600080fd5b506100df600480360360208110156100ae57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610451565b60405180821515815260200191505060405180910390f35b34801561010357600080fd5b506101a56004803603606081101561011a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561016157600080fd5b82018360208201111561017357600080fd5b8035906020019184600183028401116401000000008311171561019557600080fd5b9091929391929390505050610458565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e55780820151818401526020810190506101ca565b50505050905090810190601f1680156102125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022c57600080fd5b506102746004803603602081101561024357600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061078c565b60405180821515815260200191505060405180910390f35b34801561029857600080fd5b506102e0600480360360208110156102af57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610793565b60405180821515815260200191505060405180910390f35b34801561030457600080fd5b5061034c6004803603602081101561031b57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061079e565b60405180821515815260200191505060405180910390f35b34801561037057600080fd5b506103b86004803603602081101561038757600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107a9565b005b3480156103c657600080fd5b5061040e600480360360208110156103dd57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107ac565b005b34801561041c57600080fd5b506104256107af565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000919050565b606061046e6730a6ad52e198db9760c01b6107a9565b61048267f6266a592c249da560c01b6107ac565b6104966728279893f8537e1960c01b6107ac565b6104aa67d300d0a9ecbe6cac60c01b6107ac565b6104be678d5c0caa285e3ec560c01b6107ac565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610562576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806107d4602c913960400191505060405180910390fd5b6105766718b2e4dd03bc759a60c01b6107ac565b61058a67f8b65e28b897a44f60c01b6107ac565b61059e67a0e46df01f8c97cb60c01b6107a9565b6105b267aa5eebb2652f143c60c01b6107a9565b6105c6676d9ffa8149f3dea060c01b6107a9565b6105da678cb9bb07d4779f7e60c01b6107a9565b60606105f067f5ddfa157613111160c01b6107a9565b610604676c82c2c1207b3b7760c01b6107a9565b600061061a673ff4b340667b124160c01b6107a9565b8673ffffffffffffffffffffffffffffffffffffffff1686868660405180838380828437808301925050509250505060006040518083038185875af1925050503d8060008114610686576040519150601f19603f3d011682016040523d82523d6000602084013e61068b565b606091505b5080935081925050506106a86756fbd48014b71d8b60c01b6107a9565b6106bc67e31d8723036de13060c01b6107a9565b6106d067d6b834fbc1dbf84c60c01b6107a9565b80610743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4163636f756e743a207472616e73616374696f6e20726576657274656400000081525060200191505060405180910390fd5b61075767836ca2ae34585e2360c01b6107a9565b61076b67fc0747958022859a60c01b6107a9565b61077f67127f08829e3f368c60c01b6107a9565b8192505050949350505050565b6000919050565b600060019050919050565b600060019050919050565b50565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fe436f6e74726f6c6c65643a206d73672e73656e646572206973206e6f742074686520636f6e74726f6c6c6572a164736f6c634300060c000a536166654d6174684c69623a207375627472616374696f6e206f766572666c6f77a164736f6c634300060c000a", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/PersonalAccountImplementationV1.json b/artifacts/PersonalAccountImplementationV1.json index 9c4abb3d..47c975c2 100644 --- a/artifacts/PersonalAccountImplementationV1.json +++ b/artifacts/PersonalAccountImplementationV1.json @@ -21,6 +21,210 @@ "name": "Initialized", "type": "event" }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__098c0657", + "type": "bytes8" + } + ], + "name": "c_098c0657", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__28344ffb", + "type": "bytes8" + } + ], + "name": "c_28344ffb", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__2860b96a", + "type": "bytes8" + } + ], + "name": "c_2860b96a", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__4467154e", + "type": "bytes8" + } + ], + "name": "c_4467154e", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__098c0657", + "type": "bytes8" + } + ], + "name": "c_false098c0657", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__28344ffb", + "type": "bytes8" + } + ], + "name": "c_false28344ffb", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__2860b96a", + "type": "bytes8" + } + ], + "name": "c_false2860b96a", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__4467154e", + "type": "bytes8" + } + ], + "name": "c_false4467154e", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__098c0657", + "type": "bytes8" + } + ], + "name": "c_true098c0657", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__28344ffb", + "type": "bytes8" + } + ], + "name": "c_true28344ffb", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__2860b96a", + "type": "bytes8" + } + ], + "name": "c_true2860b96a", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__4467154e", + "type": "bytes8" + } + ], + "name": "c_true4467154e", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [ { @@ -244,8 +448,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50326000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610caa806100606000396000f3fe608060405234801561001057600080fd5b50600436106100925760003560e01c8063249cb3fa11610066578063249cb3fa1461047c578063392e53cd146104de5780637b103999146104fe578063c4d66de814610532578063f23a6e611461057657610092565b806223de2914610097578063150b7a02146101cf5780631626ba7e146102c557806320c13b0b1461037b575b600080fd5b6101cd600480360360c08110156100ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561013457600080fd5b82018360208201111561014657600080fd5b8035906020019184600183028401116401000000008311171561016857600080fd5b90919293919293908035906020019064010000000081111561018957600080fd5b82018360208201111561019b57600080fd5b803590602001918460018302840111640100000000831117156101bd57600080fd5b9091929391929390505050610676565b005b610290600480360360808110156101e557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561024c57600080fd5b82018360208201111561025e57600080fd5b8035906020019184600183028401116401000000008311171561028057600080fd5b9091929391929390505050610680565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b610346600480360360408110156102db57600080fd5b81019080803590602001909291908035906020019064010000000081111561030257600080fd5b82018360208201111561031457600080fd5b8035906020019184600183028401116401000000008311171561033657600080fd5b9091929391929390505050610695565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b6104476004803603604081101561039157600080fd5b81019080803590602001906401000000008111156103ae57600080fd5b8201836020820111156103c057600080fd5b803590602001918460018302840111640100000000831117156103e257600080fd5b90919293919293908035906020019064010000000081111561040357600080fd5b82018360208201111561041557600080fd5b8035906020019184600183028401116401000000008311171561043757600080fd5b90919293919293905050506107f9565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b6104c86004803603604081101561049257600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061098a565b6040518082815260200191505060405180910390f35b6104e6610a66565b60405180821515815260200191505060405180910390f35b610506610abc565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105746004803603602081101561054857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ae2565b005b610641600480360360a081101561058c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001906401000000008111156105fd57600080fd5b82018360208201111561060f57600080fd5b8035906020019184600183028401116401000000008311171561063157600080fd5b9091929391929390505050610c58565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b5050505050505050565b600063150b7a0260e01b905095945050505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1e382ce308686866040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509550505050505060206040518083038186803b15801561075c57600080fd5b505afa158015610770573d6000803e3d6000fd5b505050506040513d602081101561078657600080fd5b81019080805190602001909291905050506107a85763ffffffff60e01b6107f0565b60405160200180807f697356616c69645369676e617475726528627974657333322c62797465732900815250601f019050604051602081830303815290604052805190602001205b90509392505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663124e9eb330878787876040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff16815260200180602001806020018381038352878782818152602001925080828437600081840152601f19601f8201169050808301925050508381038252858582818152602001925080828437600081840152601f19601f82011690508083019250505097505050505050505060206040518083038186803b1580156108ec57600080fd5b505afa158015610900573d6000803e3d6000fd5b505050506040513d602081101561091657600080fd5b81019080805190602001909291905050506109385763ffffffff60e01b610980565b60405160200180807f697356616c69645369676e61747572652862797465732c627974657329000000815250601d019050604051602081830303815290604052805190602001205b9050949350505050565b60008060405160200180807f455243373737546f6b656e73526563697069656e74000000000000000000000081525060150190506040516020818303038152906040528051906020012084148015610a0d57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610a5c5760405160200180807f455243313832305f4143434550545f4d4147494300000000000000000000000081525060140190506040516020818303038152906040528051906020012090505b8091505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614610b86576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180610c6f602f913960400191505060405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e632604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600063f23a6e6160e01b9050969550505050505056fe496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742074686520696e697469616c697a6572a164736f6c634300060c000a", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100925760003560e01c8063249cb3fa11610066578063249cb3fa1461047c578063392e53cd146104de5780637b103999146104fe578063c4d66de814610532578063f23a6e611461057657610092565b806223de2914610097578063150b7a02146101cf5780631626ba7e146102c557806320c13b0b1461037b575b600080fd5b6101cd600480360360c08110156100ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561013457600080fd5b82018360208201111561014657600080fd5b8035906020019184600183028401116401000000008311171561016857600080fd5b90919293919293908035906020019064010000000081111561018957600080fd5b82018360208201111561019b57600080fd5b803590602001918460018302840111640100000000831117156101bd57600080fd5b9091929391929390505050610676565b005b610290600480360360808110156101e557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561024c57600080fd5b82018360208201111561025e57600080fd5b8035906020019184600183028401116401000000008311171561028057600080fd5b9091929391929390505050610680565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b610346600480360360408110156102db57600080fd5b81019080803590602001909291908035906020019064010000000081111561030257600080fd5b82018360208201111561031457600080fd5b8035906020019184600183028401116401000000008311171561033657600080fd5b9091929391929390505050610695565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b6104476004803603604081101561039157600080fd5b81019080803590602001906401000000008111156103ae57600080fd5b8201836020820111156103c057600080fd5b803590602001918460018302840111640100000000831117156103e257600080fd5b90919293919293908035906020019064010000000081111561040357600080fd5b82018360208201111561041557600080fd5b8035906020019184600183028401116401000000008311171561043757600080fd5b90919293919293905050506107f9565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b6104c86004803603604081101561049257600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061098a565b6040518082815260200191505060405180910390f35b6104e6610a66565b60405180821515815260200191505060405180910390f35b610506610abc565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105746004803603602081101561054857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ae2565b005b610641600480360360a081101561058c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001906401000000008111156105fd57600080fd5b82018360208201111561060f57600080fd5b8035906020019184600183028401116401000000008311171561063157600080fd5b9091929391929390505050610c58565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b5050505050505050565b600063150b7a0260e01b905095945050505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1e382ce308686866040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509550505050505060206040518083038186803b15801561075c57600080fd5b505afa158015610770573d6000803e3d6000fd5b505050506040513d602081101561078657600080fd5b81019080805190602001909291905050506107a85763ffffffff60e01b6107f0565b60405160200180807f697356616c69645369676e617475726528627974657333322c62797465732900815250601f019050604051602081830303815290604052805190602001205b90509392505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663124e9eb330878787876040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff16815260200180602001806020018381038352878782818152602001925080828437600081840152601f19601f8201169050808301925050508381038252858582818152602001925080828437600081840152601f19601f82011690508083019250505097505050505050505060206040518083038186803b1580156108ec57600080fd5b505afa158015610900573d6000803e3d6000fd5b505050506040513d602081101561091657600080fd5b81019080805190602001909291905050506109385763ffffffff60e01b610980565b60405160200180807f697356616c69645369676e61747572652862797465732c627974657329000000815250601d019050604051602081830303815290604052805190602001205b9050949350505050565b60008060405160200180807f455243373737546f6b656e73526563697069656e74000000000000000000000081525060150190506040516020818303038152906040528051906020012084148015610a0d57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610a5c5760405160200180807f455243313832305f4143434550545f4d4147494300000000000000000000000081525060140190506040516020818303038152906040528051906020012090505b8091505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614610b86576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180610c6f602f913960400191505060405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e632604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600063f23a6e6160e01b9050969550505050505056fe496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742074686520696e697469616c697a6572a164736f6c634300060c000a", + "bytecode": "0x608060405234801561001057600080fd5b5061002b67bcc9be562f8a4b0a60c01b6100be60201b60201c565b61004567579ae7209daca85260c01b6100be60201b60201c565b326000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061009f6729f26e2a831f76bd60c01b6100c160201b60201c565b6100b9676ec03405cf524b4d60c01b6100c460201b60201c565b6100c7565b50565b50565b50565b61153f806100d66000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c80637b103999116100b8578063b8919b571161007c578063b8919b571461088c578063c4543305146108eb578063c4d66de81461094a578063d77d07021461098e578063d84fa10c146109d7578063f23a6e6114610a3657610136565b80637b103999146107085780638116df491461073c57806387bfe79d1461079b578063a42ea708146107fa578063b851f6f91461084357610136565b8063221523e5116100ff578063221523e51461057f578063249cb3fa146105de578063392e53cd146106405780633e260b131461066057806344f9c9ec146106a957610136565b806223de291461013b5780630effa61f14610273578063150b7a02146102d25780631626ba7e146103c857806320c13b0b1461047e575b600080fd5b610271600480360360c081101561015157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156101d857600080fd5b8201836020820111156101ea57600080fd5b8035906020019184600183028401116401000000008311171561020c57600080fd5b90919293919293908035906020019064010000000081111561022d57600080fd5b82018360208201111561023f57600080fd5b8035906020019184600183028401116401000000008311171561026157600080fd5b9091929391929390505050610b36565b005b6102ba6004803603602081101561028957600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b54565b60405180821515815260200191505060405180910390f35b610393600480360360808110156102e857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561034f57600080fd5b82018360208201111561036157600080fd5b8035906020019184600183028401116401000000008311171561038357600080fd5b9091929391929390505050610b5f565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b610449600480360360408110156103de57600080fd5b81019080803590602001909291908035906020019064010000000081111561040557600080fd5b82018360208201111561041757600080fd5b8035906020019184600183028401116401000000008311171561043957600080fd5b9091929391929390505050610bb0565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b61054a6004803603604081101561049457600080fd5b81019080803590602001906401000000008111156104b157600080fd5b8201836020820111156104c357600080fd5b803590602001918460018302840111640100000000831117156104e557600080fd5b90919293919293908035906020019064010000000081111561050657600080fd5b82018360208201111561051857600080fd5b8035906020019184600183028401116401000000008311171561053a57600080fd5b9091929391929390505050610d87565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b6105c66004803603602081101561059557600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610f8b565b60405180821515815260200191505060405180910390f35b61062a600480360360408110156105f457600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f92565b6040518082815260200191505060405180910390f35b61064861113c565b60405180821515815260200191505060405180910390f35b6106a76004803603602081101561067657600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506111cf565b005b6106f0600480360360208110156106bf57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506111d2565b60405180821515815260200191505060405180910390f35b6107106111dd565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107836004803603602081101561075257600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611203565b60405180821515815260200191505060405180910390f35b6107e2600480360360208110156107b157600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061120e565b60405180821515815260200191505060405180910390f35b6108416004803603602081101561081057600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611215565b005b61088a6004803603602081101561085957600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611218565b005b6108d3600480360360208110156108a257600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061121b565b60405180821515815260200191505060405180910390f35b6109326004803603602081101561090157600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611222565b60405180821515815260200191505060405180910390f35b61098c6004803603602081101561096057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061122d565b005b6109d5600480360360208110156109a457600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506114a7565b005b610a1e600480360360208110156109ed57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506114aa565b60405180821515815260200191505060405180910390f35b610b01600480360360a0811015610a4c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190640100000000811115610abd57600080fd5b820183602082011115610acf57600080fd5b80359060200191846001830284011164010000000083111715610af157600080fd5b90919293919293905050506114b1565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b610b4a67ce47c0f946eadb1860c01b611218565b5050505050505050565b600060019050919050565b6000610b7567b827fecf1e33001460c01b611218565b610b8967b3558d27713bcbc360c01b611218565b610b9d67ca5809ab03b36cc360c01b611218565b63150b7a0260e01b905095945050505050565b6000610bc667d15cb231db01bd9560c01b611218565b610bda67cf444c026e53d2b560c01b611218565b610bee67feb865187e703ce360c01b611218565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1e382ce308686866040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509550505050505060206040518083038186803b158015610cb357600080fd5b505afa158015610cc7573d6000803e3d6000fd5b505050506040513d6020811015610cdd57600080fd5b81019080805190602001909291905050508015610d0a5750610d0967dcb61cbea4e09a8a60c01b610b54565b5b80610d255750610d2467597b2a0b23f7987b60c01b61121b565b5b610d365763ffffffff60e01b610d7e565b60405160200180807f697356616c69645369676e617475726528627974657333322c62797465732900815250601f019050604051602081830303815290604052805190602001205b90509392505050565b6000610d9d679d53a108f4152ee460c01b611218565b610db1678f46380630213e2760c01b611218565b610dc5670444693b6dda2f5360c01b611218565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663124e9eb330878787876040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff16815260200180602001806020018381038352878782818152602001925080828437600081840152601f19601f8201169050808301925050508381038252858582818152602001925080828437600081840152601f19601f82011690508083019250505097505050505050505060206040518083038186803b158015610eb657600080fd5b505afa158015610eca573d6000803e3d6000fd5b505050506040513d6020811015610ee057600080fd5b81019080805190602001909291905050508015610f0d5750610f0c67597e334f5a972f1e60c01b610b54565b5b80610f285750610f2767624be475bd07a4c360c01b61121b565b5b610f395763ffffffff60e01b610f81565b60405160200180807f697356616c69645369676e61747572652862797465732c627974657329000000815250601d019050604051602081830303815290604052805190602001205b9050949350505050565b6000919050565b6000610fa8674fa492bc3d866f9660c01b611218565b610fbc67f11658511bdad90960c01b611218565b610fd067aea7b4d1358b312860c01b611218565b6000610fe667c7d74f3aaa7aa17a60c01b611218565b610ffa670b029f119a0e101260c01b611218565b60405160200180807f455243373737546f6b656e73526563697069656e7400000000000000000000008152506015019050604051602081830303815290604052805190602001208414801561107a57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156110f55761109367159f49977ceb711e60c01b611218565b6110a767a1697c883c2b4d5f60c01b611218565b60405160200180807f455243313832305f4143434550545f4d41474943000000000000000000000000815250601401905060405160208183030381529060405280519060200120905061110a565b6111096740bc089d08a45f7660c01b611218565b5b61111e675edb1ebe087f56d760c01b611218565b61113267b6341297d7ddf48460c01b611218565b8091505092915050565b600061115267e29fe2f351ca6b2760c01b6111cf565b611166676f5dd3f08b97747760c01b6111cf565b61117a673a9488d62818322a60c01b6111cf565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b50565b600060019050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019050919050565b6000919050565b50565b50565b6000919050565b600060019050919050565b611241678fa2e2799025577f60c01b611218565b61125567d2ba19feb39e0b7f60c01b6111cf565b611269670c5ad53cdb9edd1560c01b6111cf565b61127d67b6b588d2ebb9ae6960c01b6111cf565b61129167c4ec9a90a885875260c01b6111cf565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180611504602f913960400191505060405180910390fd5b61134967c3785ba1534db95460c01b6111cf565b61135d67e4202927591248ef60c01b6111cf565b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506113b267531cfa2817fbdc8660c01b6111cf565b6113c6670fe7483554c7d7f060c01b611218565b6113da671ba251afbdd08eb960c01b611218565b6113ee67e4b4698cdfd724ee60c01b611218565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506114436701520f419008b58e60c01b6111cf565b6114576775364c04848b013b60c01b6111cf565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e632604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b50565b6000919050565b60006114c76773b65ea4d003e8c060c01b611218565b6114db67efee7b06625db93660c01b611218565b6114ef6733114e923245121260c01b611218565b63f23a6e6160e01b9050969550505050505056fe496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742074686520696e697469616c697a6572a164736f6c634300060c000a", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101365760003560e01c80637b103999116100b8578063b8919b571161007c578063b8919b571461088c578063c4543305146108eb578063c4d66de81461094a578063d77d07021461098e578063d84fa10c146109d7578063f23a6e6114610a3657610136565b80637b103999146107085780638116df491461073c57806387bfe79d1461079b578063a42ea708146107fa578063b851f6f91461084357610136565b8063221523e5116100ff578063221523e51461057f578063249cb3fa146105de578063392e53cd146106405780633e260b131461066057806344f9c9ec146106a957610136565b806223de291461013b5780630effa61f14610273578063150b7a02146102d25780631626ba7e146103c857806320c13b0b1461047e575b600080fd5b610271600480360360c081101561015157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156101d857600080fd5b8201836020820111156101ea57600080fd5b8035906020019184600183028401116401000000008311171561020c57600080fd5b90919293919293908035906020019064010000000081111561022d57600080fd5b82018360208201111561023f57600080fd5b8035906020019184600183028401116401000000008311171561026157600080fd5b9091929391929390505050610b36565b005b6102ba6004803603602081101561028957600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b54565b60405180821515815260200191505060405180910390f35b610393600480360360808110156102e857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561034f57600080fd5b82018360208201111561036157600080fd5b8035906020019184600183028401116401000000008311171561038357600080fd5b9091929391929390505050610b5f565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b610449600480360360408110156103de57600080fd5b81019080803590602001909291908035906020019064010000000081111561040557600080fd5b82018360208201111561041757600080fd5b8035906020019184600183028401116401000000008311171561043957600080fd5b9091929391929390505050610bb0565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b61054a6004803603604081101561049457600080fd5b81019080803590602001906401000000008111156104b157600080fd5b8201836020820111156104c357600080fd5b803590602001918460018302840111640100000000831117156104e557600080fd5b90919293919293908035906020019064010000000081111561050657600080fd5b82018360208201111561051857600080fd5b8035906020019184600183028401116401000000008311171561053a57600080fd5b9091929391929390505050610d87565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b6105c66004803603602081101561059557600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610f8b565b60405180821515815260200191505060405180910390f35b61062a600480360360408110156105f457600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f92565b6040518082815260200191505060405180910390f35b61064861113c565b60405180821515815260200191505060405180910390f35b6106a76004803603602081101561067657600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506111cf565b005b6106f0600480360360208110156106bf57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506111d2565b60405180821515815260200191505060405180910390f35b6107106111dd565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107836004803603602081101561075257600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611203565b60405180821515815260200191505060405180910390f35b6107e2600480360360208110156107b157600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061120e565b60405180821515815260200191505060405180910390f35b6108416004803603602081101561081057600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611215565b005b61088a6004803603602081101561085957600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611218565b005b6108d3600480360360208110156108a257600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061121b565b60405180821515815260200191505060405180910390f35b6109326004803603602081101561090157600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611222565b60405180821515815260200191505060405180910390f35b61098c6004803603602081101561096057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061122d565b005b6109d5600480360360208110156109a457600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506114a7565b005b610a1e600480360360208110156109ed57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506114aa565b60405180821515815260200191505060405180910390f35b610b01600480360360a0811015610a4c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190640100000000811115610abd57600080fd5b820183602082011115610acf57600080fd5b80359060200191846001830284011164010000000083111715610af157600080fd5b90919293919293905050506114b1565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b610b4a67ce47c0f946eadb1860c01b611218565b5050505050505050565b600060019050919050565b6000610b7567b827fecf1e33001460c01b611218565b610b8967b3558d27713bcbc360c01b611218565b610b9d67ca5809ab03b36cc360c01b611218565b63150b7a0260e01b905095945050505050565b6000610bc667d15cb231db01bd9560c01b611218565b610bda67cf444c026e53d2b560c01b611218565b610bee67feb865187e703ce360c01b611218565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1e382ce308686866040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509550505050505060206040518083038186803b158015610cb357600080fd5b505afa158015610cc7573d6000803e3d6000fd5b505050506040513d6020811015610cdd57600080fd5b81019080805190602001909291905050508015610d0a5750610d0967dcb61cbea4e09a8a60c01b610b54565b5b80610d255750610d2467597b2a0b23f7987b60c01b61121b565b5b610d365763ffffffff60e01b610d7e565b60405160200180807f697356616c69645369676e617475726528627974657333322c62797465732900815250601f019050604051602081830303815290604052805190602001205b90509392505050565b6000610d9d679d53a108f4152ee460c01b611218565b610db1678f46380630213e2760c01b611218565b610dc5670444693b6dda2f5360c01b611218565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663124e9eb330878787876040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff16815260200180602001806020018381038352878782818152602001925080828437600081840152601f19601f8201169050808301925050508381038252858582818152602001925080828437600081840152601f19601f82011690508083019250505097505050505050505060206040518083038186803b158015610eb657600080fd5b505afa158015610eca573d6000803e3d6000fd5b505050506040513d6020811015610ee057600080fd5b81019080805190602001909291905050508015610f0d5750610f0c67597e334f5a972f1e60c01b610b54565b5b80610f285750610f2767624be475bd07a4c360c01b61121b565b5b610f395763ffffffff60e01b610f81565b60405160200180807f697356616c69645369676e61747572652862797465732c627974657329000000815250601d019050604051602081830303815290604052805190602001205b9050949350505050565b6000919050565b6000610fa8674fa492bc3d866f9660c01b611218565b610fbc67f11658511bdad90960c01b611218565b610fd067aea7b4d1358b312860c01b611218565b6000610fe667c7d74f3aaa7aa17a60c01b611218565b610ffa670b029f119a0e101260c01b611218565b60405160200180807f455243373737546f6b656e73526563697069656e7400000000000000000000008152506015019050604051602081830303815290604052805190602001208414801561107a57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156110f55761109367159f49977ceb711e60c01b611218565b6110a767a1697c883c2b4d5f60c01b611218565b60405160200180807f455243313832305f4143434550545f4d41474943000000000000000000000000815250601401905060405160208183030381529060405280519060200120905061110a565b6111096740bc089d08a45f7660c01b611218565b5b61111e675edb1ebe087f56d760c01b611218565b61113267b6341297d7ddf48460c01b611218565b8091505092915050565b600061115267e29fe2f351ca6b2760c01b6111cf565b611166676f5dd3f08b97747760c01b6111cf565b61117a673a9488d62818322a60c01b6111cf565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b50565b600060019050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019050919050565b6000919050565b50565b50565b6000919050565b600060019050919050565b611241678fa2e2799025577f60c01b611218565b61125567d2ba19feb39e0b7f60c01b6111cf565b611269670c5ad53cdb9edd1560c01b6111cf565b61127d67b6b588d2ebb9ae6960c01b6111cf565b61129167c4ec9a90a885875260c01b6111cf565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180611504602f913960400191505060405180910390fd5b61134967c3785ba1534db95460c01b6111cf565b61135d67e4202927591248ef60c01b6111cf565b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506113b267531cfa2817fbdc8660c01b6111cf565b6113c6670fe7483554c7d7f060c01b611218565b6113da671ba251afbdd08eb960c01b611218565b6113ee67e4b4698cdfd724ee60c01b611218565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506114436701520f419008b58e60c01b6111cf565b6114576775364c04848b013b60c01b6111cf565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e632604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b50565b6000919050565b60006114c76773b65ea4d003e8c060c01b611218565b6114db67efee7b06625db93660c01b611218565b6114ef6733114e923245121260c01b611218565b63f23a6e6160e01b9050969550505050505056fe496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742074686520696e697469616c697a6572a164736f6c634300060c000a", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/PersonalAccountRegistry.json b/artifacts/PersonalAccountRegistry.json index dbd072c8..1f3aa06d 100644 --- a/artifacts/PersonalAccountRegistry.json +++ b/artifacts/PersonalAccountRegistry.json @@ -286,6 +286,312 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__098c0657", + "type": "bytes8" + } + ], + "name": "c_098c0657", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__0b6945c4", + "type": "bytes8" + } + ], + "name": "c_0b6945c4", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__279b00a1", + "type": "bytes8" + } + ], + "name": "c_279b00a1", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__9649d652", + "type": "bytes8" + } + ], + "name": "c_9649d652", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__bf6efb80", + "type": "bytes8" + } + ], + "name": "c_bf6efb80", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__d18be0f9", + "type": "bytes8" + } + ], + "name": "c_d18be0f9", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__098c0657", + "type": "bytes8" + } + ], + "name": "c_false098c0657", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__0b6945c4", + "type": "bytes8" + } + ], + "name": "c_false0b6945c4", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__279b00a1", + "type": "bytes8" + } + ], + "name": "c_false279b00a1", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__9649d652", + "type": "bytes8" + } + ], + "name": "c_false9649d652", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__bf6efb80", + "type": "bytes8" + } + ], + "name": "c_falsebf6efb80", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__d18be0f9", + "type": "bytes8" + } + ], + "name": "c_falsed18be0f9", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__098c0657", + "type": "bytes8" + } + ], + "name": "c_true098c0657", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__0b6945c4", + "type": "bytes8" + } + ], + "name": "c_true0b6945c4", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__279b00a1", + "type": "bytes8" + } + ], + "name": "c_true279b00a1", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__9649d652", + "type": "bytes8" + } + ], + "name": "c_true9649d652", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__bf6efb80", + "type": "bytes8" + } + ], + "name": "c_truebf6efb80", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__d18be0f9", + "type": "bytes8" + } + ], + "name": "c_trued18be0f9", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [ { @@ -649,8 +955,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5032600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506144d1806100616000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806390482d72116100b8578063d0f710d61161007c578063d0f710d61461075e578063da9fc1ae146107f7578063db63f5821461083b578063e1e382ce1461089f578063e5c7278f14610958578063f4876c7414610a1b57610142565b806390482d7214610545578063a526d83b146105fe578063bb890d3f14610642578063cade6a5d146106bc578063d089e11a1461072a57610142565b80631a8414031161010a5780631a841403146103515780633164b5e1146103bf57806334d323a414610419578063392e53cd1461049d57806343013c24146104bd578063714041561461050157610142565b80630900f010146101475780630c68ba211461018b57806311464fbe146101e5578063116191b614610219578063124e9eb31461024d575b600080fd5b6101896004803603602081101561015d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a7f565b005b6101cd600480360360208110156101a157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b2e565b60405180821515815260200191505060405180910390f35b6101ed610b83565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610221610ba9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103396004803603606081101561026357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156102a057600080fd5b8201836020820111156102b257600080fd5b803590602001918460018302840111640100000000831117156102d457600080fd5b9091929391929390803590602001906401000000008111156102f557600080fd5b82018360208201111561030757600080fd5b8035906020019184600183028401116401000000008311171561032957600080fd5b9091929391929390505050610bcf565b60405180821515815260200191505060405180910390f35b6103bd6004803603606081101561036757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c88565b005b610401600480360360208110156103d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ef3565b60405180821515815260200191505060405180910390f35b6104856004803603606081101561042f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f4c565b60405180821515815260200191505060405180910390f35b6104a561103a565b60405180821515815260200191505060405180910390f35b6104ff600480360360208110156104d357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611092565b005b6105436004803603602081101561051757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110aa565b005b6105fc6004803603606081101561055b57600080fd5b810190808035906020019064010000000081111561057857600080fd5b82018360208201111561058a57600080fd5b803590602001918460208302840111640100000000831117156105ac57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611370565b005b6106406004803603602081101561061457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611508565b005b6106a46004803603604081101561065857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115b5565b60405180821515815260200191505060405180910390f35b6106fe600480360360208110156106d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115c9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107326115db565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107df6004803603604081101561077457600080fd5b81019080803590602001909291908035906020019064010000000081111561079b57600080fd5b8201836020820111156107ad57600080fd5b803590602001918460018302840111640100000000831117156107cf57600080fd5b9091929391929390505050611601565b60405180821515815260200191505060405180910390f35b6108396004803603602081101561080d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061165a565b005b61089d6004803603604081101561085157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611670565b005b610940600480360360608110156108b557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156108fc57600080fd5b82018360208201111561090e57600080fd5b8035906020019184600183028401116401000000008311171561093057600080fd5b9091929391929390505050611905565b60405180821515815260200191505060405180910390f35b610a196004803603608081101561096e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156109d557600080fd5b8201836020820111156109e757600080fd5b80359060200191846001830284011164010000000083111715610a0957600080fd5b9091929391929390505050611971565b005b610a7d60048036036040811015610a3157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119de565b005b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610b20576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806143e46026913960400191505060405180910390fd5b610b2b816001611d0d565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610c7d86610c7885858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610c6a89898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611e4e565b611fb790919063ffffffff16565b612087565b905095945050505050565b610c918361223e565b50610c9b83612685565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d2f57610d29833283600067ffffffffffffffff81118015610cee57600080fd5b506040519080825280601f01601f191660200182016040528015610d215781602001600182028036833780820191505090505b506000612786565b50610e5d565b6060610dd38484600063a9059cbb60e01b3287604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506000612786565b9050600081511115610e5b57808060200190516020811015610df457600080fd5b8101908080519060200190929190505050610e5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603581526020018061440a6035913960400191505060405180910390fd5b5b505b7feb5511fbef89123439f12682f0e9d0fc9696913b26eee55434c77d62c30aa7ca83328484604051808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200194505050505060405180910390a1505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff169050919050565b60008060009050610f5d8585612087565b15610f6b576001905061102f565b61102c83600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff16151515158152602001600182015481525050612c5490919063ffffffff16565b90505b809150509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b61109b8161223e565b506110a7816001612ca3565b50565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661114b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806143e46026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614156111ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f477561726465643a2063616e6e6f742072656d6f76652073656c66000000000081525060200191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166112ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f477561726465643a20677561726469616e20646f65736e27742065786973740081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fee943cdb81826d5909c559c6b1ae6908fcaf2dbc16c4b730346736b486283e8b3282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611416576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180614318602f913960400191505060405180910390fd5b6000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506114a2848480806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050612f05565b6114ac3083612f5d565b6114b581612f77565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e632604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150505050565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166115a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806143e46026913960400191505060405180910390fd5b6115b281612fbb565b50565b60006115c18383612087565b905092915050565b60006115d4826131e2565b9050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006116518484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050613238565b90509392505050565b6116638161223e565b5061166d81612685565b50565b600061167b8361223e565b90508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611702576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806143b9602b913960400191505060405180910390fd5b6117b9600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff161515151581526020016001820154815250506132a5565b61180e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806142b7602c913960400191505060405180910390fd5b43600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055507f1ce3cbbc43ee231e5b950332f2b0b9dd7d349291a3ee411ce5c5c7ed745661bb8383604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1505050565b60006119678561196285858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505087611fb790919063ffffffff16565b612087565b9050949350505050565b61197a8561223e565b5061198485612685565b6119d685858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506001612786565b505050505050565b6119e78261223e565b50600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611a6e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180614498602d913960400191505060405180910390fd5b611b25600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff161515151581526020016001820154815250506132a5565b15611b7b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018061446b602d913960400191505060405180910390fd5b6001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055507f27e282f7712c5b4617277759c834b86d163dfc1aad25c8c3c5926a1c9e5644688282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b81526020018061421e603b913960400191505060405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508015611e4a577f70d9f5a076620216a6050e493f3ce69749de0b68fa4b839ba2518660ba8b9cf0600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5050565b6000611e5a82516132b8565b826040516020018082805190602001908083835b60208310611e915780518252602082019150602081019050602083039250611e6e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405260405160200180807f19457468657265756d205369676e6564204d6573736167653a0a000000000000815250601a0183805190602001908083835b60208310611f235780518252602082019150602081019050602083039250611f00565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310611f745780518252602082019150602081019050602083039250611f51565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052805190602001209050919050565b6000806000905060418351141561207d5760008060006020860151925060408601519150606086015160001a9050601b8160ff161015611ff857601b810190505b601b8160ff16148061200d5750601c8160ff16145b156120795760018782858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561206c573d6000803e3d6000fd5b5050506020604051035193505b5050505b8091505092915050565b600080600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16156121ac576000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154149050612234565b6000801b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154141561223357612202836131e2565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161490505b5b8091505092915050565b6000806122496133ff565b9050600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16156123c0576000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154146123bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806142596038913960400191505060405180910390fd5b61267c565b6000801b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101541461245d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806142596038913960400191505060405180910390fd5b600081604051602001808273ffffffffffffffffffffffffffffffffffffffff1660601b81526014019150506040516020818303038152906040528051906020012090506124aa81613410565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461252d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806142596038913960400191505060405180910390fd5b80600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055506001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055507f27e282f7712c5b4617277759c834b86d163dfc1aad25c8c3c5926a1c9e5644688483604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1505b80915050919050565b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff1661278357612726600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546001613606565b506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055505b50565b6060600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561280e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806143476025913960400191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415612893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061443f602c913960400191505060405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415612918576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806142916026913960400191505060405180910390fd5b60608673ffffffffffffffffffffffffffffffffffffffff16633f579f428787876040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156129aa57808201518184015260208101905061298f565b50505050905090810190601f1680156129d75780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156129f857600080fd5b505af1158015612a0c573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015612a3657600080fd5b8101908080516040519392919084640100000000821115612a5657600080fd5b83820191506020820185811115612a6c57600080fd5b8251866001820283011164010000000082111715612a8957600080fd5b8083526020830192505050908051906020019080838360005b83811015612abd578082015181840152602081019050612aa2565b50505050905090810190601f168015612aea5780820380516001836020036101000a031916815260200191505b5060405250505090508215612c47577f99eeae1fb8801e2e878e060ec5e5b3557b3c4f8106e35d88cb573f293dae4e248787878785604051808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015612ba1578082015181840152602081019050612b86565b50505050905090810190601f168015612bce5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015612c07578082015181840152602081019050612bec565b50505050905090810190601f168015612c345780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a15b8091505095945050505050565b60008060009050836000015115612c9957600084602001511415612c7b5760019050612c98565b6000831415612c8d5760019050612c97565b8284602001511190505b5b5b8091505092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b815260040160206040518083038186803b158015612d2257600080fd5b505afa158015612d36573d6000803e3d6000fd5b505050506040513d6020811015612d4c57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff161415612dca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018061438e602b913960400191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663d784d426600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015612e5557600080fd5b505af1158015612e69573d6000803e3d6000fd5b505050508015612f01577feec27cdb8bd6f55c2c537deb52ab094a2437e85ef5197e6f064f90bff3ff563f82600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15b5050565b600081511415612f1d57612f1832612fbb565b612f5a565b60008151905060005b81811015612f5757612f4a838281518110612f3d57fe5b6020026020010151612fbb565b8080600101915050612f26565b50505b50565b612f6882600061375a565b612f73816000611d0d565b5050565b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561305e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f477561726465643a2063616e6e6f74206164642030783020677561726469616e81525060200191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561311d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f477561726465643a20677561726469616e20616c72656164792065786973747381525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fbc3292102fa77e083913064b282926717cdfaede4d35f553d66366c0a3da755a3282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b60008082604051602001808273ffffffffffffffffffffffffffffffffffffffff1660601b815260140191505060405160208183030381529060405280519060200120905061323081613410565b915050919050565b60008061324e8385611fb790919063ffffffff16565b90506000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b60006132b18243612c54565b9050919050565b60606000821415613300576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506133fa565b600082905060005b6000821461332a578080600101915050600a828161332257fe5b049150613308565b60608167ffffffffffffffff8111801561334357600080fd5b506040519080825280601f01601f1916602001820160405280156133765781602001600182028036833780820191505090505b50905060006001830390508593505b600084146133f257600a848161339757fe5b0660300160f81b828280600190039350815181106133b157fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84816133ea57fe5b049350613385565b819450505050505b919050565b600061340b601461389b565b905090565b600060606040518060200161342490613a8c565b6020820181038252601f19601f82011660405250600060a01b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600060a01b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516020018086805190602001908083835b602083106134be578051825260208201915060208101905060208303925061349b565b6001836020036101000a0380198251168184511680821785525050505050509050018573ffffffffffffffffffffffffffffffffffffffff19168152600c018473ffffffffffffffffffffffffffffffffffffffff1660601b81526014018373ffffffffffffffffffffffffffffffffffffffff19168152600c018273ffffffffffffffffffffffffffffffffffffffff1660601b8152601401955050505050506040516020818303038152906040529050600060ff60f81b3085848051906020012060405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018473ffffffffffffffffffffffffffffffffffffffff1660601b81526014018381526020018281526020019450505050506040516020818303038152906040528051906020012090508060001c92505050919050565b60008083600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161365c90613a8c565b808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff168152602001925050508190604051809103906000f59050801580156136b9573d6000803e3d6000fd5b5090508215613750577f2682a218602b9036c9869f006c5405ee4a1a65267653eb7e286123e5e1afde4c81600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156137e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806142e36035913960400191505060405180910390fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508015613897577f02e3c47057b8dc27a0929d3c394c314c73aa002d46939c31c9f71d1e77e86c10600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5050565b600080600090506138aa613930565b1561392357600083600036905003905061391b600036839060148501926138d393929190613a99565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506139f3565b915050613927565b3390505b80915050919050565b600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156139ec57602c600036905010156139e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061436c6022913960400191505060405180910390fd5b600190505b8091505090565b6000806014835114613a6d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f42797465734c69623a20696e76616c69642064617461206c656e67746800000081525060200191505060405180910390fd5b6c01000000000000000000000000602084015104905080915050919050565b61075180613acd83390190565b60008085851115613aa957600080fd5b83861115613ab657600080fd5b600185028301915084860390509450949250505056fe608060405234801561001057600080fd5b506040516107513803806107518339818101604052604081101561003357600080fd5b810190808051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050610630806101216000396000f3fe60806040526004361061004e5760003560e01c80633f579f42146100be5780635c60da1b146101e75780637b10399914610228578063d784d42614610269578063f77c4791146102ba57610055565b3661005557005b34801561006157600080fd5b50600080369050146100bc576000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050368060008037600080826000855af43d806000803e81600081146100b757816000f35b816000fd5b005b3480156100ca57600080fd5b5061016c600480360360608110156100e157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561012857600080fd5b82018360208201111561013a57600080fd5b8035906020019184600183028401116401000000008311171561015c57600080fd5b90919293919293905050506102fb565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ac578082015181840152602081019050610191565b50505050905090810190601f1680156101d95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101f357600080fd5b506101fc61049f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561023457600080fd5b5061023d6104c5565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561027557600080fd5b506102b86004803603602081101561028c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104eb565b005b3480156102c657600080fd5b506102cf6105d3565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b606060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806105f8602c913960400191505060405180910390fd5b606060008673ffffffffffffffffffffffffffffffffffffffff1686868660405180838380828437808301925050509250505060006040518083038185875af1925050503d8060008114610411576040519150601f19603f3d011682016040523d82523d6000602084013e610416565b606091505b50809350819250505080610492576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4163636f756e743a207472616e73616374696f6e20726576657274656400000081525060200191505060405180910390fd5b8192505050949350505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461058f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806105f8602c913960400191505060405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fe436f6e74726f6c6c65643a206d73672e73656e646572206973206e6f742074686520636f6e74726f6c6c6572a164736f6c634300060c000a4163636f756e74436f6e74726f6c6c65723a2063616e6e6f7420736574206163636f756e7420496d706c656d656e746174696f6e20746f20307830506572736f6e616c4163636f756e7452656769737472793a2073656e646572206973206e6f7420746865206163636f756e74206f776e65724163636f756e74436f6e74726f6c6c65723a2063616e6e6f742073656e6420746f2073656c66506572736f6e616c4163636f756e7452656769737472793a206f776e657220646f65736e27742065786973744163636f756e74436f6e74726f6c6c65723a2063616e6e6f7420736574206163636f756e7420726567697374727920746f20307830496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742074686520696e697469616c697a65724163636f756e74436f6e74726f6c6c65723a2063616e6e6f742073656e6420746f2030783047617465776179526563697069656e743a20696e76616c6964206d73672e646174614163636f756e74436f6e74726f6c6c65723a206163636f756e7420616c7265616479207570677261646564506572736f6e616c4163636f756e7452656769737472793a2063616e6e6f742072656d6f76652073656c66477561726465643a2074782e6f726967696e206973206e6f742074686520677561726469616e506572736f6e616c4163636f756e7452656769737472793a204552433230546f6b656e207472616e736665722072657665727465644163636f756e74436f6e74726f6c6c65723a2063616e6e6f742073656e6420746f20636f6e74726f6c6c6572506572736f6e616c4163636f756e7452656769737472793a206f776e657220616c726561647920657869737473506572736f6e616c4163636f756e7452656769737472793a2063616e6e6f742061646420307830206f776e6572a164736f6c634300060c000a", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c806390482d72116100b8578063d0f710d61161007c578063d0f710d61461075e578063da9fc1ae146107f7578063db63f5821461083b578063e1e382ce1461089f578063e5c7278f14610958578063f4876c7414610a1b57610142565b806390482d7214610545578063a526d83b146105fe578063bb890d3f14610642578063cade6a5d146106bc578063d089e11a1461072a57610142565b80631a8414031161010a5780631a841403146103515780633164b5e1146103bf57806334d323a414610419578063392e53cd1461049d57806343013c24146104bd578063714041561461050157610142565b80630900f010146101475780630c68ba211461018b57806311464fbe146101e5578063116191b614610219578063124e9eb31461024d575b600080fd5b6101896004803603602081101561015d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a7f565b005b6101cd600480360360208110156101a157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b2e565b60405180821515815260200191505060405180910390f35b6101ed610b83565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610221610ba9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103396004803603606081101561026357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156102a057600080fd5b8201836020820111156102b257600080fd5b803590602001918460018302840111640100000000831117156102d457600080fd5b9091929391929390803590602001906401000000008111156102f557600080fd5b82018360208201111561030757600080fd5b8035906020019184600183028401116401000000008311171561032957600080fd5b9091929391929390505050610bcf565b60405180821515815260200191505060405180910390f35b6103bd6004803603606081101561036757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c88565b005b610401600480360360208110156103d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ef3565b60405180821515815260200191505060405180910390f35b6104856004803603606081101561042f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f4c565b60405180821515815260200191505060405180910390f35b6104a561103a565b60405180821515815260200191505060405180910390f35b6104ff600480360360208110156104d357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611092565b005b6105436004803603602081101561051757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110aa565b005b6105fc6004803603606081101561055b57600080fd5b810190808035906020019064010000000081111561057857600080fd5b82018360208201111561058a57600080fd5b803590602001918460208302840111640100000000831117156105ac57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611370565b005b6106406004803603602081101561061457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611508565b005b6106a46004803603604081101561065857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115b5565b60405180821515815260200191505060405180910390f35b6106fe600480360360208110156106d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115c9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107326115db565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107df6004803603604081101561077457600080fd5b81019080803590602001909291908035906020019064010000000081111561079b57600080fd5b8201836020820111156107ad57600080fd5b803590602001918460018302840111640100000000831117156107cf57600080fd5b9091929391929390505050611601565b60405180821515815260200191505060405180910390f35b6108396004803603602081101561080d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061165a565b005b61089d6004803603604081101561085157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611670565b005b610940600480360360608110156108b557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156108fc57600080fd5b82018360208201111561090e57600080fd5b8035906020019184600183028401116401000000008311171561093057600080fd5b9091929391929390505050611905565b60405180821515815260200191505060405180910390f35b610a196004803603608081101561096e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156109d557600080fd5b8201836020820111156109e757600080fd5b80359060200191846001830284011164010000000083111715610a0957600080fd5b9091929391929390505050611971565b005b610a7d60048036036040811015610a3157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119de565b005b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610b20576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806143e46026913960400191505060405180910390fd5b610b2b816001611d0d565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610c7d86610c7885858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610c6a89898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611e4e565b611fb790919063ffffffff16565b612087565b905095945050505050565b610c918361223e565b50610c9b83612685565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d2f57610d29833283600067ffffffffffffffff81118015610cee57600080fd5b506040519080825280601f01601f191660200182016040528015610d215781602001600182028036833780820191505090505b506000612786565b50610e5d565b6060610dd38484600063a9059cbb60e01b3287604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506000612786565b9050600081511115610e5b57808060200190516020811015610df457600080fd5b8101908080519060200190929190505050610e5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603581526020018061440a6035913960400191505060405180910390fd5b5b505b7feb5511fbef89123439f12682f0e9d0fc9696913b26eee55434c77d62c30aa7ca83328484604051808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200194505050505060405180910390a1505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff169050919050565b60008060009050610f5d8585612087565b15610f6b576001905061102f565b61102c83600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff16151515158152602001600182015481525050612c5490919063ffffffff16565b90505b809150509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b61109b8161223e565b506110a7816001612ca3565b50565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661114b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806143e46026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614156111ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f477561726465643a2063616e6e6f742072656d6f76652073656c66000000000081525060200191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166112ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f477561726465643a20677561726469616e20646f65736e27742065786973740081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fee943cdb81826d5909c559c6b1ae6908fcaf2dbc16c4b730346736b486283e8b3282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611416576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180614318602f913960400191505060405180910390fd5b6000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506114a2848480806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050612f05565b6114ac3083612f5d565b6114b581612f77565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e632604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150505050565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166115a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806143e46026913960400191505060405180910390fd5b6115b281612fbb565b50565b60006115c18383612087565b905092915050565b60006115d4826131e2565b9050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006116518484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050613238565b90509392505050565b6116638161223e565b5061166d81612685565b50565b600061167b8361223e565b90508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611702576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806143b9602b913960400191505060405180910390fd5b6117b9600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff161515151581526020016001820154815250506132a5565b61180e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806142b7602c913960400191505060405180910390fd5b43600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055507f1ce3cbbc43ee231e5b950332f2b0b9dd7d349291a3ee411ce5c5c7ed745661bb8383604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1505050565b60006119678561196285858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505087611fb790919063ffffffff16565b612087565b9050949350505050565b61197a8561223e565b5061198485612685565b6119d685858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506001612786565b505050505050565b6119e78261223e565b50600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611a6e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180614498602d913960400191505060405180910390fd5b611b25600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff161515151581526020016001820154815250506132a5565b15611b7b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018061446b602d913960400191505060405180910390fd5b6001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055507f27e282f7712c5b4617277759c834b86d163dfc1aad25c8c3c5926a1c9e5644688282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b81526020018061421e603b913960400191505060405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508015611e4a577f70d9f5a076620216a6050e493f3ce69749de0b68fa4b839ba2518660ba8b9cf0600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5050565b6000611e5a82516132b8565b826040516020018082805190602001908083835b60208310611e915780518252602082019150602081019050602083039250611e6e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405260405160200180807f19457468657265756d205369676e6564204d6573736167653a0a000000000000815250601a0183805190602001908083835b60208310611f235780518252602082019150602081019050602083039250611f00565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310611f745780518252602082019150602081019050602083039250611f51565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052805190602001209050919050565b6000806000905060418351141561207d5760008060006020860151925060408601519150606086015160001a9050601b8160ff161015611ff857601b810190505b601b8160ff16148061200d5750601c8160ff16145b156120795760018782858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561206c573d6000803e3d6000fd5b5050506020604051035193505b5050505b8091505092915050565b600080600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16156121ac576000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154149050612234565b6000801b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154141561223357612202836131e2565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161490505b5b8091505092915050565b6000806122496133ff565b9050600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16156123c0576000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154146123bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806142596038913960400191505060405180910390fd5b61267c565b6000801b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101541461245d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806142596038913960400191505060405180910390fd5b600081604051602001808273ffffffffffffffffffffffffffffffffffffffff1660601b81526014019150506040516020818303038152906040528051906020012090506124aa81613410565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461252d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806142596038913960400191505060405180910390fd5b80600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055506001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055507f27e282f7712c5b4617277759c834b86d163dfc1aad25c8c3c5926a1c9e5644688483604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1505b80915050919050565b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff1661278357612726600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546001613606565b506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055505b50565b6060600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561280e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806143476025913960400191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415612893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061443f602c913960400191505060405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415612918576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806142916026913960400191505060405180910390fd5b60608673ffffffffffffffffffffffffffffffffffffffff16633f579f428787876040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156129aa57808201518184015260208101905061298f565b50505050905090810190601f1680156129d75780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156129f857600080fd5b505af1158015612a0c573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015612a3657600080fd5b8101908080516040519392919084640100000000821115612a5657600080fd5b83820191506020820185811115612a6c57600080fd5b8251866001820283011164010000000082111715612a8957600080fd5b8083526020830192505050908051906020019080838360005b83811015612abd578082015181840152602081019050612aa2565b50505050905090810190601f168015612aea5780820380516001836020036101000a031916815260200191505b5060405250505090508215612c47577f99eeae1fb8801e2e878e060ec5e5b3557b3c4f8106e35d88cb573f293dae4e248787878785604051808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015612ba1578082015181840152602081019050612b86565b50505050905090810190601f168015612bce5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015612c07578082015181840152602081019050612bec565b50505050905090810190601f168015612c345780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a15b8091505095945050505050565b60008060009050836000015115612c9957600084602001511415612c7b5760019050612c98565b6000831415612c8d5760019050612c97565b8284602001511190505b5b5b8091505092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b815260040160206040518083038186803b158015612d2257600080fd5b505afa158015612d36573d6000803e3d6000fd5b505050506040513d6020811015612d4c57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff161415612dca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018061438e602b913960400191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663d784d426600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015612e5557600080fd5b505af1158015612e69573d6000803e3d6000fd5b505050508015612f01577feec27cdb8bd6f55c2c537deb52ab094a2437e85ef5197e6f064f90bff3ff563f82600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15b5050565b600081511415612f1d57612f1832612fbb565b612f5a565b60008151905060005b81811015612f5757612f4a838281518110612f3d57fe5b6020026020010151612fbb565b8080600101915050612f26565b50505b50565b612f6882600061375a565b612f73816000611d0d565b5050565b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561305e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f477561726465643a2063616e6e6f74206164642030783020677561726469616e81525060200191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561311d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f477561726465643a20677561726469616e20616c72656164792065786973747381525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fbc3292102fa77e083913064b282926717cdfaede4d35f553d66366c0a3da755a3282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b60008082604051602001808273ffffffffffffffffffffffffffffffffffffffff1660601b815260140191505060405160208183030381529060405280519060200120905061323081613410565b915050919050565b60008061324e8385611fb790919063ffffffff16565b90506000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b60006132b18243612c54565b9050919050565b60606000821415613300576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506133fa565b600082905060005b6000821461332a578080600101915050600a828161332257fe5b049150613308565b60608167ffffffffffffffff8111801561334357600080fd5b506040519080825280601f01601f1916602001820160405280156133765781602001600182028036833780820191505090505b50905060006001830390508593505b600084146133f257600a848161339757fe5b0660300160f81b828280600190039350815181106133b157fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84816133ea57fe5b049350613385565b819450505050505b919050565b600061340b601461389b565b905090565b600060606040518060200161342490613a8c565b6020820181038252601f19601f82011660405250600060a01b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600060a01b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516020018086805190602001908083835b602083106134be578051825260208201915060208101905060208303925061349b565b6001836020036101000a0380198251168184511680821785525050505050509050018573ffffffffffffffffffffffffffffffffffffffff19168152600c018473ffffffffffffffffffffffffffffffffffffffff1660601b81526014018373ffffffffffffffffffffffffffffffffffffffff19168152600c018273ffffffffffffffffffffffffffffffffffffffff1660601b8152601401955050505050506040516020818303038152906040529050600060ff60f81b3085848051906020012060405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018473ffffffffffffffffffffffffffffffffffffffff1660601b81526014018381526020018281526020019450505050506040516020818303038152906040528051906020012090508060001c92505050919050565b60008083600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161365c90613a8c565b808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff168152602001925050508190604051809103906000f59050801580156136b9573d6000803e3d6000fd5b5090508215613750577f2682a218602b9036c9869f006c5405ee4a1a65267653eb7e286123e5e1afde4c81600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156137e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806142e36035913960400191505060405180910390fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508015613897577f02e3c47057b8dc27a0929d3c394c314c73aa002d46939c31c9f71d1e77e86c10600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5050565b600080600090506138aa613930565b1561392357600083600036905003905061391b600036839060148501926138d393929190613a99565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506139f3565b915050613927565b3390505b80915050919050565b600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156139ec57602c600036905010156139e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061436c6022913960400191505060405180910390fd5b600190505b8091505090565b6000806014835114613a6d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f42797465734c69623a20696e76616c69642064617461206c656e67746800000081525060200191505060405180910390fd5b6c01000000000000000000000000602084015104905080915050919050565b61075180613acd83390190565b60008085851115613aa957600080fd5b83861115613ab657600080fd5b600185028301915084860390509450949250505056fe608060405234801561001057600080fd5b506040516107513803806107518339818101604052604081101561003357600080fd5b810190808051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050610630806101216000396000f3fe60806040526004361061004e5760003560e01c80633f579f42146100be5780635c60da1b146101e75780637b10399914610228578063d784d42614610269578063f77c4791146102ba57610055565b3661005557005b34801561006157600080fd5b50600080369050146100bc576000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050368060008037600080826000855af43d806000803e81600081146100b757816000f35b816000fd5b005b3480156100ca57600080fd5b5061016c600480360360608110156100e157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561012857600080fd5b82018360208201111561013a57600080fd5b8035906020019184600183028401116401000000008311171561015c57600080fd5b90919293919293905050506102fb565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ac578082015181840152602081019050610191565b50505050905090810190601f1680156101d95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101f357600080fd5b506101fc61049f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561023457600080fd5b5061023d6104c5565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561027557600080fd5b506102b86004803603602081101561028c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104eb565b005b3480156102c657600080fd5b506102cf6105d3565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b606060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806105f8602c913960400191505060405180910390fd5b606060008673ffffffffffffffffffffffffffffffffffffffff1686868660405180838380828437808301925050509250505060006040518083038185875af1925050503d8060008114610411576040519150601f19603f3d011682016040523d82523d6000602084013e610416565b606091505b50809350819250505080610492576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4163636f756e743a207472616e73616374696f6e20726576657274656400000081525060200191505060405180910390fd5b8192505050949350505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461058f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806105f8602c913960400191505060405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fe436f6e74726f6c6c65643a206d73672e73656e646572206973206e6f742074686520636f6e74726f6c6c6572a164736f6c634300060c000a4163636f756e74436f6e74726f6c6c65723a2063616e6e6f7420736574206163636f756e7420496d706c656d656e746174696f6e20746f20307830506572736f6e616c4163636f756e7452656769737472793a2073656e646572206973206e6f7420746865206163636f756e74206f776e65724163636f756e74436f6e74726f6c6c65723a2063616e6e6f742073656e6420746f2073656c66506572736f6e616c4163636f756e7452656769737472793a206f776e657220646f65736e27742065786973744163636f756e74436f6e74726f6c6c65723a2063616e6e6f7420736574206163636f756e7420726567697374727920746f20307830496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742074686520696e697469616c697a65724163636f756e74436f6e74726f6c6c65723a2063616e6e6f742073656e6420746f2030783047617465776179526563697069656e743a20696e76616c6964206d73672e646174614163636f756e74436f6e74726f6c6c65723a206163636f756e7420616c7265616479207570677261646564506572736f6e616c4163636f756e7452656769737472793a2063616e6e6f742072656d6f76652073656c66477561726465643a2074782e6f726967696e206973206e6f742074686520677561726469616e506572736f6e616c4163636f756e7452656769737472793a204552433230546f6b656e207472616e736665722072657665727465644163636f756e74436f6e74726f6c6c65723a2063616e6e6f742073656e6420746f20636f6e74726f6c6c6572506572736f6e616c4163636f756e7452656769737472793a206f776e657220616c726561647920657869737473506572736f6e616c4163636f756e7452656769737472793a2063616e6e6f742061646420307830206f776e6572a164736f6c634300060c000a", + "bytecode": "0x60806040523480156200001157600080fd5b506200002e67e6ad6dd6ee73072860c01b6200010160201b60201c565b6200004a67f9592435f5b5ea8c60c01b6200010460201b60201c565b6200006667bcc9be562f8a4b0a60c01b6200010760201b60201c565b6200008267579ae7209daca85260c01b6200010760201b60201c565b32600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000df674f33f857671bcade60c01b6200010a60201b60201c565b620000fb67545494087376439e60c01b6200010d60201b60201c565b62000110565b50565b50565b50565b50565b50565b617d4b80620001206000396000f3fe60806040523480156200001157600080fd5b5060043610620002805760003560e01c8063964f672a1162000159578063d089e11a11620000c9578063e1e382ce1162000087578063e1e382ce1462000fd0578063e5c7278f146200108f578063f0af07211462001158578063f0e97b3314620011a4578063f4876c7414620012065762000280565b8063d089e11a1462000deb578063d0f710d61462000e21578063d84fa10c1462000ec0578063da9fc1ae1462000f22578063db63f5821462000f695762000280565b8063ad8bbdec1162000117578063ad8bbdec1462000bed578063bb890d3f1462000c4f578063bccb31c61462000ccc578063c45433051462000d18578063cade6a5d1462000d7a5762000280565b8063964f672a1462000a3457806399066bc61462000a965780639f106f7e1462000ae2578063a3561e691462000b44578063a526d83b1462000ba65762000280565b806334d323a411620001f5578063614b6c8211620001b3578063614b6c821462000808578063692b0ad9146200086a5780637140415614620008cc57806382fa0d1e146200091357806390482d7214620009755762000280565b806334d323a41462000680578063392e53cd14620007075780633e260b13146200072957806343013c2414620007755780635db3fe3914620007bc5762000280565b8063124e9eb31162000243578063124e9eb314620003e15780631a84140314620004ee5780631aa316db146200055f57806329fbd95714620005c15780633164b5e114620006235762000280565b80630900f01014620002855780630c68ba2114620002cc57806311464fbe1462000329578063116191b6146200035f578063117921d91462000395575b600080fd5b620002ca600480360360208110156200029d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200126d565b005b6200031160048036036020811015620002e457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062001412565b60405180821515815260200191505060405180910390f35b62000333620014a9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b62000369620014cf565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b620003df60048036036020811015620003ad57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050620014f5565b005b620004d660048036036060811015620003f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156200043757600080fd5b8201836020820111156200044a57600080fd5b803590602001918460018302840111640100000000831117156200046d57600080fd5b9091929391929390803590602001906401000000008111156200048f57600080fd5b820183602082011115620004a257600080fd5b80359060200191846001830284011164010000000083111715620004c557600080fd5b9091929391929390505050620014f8565b60405180821515815260200191505060405180910390f35b6200055d600480360360608110156200050657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050620015f9565b005b620005a9600480360360208110156200057757600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062001a74565b60405180821515815260200191505060405180910390f35b6200060b60048036036020811015620005d957600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062001a7f565b60405180821515815260200191505060405180910390f35b62000668600480360360208110156200063b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062001a8a565b60405180821515815260200191505060405180910390f35b620006ef600480360360608110156200069857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505062001b25565b60405180821515815260200191505060405180910390f35b6200071162001d08565b60405180821515815260200191505060405180910390f35b62000773600480360360208110156200074157600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062001da3565b005b620007ba600480360360208110156200078d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062001da6565b005b6200080660048036036020811015620007d457600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062001e30565b005b62000852600480360360208110156200082057600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062001e33565b60405180821515815260200191505060405180910390f35b620008b4600480360360208110156200088257600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062001e3e565b60405180821515815260200191505060405180910390f35b6200091160048036036020811015620008e457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062001e45565b005b6200095d600480360360208110156200092b57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050620022c7565b60405180821515815260200191505060405180910390f35b62000a32600480360360608110156200098d57600080fd5b8101908080359060200190640100000000811115620009ab57600080fd5b820183602082011115620009be57600080fd5b80359060200191846020830284011164010000000083111715620009e157600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050620022d2565b005b62000a7e6004803603602081101562000a4c57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050620025fe565b60405180821515815260200191505060405180910390f35b62000ae06004803603602081101562000aae57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062002605565b005b62000b2c6004803603602081101562000afa57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062002608565b60405180821515815260200191505060405180910390f35b62000b8e6004803603602081101562000b5c57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062002613565b60405180821515815260200191505060405180910390f35b62000beb6004803603602081101562000bbe57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200261a565b005b62000c376004803603602081101562000c0557600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050620027bd565b60405180821515815260200191505060405180910390f35b62000cb46004803603604081101562000c6757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050620027c4565b60405180821515815260200191505060405180910390f35b62000d166004803603602081101562000ce457600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506200281c565b005b62000d626004803603602081101562000d3057600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506200281f565b60405180821515815260200191505060405180910390f35b62000dbf6004803603602081101562000d9257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200282a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b62000df562002880565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b62000ea86004803603604081101562000e3957600080fd5b81019080803590602001909291908035906020019064010000000081111562000e6157600080fd5b82018360208201111562000e7457600080fd5b8035906020019184600183028401116401000000008311171562000e9757600080fd5b9091929391929390505050620028a6565b60405180821515815260200191505060405180910390f35b62000f0a6004803603602081101562000ed857600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062002943565b60405180821515815260200191505060405180910390f35b62000f676004803603602081101562000f3a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200294a565b005b62000fce6004803603604081101562000f8157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050620029d2565b005b620010776004803603606081101562000fe857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156200103057600080fd5b8201836020820111156200104357600080fd5b803590602001918460018302840111640100000000831117156200106657600080fd5b909192939192939050505062002da3565b60405180821515815260200191505060405180910390f35b6200115660048036036080811015620010a757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156200110f57600080fd5b8201836020820111156200112257600080fd5b803590602001918460018302840111640100000000831117156200114557600080fd5b909192939192939050505062002e55565b005b620011a2600480360360208110156200117057600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062002f62565b005b620011ee60048036036020811015620011bc57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062002f65565b60405180821515815260200191505060405180910390f35b6200126b600480360360408110156200121e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062002f6c565b005b6200128367e18aef04d0a3e7fd60c01b620014f5565b6200129967e0600b94c13d066760c01b6200281c565b620012af6755e8cedcdd449e2360c01b6200281c565b620012c567ab821ba7fedab67160c01b6200281c565b620012db67c540fbd78e0e2a4960c01b6200281c565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166200137e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018062007c5e6026913960400191505060405180910390fd5b6200139467d014260b312542b460c01b6200281c565b620013aa674e25985d1c99d1f260c01b6200281c565b620013c067bde425c8c34183d160c01b620014f5565b620013d66716dfdb0ce3bf1a4060c01b620014f5565b620013ec6770d8631575aaca4460c01b620014f5565b62001402674fc959c4242125e760c01b620014f5565b6200140f816001620033ed565b50565b60006200142a677ab52c65f999e01f60c01b6200281c565b620014406710268b7b424a1bd560c01b6200281c565b620014566713a157f311059a7b60c01b6200281c565b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b50565b60006200151067949773e889da548b60c01b620014f5565b6200152667f5190637de1d985760c01b620014f5565b6200153c671283ba3d6ea74c0a60c01b620014f5565b620015ee86620015e885858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050620015d989898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506200363f565b620037f290919063ffffffff16565b62003b51565b905095945050505050565b6200160f6775afb3da4fd8e1a760c01b620014f5565b6200162567bfa2decb6c19dc2d60c01b620014f5565b6200163b67f4a1ea1f4f5b73f860c01b620014f5565b620016468362003e48565b506200165d67ed9e75bb5506131060c01b620014f5565b620016736715149635d91133b360c01b620014f5565b6200167e83620044ee565b6200169467103a19a679a70be660c01b620014f5565b620016aa67966e805ee7f4488860c01b620014f5565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200178657620016f667b550661105a5e6c160c01b620014f5565b6200170c6778466374c5e817e760c01b620014f5565b6200172267f69688cc9cb79e3e60c01b620014f5565b6200177f833283600067ffffffffffffffff811180156200174257600080fd5b506040519080825280601f01601f191660200182016040528015620017765781602001600182028036833780820191505090505b506000620046a7565b50620019b2565b6200179c676d2f127c6cbded8b60c01b620014f5565b620017b267c55f6a870f441ea360c01b620014f5565b620017c867e6169000db7124bb60c01b620014f5565b60606200186e8484600063a9059cbb60e01b3287604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506000620046a7565b90506200188667101f3d9ea840d48460c01b620014f5565b6200189c674738e61390960d2160c01b620014f5565b6000815111156200199957620018bd6767f3391e72f7277c60c01b620014f5565b620018d367a2cad286bddc35c860c01b620014f5565b620018e967268be481c9d59d1d60c01b620014f5565b620018ff67983f6fa6c3ed02a760c01b620014f5565b8080602001905160208110156200191557600080fd5b81019080805190602001909291905050506200197d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603581526020018062007c846035913960400191505060405180910390fd5b6200199367dd178cef5d9f784360c01b620014f5565b620019b0565b620019af6755daecce03b98ded60c01b620014f5565b5b505b620019c867a40448aea0b9209a60c01b620014f5565b620019de671253b49880e9934960c01b620014f5565b7feb5511fbef89123439f12682f0e9d0fc9696913b26eee55434c77d62c30aa7ca83328484604051808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200194505050505060405180910390a1505050565b600060019050919050565b600060019050919050565b600062001aa267708237df46d4591860c01b620014f5565b62001ab867d221cc5f2e35948d60c01b620014f5565b62001ace6765dfcb590b568f9b60c01b620014f5565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff169050919050565b600062001b3d6732cd5b0dba9710d060c01b620014f5565b62001b53673020761b9813024460c01b620014f5565b62001b6967878b732ad1f1d98060c01b620014f5565b600062001b8167607ee862765df6de60c01b620014f5565b62001b976756ffa96c87add8b460c01b620014f5565b62001ba3858562003b51565b1562001bdf5762001bbf67714b36fd9436b49d60c01b620014f5565b62001bd5673b53315bebb8e15660c01b620014f5565b6001905062001cd1565b62001bf56713be24a30d0dcecd60c01b620014f5565b62001c0b67b87ae6f22a7b024e60c01b620014f5565b62001cce83600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff1615151515815260200160018201548152505062004d8e90919063ffffffff16565b90505b62001ce7673aff67691d44290e60c01b620014f5565b62001cfd67b3bc166758e3426460c01b620014f5565b809150509392505050565b600062001d2067e29fe2f351ca6b2760c01b62001da3565b62001d36676f5dd3f08b97747760c01b62001da3565b62001d4c673a9488d62818322a60c01b62001da3565b600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b50565b62001dbc67e5e772a16aa01e8160c01b620014f5565b62001dd267e47d8686f2af7ef060c01b620014f5565b62001de8678349c7ebd0a81a5f60c01b620014f5565b62001df38162003e48565b5062001e0a670afc4f30eeb71fbf60c01b620014f5565b62001e2067571c5a8b2b0a8b8460c01b620014f5565b62001e2d81600162004f87565b50565b50565b600060019050919050565b6000919050565b62001e5b6747dd6d4e27a092d260c01b6200281c565b62001e7167e0600b94c13d066760c01b6200281c565b62001e876755e8cedcdd449e2360c01b6200281c565b62001e9d67ab821ba7fedab67160c01b6200281c565b62001eb367c540fbd78e0e2a4960c01b6200281c565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1662001f56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018062007c5e6026913960400191505060405180910390fd5b62001f6c67d014260b312542b460c01b6200281c565b62001f82674e25985d1c99d1f260c01b6200281c565b62001f9867736984febec5fd2560c01b6200281c565b62001fae67cbb923c66996310360c01b6200281c565b62001fc4672c114aff1103564b60c01b6200281c565b62001fda67a76a63e34be2bddb60c01b6200281c565b62001ff067a220bc889ca09d2360c01b6200281c565b8073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16141562002093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f477561726465643a2063616e6e6f742072656d6f76652073656c66000000000081525060200191505060405180910390fd5b620020a9679467d7af09c5944d60c01b6200281c565b620020bf67c28a58b1b15ad6de60c01b6200281c565b620020d567c70b0fecc7c6d3b160c01b6200281c565b620020eb67e7892f9392d41a6760c01b6200281c565b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16620021aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f477561726465643a20677561726469616e20646f65736e27742065786973740081525060200191505060405180910390fd5b620021c0675a0de441d13969aa60c01b6200281c565b620021d6674e473b0a29064fba60c01b6200281c565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200224367e398e5606400274660c01b6200281c565b620022596738c3bd156a3471c260c01b6200281c565b7fee943cdb81826d5909c559c6b1ae6908fcaf2dbc16c4b730346736b486283e8b3282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b600060019050919050565b620022e8672d986a70dd19978660c01b620014f5565b620022fe67d2ba19feb39e0b7f60c01b62001da3565b62002314670c5ad53cdb9edd1560c01b62001da3565b6200232a67b6b588d2ebb9ae6960c01b62001da3565b6200234067c4ec9a90a885875260c01b62001da3565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614620023e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018062007b92602f913960400191505060405180910390fd5b620023fe67c3785ba1534db95460c01b62001da3565b6200241467e4202927591248ef60c01b62001da3565b6000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200246c67531cfa2817fbdc8660c01b62001da3565b620024826710d2ca647caa13ef60c01b620014f5565b6200249867c5e1073362bb30bb60c01b620014f5565b620024ae677c2fc0c623f34f1760c01b620014f5565b620024c46754d9e88ab3a297b760c01b620014f5565b62002510848480806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505062005315565b6200252667521fd40cd7f8760560c01b620014f5565b6200253c67b4edb6f6ff7b15b260c01b620014f5565b62002548308362005494565b6200255e677d8bd3a05f4b6b6a60c01b620014f5565b6200257467544450e83605438c60c01b620014f5565b6200257f8162005520565b620025956701520f419008b58e60c01b62001da3565b620025ab6775364c04848b013b60c01b62001da3565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e632604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150505050565b6000919050565b50565b600060019050919050565b6000919050565b6200263067c17b66a0b198af7b60c01b6200281c565b6200264667e0600b94c13d066760c01b6200281c565b6200265c6755e8cedcdd449e2360c01b6200281c565b6200267267ab821ba7fedab67160c01b6200281c565b6200268867c540fbd78e0e2a4960c01b6200281c565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166200272b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018062007c5e6026913960400191505060405180910390fd5b6200274167d014260b312542b460c01b6200281c565b62002757674e25985d1c99d1f260c01b6200281c565b6200276d67dfa24a8cc198350160c01b6200281c565b6200278367f9907d82cd18ee0760c01b6200281c565b6200279967dd37ee49f553c5a760c01b6200281c565b620027af679ad66b1d98f77fdf60c01b6200281c565b620027ba8162005590565b50565b6000919050565b6000620027dc67d9f40698cdafefb460c01b620014f5565b620027f26706b914512d0ddf8e60c01b620014f5565b6200280867a9eddccc515ae51b60c01b620014f5565b62002814838362003b51565b905092915050565b50565b600060019050919050565b60006200284267f4a161f24085f2cc60c01b620014f5565b62002858678a467a5966a6113a60c01b620014f5565b6200286e67f2898d9b947f10d060c01b620014f5565b6200287982620058c1565b9050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000620028be670fa739e07c029f9060c01b6200281c565b620028d467406100042e7653bd60c01b6200281c565b620028ea6784104632bda8198f60c01b6200281c565b6200293a8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505062005988565b90509392505050565b6000919050565b6200296067460bc733531e770560c01b620014f5565b62002976675843065cd6ecf36860c01b620014f5565b6200298c671760cefe6a10da7a60c01b620014f5565b620029978162003e48565b50620029ae67d2b7b08e8476a44960c01b620014f5565b620029c467c4108caade9b50e360c01b620014f5565b620029cf81620044ee565b50565b620029e86770b9d781bcb926b460c01b620014f5565b620029fe67906727e01f6aa85e60c01b620014f5565b62002a146701b827d310cfe11d60c01b620014f5565b600062002a218362003e48565b905062002a3967626a661a01a7804b60c01b620014f5565b62002a4f6728cca11810d21b3960c01b620014f5565b62002a6567a8027d9ed3c4801060c01b620014f5565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562002aec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018062007c33602b913960400191505060405180910390fd5b62002b02671d64f04a0cbd3c2d60c01b620014f5565b62002b186780125257db4855f560c01b620014f5565b62002b2e67786a66558108b48b60c01b620014f5565b62002b4467b83a54420a7a78ee60c01b620014f5565b62002bfd600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff1615151515815260200160018201548152505062005a66565b62002c54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018062007b31602c913960400191505060405180910390fd5b62002c6a67fbd8a228a8f1f77a60c01b620014f5565b62002c8067899e8aec8c945fb560c01b620014f5565b43600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555062002d1d673e58acdf3e6c170360c01b620014f5565b62002d3367038fa1c859cd9e2860c01b620014f5565b7f1ce3cbbc43ee231e5b950332f2b0b9dd7d349291a3ee411ce5c5c7ed745661bb8383604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1505050565b600062002dbb67f8f2e3448d3c936160c01b620014f5565b62002dd167fcd5fc1ac915e2fb60c01b620014f5565b62002de7670820634ea29c7b1160c01b620014f5565b62002e4b8562002e4585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505087620037f290919063ffffffff16565b62003b51565b9050949350505050565b62002e6b67789d2f75e275428460c01b620014f5565b62002e8167981f928ed5e6e9a660c01b620014f5565b62002e97675777f12d09d3b93a60c01b620014f5565b62002ea28562003e48565b5062002eb967fdda32926cab7ac260c01b620014f5565b62002ecf675a6b0b5b15d49fb960c01b620014f5565b62002eda85620044ee565b62002ef067ac231b274a94695760c01b620014f5565b62002f066777f4d02982ad96d560c01b620014f5565b62002f5a85858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506001620046a7565b505050505050565b50565b6000919050565b62002f82671841f1f0bc650a6e60c01b620014f5565b62002f9867d8cb12991a5557fe60c01b620014f5565b62002fae6766398dce8b66c4fe60c01b620014f5565b62002fb98262003e48565b5062002fd067afd5a8ab9f2a3d3460c01b620014f5565b62002fe66722266b293d95abe960c01b620014f5565b62002ffc67a6d9c03b61572e3660c01b620014f5565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141562003084576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018062007d12602d913960400191505060405180910390fd5b6200309a67c9382b55067e211d60c01b620014f5565b620030b0679801b864b284677360c01b620014f5565b620030c667b4f021d294e5e22e60c01b620014f5565b620030dc6767e346a0d6fd8cf760c01b620014f5565b62003195600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff1615151515815260200160018201548152505062005a66565b15620031ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018062007ce5602d913960400191505060405180910390fd5b6200320367443905483164659760c01b620014f5565b62003219676f97ea8f4384dd9d60c01b620014f5565b6001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff021916908315150217905550620032ca67d470191cde7d771860c01b620014f5565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055506200336867304924367638439560c01b620014f5565b6200337e67618ec03a4906a7d860c01b620014f5565b7f27e282f7712c5b4617277759c834b86d163dfc1aad25c8c3c5926a1c9e5644688282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15050565b620034036763a6d6dd8a86352960c01b62001e30565b62003419678eeff62892cd112860c01b62001e30565b6200342f6781019a5110a6fd2560c01b62001e30565b620034456799570e869b77f36060c01b62001e30565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620034cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b81526020018062007a98603b913960400191505060405180910390fd5b620034e367e6730257a24a5d4d60c01b62001e30565b620034f9675137d05a035c900560c01b62001e30565b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062003550676635cb5a489007f160c01b62001e30565b620035666779ff21fdd4bb44bc60c01b62001e30565b801562003624576200358367ce1bdfd86d0ca23360c01b62001e30565b62003599677479b0cc253e30c560c01b62001e30565b620035af67a2b46e4941f5d4f860c01b62001e30565b7f70d9f5a076620216a6050e493f3ce69749de0b68fa4b839ba2518660ba8b9cf0600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a16200363b565b6200363a6725a77b732bce9b0960c01b62001e30565b5b5050565b600062003657676caf41065fc97a4260c01b62005abd565b6200366d679f00e9579a814efe60c01b62005abd565b62003683678bbf08d0403adc3f60c01b62005abd565b6200368f825162005ac0565b826040516020018082805190602001908083835b60208310620036c85780518252602082019150602081019050602083039250620036a3565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405260405160200180807f19457468657265756d205369676e6564204d6573736167653a0a000000000000815250601a0183805190602001908083835b602083106200375c578051825260208201915060208101905060208303925062003737565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310620037af57805182526020820191506020810190506020830392506200378a565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052805190602001209050919050565b60006200380a670d75db982ec4597160c01b62005e4f565b620038206725c2c60ab754182560c01b62005e4f565b62003836673eb64a254569ed0660c01b62005e4f565b60006200384e67fb2a2286066e15e460c01b62005e4f565b6200386467a440db11ec9e986d60c01b62005e4f565b60418351141562003b0457620038856704a5aada48e2763260c01b62005e4f565b6200389b674b98cf1796e5c26660c01b62005e4f565b620038b167d2dfec7b159385fc60c01b62005e4f565b6000620038c96772c2a840621b4aa760c01b62005e4f565b620038df67bfd411e6ba4d07c460c01b62005e4f565b6000620038f767145d23f82764ba9960c01b62005e4f565b6200390d67acdff958a9c6c5dd60c01b62005e4f565b600062003925673b79e3a80932a6a160c01b62005e4f565b6020860151925060408601519150606086015160001a905062003953679b0cdee01a57ea2f60c01b62005e4f565b62003969675dbf88583373227960c01b62005e4f565b601b8160ff161015620039ae576200398c670dc9a1836eb51c3260c01b62005e4f565b620039a2677097d8456a6c3e1560c01b62005e4f565b601b81019050620039c5565b620039c46708b39c61216869e760c01b62005e4f565b5b620039db672ea4d6db7d2138c560c01b62005e4f565b620039f1679ad3f461195a5eee60c01b62005e4f565b601b8160ff1614801562003a17575062003a1667a24e972b59dc7d0560c01b62005e52565b5b8062003a455750601c8160ff1614801562003a44575062003a4367934bee4849491d9560c01b62005e52565b5b5b1562003ae45762003a61676d6a491fc6e072fa60c01b62005e4f565b62003a7767aecd1690d1de9f1c60c01b62005e4f565b60018782858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801562003ad2573d6000803e3d6000fd5b50505060206040510351935062003afb565b62003afa67513fbc3b3a0ad1c060c01b62005e4f565b5b50505062003b1b565b62003b1a6723d6d78de386c96660c01b62005e4f565b5b62003b316707d0c4f11e72cfc960c01b62005e4f565b62003b4767b9689b22f403636c60c01b62005e4f565b8091505092915050565b600062003b6967afadb8a88820edae60c01b620014f5565b62003b7f67f59e6215910c93b460c01b620014f5565b62003b956709a5fd36e15c669560c01b620014f5565b600062003bad678d799f22bb2ad76d60c01b620014f5565b62003bc36740ac51f5da79cb2a60c01b620014f5565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff161562003d135762003c6f67a198f4bcf4ffdda660c01b620014f5565b62003c8567c11e5f9124ff6fdd60c01b620014f5565b6000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015414905062003e12565b62003d2967b8d118ba40c4c5e960c01b620014f5565b62003d3f6710bf881bc6e450cc60c01b620014f5565b6000801b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154141562003dfa5762003da36741130ed6b4861b3560c01b620014f5565b62003db967af61ecb384104a6f60c01b620014f5565b62003dc483620058c1565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614905062003e11565b62003e10672ec87586bd7b51b360c01b620014f5565b5b5b62003e286784dc6662a5d1368560c01b620014f5565b62003e3e67ddc6079ede57a7aa60c01b620014f5565b8091505092915050565b600062003e60678aabea3e2c6bca2560c01b620014f5565b62003e766712cfd887af96e54d60c01b620014f5565b62003e8c673829699bd0916c2060c01b620014f5565b600062003e9862005e5d565b905062003eb067104a97d11b31d29660c01b620014f5565b62003ec667973fbaa3edacc7ce60c01b620014f5565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff1615620040ad5762003f7267b94995b6887eba2d60c01b620014f5565b62003f886748c3d00df978d7f560c01b620014f5565b62003f9e67abc28d2563ef0dff60c01b620014f5565b62003fb467e01714a3962c522a60c01b620014f5565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101541462004091576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603881526020018062007ad36038913960400191505060405180910390fd5b620040a7679499ad56ecdbb2db60c01b620014f5565b620044b9565b620040c367357bc6b129a900b460c01b620014f5565b620040d9671674f1ee1ae0d08b60c01b620014f5565b620040ef676ff03a2c654a99d260c01b620014f5565b6200410567785fda09b7c53a4760c01b620014f5565b6000801b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015414620041a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603881526020018062007ad36038913960400191505060405180910390fd5b620041ba67954b2c179a5d688660c01b620014f5565b620041d0674f269f509bbb534a60c01b620014f5565b620041e667e68180d41a3493f560c01b620014f5565b600081604051602001808273ffffffffffffffffffffffffffffffffffffffff1660601b81526014019150506040516020818303038152906040528051906020012090506200424067bdaaa82eb4dda39960c01b620014f5565b620042566765cf1f9f13f20afb60c01b620014f5565b6200426c678c4ee105f3022bf460c01b620014f5565b620042778162005eb2565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614620042fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603881526020018062007ad36038913960400191505060405180910390fd5b62004312678013dbf8a9e452ae60c01b620014f5565b6200432867d88d2e044dab125860c01b620014f5565b80600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550620043856720f9f84d359edc0660c01b620014f5565b6001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff02191690831515021790555062004436679e1ca48701df546460c01b620014f5565b6200444c67c3772f0565efb24f60c01b620014f5565b7f27e282f7712c5b4617277759c834b86d163dfc1aad25c8c3c5926a1c9e5644688483604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1505b620044cf67ca67e5de902a827d60c01b620014f5565b620044e567d7e2ed585989010260c01b620014f5565b80915050919050565b62004504670ba7a4c1489fca3460c01b620014f5565b6200451a67651acfe85e858e5460c01b620014f5565b62004530675151ef5b0651bcd760c01b620014f5565b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff166200468d576200459b679231e89a19a99aca60c01b620014f5565b620045b0666f3f3d70558f5960c01b620014f5565b620045c6678e10a66544cc428160c01b620014f5565b62004615600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600162006146565b506200462c67c689dcb05f1e851d60c01b620014f5565b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff021916908315150217905550620046a4565b620046a36756b574c458e1b11860c01b620014f5565b5b50565b6060620046bf67d03cbc512208c19360c01b62001e30565b620046d567f0724c2f605051ae60c01b62001e30565b620046eb672c1f163d378fb1c760c01b62001e30565b62004701676e332d1ea295ad6760c01b62001e30565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141562004789576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018062007bc16025913960400191505060405180910390fd5b6200479f6734003fde0e365df960c01b62001e30565b620047b5676f78eb7775d96ac060c01b62001e30565b620047cb6762ea15fa7f97e6d860c01b62001e30565b620047e167c1e60fa2c652db9260c01b62001e30565b3073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141562004868576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018062007cb9602c913960400191505060405180910390fd5b6200487e67c4c441efc53987a460c01b62001e30565b62004894670a4409d86344b6de60c01b62001e30565b620048aa67f30c8cf3d7c2007160c01b62001e30565b620048c0677b93c54c10ec39b960c01b62001e30565b8573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141562004947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018062007b0b6026913960400191505060405180910390fd5b6200495d67d0eadcda5ce01ef660c01b62001e30565b620049736708e5898037826a0e60c01b62001e30565b62004989679eda6876d502675260c01b62001e30565b60608673ffffffffffffffffffffffffffffffffffffffff16633f579f428787876040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101562004a1d57808201518184015260208101905062004a00565b50505050905090810190601f16801562004a4b5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801562004a6d57600080fd5b505af115801562004a82573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101562004aad57600080fd5b810190808051604051939291908464010000000082111562004ace57600080fd5b8382019150602082018581111562004ae557600080fd5b825186600182028301116401000000008211171562004b0357600080fd5b8083526020830192505050908051906020019080838360005b8381101562004b3957808201518184015260208101905062004b1c565b50505050905090810190601f16801562004b675780820380516001836020036101000a031916815260200191505b50604052505050905062004b866787669d68dca3195b60c01b62001e30565b62004b9c673ac670a41bf75b6a60c01b62001e30565b821562004d3e5762004bb967d53a5613f66004c060c01b62001e30565b62004bcf67fefbdbb940a6f1de60c01b62001e30565b62004be5678bc5a3cf9a4cc9b860c01b62001e30565b7f99eeae1fb8801e2e878e060ec5e5b3557b3c4f8106e35d88cb573f293dae4e248787878785604051808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101562004c8f57808201518184015260208101905062004c72565b50505050905090810190601f16801562004cbd5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101562004cf857808201518184015260208101905062004cdb565b50505050905090810190601f16801562004d265780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a162004d55565b62004d54674b9471e9fc68f75f60c01b62001e30565b5b62004d6b6744627d43ccecd7f160c01b62001e30565b62004d816717d248a7372779a660c01b62001e30565b8091505095945050505050565b600062004da6679c9d1daabf83176160c01b62006397565b62004dbc674a60477fa1015d9d60c01b62006397565b62004dd2671d2dfd1cbc37881260c01b62006397565b600062004dea675c84658542d4247860c01b62006397565b62004e00676c38c63a8395bd4160c01b62006397565b83600001511562004f3a5762004e21673a129e7e3fa8299860c01b62006397565b62004e3767d5d911350233c4aa60c01b62006397565b62004e4d6788aca451346a904360c01b62006397565b60008460200151141562004e915762004e71671cab9521da0eae6e60c01b62006397565b62004e87679a431a7af70a318b60c01b62006397565b6001905062004f34565b62004ea76728a02509a30cdf2f60c01b62006397565b62004ebd67a315ca16c55cdf1660c01b62006397565b600083141562004efd5762004edd67e5e2fd7cbec5211b60c01b62006397565b62004ef3676bc9eb4a60fdc77060c01b62006397565b6001905062004f33565b62004f13670dbcda2f621ef14860c01b62006397565b62004f2967cbf2e8a46e9eb31e60c01b62006397565b8284602001511190505b5b62004f51565b62004f50679312107b7e60296d60c01b62006397565b5b62004f67676d1c114b386646c760c01b62006397565b62004f7d67b26d3c1cf974c30e60c01b62006397565b8091505092915050565b62004f9d671e986652550cd6b760c01b62001e30565b62004fb36712f52b022ec7e94e60c01b62001e30565b62004fc967d13332898fe9198160c01b62001e30565b62004fdf677771d5f99d0f0ea860c01b62001e30565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200505f57600080fd5b505afa15801562005074573d6000803e3d6000fd5b505050506040513d60208110156200508b57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614156200510b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018062007c08602b913960400191505060405180910390fd5b62005121671d9e65030376f52a60c01b62001e30565b6200513767de7455456727db8960c01b62001e30565b6200514d671ad3abe77081920060c01b62001e30565b8173ffffffffffffffffffffffffffffffffffffffff1663d784d426600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015620051d957600080fd5b505af1158015620051ee573d6000803e3d6000fd5b5050505062005208672dc6faf1b96e638260c01b62001e30565b6200521e673ac280b3b6cdcef460c01b62001e30565b8015620052fa576200523b674cef15a637c5d09560c01b62001e30565b6200525167a51c2a16f15f5aee60c01b62001e30565b620052676739bd33583f67f11d60c01b62001e30565b7feec27cdb8bd6f55c2c537deb52ab094a2437e85ef5197e6f064f90bff3ff563f82600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a162005311565b6200531067a8db68da35e394a360c01b62001e30565b5b5050565b6200532b67f4de5e8e73d6ad8760c01b6200281c565b6200534167db1ce0981035d84760c01b6200281c565b6200535767e97a0a25809a3f0960c01b6200281c565b600081511415620053b5576200537867de11b839232da49160c01b6200281c565b6200538e67b59bd2ea0c1c89a260c01b6200281c565b620053a467652fe2786000e62060c01b6200281c565b620053af3262005590565b62005491565b620053cb67ad5f6f13dddc2ad960c01b6200281c565b620053e1672af46088979bcb2160c01b6200281c565b620053f76796cb81cf0bf6606d60c01b6200281c565b60008151905062005413672f4c11881b8dca8c60c01b6200281c565b6200542967cec4e8db5057edad60c01b6200281c565b60005b818110156200548e576200544b671a5cc94c8b734dd960c01b6200281c565b6200546167e437d14e98e20b2f60c01b6200281c565b620054808382815181106200547257fe5b602002602001015162005590565b80806001019150506200542c565b50505b50565b620054aa671af942b4819087fc60c01b62001e30565b620054c0670f0a44d9ed8d066760c01b62001e30565b620054d667af6f6ca5a19aa0c460c01b62001e30565b620054e38260006200639a565b620054f967dd02c4093239d2e360c01b62001e30565b6200550f674754410ba216543b60c01b62001e30565b6200551c816000620033ed565b5050565b62005536670beab42e12728d3b60c01b62002f62565b6200554c675ecbac840a5512ec60c01b62002f62565b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b620055a66703611a9e4063d8ea60c01b6200281c565b620055bc67ee1baacaa033494260c01b6200281c565b620055d26751e5840de998a97760c01b6200281c565b620055e8676f82de74e2e2e03560c01b6200281c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156200568c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f477561726465643a2063616e6e6f74206164642030783020677561726469616e81525060200191505060405180910390fd5b620056a26717cb80dba7a8a0ea60c01b6200281c565b620056b867e2f8fabe2a63d8b660c01b6200281c565b620056ce677550a657f22d30dc60c01b6200281c565b620056e4673c81d7073dbe6f3060c01b6200281c565b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615620057a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f477561726465643a20677561726469616e20616c72656164792065786973747381525060200191505060405180910390fd5b620057ba67bc5a1f0994a7f54e60c01b6200281c565b620057d0679a7f014629c7374960c01b6200281c565b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200583d67d71c83e9f3188e9d60c01b6200281c565b6200585367e4bfbd26cb5c77e660c01b6200281c565b7fbc3292102fa77e083913064b282926717cdfaede4d35f553d66366c0a3da755a3282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b6000620058d967371a9b64621a2c3d60c01b620014f5565b620058ef676a9989a74d1b4b0b60c01b620014f5565b620059056764d7e3a68d8c5bb760c01b620014f5565b600082604051602001808273ffffffffffffffffffffffffffffffffffffffff1660601b81526014019150506040516020818303038152906040528051906020012090506200595f6788a53d430ff364e660c01b620014f5565b62005975673cb194ec28165cb960c01b620014f5565b620059808162005eb2565b915050919050565b6000620059a067fbe9af14abc78ca860c01b6200281c565b620059b667bd3616cf00f8ad2b60c01b6200281c565b620059cc670aad941719c9b69b60c01b6200281c565b6000620059e38385620037f290919063ffffffff16565b9050620059fb6706f556c4601e7cd060c01b6200281c565b62005a1167344e7bee2db8345860c01b6200281c565b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b600062005a7e679cab3b0c44b8044060c01b62006397565b62005a9467ca9af921644e3db460c01b62006397565b62005aaa67fb2347240336566c60c01b62006397565b62005ab6824362004d8e565b9050919050565b50565b606062005ad867e3a0abd5bcd9be4560c01b620065ec565b62005aee676f4ac71b01df0db160c01b620065ec565b62005b046721d33336b8b2843560c01b620065ec565b600082141562005b8e5762005b246799734a524846f5ea60c01b620065ec565b62005b3a6786ec3af2b5204b2d60c01b620065ec565b62005b50675f049c9df345fcb860c01b620065ec565b6040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905062005e4a565b62005ba4674e123f29ad8e63ae60c01b620065ec565b62005bba678a02b86c6f5ae79060c01b620065ec565b62005bd067aef6cecdbdb7f12260c01b620065ec565b600082905062005beb675ee403aa4c2e194160c01b620065ec565b62005c0167c9a686dccda57deb60c01b620065ec565b600062005c196770f6e6f301963e5060c01b620065ec565b62005c2f67cec46452a4c2007960c01b620065ec565b5b6000821462005c815762005c4f67a2c57d3c793a6eb760c01b620065ec565b808060010191505062005c6d677b9437f81985d6c960c01b620065ec565b600a828162005c7857fe5b04915062005c30565b62005c97675b6ccf3f6790a03260c01b620065ec565b62005cad67c5942845ca4d8bd160c01b620065ec565b60608167ffffffffffffffff8111801562005cc757600080fd5b506040519080825280601f01601f19166020018201604052801562005cfb5781602001600182028036833780820191505090505b50905062005d1467f47605e8a1a97a4f60c01b620065ec565b62005d2a67fb23949ab383488b60c01b620065ec565b600060018303905062005d4867f586ddddd202275b60c01b620065ec565b85935062005d61670a29638383e5bbf260c01b620065ec565b62005d7767417a1c155b8c8d7860c01b620065ec565b5b6000841462005e165762005d976730db4ddbb2bce57560c01b620065ec565b600a848162005da257fe5b0660300160f81b8282806001900393508151811062005dbd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535062005e026753f1af39e9b748c960c01b620065ec565b600a848162005e0d57fe5b04935062005d78565b62005e2c674d1eb2df4daf6cff60c01b620065ec565b62005e42677ce056f455b7e7f260c01b620065ec565b819450505050505b919050565b50565b600060019050919050565b600062005e7567e6b9fb986a1ba5a160c01b62002f62565b62005e8b67e5f2b4fde85ab0e060c01b62002f62565b62005ea1675a28d96f6aadd0b960c01b62002f62565b62005ead6014620065ef565b905090565b600062005eca67834d7dcd68b198b060c01b62001e30565b62005ee0673ff175921f5f538960c01b62001e30565b62005ef66701ee97873b03827f60c01b62001e30565b60606040518060200162005f0a9062006b22565b6020820181038252601f19601f82011660405250600060a01b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600060a01b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516020018086805190602001908083835b6020831062005fa6578051825260208201915060208101905060208303925062005f81565b6001836020036101000a0380198251168184511680821785525050505050509050018573ffffffffffffffffffffffffffffffffffffffff19168152600c018473ffffffffffffffffffffffffffffffffffffffff1660601b81526014018373ffffffffffffffffffffffffffffffffffffffff19168152600c018273ffffffffffffffffffffffffffffffffffffffff1660601b81526014019550505050505060405160208183030381529060405290506200606e67c5994a000b72ff9b60c01b62001e30565b62006084673303398cfdf0748c60c01b62001e30565b600060ff60f81b3085848051906020012060405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018473ffffffffffffffffffffffffffffffffffffffff1660601b81526014018381526020018281526020019450505050506040516020818303038152906040528051906020012090506200612367d5638e0e835e9fc260c01b62001e30565b620061396765b94d8c76f4fb1960c01b62001e30565b8060001c92505050919050565b60006200615e6769d35e844fb436a560c01b62001e30565b6200617467d05843a5b30ee56160c01b62001e30565b6200618a676a5949dc1605b72d60c01b62001e30565b600083600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051620061e19062006b22565b808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff168152602001925050508190604051809103906000f59050801580156200623f573d6000803e3d6000fd5b50905062006258671fbc5a34026c932160c01b62001e30565b6200626e6729f16a915d858e6660c01b62001e30565b82156200634a576200628b674ad44f27dbd7e2bf60c01b62001e30565b620062a1671948a2809685e8a560c01b62001e30565b620062b7674e798983ba62ea2160c01b62001e30565b7f2682a218602b9036c9869f006c5405ee4a1a65267653eb7e286123e5e1afde4c81600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a162006361565b620063606753f95733749efee660c01b62001e30565b5b620063776713228e0b40e520f960c01b62001e30565b6200638d679f460b7957fd280860c01b62001e30565b8091505092915050565b50565b620063b06757e53bb83d0ee18c60c01b62001e30565b620063c6674b6db0292681de8060c01b62001e30565b620063dc67634dbba0de15713160c01b62001e30565b620063f26716603faf2a4da76360c01b62001e30565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200647a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603581526020018062007b5d6035913960400191505060405180910390fd5b6200649067fdb2085a5ff3fca060c01b62001e30565b620064a6677c845799041d8f7d60c01b62001e30565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620064fd67cb55668fb6fee71c60c01b62001e30565b6200651367372f88a4084cef5b60c01b62001e30565b8015620065d15762006530671b487ad986e5d06660c01b62001e30565b6200654667734c16c2ea37d8f760c01b62001e30565b6200655c670feaed23a94b80cf60c01b62001e30565b7f02e3c47057b8dc27a0929d3c394c314c73aa002d46939c31c9f71d1e77e86c10600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1620065e8565b620065e767b56e759927012ec660c01b62001e30565b5b5050565b50565b6000620066076787c8246a4b35d1f160c01b62002f62565b6200661d67976a1e8d41064d2460c01b62002f62565b62006633671867d8bf077bb31160c01b62002f62565b60006200664b67bdfeda5454a1273960c01b62002f62565b62006661677709e048711a13c960c01b62002f62565b6200666b620067a7565b1562006742576200668767d3c6f6b0bcac9b6e60c01b62002f62565b6200669d673b2573735f5d680260c01b62002f62565b620066b3675089eb0622c78a2260c01b62002f62565b6000836000369050039050620066d4674bc94a8e9a6ee57960c01b62002f62565b6200673960003683906014850192620066f09392919062006b30565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050620069a8565b91505062006772565b62006758677e45e81af2ec2edc60c01b62002f62565b6200676e67391e31dbfdfb407e60c01b62002f62565b3390505b6200678867c4042e2c7c2c999760c01b62002f62565b6200679e67fc44c5cccf2cd16760c01b62002f62565b80915050919050565b6000620067bf6714ec9ba31585b6f760c01b62002f62565b620067d56764d00f8ee4cbc0f460c01b62002f62565b620067eb6728aef4b71ffef7e260c01b62002f62565b600062006803677b6cf6392b8d09d960c01b62002f62565b6200681967da655f124163f4bc60c01b62002f62565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156200695e5762006886678c4556fd14dc507160c01b62002f62565b6200689c674811af4455ee520960c01b62002f62565b620068b267ae36e4b52033411860c01b62002f62565b620068c867ffe63a27679b309260c01b62002f62565b602c6000369050101562006928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018062007be66022913960400191505060405180910390fd5b6200693e67d1762b0b1ca636f360c01b62002f62565b620069546769c465f7e405b9f660c01b62002f62565b6001905062006975565b620069746710f40798097af22060c01b62002f62565b5b6200698b671855328cbdf7411660c01b62002f62565b620069a1670e4f1457e534f9ac60c01b62002f62565b8091505090565b6000620069c0670df8d76b8cabf76a60c01b62006b1f565b620069d667e180fcce9e2bf4c560c01b62006b1f565b620069ec670dcb70abe8e8bb0b60c01b62006b1f565b600062006a0467c9f13cc22eb780e060c01b62006b1f565b62006a1a67c60f8d891ff21de960c01b62006b1f565b62006a306782bb9e679e55c73460c01b62006b1f565b601483511462006aa8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f42797465734c69623a20696e76616c69642064617461206c656e67746800000081525060200191505060405180910390fd5b62006abe679ea304b1b6348ade60c01b62006b1f565b62006ad467a0049b4768bf518260c01b62006b1f565b6c01000000000000000000000000602084015104905062006b00671f4dc55703cfba1860c01b62006b1f565b62006b1667afb63a07e82275e260c01b62006b1f565b80915050919050565b50565b610f328062006b6683390190565b6000808585111562006b4157600080fd5b8386111562006b4f57600080fd5b600185028301915084860390509450949250505056fe608060405234801561001057600080fd5b50604051610f32380380610f328339818101604052604081101561003357600080fd5b810190808051906020019092919080519060200190929190505050610068674c05ed6aa1cd281960c01b61019960201b60201c565b610082675db0dfd7018850c360c01b61019960201b60201c565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506100dc6727cd07b305f6130f60c01b61019c60201b60201c565b6100f6673763e953c2595ed960c01b61019c60201b60201c565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610151679802ebbc23dba3ba60c01b61019c60201b60201c565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505061019f565b50565b50565b610d84806101ae6000396000f3fe6080604052600436106100e15760003560e01c80635c60da1b1161007f578063a42ea70811610059578063a42ea7081461067a578063d1c43eae146106d0578063d784d42614610726578063f77c479114610777576100e8565b80635c60da1b1461058c5780637b103999146105cd5780638f9bda6e1461060e576100e8565b80633f579f42116100bb5780633f579f421461031f57806344f9c9ec14610448578063550648ff146104b457806356c2fc6c14610520576100e8565b806310b90163146101f1578063221523e51461025d57806325afd90f146102c9576100e8565b366100e857005b3480156100f457600080fd5b5061010967d1c166158a76fd7860c01b6107b8565b61011d670a4a924f04604fe560c01b6107b8565b610131670ec1ea2f1a11078060c01b6107b8565b600080369050146101db57610150670366ed24f6d51c0d60c01b6107b8565b61016467583b5ef5a1a2fce260c01b6107b8565b61017867726acafc478ad1f860c01b6107b8565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506101b3673d8591565072bf1f60c01b6107b8565b368060008037600080826000855af43d806000803e81600081146101d657816000f35b816000fd5b6101ef67967eae13d5222be260c01b6107b8565b005b3480156101fd57600080fd5b506102456004803603602081101561021457600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107bb565b60405180821515815260200191505060405180910390f35b34801561026957600080fd5b506102b16004803603602081101561028057600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107c2565b60405180821515815260200191505060405180910390f35b3480156102d557600080fd5b5061031d600480360360208110156102ec57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107b8565b005b34801561032b57600080fd5b506103cd6004803603606081101561034257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561038957600080fd5b82018360208201111561039b57600080fd5b803590602001918460018302840111640100000000831117156103bd57600080fd5b90919293919293905050506107c9565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561040d5780820151818401526020810190506103f2565b50505050905090810190601f16801561043a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561045457600080fd5b5061049c6004803603602081101561046b57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610afd565b60405180821515815260200191505060405180910390f35b3480156104c057600080fd5b50610508600480360360208110156104d757600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b08565b60405180821515815260200191505060405180910390f35b34801561052c57600080fd5b506105746004803603602081101561054357600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b0f565b60405180821515815260200191505060405180910390f35b34801561059857600080fd5b506105a1610b1a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105d957600080fd5b506105e2610b40565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561061a57600080fd5b506106626004803603602081101561063157600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b66565b60405180821515815260200191505060405180910390f35b34801561068657600080fd5b506106ce6004803603602081101561069d57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b71565b005b3480156106dc57600080fd5b50610724600480360360208110156106f357600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b74565b005b34801561073257600080fd5b506107756004803603602081101561074957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b77565b005b34801561078357600080fd5b5061078c610d27565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b50565b6000919050565b6000919050565b60606107df6715e98a49f265557060c01b6107b8565b6107f367f6266a592c249da560c01b610b74565b6108076728279893f8537e1960c01b610b74565b61081b67d300d0a9ecbe6cac60c01b610b74565b61082f678d5c0caa285e3ec560c01b610b74565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180610d4c602c913960400191505060405180910390fd5b6108e76718b2e4dd03bc759a60c01b610b74565b6108fb67f8b65e28b897a44f60c01b610b74565b61090f67390c85347f6e2a2360c01b6107b8565b61092367d2a3446ca25e972660c01b6107b8565b61093767aca9b4091d5a9bc860c01b6107b8565b61094b67cce790cad14eb25260c01b6107b8565b606061096167b3adbec8c64c374360c01b6107b8565b6109756791d717b4dffb179d60c01b6107b8565b600061098b67310ff00dd2ac011060c01b6107b8565b8673ffffffffffffffffffffffffffffffffffffffff1686868660405180838380828437808301925050509250505060006040518083038185875af1925050503d80600081146109f7576040519150601f19603f3d011682016040523d82523d6000602084013e6109fc565b606091505b508093508192505050610a1967a450d3c3f63b6d4d60c01b6107b8565b610a2d679a3e7d330ffc414560c01b6107b8565b610a41671925c722e30d4f6d60c01b6107b8565b80610ab4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4163636f756e743a207472616e73616374696f6e20726576657274656400000081525060200191505060405180910390fd5b610ac867a7fa168288301d1c60c01b6107b8565b610adc6745320fb16320fa4a60c01b6107b8565b610af06779ce6fa2117b3f1e60c01b6107b8565b8192505050949350505050565b600060019050919050565b6000919050565b600060019050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019050919050565b50565b50565b610b8b6735cfec4d4a3972f660c01b6107b8565b610b9f67f6266a592c249da560c01b610b74565b610bb36728279893f8537e1960c01b610b74565b610bc767d300d0a9ecbe6cac60c01b610b74565b610bdb678d5c0caa285e3ec560c01b610b74565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180610d4c602c913960400191505060405180910390fd5b610c936718b2e4dd03bc759a60c01b610b74565b610ca767f8b65e28b897a44f60c01b610b74565b610cbb67dbd823a6f693c9e360c01b6107b8565b610ccf6759af4a1e64a734ae60c01b6107b8565b610ce367123d1e7dcae181d060c01b6107b8565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fe436f6e74726f6c6c65643a206d73672e73656e646572206973206e6f742074686520636f6e74726f6c6c6572a164736f6c634300060c000a4163636f756e74436f6e74726f6c6c65723a2063616e6e6f7420736574206163636f756e7420496d706c656d656e746174696f6e20746f20307830506572736f6e616c4163636f756e7452656769737472793a2073656e646572206973206e6f7420746865206163636f756e74206f776e65724163636f756e74436f6e74726f6c6c65723a2063616e6e6f742073656e6420746f2073656c66506572736f6e616c4163636f756e7452656769737472793a206f776e657220646f65736e27742065786973744163636f756e74436f6e74726f6c6c65723a2063616e6e6f7420736574206163636f756e7420726567697374727920746f20307830496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742074686520696e697469616c697a65724163636f756e74436f6e74726f6c6c65723a2063616e6e6f742073656e6420746f2030783047617465776179526563697069656e743a20696e76616c6964206d73672e646174614163636f756e74436f6e74726f6c6c65723a206163636f756e7420616c7265616479207570677261646564506572736f6e616c4163636f756e7452656769737472793a2063616e6e6f742072656d6f76652073656c66477561726465643a2074782e6f726967696e206973206e6f742074686520677561726469616e506572736f6e616c4163636f756e7452656769737472793a204552433230546f6b656e207472616e736665722072657665727465644163636f756e74436f6e74726f6c6c65723a2063616e6e6f742073656e6420746f20636f6e74726f6c6c6572506572736f6e616c4163636f756e7452656769737472793a206f776e657220616c726561647920657869737473506572736f6e616c4163636f756e7452656769737472793a2063616e6e6f742061646420307830206f776e6572a164736f6c634300060c000a", + "deployedBytecode": "0x60806040523480156200001157600080fd5b5060043610620002805760003560e01c8063964f672a1162000159578063d089e11a11620000c9578063e1e382ce1162000087578063e1e382ce1462000fd0578063e5c7278f146200108f578063f0af07211462001158578063f0e97b3314620011a4578063f4876c7414620012065762000280565b8063d089e11a1462000deb578063d0f710d61462000e21578063d84fa10c1462000ec0578063da9fc1ae1462000f22578063db63f5821462000f695762000280565b8063ad8bbdec1162000117578063ad8bbdec1462000bed578063bb890d3f1462000c4f578063bccb31c61462000ccc578063c45433051462000d18578063cade6a5d1462000d7a5762000280565b8063964f672a1462000a3457806399066bc61462000a965780639f106f7e1462000ae2578063a3561e691462000b44578063a526d83b1462000ba65762000280565b806334d323a411620001f5578063614b6c8211620001b3578063614b6c821462000808578063692b0ad9146200086a5780637140415614620008cc57806382fa0d1e146200091357806390482d7214620009755762000280565b806334d323a41462000680578063392e53cd14620007075780633e260b13146200072957806343013c2414620007755780635db3fe3914620007bc5762000280565b8063124e9eb31162000243578063124e9eb314620003e15780631a84140314620004ee5780631aa316db146200055f57806329fbd95714620005c15780633164b5e114620006235762000280565b80630900f01014620002855780630c68ba2114620002cc57806311464fbe1462000329578063116191b6146200035f578063117921d91462000395575b600080fd5b620002ca600480360360208110156200029d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200126d565b005b6200031160048036036020811015620002e457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062001412565b60405180821515815260200191505060405180910390f35b62000333620014a9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b62000369620014cf565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b620003df60048036036020811015620003ad57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050620014f5565b005b620004d660048036036060811015620003f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156200043757600080fd5b8201836020820111156200044a57600080fd5b803590602001918460018302840111640100000000831117156200046d57600080fd5b9091929391929390803590602001906401000000008111156200048f57600080fd5b820183602082011115620004a257600080fd5b80359060200191846001830284011164010000000083111715620004c557600080fd5b9091929391929390505050620014f8565b60405180821515815260200191505060405180910390f35b6200055d600480360360608110156200050657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050620015f9565b005b620005a9600480360360208110156200057757600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062001a74565b60405180821515815260200191505060405180910390f35b6200060b60048036036020811015620005d957600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062001a7f565b60405180821515815260200191505060405180910390f35b62000668600480360360208110156200063b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062001a8a565b60405180821515815260200191505060405180910390f35b620006ef600480360360608110156200069857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505062001b25565b60405180821515815260200191505060405180910390f35b6200071162001d08565b60405180821515815260200191505060405180910390f35b62000773600480360360208110156200074157600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062001da3565b005b620007ba600480360360208110156200078d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062001da6565b005b6200080660048036036020811015620007d457600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062001e30565b005b62000852600480360360208110156200082057600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062001e33565b60405180821515815260200191505060405180910390f35b620008b4600480360360208110156200088257600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062001e3e565b60405180821515815260200191505060405180910390f35b6200091160048036036020811015620008e457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062001e45565b005b6200095d600480360360208110156200092b57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050620022c7565b60405180821515815260200191505060405180910390f35b62000a32600480360360608110156200098d57600080fd5b8101908080359060200190640100000000811115620009ab57600080fd5b820183602082011115620009be57600080fd5b80359060200191846020830284011164010000000083111715620009e157600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050620022d2565b005b62000a7e6004803603602081101562000a4c57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050620025fe565b60405180821515815260200191505060405180910390f35b62000ae06004803603602081101562000aae57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062002605565b005b62000b2c6004803603602081101562000afa57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062002608565b60405180821515815260200191505060405180910390f35b62000b8e6004803603602081101562000b5c57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062002613565b60405180821515815260200191505060405180910390f35b62000beb6004803603602081101562000bbe57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200261a565b005b62000c376004803603602081101562000c0557600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050620027bd565b60405180821515815260200191505060405180910390f35b62000cb46004803603604081101562000c6757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050620027c4565b60405180821515815260200191505060405180910390f35b62000d166004803603602081101562000ce457600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506200281c565b005b62000d626004803603602081101562000d3057600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506200281f565b60405180821515815260200191505060405180910390f35b62000dbf6004803603602081101562000d9257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200282a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b62000df562002880565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b62000ea86004803603604081101562000e3957600080fd5b81019080803590602001909291908035906020019064010000000081111562000e6157600080fd5b82018360208201111562000e7457600080fd5b8035906020019184600183028401116401000000008311171562000e9757600080fd5b9091929391929390505050620028a6565b60405180821515815260200191505060405180910390f35b62000f0a6004803603602081101562000ed857600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062002943565b60405180821515815260200191505060405180910390f35b62000f676004803603602081101562000f3a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200294a565b005b62000fce6004803603604081101562000f8157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050620029d2565b005b620010776004803603606081101562000fe857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156200103057600080fd5b8201836020820111156200104357600080fd5b803590602001918460018302840111640100000000831117156200106657600080fd5b909192939192939050505062002da3565b60405180821515815260200191505060405180910390f35b6200115660048036036080811015620010a757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156200110f57600080fd5b8201836020820111156200112257600080fd5b803590602001918460018302840111640100000000831117156200114557600080fd5b909192939192939050505062002e55565b005b620011a2600480360360208110156200117057600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062002f62565b005b620011ee60048036036020811015620011bc57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062002f65565b60405180821515815260200191505060405180910390f35b6200126b600480360360408110156200121e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062002f6c565b005b6200128367e18aef04d0a3e7fd60c01b620014f5565b6200129967e0600b94c13d066760c01b6200281c565b620012af6755e8cedcdd449e2360c01b6200281c565b620012c567ab821ba7fedab67160c01b6200281c565b620012db67c540fbd78e0e2a4960c01b6200281c565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166200137e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018062007c5e6026913960400191505060405180910390fd5b6200139467d014260b312542b460c01b6200281c565b620013aa674e25985d1c99d1f260c01b6200281c565b620013c067bde425c8c34183d160c01b620014f5565b620013d66716dfdb0ce3bf1a4060c01b620014f5565b620013ec6770d8631575aaca4460c01b620014f5565b62001402674fc959c4242125e760c01b620014f5565b6200140f816001620033ed565b50565b60006200142a677ab52c65f999e01f60c01b6200281c565b620014406710268b7b424a1bd560c01b6200281c565b620014566713a157f311059a7b60c01b6200281c565b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b50565b60006200151067949773e889da548b60c01b620014f5565b6200152667f5190637de1d985760c01b620014f5565b6200153c671283ba3d6ea74c0a60c01b620014f5565b620015ee86620015e885858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050620015d989898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506200363f565b620037f290919063ffffffff16565b62003b51565b905095945050505050565b6200160f6775afb3da4fd8e1a760c01b620014f5565b6200162567bfa2decb6c19dc2d60c01b620014f5565b6200163b67f4a1ea1f4f5b73f860c01b620014f5565b620016468362003e48565b506200165d67ed9e75bb5506131060c01b620014f5565b620016736715149635d91133b360c01b620014f5565b6200167e83620044ee565b6200169467103a19a679a70be660c01b620014f5565b620016aa67966e805ee7f4488860c01b620014f5565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200178657620016f667b550661105a5e6c160c01b620014f5565b6200170c6778466374c5e817e760c01b620014f5565b6200172267f69688cc9cb79e3e60c01b620014f5565b6200177f833283600067ffffffffffffffff811180156200174257600080fd5b506040519080825280601f01601f191660200182016040528015620017765781602001600182028036833780820191505090505b506000620046a7565b50620019b2565b6200179c676d2f127c6cbded8b60c01b620014f5565b620017b267c55f6a870f441ea360c01b620014f5565b620017c867e6169000db7124bb60c01b620014f5565b60606200186e8484600063a9059cbb60e01b3287604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506000620046a7565b90506200188667101f3d9ea840d48460c01b620014f5565b6200189c674738e61390960d2160c01b620014f5565b6000815111156200199957620018bd6767f3391e72f7277c60c01b620014f5565b620018d367a2cad286bddc35c860c01b620014f5565b620018e967268be481c9d59d1d60c01b620014f5565b620018ff67983f6fa6c3ed02a760c01b620014f5565b8080602001905160208110156200191557600080fd5b81019080805190602001909291905050506200197d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603581526020018062007c846035913960400191505060405180910390fd5b6200199367dd178cef5d9f784360c01b620014f5565b620019b0565b620019af6755daecce03b98ded60c01b620014f5565b5b505b620019c867a40448aea0b9209a60c01b620014f5565b620019de671253b49880e9934960c01b620014f5565b7feb5511fbef89123439f12682f0e9d0fc9696913b26eee55434c77d62c30aa7ca83328484604051808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200194505050505060405180910390a1505050565b600060019050919050565b600060019050919050565b600062001aa267708237df46d4591860c01b620014f5565b62001ab867d221cc5f2e35948d60c01b620014f5565b62001ace6765dfcb590b568f9b60c01b620014f5565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff169050919050565b600062001b3d6732cd5b0dba9710d060c01b620014f5565b62001b53673020761b9813024460c01b620014f5565b62001b6967878b732ad1f1d98060c01b620014f5565b600062001b8167607ee862765df6de60c01b620014f5565b62001b976756ffa96c87add8b460c01b620014f5565b62001ba3858562003b51565b1562001bdf5762001bbf67714b36fd9436b49d60c01b620014f5565b62001bd5673b53315bebb8e15660c01b620014f5565b6001905062001cd1565b62001bf56713be24a30d0dcecd60c01b620014f5565b62001c0b67b87ae6f22a7b024e60c01b620014f5565b62001cce83600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff1615151515815260200160018201548152505062004d8e90919063ffffffff16565b90505b62001ce7673aff67691d44290e60c01b620014f5565b62001cfd67b3bc166758e3426460c01b620014f5565b809150509392505050565b600062001d2067e29fe2f351ca6b2760c01b62001da3565b62001d36676f5dd3f08b97747760c01b62001da3565b62001d4c673a9488d62818322a60c01b62001da3565b600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b50565b62001dbc67e5e772a16aa01e8160c01b620014f5565b62001dd267e47d8686f2af7ef060c01b620014f5565b62001de8678349c7ebd0a81a5f60c01b620014f5565b62001df38162003e48565b5062001e0a670afc4f30eeb71fbf60c01b620014f5565b62001e2067571c5a8b2b0a8b8460c01b620014f5565b62001e2d81600162004f87565b50565b50565b600060019050919050565b6000919050565b62001e5b6747dd6d4e27a092d260c01b6200281c565b62001e7167e0600b94c13d066760c01b6200281c565b62001e876755e8cedcdd449e2360c01b6200281c565b62001e9d67ab821ba7fedab67160c01b6200281c565b62001eb367c540fbd78e0e2a4960c01b6200281c565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1662001f56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018062007c5e6026913960400191505060405180910390fd5b62001f6c67d014260b312542b460c01b6200281c565b62001f82674e25985d1c99d1f260c01b6200281c565b62001f9867736984febec5fd2560c01b6200281c565b62001fae67cbb923c66996310360c01b6200281c565b62001fc4672c114aff1103564b60c01b6200281c565b62001fda67a76a63e34be2bddb60c01b6200281c565b62001ff067a220bc889ca09d2360c01b6200281c565b8073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16141562002093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f477561726465643a2063616e6e6f742072656d6f76652073656c66000000000081525060200191505060405180910390fd5b620020a9679467d7af09c5944d60c01b6200281c565b620020bf67c28a58b1b15ad6de60c01b6200281c565b620020d567c70b0fecc7c6d3b160c01b6200281c565b620020eb67e7892f9392d41a6760c01b6200281c565b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16620021aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f477561726465643a20677561726469616e20646f65736e27742065786973740081525060200191505060405180910390fd5b620021c0675a0de441d13969aa60c01b6200281c565b620021d6674e473b0a29064fba60c01b6200281c565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200224367e398e5606400274660c01b6200281c565b620022596738c3bd156a3471c260c01b6200281c565b7fee943cdb81826d5909c559c6b1ae6908fcaf2dbc16c4b730346736b486283e8b3282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b600060019050919050565b620022e8672d986a70dd19978660c01b620014f5565b620022fe67d2ba19feb39e0b7f60c01b62001da3565b62002314670c5ad53cdb9edd1560c01b62001da3565b6200232a67b6b588d2ebb9ae6960c01b62001da3565b6200234067c4ec9a90a885875260c01b62001da3565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614620023e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018062007b92602f913960400191505060405180910390fd5b620023fe67c3785ba1534db95460c01b62001da3565b6200241467e4202927591248ef60c01b62001da3565b6000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200246c67531cfa2817fbdc8660c01b62001da3565b620024826710d2ca647caa13ef60c01b620014f5565b6200249867c5e1073362bb30bb60c01b620014f5565b620024ae677c2fc0c623f34f1760c01b620014f5565b620024c46754d9e88ab3a297b760c01b620014f5565b62002510848480806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505062005315565b6200252667521fd40cd7f8760560c01b620014f5565b6200253c67b4edb6f6ff7b15b260c01b620014f5565b62002548308362005494565b6200255e677d8bd3a05f4b6b6a60c01b620014f5565b6200257467544450e83605438c60c01b620014f5565b6200257f8162005520565b620025956701520f419008b58e60c01b62001da3565b620025ab6775364c04848b013b60c01b62001da3565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e632604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150505050565b6000919050565b50565b600060019050919050565b6000919050565b6200263067c17b66a0b198af7b60c01b6200281c565b6200264667e0600b94c13d066760c01b6200281c565b6200265c6755e8cedcdd449e2360c01b6200281c565b6200267267ab821ba7fedab67160c01b6200281c565b6200268867c540fbd78e0e2a4960c01b6200281c565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166200272b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018062007c5e6026913960400191505060405180910390fd5b6200274167d014260b312542b460c01b6200281c565b62002757674e25985d1c99d1f260c01b6200281c565b6200276d67dfa24a8cc198350160c01b6200281c565b6200278367f9907d82cd18ee0760c01b6200281c565b6200279967dd37ee49f553c5a760c01b6200281c565b620027af679ad66b1d98f77fdf60c01b6200281c565b620027ba8162005590565b50565b6000919050565b6000620027dc67d9f40698cdafefb460c01b620014f5565b620027f26706b914512d0ddf8e60c01b620014f5565b6200280867a9eddccc515ae51b60c01b620014f5565b62002814838362003b51565b905092915050565b50565b600060019050919050565b60006200284267f4a161f24085f2cc60c01b620014f5565b62002858678a467a5966a6113a60c01b620014f5565b6200286e67f2898d9b947f10d060c01b620014f5565b6200287982620058c1565b9050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000620028be670fa739e07c029f9060c01b6200281c565b620028d467406100042e7653bd60c01b6200281c565b620028ea6784104632bda8198f60c01b6200281c565b6200293a8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505062005988565b90509392505050565b6000919050565b6200296067460bc733531e770560c01b620014f5565b62002976675843065cd6ecf36860c01b620014f5565b6200298c671760cefe6a10da7a60c01b620014f5565b620029978162003e48565b50620029ae67d2b7b08e8476a44960c01b620014f5565b620029c467c4108caade9b50e360c01b620014f5565b620029cf81620044ee565b50565b620029e86770b9d781bcb926b460c01b620014f5565b620029fe67906727e01f6aa85e60c01b620014f5565b62002a146701b827d310cfe11d60c01b620014f5565b600062002a218362003e48565b905062002a3967626a661a01a7804b60c01b620014f5565b62002a4f6728cca11810d21b3960c01b620014f5565b62002a6567a8027d9ed3c4801060c01b620014f5565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562002aec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018062007c33602b913960400191505060405180910390fd5b62002b02671d64f04a0cbd3c2d60c01b620014f5565b62002b186780125257db4855f560c01b620014f5565b62002b2e67786a66558108b48b60c01b620014f5565b62002b4467b83a54420a7a78ee60c01b620014f5565b62002bfd600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff1615151515815260200160018201548152505062005a66565b62002c54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018062007b31602c913960400191505060405180910390fd5b62002c6a67fbd8a228a8f1f77a60c01b620014f5565b62002c8067899e8aec8c945fb560c01b620014f5565b43600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555062002d1d673e58acdf3e6c170360c01b620014f5565b62002d3367038fa1c859cd9e2860c01b620014f5565b7f1ce3cbbc43ee231e5b950332f2b0b9dd7d349291a3ee411ce5c5c7ed745661bb8383604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1505050565b600062002dbb67f8f2e3448d3c936160c01b620014f5565b62002dd167fcd5fc1ac915e2fb60c01b620014f5565b62002de7670820634ea29c7b1160c01b620014f5565b62002e4b8562002e4585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505087620037f290919063ffffffff16565b62003b51565b9050949350505050565b62002e6b67789d2f75e275428460c01b620014f5565b62002e8167981f928ed5e6e9a660c01b620014f5565b62002e97675777f12d09d3b93a60c01b620014f5565b62002ea28562003e48565b5062002eb967fdda32926cab7ac260c01b620014f5565b62002ecf675a6b0b5b15d49fb960c01b620014f5565b62002eda85620044ee565b62002ef067ac231b274a94695760c01b620014f5565b62002f066777f4d02982ad96d560c01b620014f5565b62002f5a85858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506001620046a7565b505050505050565b50565b6000919050565b62002f82671841f1f0bc650a6e60c01b620014f5565b62002f9867d8cb12991a5557fe60c01b620014f5565b62002fae6766398dce8b66c4fe60c01b620014f5565b62002fb98262003e48565b5062002fd067afd5a8ab9f2a3d3460c01b620014f5565b62002fe66722266b293d95abe960c01b620014f5565b62002ffc67a6d9c03b61572e3660c01b620014f5565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141562003084576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018062007d12602d913960400191505060405180910390fd5b6200309a67c9382b55067e211d60c01b620014f5565b620030b0679801b864b284677360c01b620014f5565b620030c667b4f021d294e5e22e60c01b620014f5565b620030dc6767e346a0d6fd8cf760c01b620014f5565b62003195600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff1615151515815260200160018201548152505062005a66565b15620031ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018062007ce5602d913960400191505060405180910390fd5b6200320367443905483164659760c01b620014f5565b62003219676f97ea8f4384dd9d60c01b620014f5565b6001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff021916908315150217905550620032ca67d470191cde7d771860c01b620014f5565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055506200336867304924367638439560c01b620014f5565b6200337e67618ec03a4906a7d860c01b620014f5565b7f27e282f7712c5b4617277759c834b86d163dfc1aad25c8c3c5926a1c9e5644688282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15050565b620034036763a6d6dd8a86352960c01b62001e30565b62003419678eeff62892cd112860c01b62001e30565b6200342f6781019a5110a6fd2560c01b62001e30565b620034456799570e869b77f36060c01b62001e30565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620034cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b81526020018062007a98603b913960400191505060405180910390fd5b620034e367e6730257a24a5d4d60c01b62001e30565b620034f9675137d05a035c900560c01b62001e30565b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062003550676635cb5a489007f160c01b62001e30565b620035666779ff21fdd4bb44bc60c01b62001e30565b801562003624576200358367ce1bdfd86d0ca23360c01b62001e30565b62003599677479b0cc253e30c560c01b62001e30565b620035af67a2b46e4941f5d4f860c01b62001e30565b7f70d9f5a076620216a6050e493f3ce69749de0b68fa4b839ba2518660ba8b9cf0600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a16200363b565b6200363a6725a77b732bce9b0960c01b62001e30565b5b5050565b600062003657676caf41065fc97a4260c01b62005abd565b6200366d679f00e9579a814efe60c01b62005abd565b62003683678bbf08d0403adc3f60c01b62005abd565b6200368f825162005ac0565b826040516020018082805190602001908083835b60208310620036c85780518252602082019150602081019050602083039250620036a3565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405260405160200180807f19457468657265756d205369676e6564204d6573736167653a0a000000000000815250601a0183805190602001908083835b602083106200375c578051825260208201915060208101905060208303925062003737565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310620037af57805182526020820191506020810190506020830392506200378a565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052805190602001209050919050565b60006200380a670d75db982ec4597160c01b62005e4f565b620038206725c2c60ab754182560c01b62005e4f565b62003836673eb64a254569ed0660c01b62005e4f565b60006200384e67fb2a2286066e15e460c01b62005e4f565b6200386467a440db11ec9e986d60c01b62005e4f565b60418351141562003b0457620038856704a5aada48e2763260c01b62005e4f565b6200389b674b98cf1796e5c26660c01b62005e4f565b620038b167d2dfec7b159385fc60c01b62005e4f565b6000620038c96772c2a840621b4aa760c01b62005e4f565b620038df67bfd411e6ba4d07c460c01b62005e4f565b6000620038f767145d23f82764ba9960c01b62005e4f565b6200390d67acdff958a9c6c5dd60c01b62005e4f565b600062003925673b79e3a80932a6a160c01b62005e4f565b6020860151925060408601519150606086015160001a905062003953679b0cdee01a57ea2f60c01b62005e4f565b62003969675dbf88583373227960c01b62005e4f565b601b8160ff161015620039ae576200398c670dc9a1836eb51c3260c01b62005e4f565b620039a2677097d8456a6c3e1560c01b62005e4f565b601b81019050620039c5565b620039c46708b39c61216869e760c01b62005e4f565b5b620039db672ea4d6db7d2138c560c01b62005e4f565b620039f1679ad3f461195a5eee60c01b62005e4f565b601b8160ff1614801562003a17575062003a1667a24e972b59dc7d0560c01b62005e52565b5b8062003a455750601c8160ff1614801562003a44575062003a4367934bee4849491d9560c01b62005e52565b5b5b1562003ae45762003a61676d6a491fc6e072fa60c01b62005e4f565b62003a7767aecd1690d1de9f1c60c01b62005e4f565b60018782858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801562003ad2573d6000803e3d6000fd5b50505060206040510351935062003afb565b62003afa67513fbc3b3a0ad1c060c01b62005e4f565b5b50505062003b1b565b62003b1a6723d6d78de386c96660c01b62005e4f565b5b62003b316707d0c4f11e72cfc960c01b62005e4f565b62003b4767b9689b22f403636c60c01b62005e4f565b8091505092915050565b600062003b6967afadb8a88820edae60c01b620014f5565b62003b7f67f59e6215910c93b460c01b620014f5565b62003b956709a5fd36e15c669560c01b620014f5565b600062003bad678d799f22bb2ad76d60c01b620014f5565b62003bc36740ac51f5da79cb2a60c01b620014f5565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff161562003d135762003c6f67a198f4bcf4ffdda660c01b620014f5565b62003c8567c11e5f9124ff6fdd60c01b620014f5565b6000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015414905062003e12565b62003d2967b8d118ba40c4c5e960c01b620014f5565b62003d3f6710bf881bc6e450cc60c01b620014f5565b6000801b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154141562003dfa5762003da36741130ed6b4861b3560c01b620014f5565b62003db967af61ecb384104a6f60c01b620014f5565b62003dc483620058c1565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614905062003e11565b62003e10672ec87586bd7b51b360c01b620014f5565b5b5b62003e286784dc6662a5d1368560c01b620014f5565b62003e3e67ddc6079ede57a7aa60c01b620014f5565b8091505092915050565b600062003e60678aabea3e2c6bca2560c01b620014f5565b62003e766712cfd887af96e54d60c01b620014f5565b62003e8c673829699bd0916c2060c01b620014f5565b600062003e9862005e5d565b905062003eb067104a97d11b31d29660c01b620014f5565b62003ec667973fbaa3edacc7ce60c01b620014f5565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff1615620040ad5762003f7267b94995b6887eba2d60c01b620014f5565b62003f886748c3d00df978d7f560c01b620014f5565b62003f9e67abc28d2563ef0dff60c01b620014f5565b62003fb467e01714a3962c522a60c01b620014f5565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101541462004091576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603881526020018062007ad36038913960400191505060405180910390fd5b620040a7679499ad56ecdbb2db60c01b620014f5565b620044b9565b620040c367357bc6b129a900b460c01b620014f5565b620040d9671674f1ee1ae0d08b60c01b620014f5565b620040ef676ff03a2c654a99d260c01b620014f5565b6200410567785fda09b7c53a4760c01b620014f5565b6000801b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015414620041a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603881526020018062007ad36038913960400191505060405180910390fd5b620041ba67954b2c179a5d688660c01b620014f5565b620041d0674f269f509bbb534a60c01b620014f5565b620041e667e68180d41a3493f560c01b620014f5565b600081604051602001808273ffffffffffffffffffffffffffffffffffffffff1660601b81526014019150506040516020818303038152906040528051906020012090506200424067bdaaa82eb4dda39960c01b620014f5565b620042566765cf1f9f13f20afb60c01b620014f5565b6200426c678c4ee105f3022bf460c01b620014f5565b620042778162005eb2565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614620042fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603881526020018062007ad36038913960400191505060405180910390fd5b62004312678013dbf8a9e452ae60c01b620014f5565b6200432867d88d2e044dab125860c01b620014f5565b80600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550620043856720f9f84d359edc0660c01b620014f5565b6001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff02191690831515021790555062004436679e1ca48701df546460c01b620014f5565b6200444c67c3772f0565efb24f60c01b620014f5565b7f27e282f7712c5b4617277759c834b86d163dfc1aad25c8c3c5926a1c9e5644688483604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1505b620044cf67ca67e5de902a827d60c01b620014f5565b620044e567d7e2ed585989010260c01b620014f5565b80915050919050565b62004504670ba7a4c1489fca3460c01b620014f5565b6200451a67651acfe85e858e5460c01b620014f5565b62004530675151ef5b0651bcd760c01b620014f5565b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff166200468d576200459b679231e89a19a99aca60c01b620014f5565b620045b0666f3f3d70558f5960c01b620014f5565b620045c6678e10a66544cc428160c01b620014f5565b62004615600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600162006146565b506200462c67c689dcb05f1e851d60c01b620014f5565b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff021916908315150217905550620046a4565b620046a36756b574c458e1b11860c01b620014f5565b5b50565b6060620046bf67d03cbc512208c19360c01b62001e30565b620046d567f0724c2f605051ae60c01b62001e30565b620046eb672c1f163d378fb1c760c01b62001e30565b62004701676e332d1ea295ad6760c01b62001e30565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141562004789576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018062007bc16025913960400191505060405180910390fd5b6200479f6734003fde0e365df960c01b62001e30565b620047b5676f78eb7775d96ac060c01b62001e30565b620047cb6762ea15fa7f97e6d860c01b62001e30565b620047e167c1e60fa2c652db9260c01b62001e30565b3073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141562004868576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018062007cb9602c913960400191505060405180910390fd5b6200487e67c4c441efc53987a460c01b62001e30565b62004894670a4409d86344b6de60c01b62001e30565b620048aa67f30c8cf3d7c2007160c01b62001e30565b620048c0677b93c54c10ec39b960c01b62001e30565b8573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141562004947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018062007b0b6026913960400191505060405180910390fd5b6200495d67d0eadcda5ce01ef660c01b62001e30565b620049736708e5898037826a0e60c01b62001e30565b62004989679eda6876d502675260c01b62001e30565b60608673ffffffffffffffffffffffffffffffffffffffff16633f579f428787876040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101562004a1d57808201518184015260208101905062004a00565b50505050905090810190601f16801562004a4b5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801562004a6d57600080fd5b505af115801562004a82573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101562004aad57600080fd5b810190808051604051939291908464010000000082111562004ace57600080fd5b8382019150602082018581111562004ae557600080fd5b825186600182028301116401000000008211171562004b0357600080fd5b8083526020830192505050908051906020019080838360005b8381101562004b3957808201518184015260208101905062004b1c565b50505050905090810190601f16801562004b675780820380516001836020036101000a031916815260200191505b50604052505050905062004b866787669d68dca3195b60c01b62001e30565b62004b9c673ac670a41bf75b6a60c01b62001e30565b821562004d3e5762004bb967d53a5613f66004c060c01b62001e30565b62004bcf67fefbdbb940a6f1de60c01b62001e30565b62004be5678bc5a3cf9a4cc9b860c01b62001e30565b7f99eeae1fb8801e2e878e060ec5e5b3557b3c4f8106e35d88cb573f293dae4e248787878785604051808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101562004c8f57808201518184015260208101905062004c72565b50505050905090810190601f16801562004cbd5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101562004cf857808201518184015260208101905062004cdb565b50505050905090810190601f16801562004d265780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a162004d55565b62004d54674b9471e9fc68f75f60c01b62001e30565b5b62004d6b6744627d43ccecd7f160c01b62001e30565b62004d816717d248a7372779a660c01b62001e30565b8091505095945050505050565b600062004da6679c9d1daabf83176160c01b62006397565b62004dbc674a60477fa1015d9d60c01b62006397565b62004dd2671d2dfd1cbc37881260c01b62006397565b600062004dea675c84658542d4247860c01b62006397565b62004e00676c38c63a8395bd4160c01b62006397565b83600001511562004f3a5762004e21673a129e7e3fa8299860c01b62006397565b62004e3767d5d911350233c4aa60c01b62006397565b62004e4d6788aca451346a904360c01b62006397565b60008460200151141562004e915762004e71671cab9521da0eae6e60c01b62006397565b62004e87679a431a7af70a318b60c01b62006397565b6001905062004f34565b62004ea76728a02509a30cdf2f60c01b62006397565b62004ebd67a315ca16c55cdf1660c01b62006397565b600083141562004efd5762004edd67e5e2fd7cbec5211b60c01b62006397565b62004ef3676bc9eb4a60fdc77060c01b62006397565b6001905062004f33565b62004f13670dbcda2f621ef14860c01b62006397565b62004f2967cbf2e8a46e9eb31e60c01b62006397565b8284602001511190505b5b62004f51565b62004f50679312107b7e60296d60c01b62006397565b5b62004f67676d1c114b386646c760c01b62006397565b62004f7d67b26d3c1cf974c30e60c01b62006397565b8091505092915050565b62004f9d671e986652550cd6b760c01b62001e30565b62004fb36712f52b022ec7e94e60c01b62001e30565b62004fc967d13332898fe9198160c01b62001e30565b62004fdf677771d5f99d0f0ea860c01b62001e30565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200505f57600080fd5b505afa15801562005074573d6000803e3d6000fd5b505050506040513d60208110156200508b57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614156200510b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018062007c08602b913960400191505060405180910390fd5b62005121671d9e65030376f52a60c01b62001e30565b6200513767de7455456727db8960c01b62001e30565b6200514d671ad3abe77081920060c01b62001e30565b8173ffffffffffffffffffffffffffffffffffffffff1663d784d426600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015620051d957600080fd5b505af1158015620051ee573d6000803e3d6000fd5b5050505062005208672dc6faf1b96e638260c01b62001e30565b6200521e673ac280b3b6cdcef460c01b62001e30565b8015620052fa576200523b674cef15a637c5d09560c01b62001e30565b6200525167a51c2a16f15f5aee60c01b62001e30565b620052676739bd33583f67f11d60c01b62001e30565b7feec27cdb8bd6f55c2c537deb52ab094a2437e85ef5197e6f064f90bff3ff563f82600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a162005311565b6200531067a8db68da35e394a360c01b62001e30565b5b5050565b6200532b67f4de5e8e73d6ad8760c01b6200281c565b6200534167db1ce0981035d84760c01b6200281c565b6200535767e97a0a25809a3f0960c01b6200281c565b600081511415620053b5576200537867de11b839232da49160c01b6200281c565b6200538e67b59bd2ea0c1c89a260c01b6200281c565b620053a467652fe2786000e62060c01b6200281c565b620053af3262005590565b62005491565b620053cb67ad5f6f13dddc2ad960c01b6200281c565b620053e1672af46088979bcb2160c01b6200281c565b620053f76796cb81cf0bf6606d60c01b6200281c565b60008151905062005413672f4c11881b8dca8c60c01b6200281c565b6200542967cec4e8db5057edad60c01b6200281c565b60005b818110156200548e576200544b671a5cc94c8b734dd960c01b6200281c565b6200546167e437d14e98e20b2f60c01b6200281c565b620054808382815181106200547257fe5b602002602001015162005590565b80806001019150506200542c565b50505b50565b620054aa671af942b4819087fc60c01b62001e30565b620054c0670f0a44d9ed8d066760c01b62001e30565b620054d667af6f6ca5a19aa0c460c01b62001e30565b620054e38260006200639a565b620054f967dd02c4093239d2e360c01b62001e30565b6200550f674754410ba216543b60c01b62001e30565b6200551c816000620033ed565b5050565b62005536670beab42e12728d3b60c01b62002f62565b6200554c675ecbac840a5512ec60c01b62002f62565b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b620055a66703611a9e4063d8ea60c01b6200281c565b620055bc67ee1baacaa033494260c01b6200281c565b620055d26751e5840de998a97760c01b6200281c565b620055e8676f82de74e2e2e03560c01b6200281c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156200568c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f477561726465643a2063616e6e6f74206164642030783020677561726469616e81525060200191505060405180910390fd5b620056a26717cb80dba7a8a0ea60c01b6200281c565b620056b867e2f8fabe2a63d8b660c01b6200281c565b620056ce677550a657f22d30dc60c01b6200281c565b620056e4673c81d7073dbe6f3060c01b6200281c565b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615620057a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f477561726465643a20677561726469616e20616c72656164792065786973747381525060200191505060405180910390fd5b620057ba67bc5a1f0994a7f54e60c01b6200281c565b620057d0679a7f014629c7374960c01b6200281c565b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200583d67d71c83e9f3188e9d60c01b6200281c565b6200585367e4bfbd26cb5c77e660c01b6200281c565b7fbc3292102fa77e083913064b282926717cdfaede4d35f553d66366c0a3da755a3282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b6000620058d967371a9b64621a2c3d60c01b620014f5565b620058ef676a9989a74d1b4b0b60c01b620014f5565b620059056764d7e3a68d8c5bb760c01b620014f5565b600082604051602001808273ffffffffffffffffffffffffffffffffffffffff1660601b81526014019150506040516020818303038152906040528051906020012090506200595f6788a53d430ff364e660c01b620014f5565b62005975673cb194ec28165cb960c01b620014f5565b620059808162005eb2565b915050919050565b6000620059a067fbe9af14abc78ca860c01b6200281c565b620059b667bd3616cf00f8ad2b60c01b6200281c565b620059cc670aad941719c9b69b60c01b6200281c565b6000620059e38385620037f290919063ffffffff16565b9050620059fb6706f556c4601e7cd060c01b6200281c565b62005a1167344e7bee2db8345860c01b6200281c565b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b600062005a7e679cab3b0c44b8044060c01b62006397565b62005a9467ca9af921644e3db460c01b62006397565b62005aaa67fb2347240336566c60c01b62006397565b62005ab6824362004d8e565b9050919050565b50565b606062005ad867e3a0abd5bcd9be4560c01b620065ec565b62005aee676f4ac71b01df0db160c01b620065ec565b62005b046721d33336b8b2843560c01b620065ec565b600082141562005b8e5762005b246799734a524846f5ea60c01b620065ec565b62005b3a6786ec3af2b5204b2d60c01b620065ec565b62005b50675f049c9df345fcb860c01b620065ec565b6040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905062005e4a565b62005ba4674e123f29ad8e63ae60c01b620065ec565b62005bba678a02b86c6f5ae79060c01b620065ec565b62005bd067aef6cecdbdb7f12260c01b620065ec565b600082905062005beb675ee403aa4c2e194160c01b620065ec565b62005c0167c9a686dccda57deb60c01b620065ec565b600062005c196770f6e6f301963e5060c01b620065ec565b62005c2f67cec46452a4c2007960c01b620065ec565b5b6000821462005c815762005c4f67a2c57d3c793a6eb760c01b620065ec565b808060010191505062005c6d677b9437f81985d6c960c01b620065ec565b600a828162005c7857fe5b04915062005c30565b62005c97675b6ccf3f6790a03260c01b620065ec565b62005cad67c5942845ca4d8bd160c01b620065ec565b60608167ffffffffffffffff8111801562005cc757600080fd5b506040519080825280601f01601f19166020018201604052801562005cfb5781602001600182028036833780820191505090505b50905062005d1467f47605e8a1a97a4f60c01b620065ec565b62005d2a67fb23949ab383488b60c01b620065ec565b600060018303905062005d4867f586ddddd202275b60c01b620065ec565b85935062005d61670a29638383e5bbf260c01b620065ec565b62005d7767417a1c155b8c8d7860c01b620065ec565b5b6000841462005e165762005d976730db4ddbb2bce57560c01b620065ec565b600a848162005da257fe5b0660300160f81b8282806001900393508151811062005dbd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535062005e026753f1af39e9b748c960c01b620065ec565b600a848162005e0d57fe5b04935062005d78565b62005e2c674d1eb2df4daf6cff60c01b620065ec565b62005e42677ce056f455b7e7f260c01b620065ec565b819450505050505b919050565b50565b600060019050919050565b600062005e7567e6b9fb986a1ba5a160c01b62002f62565b62005e8b67e5f2b4fde85ab0e060c01b62002f62565b62005ea1675a28d96f6aadd0b960c01b62002f62565b62005ead6014620065ef565b905090565b600062005eca67834d7dcd68b198b060c01b62001e30565b62005ee0673ff175921f5f538960c01b62001e30565b62005ef66701ee97873b03827f60c01b62001e30565b60606040518060200162005f0a9062006b22565b6020820181038252601f19601f82011660405250600060a01b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600060a01b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516020018086805190602001908083835b6020831062005fa6578051825260208201915060208101905060208303925062005f81565b6001836020036101000a0380198251168184511680821785525050505050509050018573ffffffffffffffffffffffffffffffffffffffff19168152600c018473ffffffffffffffffffffffffffffffffffffffff1660601b81526014018373ffffffffffffffffffffffffffffffffffffffff19168152600c018273ffffffffffffffffffffffffffffffffffffffff1660601b81526014019550505050505060405160208183030381529060405290506200606e67c5994a000b72ff9b60c01b62001e30565b62006084673303398cfdf0748c60c01b62001e30565b600060ff60f81b3085848051906020012060405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018473ffffffffffffffffffffffffffffffffffffffff1660601b81526014018381526020018281526020019450505050506040516020818303038152906040528051906020012090506200612367d5638e0e835e9fc260c01b62001e30565b620061396765b94d8c76f4fb1960c01b62001e30565b8060001c92505050919050565b60006200615e6769d35e844fb436a560c01b62001e30565b6200617467d05843a5b30ee56160c01b62001e30565b6200618a676a5949dc1605b72d60c01b62001e30565b600083600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051620061e19062006b22565b808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff168152602001925050508190604051809103906000f59050801580156200623f573d6000803e3d6000fd5b50905062006258671fbc5a34026c932160c01b62001e30565b6200626e6729f16a915d858e6660c01b62001e30565b82156200634a576200628b674ad44f27dbd7e2bf60c01b62001e30565b620062a1671948a2809685e8a560c01b62001e30565b620062b7674e798983ba62ea2160c01b62001e30565b7f2682a218602b9036c9869f006c5405ee4a1a65267653eb7e286123e5e1afde4c81600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a162006361565b620063606753f95733749efee660c01b62001e30565b5b620063776713228e0b40e520f960c01b62001e30565b6200638d679f460b7957fd280860c01b62001e30565b8091505092915050565b50565b620063b06757e53bb83d0ee18c60c01b62001e30565b620063c6674b6db0292681de8060c01b62001e30565b620063dc67634dbba0de15713160c01b62001e30565b620063f26716603faf2a4da76360c01b62001e30565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200647a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603581526020018062007b5d6035913960400191505060405180910390fd5b6200649067fdb2085a5ff3fca060c01b62001e30565b620064a6677c845799041d8f7d60c01b62001e30565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620064fd67cb55668fb6fee71c60c01b62001e30565b6200651367372f88a4084cef5b60c01b62001e30565b8015620065d15762006530671b487ad986e5d06660c01b62001e30565b6200654667734c16c2ea37d8f760c01b62001e30565b6200655c670feaed23a94b80cf60c01b62001e30565b7f02e3c47057b8dc27a0929d3c394c314c73aa002d46939c31c9f71d1e77e86c10600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1620065e8565b620065e767b56e759927012ec660c01b62001e30565b5b5050565b50565b6000620066076787c8246a4b35d1f160c01b62002f62565b6200661d67976a1e8d41064d2460c01b62002f62565b62006633671867d8bf077bb31160c01b62002f62565b60006200664b67bdfeda5454a1273960c01b62002f62565b62006661677709e048711a13c960c01b62002f62565b6200666b620067a7565b1562006742576200668767d3c6f6b0bcac9b6e60c01b62002f62565b6200669d673b2573735f5d680260c01b62002f62565b620066b3675089eb0622c78a2260c01b62002f62565b6000836000369050039050620066d4674bc94a8e9a6ee57960c01b62002f62565b6200673960003683906014850192620066f09392919062006b30565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050620069a8565b91505062006772565b62006758677e45e81af2ec2edc60c01b62002f62565b6200676e67391e31dbfdfb407e60c01b62002f62565b3390505b6200678867c4042e2c7c2c999760c01b62002f62565b6200679e67fc44c5cccf2cd16760c01b62002f62565b80915050919050565b6000620067bf6714ec9ba31585b6f760c01b62002f62565b620067d56764d00f8ee4cbc0f460c01b62002f62565b620067eb6728aef4b71ffef7e260c01b62002f62565b600062006803677b6cf6392b8d09d960c01b62002f62565b6200681967da655f124163f4bc60c01b62002f62565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156200695e5762006886678c4556fd14dc507160c01b62002f62565b6200689c674811af4455ee520960c01b62002f62565b620068b267ae36e4b52033411860c01b62002f62565b620068c867ffe63a27679b309260c01b62002f62565b602c6000369050101562006928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018062007be66022913960400191505060405180910390fd5b6200693e67d1762b0b1ca636f360c01b62002f62565b620069546769c465f7e405b9f660c01b62002f62565b6001905062006975565b620069746710f40798097af22060c01b62002f62565b5b6200698b671855328cbdf7411660c01b62002f62565b620069a1670e4f1457e534f9ac60c01b62002f62565b8091505090565b6000620069c0670df8d76b8cabf76a60c01b62006b1f565b620069d667e180fcce9e2bf4c560c01b62006b1f565b620069ec670dcb70abe8e8bb0b60c01b62006b1f565b600062006a0467c9f13cc22eb780e060c01b62006b1f565b62006a1a67c60f8d891ff21de960c01b62006b1f565b62006a306782bb9e679e55c73460c01b62006b1f565b601483511462006aa8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f42797465734c69623a20696e76616c69642064617461206c656e67746800000081525060200191505060405180910390fd5b62006abe679ea304b1b6348ade60c01b62006b1f565b62006ad467a0049b4768bf518260c01b62006b1f565b6c01000000000000000000000000602084015104905062006b00671f4dc55703cfba1860c01b62006b1f565b62006b1667afb63a07e82275e260c01b62006b1f565b80915050919050565b50565b610f328062006b6683390190565b6000808585111562006b4157600080fd5b8386111562006b4f57600080fd5b600185028301915084860390509450949250505056fe608060405234801561001057600080fd5b50604051610f32380380610f328339818101604052604081101561003357600080fd5b810190808051906020019092919080519060200190929190505050610068674c05ed6aa1cd281960c01b61019960201b60201c565b610082675db0dfd7018850c360c01b61019960201b60201c565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506100dc6727cd07b305f6130f60c01b61019c60201b60201c565b6100f6673763e953c2595ed960c01b61019c60201b60201c565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610151679802ebbc23dba3ba60c01b61019c60201b60201c565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505061019f565b50565b50565b610d84806101ae6000396000f3fe6080604052600436106100e15760003560e01c80635c60da1b1161007f578063a42ea70811610059578063a42ea7081461067a578063d1c43eae146106d0578063d784d42614610726578063f77c479114610777576100e8565b80635c60da1b1461058c5780637b103999146105cd5780638f9bda6e1461060e576100e8565b80633f579f42116100bb5780633f579f421461031f57806344f9c9ec14610448578063550648ff146104b457806356c2fc6c14610520576100e8565b806310b90163146101f1578063221523e51461025d57806325afd90f146102c9576100e8565b366100e857005b3480156100f457600080fd5b5061010967d1c166158a76fd7860c01b6107b8565b61011d670a4a924f04604fe560c01b6107b8565b610131670ec1ea2f1a11078060c01b6107b8565b600080369050146101db57610150670366ed24f6d51c0d60c01b6107b8565b61016467583b5ef5a1a2fce260c01b6107b8565b61017867726acafc478ad1f860c01b6107b8565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506101b3673d8591565072bf1f60c01b6107b8565b368060008037600080826000855af43d806000803e81600081146101d657816000f35b816000fd5b6101ef67967eae13d5222be260c01b6107b8565b005b3480156101fd57600080fd5b506102456004803603602081101561021457600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107bb565b60405180821515815260200191505060405180910390f35b34801561026957600080fd5b506102b16004803603602081101561028057600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107c2565b60405180821515815260200191505060405180910390f35b3480156102d557600080fd5b5061031d600480360360208110156102ec57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107b8565b005b34801561032b57600080fd5b506103cd6004803603606081101561034257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561038957600080fd5b82018360208201111561039b57600080fd5b803590602001918460018302840111640100000000831117156103bd57600080fd5b90919293919293905050506107c9565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561040d5780820151818401526020810190506103f2565b50505050905090810190601f16801561043a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561045457600080fd5b5061049c6004803603602081101561046b57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610afd565b60405180821515815260200191505060405180910390f35b3480156104c057600080fd5b50610508600480360360208110156104d757600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b08565b60405180821515815260200191505060405180910390f35b34801561052c57600080fd5b506105746004803603602081101561054357600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b0f565b60405180821515815260200191505060405180910390f35b34801561059857600080fd5b506105a1610b1a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105d957600080fd5b506105e2610b40565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561061a57600080fd5b506106626004803603602081101561063157600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b66565b60405180821515815260200191505060405180910390f35b34801561068657600080fd5b506106ce6004803603602081101561069d57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b71565b005b3480156106dc57600080fd5b50610724600480360360208110156106f357600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b74565b005b34801561073257600080fd5b506107756004803603602081101561074957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b77565b005b34801561078357600080fd5b5061078c610d27565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b50565b6000919050565b6000919050565b60606107df6715e98a49f265557060c01b6107b8565b6107f367f6266a592c249da560c01b610b74565b6108076728279893f8537e1960c01b610b74565b61081b67d300d0a9ecbe6cac60c01b610b74565b61082f678d5c0caa285e3ec560c01b610b74565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180610d4c602c913960400191505060405180910390fd5b6108e76718b2e4dd03bc759a60c01b610b74565b6108fb67f8b65e28b897a44f60c01b610b74565b61090f67390c85347f6e2a2360c01b6107b8565b61092367d2a3446ca25e972660c01b6107b8565b61093767aca9b4091d5a9bc860c01b6107b8565b61094b67cce790cad14eb25260c01b6107b8565b606061096167b3adbec8c64c374360c01b6107b8565b6109756791d717b4dffb179d60c01b6107b8565b600061098b67310ff00dd2ac011060c01b6107b8565b8673ffffffffffffffffffffffffffffffffffffffff1686868660405180838380828437808301925050509250505060006040518083038185875af1925050503d80600081146109f7576040519150601f19603f3d011682016040523d82523d6000602084013e6109fc565b606091505b508093508192505050610a1967a450d3c3f63b6d4d60c01b6107b8565b610a2d679a3e7d330ffc414560c01b6107b8565b610a41671925c722e30d4f6d60c01b6107b8565b80610ab4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4163636f756e743a207472616e73616374696f6e20726576657274656400000081525060200191505060405180910390fd5b610ac867a7fa168288301d1c60c01b6107b8565b610adc6745320fb16320fa4a60c01b6107b8565b610af06779ce6fa2117b3f1e60c01b6107b8565b8192505050949350505050565b600060019050919050565b6000919050565b600060019050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019050919050565b50565b50565b610b8b6735cfec4d4a3972f660c01b6107b8565b610b9f67f6266a592c249da560c01b610b74565b610bb36728279893f8537e1960c01b610b74565b610bc767d300d0a9ecbe6cac60c01b610b74565b610bdb678d5c0caa285e3ec560c01b610b74565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180610d4c602c913960400191505060405180910390fd5b610c936718b2e4dd03bc759a60c01b610b74565b610ca767f8b65e28b897a44f60c01b610b74565b610cbb67dbd823a6f693c9e360c01b6107b8565b610ccf6759af4a1e64a734ae60c01b6107b8565b610ce367123d1e7dcae181d060c01b6107b8565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fe436f6e74726f6c6c65643a206d73672e73656e646572206973206e6f742074686520636f6e74726f6c6c6572a164736f6c634300060c000a4163636f756e74436f6e74726f6c6c65723a2063616e6e6f7420736574206163636f756e7420496d706c656d656e746174696f6e20746f20307830506572736f6e616c4163636f756e7452656769737472793a2073656e646572206973206e6f7420746865206163636f756e74206f776e65724163636f756e74436f6e74726f6c6c65723a2063616e6e6f742073656e6420746f2073656c66506572736f6e616c4163636f756e7452656769737472793a206f776e657220646f65736e27742065786973744163636f756e74436f6e74726f6c6c65723a2063616e6e6f7420736574206163636f756e7420726567697374727920746f20307830496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742074686520696e697469616c697a65724163636f756e74436f6e74726f6c6c65723a2063616e6e6f742073656e6420746f2030783047617465776179526563697069656e743a20696e76616c6964206d73672e646174614163636f756e74436f6e74726f6c6c65723a206163636f756e7420616c7265616479207570677261646564506572736f6e616c4163636f756e7452656769737472793a2063616e6e6f742072656d6f76652073656c66477561726465643a2074782e6f726967696e206973206e6f742074686520677561726469616e506572736f6e616c4163636f756e7452656769737472793a204552433230546f6b656e207472616e736665722072657665727465644163636f756e74436f6e74726f6c6c65723a2063616e6e6f742073656e6420746f20636f6e74726f6c6c6572506572736f6e616c4163636f756e7452656769737472793a206f776e657220616c726561647920657869737473506572736f6e616c4163636f756e7452656769737472793a2063616e6e6f742061646420307830206f776e6572a164736f6c634300060c000a", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/ReentrancyGuard.json b/artifacts/ReentrancyGuard.json index 4ec473d4..eea28751 100644 --- a/artifacts/ReentrancyGuard.json +++ b/artifacts/ReentrancyGuard.json @@ -7,6 +7,57 @@ "inputs": [], "name": "ReentrancyError", "type": "error" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__9296fc39", + "type": "bytes8" + } + ], + "name": "c_9296fc39", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__9296fc39", + "type": "bytes8" + } + ], + "name": "c_false9296fc39", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__9296fc39", + "type": "bytes8" + } + ], + "name": "c_true9296fc39", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" } ], "bytecode": "0x", diff --git a/artifacts/SafeERC20.json b/artifacts/SafeERC20.json index 915c4351..c1fa53fb 100644 --- a/artifacts/SafeERC20.json +++ b/artifacts/SafeERC20.json @@ -3,8 +3,8 @@ "contractName": "SafeERC20", "sourceName": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "abi": [], - "bytecode": "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bc2b5f2dd5fb2d16c42ba7ec07a996cd23388cc2c0847428792af17b562b998064736f6c63430008110033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bc2b5f2dd5fb2d16c42ba7ec07a996cd23388cc2c0847428792af17b562b998064736f6c63430008110033", + "bytecode": "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208e1a70fc3e9e2fe9cd32e7e06a26fc5a30ee3cd18f9384a5493a35f8391c7e5364736f6c63430008110033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208e1a70fc3e9e2fe9cd32e7e06a26fc5a30ee3cd18f9384a5493a35f8391c7e5364736f6c63430008110033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/SignatureValidator.json b/artifacts/SignatureValidator.json index 33e64f29..835dfc8e 100644 --- a/artifacts/SignatureValidator.json +++ b/artifacts/SignatureValidator.json @@ -3,6 +3,57 @@ "contractName": "SignatureValidator", "sourceName": "src/common/signature/SignatureValidator.sol", "abi": [ + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__52615ca8", + "type": "bytes8" + } + ], + "name": "c_52615ca8", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__52615ca8", + "type": "bytes8" + } + ], + "name": "c_false52615ca8", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__52615ca8", + "type": "bytes8" + } + ], + "name": "c_true52615ca8", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [], "name": "chainId", diff --git a/artifacts/StargateFacet.json b/artifacts/StargateFacet.json index 28950f9a..b3516c38 100644 --- a/artifacts/StargateFacet.json +++ b/artifacts/StargateFacet.json @@ -3,59 +3,59 @@ "contractName": "StargateFacet", "sourceName": "src/bridges/facets/StargateFacet.sol", "abi": [ - { - "inputs": [], - "name": "InvalidAmount", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidConfig", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidSourcePoolId", - "type": "error" - }, { "inputs": [], "name": "ReentrancyError", "type": "error" }, - { - "inputs": [], - "name": "SenderNotStargateRouter", - "type": "error" - }, - { - "inputs": [], - "name": "StargateRouterAddressZero", - "type": "error" - }, { "anonymous": false, "inputs": [ { "indexed": false, - "internalType": "uint16", + "internalType": "uint256", "name": "chainId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint16", + "name": "lzChainId", "type": "uint16" + } + ], + "name": "LzChainIdSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "from", + "type": "address" }, { "indexed": false, "internalType": "address", - "name": "token", + "name": "to", "type": "address" }, { "indexed": false, - "internalType": "uint16", - "name": "poolId", - "type": "uint16" + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "chainIdTo", + "type": "uint256" } ], - "name": "SGAddedPool", + "name": "StargateETHSwap", "type": "event" }, { @@ -64,17 +64,23 @@ { "indexed": false, "internalType": "address", - "name": "stargate", + "name": "stargateRouter", "type": "address" }, { "indexed": false, - "internalType": "uint16", + "internalType": "address", + "name": "stargateETHRouter", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", "name": "chainId", - "type": "uint16" + "type": "uint256" } ], - "name": "SGInitialized", + "name": "StargateInitialized", "type": "event" }, { @@ -93,30 +99,18 @@ "type": "uint256" } ], - "name": "SGReceivedOnDestination", + "name": "StargateReceivedOnDestination", "type": "event" }, { "anonymous": false, "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "bridgeUsed", - "type": "string" - }, { "indexed": false, "internalType": "address", "name": "fromToken", "type": "address" }, - { - "indexed": false, - "internalType": "address", - "name": "toToken", - "type": "address" - }, { "indexed": false, "internalType": "address", @@ -137,161 +131,130 @@ }, { "indexed": false, - "internalType": "uint16", + "internalType": "uint256", "name": "chainIdTo", - "type": "uint16" + "type": "uint256" } ], - "name": "SGTransferStarted", + "name": "StargateTokenSwap", "type": "event" }, { - "anonymous": false, "inputs": [ { - "indexed": false, - "internalType": "address", - "name": "newAddress", - "type": "address" + "internalType": "bytes8", + "name": "c__8de507f8", + "type": "bytes8" } ], - "name": "SGUpdatedRouter", - "type": "event" + "name": "c_8de507f8", + "outputs": [], + "stateMutability": "pure", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": false, - "internalType": "uint256", - "name": "newSlippage", - "type": "uint256" + "internalType": "bytes8", + "name": "c__9296fc39", + "type": "bytes8" } ], - "name": "SGUpdatedSlippageTolerance", - "type": "event" + "name": "c_9296fc39", + "outputs": [], + "stateMutability": "pure", + "type": "function" }, { "inputs": [ { - "internalType": "uint16", - "name": "_chainId", - "type": "uint16" - }, - { - "internalType": "address", - "name": "_token", - "type": "address" - }, + "internalType": "bytes8", + "name": "c__8de507f8", + "type": "bytes8" + } + ], + "name": "c_false8de507f8", + "outputs": [ { - "internalType": "uint16", - "name": "_poolId", - "type": "uint16" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "sgAddPool", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "pure", "type": "function" }, { "inputs": [ { - "components": [ - { - "internalType": "uint256", - "name": "qty", - "type": "uint256" - }, - { - "internalType": "address", - "name": "fromToken", - "type": "address" - }, - { - "internalType": "address", - "name": "toToken", - "type": "address" - }, - { - "internalType": "uint16", - "name": "dstChainId", - "type": "uint16" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "address", - "name": "destStargateComposed", - "type": "address" - } - ], - "internalType": "struct StargateFacet.StargateData", - "name": "_sgData", - "type": "tuple" + "internalType": "bytes8", + "name": "c__9296fc39", + "type": "bytes8" } ], - "name": "sgBridgeTokens", - "outputs": [], - "stateMutability": "payable", + "name": "c_false9296fc39", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", "type": "function" }, { "inputs": [ { - "internalType": "uint16", - "name": "_destChain", - "type": "uint16" - }, + "internalType": "bytes8", + "name": "c__8de507f8", + "type": "bytes8" + } + ], + "name": "c_true8de507f8", + "outputs": [ { - "internalType": "address", - "name": "_receiver", - "type": "address" - }, + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ { - "internalType": "address", - "name": "_router", - "type": "address" + "internalType": "bytes8", + "name": "c__9296fc39", + "type": "bytes8" } ], - "name": "sgCalculateFees", + "name": "c_true9296fc39", "outputs": [ { - "internalType": "uint256", + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "pure", "type": "function" }, { "inputs": [ { - "internalType": "uint16", + "internalType": "uint256", "name": "_chainId", - "type": "uint16" - }, - { - "internalType": "address", - "name": "_token", - "type": "address" - }, - { - "internalType": "uint16", - "name": "_poolId", - "type": "uint16" + "type": "uint256" } ], - "name": "sgCheckPoolId", + "name": "getLzChainId", "outputs": [ { - "internalType": "bool", + "internalType": "uint16", "name": "", - "type": "bool" + "type": "uint16" } ], "stateMutability": "view", @@ -305,12 +268,34 @@ "type": "address" }, { - "internalType": "uint16", + "internalType": "address", + "name": "_stargateEthRouter", + "type": "address" + }, + { + "internalType": "uint256", "name": "_chainId", - "type": "uint16" + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "internalType": "uint16", + "name": "layerZeroChainId", + "type": "uint16" + } + ], + "internalType": "struct StargateFacet.ChainIdConfig[]", + "name": "_chainIdConfigs", + "type": "tuple[]" } ], - "name": "sgInitialize", + "name": "initStargate", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -319,36 +304,35 @@ "inputs": [ { "internalType": "uint256", - "name": "_amount", + "name": "_chainId", "type": "uint256" - } - ], - "name": "sgMinAmountOut", - "outputs": [ + }, { - "internalType": "uint256", - "name": "", - "type": "uint256" + "internalType": "uint16", + "name": "_lzChainId", + "type": "uint16" } ], - "stateMutability": "view", + "name": "setLzChainId", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", - "name": "_chainId", + "name": "", "type": "uint16" }, { "internalType": "bytes", - "name": "_srcAddress", + "name": "", "type": "bytes" }, { "internalType": "uint256", - "name": "_nonce", + "name": "", "type": "uint256" }, { @@ -358,7 +342,7 @@ }, { "internalType": "uint256", - "name": "amountLD", + "name": "_amountLD", "type": "uint256" }, { @@ -375,22 +359,99 @@ { "inputs": [ { - "internalType": "uint16", - "name": "_chainId", - "type": "uint16" + "components": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "dstChainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint16", + "name": "slippage", + "type": "uint16" + } + ], + "internalType": "struct StargateFacet.StargateETHData", + "name": "_data", + "type": "tuple" + } + ], + "name": "stargateETHTransfer", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "bridgeToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "dstChainId", + "type": "uint256" + }, + { + "internalType": "uint16", + "name": "srcPoolId", + "type": "uint16" + }, + { + "internalType": "uint16", + "name": "dstPoolId", + "type": "uint16" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint16", + "name": "slippage", + "type": "uint16" + }, + { + "internalType": "address", + "name": "destStargateComposed", + "type": "address" + } + ], + "internalType": "struct StargateFacet.StargateData", + "name": "_data", + "type": "tuple" }, { - "internalType": "address", - "name": "_token", + "internalType": "contract IStargateRouter", + "name": "_router", "type": "address" } ], - "name": "sgRetrievePoolId", + "name": "stargateFees", "outputs": [ { - "internalType": "uint16", + "internalType": "uint256", "name": "", - "type": "uint16" + "type": "uint256" } ], "stateMutability": "view", @@ -399,32 +460,61 @@ { "inputs": [ { - "internalType": "address", - "name": "_newAddress", - "type": "address" - } - ], - "name": "sgUpdateRouter", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_newSlippage", - "type": "uint256" + "components": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "bridgeToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "dstChainId", + "type": "uint256" + }, + { + "internalType": "uint16", + "name": "srcPoolId", + "type": "uint16" + }, + { + "internalType": "uint16", + "name": "dstPoolId", + "type": "uint16" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint16", + "name": "slippage", + "type": "uint16" + }, + { + "internalType": "address", + "name": "destStargateComposed", + "type": "address" + } + ], + "internalType": "struct StargateFacet.StargateData", + "name": "_data", + "type": "tuple" } ], - "name": "sgUpdateSlippageTolerance", + "name": "stargateTokenTransfer", "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "payable", "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b506125df806100206000396000f3fe6080604052600436106100915760003560e01c8063498ee46911610059578063498ee469146101925780634be85c35146101bb578063618c3f29146101e4578063ab8236f314610221578063b8c06ccc1461024a57610091565b80631f8097fb14610096578063217aabb7146100b25780632a8dcdb7146100db57806342d910c614610118578063430dbc3a14610155575b600080fd5b6100b060048036038101906100ab91906117a5565b610273565b005b3480156100be57600080fd5b506100d960048036038101906100d49190611961565b610734565b005b3480156100e757600080fd5b5061010260048036038101906100fd9190611859565b61078c565b60405161010f9190611d9e565b60405180910390f35b34801561012457600080fd5b5061013f600480360381019061013a919061180a565b610824565b60405161014c9190612049565b60405180910390f35b34801561016157600080fd5b5061017c600480360381019061017791906117ce565b610936565b6040516101899190611eef565b60405180910390f35b34801561019e57600080fd5b506101b960048036038101906101b49190611740565b6109b5565b005b3480156101c757600080fd5b506101e260048036038101906101dd91906116ee565b610c66565b005b3480156101f057600080fd5b5061020b60048036038101906102069190611961565b610d5f565b6040516102189190612049565b60405180910390f35b34801561022d57600080fd5b50610248600480360381019061024391906118a8565b610d9e565b005b34801561025657600080fd5b50610271600480360381019061026c9190611859565b610f1c565b005b600061027d610fe6565b90506001816000015414156102be576040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600181600001819055506000826000015111610306576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16826020015173ffffffffffffffffffffffffffffffffffffffff1614806103755750600073ffffffffffffffffffffffffffffffffffffffff16826040015173ffffffffffffffffffffffffffffffffffffffff16145b806103b05750600073ffffffffffffffffffffffffffffffffffffffff16826080015173ffffffffffffffffffffffffffffffffffffffff16145b806103eb5750600073ffffffffffffffffffffffffffffffffffffffff168260a0015173ffffffffffffffffffffffffffffffffffffffff16145b15610422576040517f35be3ac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061042c611013565b905060006104508260000160149054906101000a900461ffff168560200151610936565b905060008161ffff161415610491576040517f7790ca9900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006104a585606001518660400151610936565b905060006104e0866060015187608001518660000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610824565b905060006104f18760000151610d5f565b905060008760a0015160405160200161050a9190611c9f565b6040516020818303038152906040529050600088608001516040516020016105329190611cd1565b604051602081830303815290604052905061057833308b600001518c6020015173ffffffffffffffffffffffffffffffffffffffff16611040909392919063ffffffff16565b6105cf8760000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168a600001518b6020015173ffffffffffffffffffffffffffffffffffffffff166110c99092919063ffffffff16565b8660000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fbf10fc858b606001518989338f600001518a604051806060016040528062030d408152602001600081526020016040518060400160405280600281526020017f30780000000000000000000000000000000000000000000000000000000000008152508152508b8b6040518b63ffffffff1660e01b815260040161069899989796959493929190611fa7565b6000604051808303818588803b1580156106b157600080fd5b505af11580156106c5573d6000803e3d6000fd5b50505050507f7a72e6f4a3d77f8a5a6c536a973421c5bf00107f9aec7995661537673b8be08789602001518a60400151338c608001518d600001518e6060015160405161071796959493929190611e1b565b60405180910390a150505050505050600081600001819055505050565b61073c611227565b6000610746611013565b90508181600201819055507f45934903f6b10aff9d3435b8362d284d95d14ca68e8554f05f04c7856a6003c0826040516107809190612049565b60405180910390a15050565b600080610797611013565b90508261ffff168160030160008761ffff1661ffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff1661ffff161461081757600061081a565b60015b9150509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff16630a512369866001876040516020016108579190611c9f565b604051602081830303815290604052604051806060016040528062030d408152602001600081526020016040518060400160405280600281526020017f30780000000000000000000000000000000000000000000000000000000000008152508152506040518563ffffffff1660e01b81526004016108d99493929190611f41565b604080518083038186803b1580156108f057600080fd5b505afa158015610904573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092891906119b3565b509050809150509392505050565b600080610941611013565b90508060030160008561ffff1661ffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff1691505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a1c576040517f35be3ac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a24611227565b6000610a2e611013565b9050828160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818160000160146101000a81548161ffff021916908361ffff16021790555060328160020181905550610abd600173a0b86991c6218b36c1d19d4a2e9eb0ce3606eb486001610f1c565b610ade600173dac17f958d2ee523a2206206994597c13d831ec76002610f1c565b610aff60027355d398326f99059ff775485246999027b31979556002610f1c565b610b20600273e9e7cea3dedca5984780bafc599bd69add087d566005610f1c565b610b41600673b97ef9ef8734c71904d8002f8b6bc66dd9c48a6e6001610f1c565b610b626006739702230a8ea53601f5cd2dc00fdbc13d4df4a8c76002610f1c565b610b836009732791bca1f2de4661ed88a30c99a7a9449aa841746001610f1c565b610ba4600973c2132d05d31c914a87c6611c10748aeb04b58e8f6002610f1c565b610bc5600a73ff970a61a04b1ca14834a43f5de4533ebddb5cc86001610f1c565b610be6600a73fd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb96002610f1c565b610c07600b737f5c764cbc14f9669b88837ca1490cca17c316076001610f1c565b610c28600c7304068da6c83afcfa0e13ba15a6696662335d5b756001610f1c565b7fc8ec31998a27444f477c01de93c393769fd4fc017fb63163f71f8a8ab72ccd508383604051610c59929190611d4c565b60405180910390a1505050565b610c6e611227565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cd5576040517f3911c65500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610cdf611013565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9ac04272c4559bf7459414abb5568dc1df58ab649f0af4afd1510074f5cc2fec82604051610d539190611cd1565b60405180910390a15050565b600080610d6a611013565b90506127108160020154612710610d819190612199565b84610d8c919061213f565b610d96919061210e565b915050919050565b6000610da8611013565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e33576040517fdade3c7100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082806020019051810190610e499190611717565b90508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82866040518363ffffffff1660e01b8152600401610e86929190611d75565b602060405180830381600087803b158015610ea057600080fd5b505af1158015610eb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed8919061177c565b507f827e3293895509ef037b7438d4e009f37ad7b2562a14695d9dfd9cb0659842188585604051610f0a929190611d75565b60405180910390a15050505050505050565b610f24611227565b6000610f2e611013565b9050818160030160008661ffff1661ffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548161ffff021916908361ffff1602179055507f85adba3a23dc45072c12199244adfbf4c1d736a46ac453eb732f4e5158af5867848484604051610fd893929190611f0a565b60405180910390a150505050565b6000807fc59b5acc5a6673a6c49ca2de898f87adbd9fdfdff36f689476b1c9e0c50964b490508091505090565b6000807fbaeadb48cbcf0176d6c6ac156b0140abe0fb28a100a9a6a8b5df37e55693b1c890508091505090565b6110c3846323b872dd60e01b85858560405160240161106193929190611d15565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506112c2565b50505050565b6000811480611162575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401611110929190611cec565b60206040518083038186803b15801561112857600080fd5b505afa15801561113c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611160919061198a565b145b6111a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119890611ecf565b60405180910390fd5b6112228363095ea7b360e01b84846040516024016111c0929190611d75565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506112c2565b505050565b61122f611389565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b790611ddb565b60405180910390fd5b565b6000611324826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166113b69092919063ffffffff16565b90506000815111156113845780806020019051810190611344919061177c565b611383576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137a90611eaf565b60405180910390fd5b5b505050565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b60606113c584846000856113ce565b90509392505050565b606082471015611413576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140a90611dfb565b60405180910390fd5b61141c856114e2565b61145b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145290611e8f565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516114849190611cba565b60006040518083038185875af1925050503d80600081146114c1576040519150601f19603f3d011682016040523d82523d6000602084013e6114c6565b606091505b50915091506114d6828286611505565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6060831561151557829050611565565b6000835111156115285782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155c9190611db9565b60405180910390fd5b9392505050565b600061157f61157a84612089565b612064565b90508281526020810184848401111561159757600080fd5b6115a2848285612266565b509392505050565b6000813590506115b98161255f565b92915050565b6000815190506115ce81612576565b92915050565b6000815190506115e38161258d565b92915050565b600082601f8301126115fa57600080fd5b813561160a84826020860161156c565b91505092915050565b600060c0828403121561162557600080fd5b61162f60c0612064565b9050600061163f848285016116c4565b6000830152506020611653848285016115aa565b6020830152506040611667848285016115aa565b604083015250606061167b848285016116af565b606083015250608061168f848285016115aa565b60808301525060a06116a3848285016115aa565b60a08301525092915050565b6000813590506116be816125a4565b92915050565b6000813590506116d3816125bb565b92915050565b6000815190506116e8816125bb565b92915050565b60006020828403121561170057600080fd5b600061170e848285016115aa565b91505092915050565b60006020828403121561172957600080fd5b6000611737848285016115bf565b91505092915050565b6000806040838503121561175357600080fd5b6000611761858286016115aa565b9250506020611772858286016116af565b9150509250929050565b60006020828403121561178e57600080fd5b600061179c848285016115d4565b91505092915050565b600060c082840312156117b757600080fd5b60006117c584828501611613565b91505092915050565b600080604083850312156117e157600080fd5b60006117ef858286016116af565b9250506020611800858286016115aa565b9150509250929050565b60008060006060848603121561181f57600080fd5b600061182d868287016116af565b935050602061183e868287016115aa565b925050604061184f868287016115aa565b9150509250925092565b60008060006060848603121561186e57600080fd5b600061187c868287016116af565b935050602061188d868287016115aa565b925050604061189e868287016116af565b9150509250925092565b60008060008060008060c087890312156118c157600080fd5b60006118cf89828a016116af565b965050602087013567ffffffffffffffff8111156118ec57600080fd5b6118f889828a016115e9565b955050604061190989828a016116c4565b945050606061191a89828a016115aa565b935050608061192b89828a016116c4565b92505060a087013567ffffffffffffffff81111561194857600080fd5b61195489828a016115e9565b9150509295509295509295565b60006020828403121561197357600080fd5b6000611981848285016116c4565b91505092915050565b60006020828403121561199c57600080fd5b60006119aa848285016116d9565b91505092915050565b600080604083850312156119c657600080fd5b60006119d4858286016116d9565b92505060206119e5858286016116d9565b9150509250929050565b6119f8816121df565b82525050565b611a07816121cd565b82525050565b611a1e611a19826121cd565b6122d9565b82525050565b611a2d816121f1565b82525050565b6000611a3e826120ba565b611a4881856120d0565b9350611a58818560208601612275565b611a618161238a565b840191505092915050565b6000611a77826120ba565b611a8181856120e1565b9350611a91818560208601612275565b611a9a8161238a565b840191505092915050565b6000611ab0826120ba565b611aba81856120f2565b9350611aca818560208601612275565b80840191505092915050565b611adf81612242565b82525050565b6000611af0826120c5565b611afa81856120fd565b9350611b0a818560208601612275565b611b138161238a565b840191505092915050565b6000611b2b6022836120fd565b9150611b36826123a8565b604082019050919050565b6000611b4e6002836120e1565b9150611b59826123f7565b602082019050919050565b6000611b716026836120fd565b9150611b7c82612420565b604082019050919050565b6000611b946008836120fd565b9150611b9f8261246f565b602082019050919050565b6000611bb7601d836120fd565b9150611bc282612498565b602082019050919050565b6000611bda602a836120fd565b9150611be5826124c1565b604082019050919050565b6000611bfd6036836120fd565b9150611c0882612510565b604082019050919050565b6000606083016000830151611c2b6000860182611c81565b506020830151611c3e6020860182611c81565b5060408301518482036040860152611c568282611a33565b9150508091505092915050565b611c6c816121fd565b82525050565b611c7b81612254565b82525050565b611c8a8161222b565b82525050565b611c998161222b565b82525050565b6000611cab8284611a0d565b60148201915081905092915050565b6000611cc68284611aa5565b915081905092915050565b6000602082019050611ce660008301846119fe565b92915050565b6000604082019050611d0160008301856119fe565b611d0e60208301846119fe565b9392505050565b6000606082019050611d2a60008301866119fe565b611d3760208301856119fe565b611d446040830184611c90565b949350505050565b6000604082019050611d6160008301856119fe565b611d6e6020830184611c63565b9392505050565b6000604082019050611d8a60008301856119fe565b611d976020830184611c90565b9392505050565b6000602082019050611db36000830184611a24565b92915050565b60006020820190508181036000830152611dd38184611ae5565b905092915050565b60006020820190508181036000830152611df481611b1e565b9050919050565b60006020820190508181036000830152611e1481611b64565b9050919050565b600060e0820190508181036000830152611e3481611b87565b9050611e4360208301896119fe565b611e5060408301886119fe565b611e5d60608301876119fe565b611e6a60808301866119fe565b611e7760a0830185611c90565b611e8460c0830184611c63565b979650505050505050565b60006020820190508181036000830152611ea881611baa565b9050919050565b60006020820190508181036000830152611ec881611bcd565b9050919050565b60006020820190508181036000830152611ee881611bf0565b9050919050565b6000602082019050611f046000830184611c63565b92915050565b6000606082019050611f1f6000830186611c63565b611f2c60208301856119fe565b611f396040830184611c63565b949350505050565b600060a082019050611f566000830187611c63565b611f636020830186611ad6565b8181036040830152611f758185611a6c565b90508181036060830152611f8881611b41565b90508181036080830152611f9c8184611c13565b905095945050505050565b600061012082019050611fbd600083018c611c63565b611fca602083018b611c72565b611fd7604083018a611c72565b611fe460608301896119ef565b611ff16080830188611c90565b611ffe60a0830187611c90565b81810360c08301526120108186611c13565b905081810360e08301526120248185611a6c565b90508181036101008301526120398184611a6c565b90509a9950505050505050505050565b600060208201905061205e6000830184611c90565b92915050565b600061206e61207f565b905061207a82826122a8565b919050565b6000604051905090565b600067ffffffffffffffff8211156120a4576120a361235b565b5b6120ad8261238a565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006121198261222b565b91506121248361222b565b9250826121345761213361232c565b5b828204905092915050565b600061214a8261222b565b91506121558361222b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561218e5761218d6122fd565b5b828202905092915050565b60006121a48261222b565b91506121af8361222b565b9250828210156121c2576121c16122fd565b5b828203905092915050565b60006121d88261220b565b9050919050565b60006121ea8261220b565b9050919050565b60008115159050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061224d82612235565b9050919050565b600061225f826121fd565b9050919050565b82818337600083830152505050565b60005b83811015612293578082015181840152602081019050612278565b838111156122a2576000848401525b50505050565b6122b18261238a565b810181811067ffffffffffffffff821117156122d0576122cf61235b565b5b80604052505050565b60006122e4826122eb565b9050919050565b60006122f68261239b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b7f3078000000000000000000000000000000000000000000000000000000000000600082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f7374617267617465000000000000000000000000000000000000000000000000600082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b612568816121cd565b811461257357600080fd5b50565b61257f816121df565b811461258a57600080fd5b50565b612596816121f1565b81146125a157600080fd5b50565b6125ad816121fd565b81146125b857600080fd5b50565b6125c48161222b565b81146125cf57600080fd5b5056fea164736f6c6343000804000a", - "deployedBytecode": "0x6080604052600436106100915760003560e01c8063498ee46911610059578063498ee469146101925780634be85c35146101bb578063618c3f29146101e4578063ab8236f314610221578063b8c06ccc1461024a57610091565b80631f8097fb14610096578063217aabb7146100b25780632a8dcdb7146100db57806342d910c614610118578063430dbc3a14610155575b600080fd5b6100b060048036038101906100ab91906117a5565b610273565b005b3480156100be57600080fd5b506100d960048036038101906100d49190611961565b610734565b005b3480156100e757600080fd5b5061010260048036038101906100fd9190611859565b61078c565b60405161010f9190611d9e565b60405180910390f35b34801561012457600080fd5b5061013f600480360381019061013a919061180a565b610824565b60405161014c9190612049565b60405180910390f35b34801561016157600080fd5b5061017c600480360381019061017791906117ce565b610936565b6040516101899190611eef565b60405180910390f35b34801561019e57600080fd5b506101b960048036038101906101b49190611740565b6109b5565b005b3480156101c757600080fd5b506101e260048036038101906101dd91906116ee565b610c66565b005b3480156101f057600080fd5b5061020b60048036038101906102069190611961565b610d5f565b6040516102189190612049565b60405180910390f35b34801561022d57600080fd5b50610248600480360381019061024391906118a8565b610d9e565b005b34801561025657600080fd5b50610271600480360381019061026c9190611859565b610f1c565b005b600061027d610fe6565b90506001816000015414156102be576040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600181600001819055506000826000015111610306576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16826020015173ffffffffffffffffffffffffffffffffffffffff1614806103755750600073ffffffffffffffffffffffffffffffffffffffff16826040015173ffffffffffffffffffffffffffffffffffffffff16145b806103b05750600073ffffffffffffffffffffffffffffffffffffffff16826080015173ffffffffffffffffffffffffffffffffffffffff16145b806103eb5750600073ffffffffffffffffffffffffffffffffffffffff168260a0015173ffffffffffffffffffffffffffffffffffffffff16145b15610422576040517f35be3ac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061042c611013565b905060006104508260000160149054906101000a900461ffff168560200151610936565b905060008161ffff161415610491576040517f7790ca9900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006104a585606001518660400151610936565b905060006104e0866060015187608001518660000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610824565b905060006104f18760000151610d5f565b905060008760a0015160405160200161050a9190611c9f565b6040516020818303038152906040529050600088608001516040516020016105329190611cd1565b604051602081830303815290604052905061057833308b600001518c6020015173ffffffffffffffffffffffffffffffffffffffff16611040909392919063ffffffff16565b6105cf8760000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168a600001518b6020015173ffffffffffffffffffffffffffffffffffffffff166110c99092919063ffffffff16565b8660000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fbf10fc858b606001518989338f600001518a604051806060016040528062030d408152602001600081526020016040518060400160405280600281526020017f30780000000000000000000000000000000000000000000000000000000000008152508152508b8b6040518b63ffffffff1660e01b815260040161069899989796959493929190611fa7565b6000604051808303818588803b1580156106b157600080fd5b505af11580156106c5573d6000803e3d6000fd5b50505050507f7a72e6f4a3d77f8a5a6c536a973421c5bf00107f9aec7995661537673b8be08789602001518a60400151338c608001518d600001518e6060015160405161071796959493929190611e1b565b60405180910390a150505050505050600081600001819055505050565b61073c611227565b6000610746611013565b90508181600201819055507f45934903f6b10aff9d3435b8362d284d95d14ca68e8554f05f04c7856a6003c0826040516107809190612049565b60405180910390a15050565b600080610797611013565b90508261ffff168160030160008761ffff1661ffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff1661ffff161461081757600061081a565b60015b9150509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff16630a512369866001876040516020016108579190611c9f565b604051602081830303815290604052604051806060016040528062030d408152602001600081526020016040518060400160405280600281526020017f30780000000000000000000000000000000000000000000000000000000000008152508152506040518563ffffffff1660e01b81526004016108d99493929190611f41565b604080518083038186803b1580156108f057600080fd5b505afa158015610904573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092891906119b3565b509050809150509392505050565b600080610941611013565b90508060030160008561ffff1661ffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff1691505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a1c576040517f35be3ac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a24611227565b6000610a2e611013565b9050828160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818160000160146101000a81548161ffff021916908361ffff16021790555060328160020181905550610abd600173a0b86991c6218b36c1d19d4a2e9eb0ce3606eb486001610f1c565b610ade600173dac17f958d2ee523a2206206994597c13d831ec76002610f1c565b610aff60027355d398326f99059ff775485246999027b31979556002610f1c565b610b20600273e9e7cea3dedca5984780bafc599bd69add087d566005610f1c565b610b41600673b97ef9ef8734c71904d8002f8b6bc66dd9c48a6e6001610f1c565b610b626006739702230a8ea53601f5cd2dc00fdbc13d4df4a8c76002610f1c565b610b836009732791bca1f2de4661ed88a30c99a7a9449aa841746001610f1c565b610ba4600973c2132d05d31c914a87c6611c10748aeb04b58e8f6002610f1c565b610bc5600a73ff970a61a04b1ca14834a43f5de4533ebddb5cc86001610f1c565b610be6600a73fd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb96002610f1c565b610c07600b737f5c764cbc14f9669b88837ca1490cca17c316076001610f1c565b610c28600c7304068da6c83afcfa0e13ba15a6696662335d5b756001610f1c565b7fc8ec31998a27444f477c01de93c393769fd4fc017fb63163f71f8a8ab72ccd508383604051610c59929190611d4c565b60405180910390a1505050565b610c6e611227565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cd5576040517f3911c65500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610cdf611013565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9ac04272c4559bf7459414abb5568dc1df58ab649f0af4afd1510074f5cc2fec82604051610d539190611cd1565b60405180910390a15050565b600080610d6a611013565b90506127108160020154612710610d819190612199565b84610d8c919061213f565b610d96919061210e565b915050919050565b6000610da8611013565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e33576040517fdade3c7100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082806020019051810190610e499190611717565b90508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82866040518363ffffffff1660e01b8152600401610e86929190611d75565b602060405180830381600087803b158015610ea057600080fd5b505af1158015610eb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed8919061177c565b507f827e3293895509ef037b7438d4e009f37ad7b2562a14695d9dfd9cb0659842188585604051610f0a929190611d75565b60405180910390a15050505050505050565b610f24611227565b6000610f2e611013565b9050818160030160008661ffff1661ffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548161ffff021916908361ffff1602179055507f85adba3a23dc45072c12199244adfbf4c1d736a46ac453eb732f4e5158af5867848484604051610fd893929190611f0a565b60405180910390a150505050565b6000807fc59b5acc5a6673a6c49ca2de898f87adbd9fdfdff36f689476b1c9e0c50964b490508091505090565b6000807fbaeadb48cbcf0176d6c6ac156b0140abe0fb28a100a9a6a8b5df37e55693b1c890508091505090565b6110c3846323b872dd60e01b85858560405160240161106193929190611d15565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506112c2565b50505050565b6000811480611162575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401611110929190611cec565b60206040518083038186803b15801561112857600080fd5b505afa15801561113c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611160919061198a565b145b6111a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119890611ecf565b60405180910390fd5b6112228363095ea7b360e01b84846040516024016111c0929190611d75565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506112c2565b505050565b61122f611389565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b790611ddb565b60405180910390fd5b565b6000611324826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166113b69092919063ffffffff16565b90506000815111156113845780806020019051810190611344919061177c565b611383576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137a90611eaf565b60405180910390fd5b5b505050565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b60606113c584846000856113ce565b90509392505050565b606082471015611413576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140a90611dfb565b60405180910390fd5b61141c856114e2565b61145b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145290611e8f565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516114849190611cba565b60006040518083038185875af1925050503d80600081146114c1576040519150601f19603f3d011682016040523d82523d6000602084013e6114c6565b606091505b50915091506114d6828286611505565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6060831561151557829050611565565b6000835111156115285782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155c9190611db9565b60405180910390fd5b9392505050565b600061157f61157a84612089565b612064565b90508281526020810184848401111561159757600080fd5b6115a2848285612266565b509392505050565b6000813590506115b98161255f565b92915050565b6000815190506115ce81612576565b92915050565b6000815190506115e38161258d565b92915050565b600082601f8301126115fa57600080fd5b813561160a84826020860161156c565b91505092915050565b600060c0828403121561162557600080fd5b61162f60c0612064565b9050600061163f848285016116c4565b6000830152506020611653848285016115aa565b6020830152506040611667848285016115aa565b604083015250606061167b848285016116af565b606083015250608061168f848285016115aa565b60808301525060a06116a3848285016115aa565b60a08301525092915050565b6000813590506116be816125a4565b92915050565b6000813590506116d3816125bb565b92915050565b6000815190506116e8816125bb565b92915050565b60006020828403121561170057600080fd5b600061170e848285016115aa565b91505092915050565b60006020828403121561172957600080fd5b6000611737848285016115bf565b91505092915050565b6000806040838503121561175357600080fd5b6000611761858286016115aa565b9250506020611772858286016116af565b9150509250929050565b60006020828403121561178e57600080fd5b600061179c848285016115d4565b91505092915050565b600060c082840312156117b757600080fd5b60006117c584828501611613565b91505092915050565b600080604083850312156117e157600080fd5b60006117ef858286016116af565b9250506020611800858286016115aa565b9150509250929050565b60008060006060848603121561181f57600080fd5b600061182d868287016116af565b935050602061183e868287016115aa565b925050604061184f868287016115aa565b9150509250925092565b60008060006060848603121561186e57600080fd5b600061187c868287016116af565b935050602061188d868287016115aa565b925050604061189e868287016116af565b9150509250925092565b60008060008060008060c087890312156118c157600080fd5b60006118cf89828a016116af565b965050602087013567ffffffffffffffff8111156118ec57600080fd5b6118f889828a016115e9565b955050604061190989828a016116c4565b945050606061191a89828a016115aa565b935050608061192b89828a016116c4565b92505060a087013567ffffffffffffffff81111561194857600080fd5b61195489828a016115e9565b9150509295509295509295565b60006020828403121561197357600080fd5b6000611981848285016116c4565b91505092915050565b60006020828403121561199c57600080fd5b60006119aa848285016116d9565b91505092915050565b600080604083850312156119c657600080fd5b60006119d4858286016116d9565b92505060206119e5858286016116d9565b9150509250929050565b6119f8816121df565b82525050565b611a07816121cd565b82525050565b611a1e611a19826121cd565b6122d9565b82525050565b611a2d816121f1565b82525050565b6000611a3e826120ba565b611a4881856120d0565b9350611a58818560208601612275565b611a618161238a565b840191505092915050565b6000611a77826120ba565b611a8181856120e1565b9350611a91818560208601612275565b611a9a8161238a565b840191505092915050565b6000611ab0826120ba565b611aba81856120f2565b9350611aca818560208601612275565b80840191505092915050565b611adf81612242565b82525050565b6000611af0826120c5565b611afa81856120fd565b9350611b0a818560208601612275565b611b138161238a565b840191505092915050565b6000611b2b6022836120fd565b9150611b36826123a8565b604082019050919050565b6000611b4e6002836120e1565b9150611b59826123f7565b602082019050919050565b6000611b716026836120fd565b9150611b7c82612420565b604082019050919050565b6000611b946008836120fd565b9150611b9f8261246f565b602082019050919050565b6000611bb7601d836120fd565b9150611bc282612498565b602082019050919050565b6000611bda602a836120fd565b9150611be5826124c1565b604082019050919050565b6000611bfd6036836120fd565b9150611c0882612510565b604082019050919050565b6000606083016000830151611c2b6000860182611c81565b506020830151611c3e6020860182611c81565b5060408301518482036040860152611c568282611a33565b9150508091505092915050565b611c6c816121fd565b82525050565b611c7b81612254565b82525050565b611c8a8161222b565b82525050565b611c998161222b565b82525050565b6000611cab8284611a0d565b60148201915081905092915050565b6000611cc68284611aa5565b915081905092915050565b6000602082019050611ce660008301846119fe565b92915050565b6000604082019050611d0160008301856119fe565b611d0e60208301846119fe565b9392505050565b6000606082019050611d2a60008301866119fe565b611d3760208301856119fe565b611d446040830184611c90565b949350505050565b6000604082019050611d6160008301856119fe565b611d6e6020830184611c63565b9392505050565b6000604082019050611d8a60008301856119fe565b611d976020830184611c90565b9392505050565b6000602082019050611db36000830184611a24565b92915050565b60006020820190508181036000830152611dd38184611ae5565b905092915050565b60006020820190508181036000830152611df481611b1e565b9050919050565b60006020820190508181036000830152611e1481611b64565b9050919050565b600060e0820190508181036000830152611e3481611b87565b9050611e4360208301896119fe565b611e5060408301886119fe565b611e5d60608301876119fe565b611e6a60808301866119fe565b611e7760a0830185611c90565b611e8460c0830184611c63565b979650505050505050565b60006020820190508181036000830152611ea881611baa565b9050919050565b60006020820190508181036000830152611ec881611bcd565b9050919050565b60006020820190508181036000830152611ee881611bf0565b9050919050565b6000602082019050611f046000830184611c63565b92915050565b6000606082019050611f1f6000830186611c63565b611f2c60208301856119fe565b611f396040830184611c63565b949350505050565b600060a082019050611f566000830187611c63565b611f636020830186611ad6565b8181036040830152611f758185611a6c565b90508181036060830152611f8881611b41565b90508181036080830152611f9c8184611c13565b905095945050505050565b600061012082019050611fbd600083018c611c63565b611fca602083018b611c72565b611fd7604083018a611c72565b611fe460608301896119ef565b611ff16080830188611c90565b611ffe60a0830187611c90565b81810360c08301526120108186611c13565b905081810360e08301526120248185611a6c565b90508181036101008301526120398184611a6c565b90509a9950505050505050505050565b600060208201905061205e6000830184611c90565b92915050565b600061206e61207f565b905061207a82826122a8565b919050565b6000604051905090565b600067ffffffffffffffff8211156120a4576120a361235b565b5b6120ad8261238a565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006121198261222b565b91506121248361222b565b9250826121345761213361232c565b5b828204905092915050565b600061214a8261222b565b91506121558361222b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561218e5761218d6122fd565b5b828202905092915050565b60006121a48261222b565b91506121af8361222b565b9250828210156121c2576121c16122fd565b5b828203905092915050565b60006121d88261220b565b9050919050565b60006121ea8261220b565b9050919050565b60008115159050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061224d82612235565b9050919050565b600061225f826121fd565b9050919050565b82818337600083830152505050565b60005b83811015612293578082015181840152602081019050612278565b838111156122a2576000848401525b50505050565b6122b18261238a565b810181811067ffffffffffffffff821117156122d0576122cf61235b565b5b80604052505050565b60006122e4826122eb565b9050919050565b60006122f68261239b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b7f3078000000000000000000000000000000000000000000000000000000000000600082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f7374617267617465000000000000000000000000000000000000000000000000600082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b612568816121cd565b811461257357600080fd5b50565b61257f816121df565b811461258a57600080fd5b50565b612596816121f1565b81146125a157600080fd5b50565b6125ad816121fd565b81146125b857600080fd5b50565b6125c48161222b565b81146125cf57600080fd5b5056fea164736f6c6343000804000a", + "bytecode": "0x60a060405261271060809081525034801561001957600080fd5b50608051613c5361004a6000396000818161091b015281816109530152818161174001526117780152613c536000f3fe6080604052600436106100c25760003560e01c8063839408ac1161007f578063ab8236f311610059578063ab8236f31461025a578063ac0d2b1314610283578063e08e5071146102c0578063ffa47670146102fd576100c2565b8063839408ac146101f9578063940c9dee146102155780639b250ded1461023e576100c2565b806314917f99146100c757806316016d03146100f0578063264e6c9b1461012d578063295d4d411461016a57806332a7ab5d146101935780634a6f22c4146101bc575b600080fd5b3480156100d357600080fd5b506100ee60048036038101906100e99190612548565b61033a565b005b3480156100fc57600080fd5b5061011760048036038101906101129190612548565b61033d565b6040516101249190612590565b60405180910390f35b34801561013957600080fd5b50610154600480360381019061014f9190612640565b610344565b604051610161919061269b565b60405180910390f35b34801561017657600080fd5b50610191600480360381019061018c919061271c565b6104e7565b005b34801561019f57600080fd5b506101ba60048036038101906101b59190612548565b610609565b005b3480156101c857600080fd5b506101e360048036038101906101de9190612548565b61060c565b6040516101f09190612590565b60405180910390f35b610213600480360381019061020e919061275c565b610617565b005b34801561022157600080fd5b5061023c6004803603810190610237919061281b565b610d0c565b005b610258600480360381019061025391906128c2565b61104b565b005b34801561026657600080fd5b50610281600480360381019061027c9190612a30565b61190d565b005b34801561028f57600080fd5b506102aa60048036038101906102a59190612548565b611ae3565b6040516102b79190612590565b60405180910390f35b3480156102cc57600080fd5b506102e760048036038101906102e29190612af5565b611aea565b6040516102f49190612b31565b60405180910390f35b34801561030957600080fd5b50610324600480360381019061031f9190612548565b611c4d565b6040516103319190612590565b60405180910390f35b50565b6000919050565b600061035a676b6a1706fc40421f60c01b610609565b61036e67a17253b2deeb069060c01b610609565b61038267ccc986379c4d80f160c01b610609565b60008273ffffffffffffffffffffffffffffffffffffffff16630a5123696103ad8660400135611aea565b60018760e00160208101906103c29190612b4c565b6040516020016103d29190612bc1565b6040516020818303038152906040528860a00160208101906103f49190612b4c565b6040516020016104049190612beb565b60405160208183030381529060405260405180606001604052806207a12081526020016000815260200160006040516020016104409190612bc1565b6040516020818303038152906040528152506040518663ffffffff1660e01b8152600401610472959493929190612d80565b6040805180830381865afa15801561048e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b29190612dfd565b5090506104c967e102f2c572cf40f860c01b610609565b6104dd6716e95b907e1816a560c01b610609565b8091505092915050565b6104fb67988e490ae4c703d260c01b610609565b61050f676f8f307cb7de9ab860c01b610609565b6105236758da89dc13ce7b8860c01b610609565b61052b611c58565b61053f676a22c727528aee5e60c01b610609565b61055367108c5580da60d05260c01b610609565b600061055d611d57565b905061057367f670e362f8950d9d60c01b610609565b8181600301600085815260200190815260200160002060006101000a81548161ffff021916908361ffff1602179055506105b7675bcc90cec163367d60c01b610609565b6105cb674c56ade916095c4060c01b610609565b7f50cfe49eeb0e0291ed2de7bb42b55c6edb09463f1e8d96e373069cf1430e33fc83836040516105fc929190612e3d565b60405180910390a1505050565b50565b600060019050919050565b61062b6718ed4b83c401710460c01b610609565b61063f6770f43b674d4e55d060c01b61033a565b61065367fdb58b8d5e8c5bd260c01b61033a565b61066767f88563faceb9065260c01b61033a565b6000610671611dd5565b905061068767f5511ed184b06f9d60c01b61033a565b61069b675fe6356e9bb02e7e60c01b61033a565b60018160000154036106ed576106bb67c2bf72a01148a95560c01b61033a565b6040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107016759328cc6ac1a5b8460c01b61033a565b610715676585023ebf8de8b060c01b61033a565b600181600001819055506107336794e629fc71d8c79e60c01b61033a565b610747672881a2aec321239260c01b610609565b61075b67dd2c0f1b8d09895b60c01b610609565b61076f67cd6a1ff81758e0f760c01b610609565b6107836782429254fa8269b060c01b610609565b61079767a0f691c89b27008d60c01b610609565b60008260000135116107de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d590612ec3565b60405180910390fd5b6107f2677ebf072840a4d95f60c01b610609565b61080667fed74be637eda80b60c01b610609565b61081a676eb83bf20210390c60c01b610609565b6000610824611e53565b905061083a678182ad2943df89e460c01b610609565b61084e677425dff707a185d960c01b610609565b600061085a8483610344565b9050610870674404183e17d9e74c60c01b610609565b610884673bd291009b8078c860c01b610609565b610898670f089b8f5498528860c01b610609565b803410156108db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d290612f55565b60405180910390fd5b6108ef67820939dc08b273dd60c01b610609565b61090367c4e73b662355a21b60c01b610609565b61091767a3a1bb2ef1bf1ec660c01b610609565b60007f00000000000000000000000000000000000000000000000000000000000000008560c001602081019061094d9190612f75565b61ffff167f000000000000000000000000000000000000000000000000000000000000000061097c9190612fd1565b866000013561098b9190613005565b6109959190613076565b90506109ab67cc171d672a2a38cf60c01b610609565b6109bf673cb3bfc2ae73be4260c01b610609565b60008560e00160208101906109d49190612b4c565b6040516020016109e49190612bc1565b6040516020818303038152906040529050610a09670ddeef3ed113f00660c01b610609565b610a1d674e97eb2217c77f0f60c01b610609565b60008660a0016020810190610a329190612b4c565b604051602001610a429190612beb565b6040516020818303038152906040529050610a67674dab0ce8baf9c74160c01b610609565b610a7b67b7bb61978f9d97e560c01b610609565b610abe333089600001358a6020016020810190610a989190612b4c565b73ffffffffffffffffffffffffffffffffffffffff16611ec2909392919063ffffffff16565b610ad26708c58c8607868d6660c01b610609565b610ae6672a5fdb16657578a160c01b610609565b610b27858860000135896020016020810190610b029190612b4c565b73ffffffffffffffffffffffffffffffffffffffff16611f4b9092919063ffffffff16565b610b3b67fb60f2f8d21dd4f560c01b610609565b610b4f672e33f0d6552af9c760c01b610609565b8473ffffffffffffffffffffffffffffffffffffffff16639fbf10fc85610b798a60400135611aea565b8a6060016020810190610b8c9190612f75565b8b6080016020810190610b9f9190612f75565b338d600001358a60405180606001604052806207a1208152602001600081526020016040518060400160405280600281526020017f30780000000000000000000000000000000000000000000000000000000000008152508152508b8b6040518b63ffffffff1660e01b8152600401610c20999897969594939291906130f9565b6000604051808303818588803b158015610c3957600080fd5b505af1158015610c4d573d6000803e3d6000fd5b5050505050610c6667bab67b428018644460c01b610609565b610c7a6706ce641916e6cc2c60c01b610609565b7f0e95200cdc1da2112676781af663a51503f29bb3e511cfaa660977d2580be1d0876020016020810190610cae9190612b4c565b338960a0016020810190610cc29190612b4c565b8a600001358b60400135604051610cdd95949392919061319b565b60405180910390a15050505050610cfe67441391ce80e99b6c60c01b61033a565b600081600001819055505050565b610d2067dc78b0b6dcb719a660c01b610609565b610d34671ad991e745fcd88760c01b610609565b610d4867fbb408854cfb5ba560c01b610609565b610d5c671bab65bc473a358060c01b610609565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610dcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc290613260565b60405180910390fd5b610ddf67e238d996e1c6a29b60c01b610609565b610df367346f91eeb5fc6c6260c01b610609565b610e076759434cdfca46912960c01b610609565b610e0f611c58565b610e23672f925d4afc29a3a260c01b610609565b610e3767e89ae70bcfd142a660c01b610609565b6000610e41611d57565b9050610e5767ec5bab896690566660c01b610609565b858160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610eae670c86ec52c985f76e60c01b610609565b848160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f0567230957ad1da75ff460c01b610609565b838160020181905550610f2267f53cb1bb6c6a5c5860c01b610609565b610f36674dbd10ddc78689da60c01b610609565b60005b83839050811015610fdf57610f58677766d8e0fe7ffd4b60c01b610609565b838382818110610f6b57610f6a613280565b5b9050604002016020016020810190610f839190612f75565b826003016000868685818110610f9c57610f9b613280565b5b90506040020160000135815260200190815260200160002060006101000a81548161ffff021916908361ffff16021790555080610fd8906132af565b9050610f39565b50610ff467eea98b178fd576e060c01b610609565b611008672f4996614d79aa5760c01b610609565b7ff4ec21f4fb595315ed445181b8973d6ebb853009bd6593a82fbbeadab2efc9b086868660405161103b939291906132f7565b60405180910390a1505050505050565b61105f677b6b1c7fc9e8a18560c01b610609565b6110736770f43b674d4e55d060c01b61033a565b61108767fdb58b8d5e8c5bd260c01b61033a565b61109b67f88563faceb9065260c01b61033a565b60006110a5611dd5565b90506110bb67f5511ed184b06f9d60c01b61033a565b6110cf675fe6356e9bb02e7e60c01b61033a565b6001816000015403611121576110ef67c2bf72a01148a95560c01b61033a565b6040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111356759328cc6ac1a5b8460c01b61033a565b611149676585023ebf8de8b060c01b61033a565b600181600001819055506111676794e629fc71d8c79e60c01b61033a565b61117b6755ebe8d99bfab0e660c01b610609565b61118f6783c099c3d6920eee60c01b610609565b6111a3677b2d23df6c743c1660c01b610609565b6111b7670e1bf95028b3562660c01b610609565b60006111c161209a565b90506111d767826a8031febc47a560c01b610609565b6111eb67e55f748511272f7660c01b610609565b6111ff6797ef46cfb2e1f1d860c01b610609565b60018114801561121f575061121e67b9defce38c448c0160c01b611c4d565b5b80611263575061a4b18114801561124657506112456744e394d95fc655b860c01b611c4d565b5b80156112625750611261676db8cef885766f1060c01b611c4d565b5b5b8061128a5750600a8114801561128957506112886791823fee38b54f9160c01b611c4d565b5b5b6112c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c0906133a0565b60405180910390fd5b6112dd67c9884dd7993613aa60c01b610609565b6112f167ce6b46409cb3036260c01b610609565b611305678e4e74cf10e6efcd60c01b610609565b61131967f1661058e39d604460c01b610609565b6001836020013514801561133d575061133c67d994b9fff3faf3d060c01b611c4d565b5b80611385575061a4b183602001351480156113685750611367678522fbcee38e3f2b60c01b611c4d565b5b80156113845750611383673d7f2a1cdc796c6b60c01b611c4d565b5b5b806113b05750600a83602001351480156113af57506113ae67a0b23bb6c5a2034d60c01b611c4d565b5b5b6113ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e690613432565b60405180910390fd5b61140367634ee426de357fec60c01b610609565b61141767671a1c703a7e255060c01b610609565b61142b671b85965e9b09a19360c01b610609565b61143f673e51b130d02414f960c01b610609565b60003411611482576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114799061349e565b60405180910390fd5b611496675475f5afcea4234f60c01b610609565b6114aa675be0e357a87433b260c01b610609565b6114be6714bd332749c6464c60c01b610609565b6114d267824e0feb461fd68b60c01b610609565b6000836000013511611519576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151090612ec3565b60405180910390fd5b61152d675aead8b9e4a94ad660c01b610609565b6115416715642c51226fe7e860c01b610609565b61155567bf6afb6d248e364260c01b610609565b611569675814d8dff7797ece60c01b610609565b826000013534116115af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a690613530565b60405180910390fd5b6115c367a7838bcc3dcf6f4960c01b610609565b6115d7674b87efcc48a2f6f860c01b610609565b6115eb67b577870ea07885de60c01b610609565b60006115f56120e9565b905061160b67504c44f964d09bda60c01b610609565b61161f67b629ff5fe4b6bbfb60c01b610609565b6116336791136c08444782d460c01b610609565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611699906135c2565b60405180910390fd5b6116b667945f14428689a58760c01b610609565b6116ca6709e6dbebddbfaf8160c01b610609565b6116de67506d17b653e10f7c60c01b610609565b60008460400160208101906116f39190612b4c565b6040516020016117039190612bc1565b60405160208183030381529060405290506117286779683220dd60860f60c01b610609565b61173c67c5d6139a64abbcc360c01b610609565b60007f00000000000000000000000000000000000000000000000000000000000000008660600160208101906117729190612f75565b61ffff167f00000000000000000000000000000000000000000000000000000000000000006117a19190612fd1565b87600001356117b09190613005565b6117ba9190613076565b90506117d067edccaf14a309f8b960c01b610609565b6117e467dfd394e8ca55834a60c01b610609565b8273ffffffffffffffffffffffffffffffffffffffff16631114cd2a3461180e8960200135611aea565b33868b60000135876040518763ffffffff1660e01b81526004016118369594939291906135e2565b6000604051808303818588803b15801561184f57600080fd5b505af1158015611863573d6000803e3d6000fd5b505050505061187c678f9ff857a7f5aa9860c01b610609565b611890679c044cacc1ce321260c01b610609565b7f2bedf250e292271a6dbcf3e289b75c4218a8494e721aabc2b475c22d8816f1d2338760400160208101906118c59190612b4c565b886000013589602001356040516118df949392919061363c565b60405180910390a1505050506118ff67441391ce80e99b6c60c01b61033a565b600081600001819055505050565b61192167c3456030a1bbb0e360c01b610609565b611935670b715fd8e1f8669860c01b610609565b61194967b53fdb9756ae99c460c01b610609565b61195d67de50a656d8824a5b60c01b610609565b611965611e53565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c9906136cd565b60405180910390fd5b6119e66704131b314593100d60c01b610609565b6119fa677fc8dbefdd35b0e460c01b610609565b611a0e6748055bde4d58675260c01b610609565b600081806020019051810190611a249190613719565b9050611a3a675e435c4e6f42509860c01b610609565b611a4e675b92b8826195634960c01b610609565b611a7981848673ffffffffffffffffffffffffffffffffffffffff166121589092919063ffffffff16565b611a8d67cf796a2db721527860c01b610609565b611aa167582a53062f53745760c01b610609565b7fa99538de04029bcd6cc1a8af32ebefef188052f963f80ab67b7fc49e23d0cd4c8484604051611ad2929190613746565b60405180910390a150505050505050565b6000919050565b6000611b0067a57cd9c6b9c41c6a60c01b610609565b611b14674f07f9242ebfa41160c01b610609565b611b28677a529f509caba1b060c01b610609565b6000611b32611d57565b9050611b48678fefb47c1559ea4b60c01b610609565b611b5c67d18e9683e19854f960c01b610609565b600081600301600085815260200190815260200160002060009054906101000a900461ffff169050611b9867e3c404249a55474b60c01b610609565b611bac67fbcd6388192b0a2f60c01b610609565b611bc0678530e22ceaeb424960c01b610609565b60008161ffff1603611c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfe906137e1565b60405180910390fd5b611c1b670c18b96b58e103a860c01b610609565b611c2f67f817d71c659e66ef60c01b610609565b611c43673ae9ed46966d707860c01b610609565b8092505050919050565b600060019050919050565b611c6c6721b40df6734b4e6460c01b6121de565b611c80677276b6d1bbf7b68b60c01b6121de565b611c9467f8611dbcb55a1f7860c01b6121de565b611ca8676cedf54251a3375160c01b6121de565b611cb06121e1565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3890613873565b60405180910390fd5b611d5567e452355b21bbd41e60c01b6121de565b565b6000611d6d67b34d90284ae0e9ef60c01b610609565b611d81672ed81e52c23168e360c01b610609565b611d9567e2ec83ce9578657560c01b610609565b60007fbaeadb48cbcf0176d6c6ac156b0140abe0fb28a100a9a6a8b5df37e55693b1c89050611dce670edd023654e5f17260c01b610609565b8091505090565b6000611deb67fa11c344c1ec53a860c01b61033a565b611dff670fd7b7008acdbf5460c01b61033a565b611e13679fbd6d57c5d665d460c01b61033a565b60007fc59b5acc5a6673a6c49ca2de898f87adbd9fdfdff36f689476b1c9e0c50964b49050611e4c67a9235c9a8268ed9060c01b61033a565b8091505090565b6000611e6967fd4dc90c18680f3060c01b610609565b611e7d6793e4e41457cec23060c01b610609565b611e9167f074c466862371b560c01b610609565b611e99611d57565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611f45846323b872dd60e01b858585604051602401611ee3939291906132f7565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061225f565b50505050565b6000811480611fd5575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401611f92929190613893565b602060405180830381865afa158015611faf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd391906138bc565b145b612014576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200b9061395b565b60405180910390fd5b6120958363095ea7b360e01b8484604051602401612033929190613746565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061225f565b505050565b60006120b067d1228306a9aa7ca160c01b610609565b6120c467a36f2b778691a42060c01b610609565b6120d86768a861b45d12e14460c01b610609565b6120e0611d57565b60020154905090565b60006120ff67ef5c638aa66eb48260c01b610609565b612113675a88d7efbd851a3e60c01b610609565b61212767cceaffc246b2acc960c01b610609565b61212f611d57565b60010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6121d98363a9059cbb60e01b8484604051602401612177929190613746565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061225f565b505050565b50565b60006121f7674f9afbb757d80e6360c01b6121de565b61220b674b823103125da15660c01b6121de565b61221f674ab715c231c1608d60c01b6121de565b60007fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c905061225867982d9bb86701efa860c01b6121de565b8091505090565b60006122c1826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166123269092919063ffffffff16565b905060008151111561232157808060200190518101906122e191906139a7565b612320576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231790613a46565b60405180910390fd5b5b505050565b6060612335848460008561233e565b90509392505050565b606082471015612383576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237a90613ad8565b60405180910390fd5b61238c85612452565b6123cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c290613b44565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516123f49190613ba0565b60006040518083038185875af1925050503d8060008114612431576040519150601f19603f3d011682016040523d82523d6000602084013e612436565b606091505b5091509150612446828286612475565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60608315612485578290506124d5565b6000835111156124985782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124cc9190613bfb565b60405180910390fd5b9392505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b612525816124f0565b811461253057600080fd5b50565b6000813590506125428161251c565b92915050565b60006020828403121561255e5761255d6124e6565b5b600061256c84828501612533565b91505092915050565b60008115159050919050565b61258a81612575565b82525050565b60006020820190506125a56000830184612581565b92915050565b600080fd5b600061010082840312156125c7576125c66125ab565b5b81905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125fb826125d0565b9050919050565b600061260d826125f0565b9050919050565b61261d81612602565b811461262857600080fd5b50565b60008135905061263a81612614565b92915050565b6000806101208385031215612658576126576124e6565b5b6000612666858286016125b0565b9250506101006126788582860161262b565b9150509250929050565b6000819050919050565b61269581612682565b82525050565b60006020820190506126b0600083018461268c565b92915050565b6126bf81612682565b81146126ca57600080fd5b50565b6000813590506126dc816126b6565b92915050565b600061ffff82169050919050565b6126f9816126e2565b811461270457600080fd5b50565b600081359050612716816126f0565b92915050565b60008060408385031215612733576127326124e6565b5b6000612741858286016126cd565b925050602061275285828601612707565b9150509250929050565b60006101008284031215612773576127726124e6565b5b6000612781848285016125b0565b91505092915050565b612793816125f0565b811461279e57600080fd5b50565b6000813590506127b08161278a565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126127db576127da6127b6565b5b8235905067ffffffffffffffff8111156127f8576127f76127bb565b5b602083019150836040820283011115612814576128136127c0565b5b9250929050565b600080600080600060808688031215612837576128366124e6565b5b6000612845888289016127a1565b9550506020612856888289016127a1565b9450506040612867888289016126cd565b935050606086013567ffffffffffffffff811115612888576128876124eb565b5b612894888289016127c5565b92509250509295509295909350565b6000608082840312156128b9576128b86125ab565b5b81905092915050565b6000608082840312156128d8576128d76124e6565b5b60006128e6848285016128a3565b91505092915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61293d826128f4565b810181811067ffffffffffffffff8211171561295c5761295b612905565b5b80604052505050565b600061296f6124dc565b905061297b8282612934565b919050565b600067ffffffffffffffff82111561299b5761299a612905565b5b6129a4826128f4565b9050602081019050919050565b82818337600083830152505050565b60006129d36129ce84612980565b612965565b9050828152602081018484840111156129ef576129ee6128ef565b5b6129fa8482856129b1565b509392505050565b600082601f830112612a1757612a166127b6565b5b8135612a278482602086016129c0565b91505092915050565b60008060008060008060c08789031215612a4d57612a4c6124e6565b5b6000612a5b89828a01612707565b965050602087013567ffffffffffffffff811115612a7c57612a7b6124eb565b5b612a8889828a01612a02565b9550506040612a9989828a016126cd565b9450506060612aaa89828a016127a1565b9350506080612abb89828a016126cd565b92505060a087013567ffffffffffffffff811115612adc57612adb6124eb565b5b612ae889828a01612a02565b9150509295509295509295565b600060208284031215612b0b57612b0a6124e6565b5b6000612b19848285016126cd565b91505092915050565b612b2b816126e2565b82525050565b6000602082019050612b466000830184612b22565b92915050565b600060208284031215612b6257612b616124e6565b5b6000612b70848285016127a1565b91505092915050565b60008160601b9050919050565b6000612b9182612b79565b9050919050565b6000612ba382612b86565b9050919050565b612bbb612bb6826125f0565b612b98565b82525050565b6000612bcd8284612baa565b60148201915081905092915050565b612be5816125f0565b82525050565b6000602082019050612c006000830184612bdc565b92915050565b6000819050919050565b600060ff82169050919050565b6000819050919050565b6000612c42612c3d612c3884612c06565b612c1d565b612c10565b9050919050565b612c5281612c27565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c92578082015181840152602081019050612c77565b60008484015250505050565b6000612ca982612c58565b612cb38185612c63565b9350612cc3818560208601612c74565b612ccc816128f4565b840191505092915050565b612ce081612682565b82525050565b600082825260208201905092915050565b6000612d0282612c58565b612d0c8185612ce6565b9350612d1c818560208601612c74565b612d25816128f4565b840191505092915050565b6000606083016000830151612d486000860182612cd7565b506020830151612d5b6020860182612cd7565b5060408301518482036040860152612d738282612cf7565b9150508091505092915050565b600060a082019050612d956000830188612b22565b612da26020830187612c49565b8181036040830152612db48186612c9e565b90508181036060830152612dc88185612c9e565b90508181036080830152612ddc8184612d30565b90509695505050505050565b600081519050612df7816126b6565b92915050565b60008060408385031215612e1457612e136124e6565b5b6000612e2285828601612de8565b9250506020612e3385828601612de8565b9150509250929050565b6000604082019050612e52600083018561268c565b612e5f6020830184612b22565b9392505050565b600082825260208201905092915050565b7f53746172676174653a3a20696e76616c6964207175616e746974790000000000600082015250565b6000612ead601b83612e66565b9150612eb882612e77565b602082019050919050565b60006020820190508181036000830152612edc81612ea0565b9050919050565b7f53746172676174653a3a206d73672e76616c7565206e6f7420656e6f7567682060008201527f746f20706179206272696467696e672066656500000000000000000000000000602082015250565b6000612f3f603383612e66565b9150612f4a82612ee3565b604082019050919050565b60006020820190508181036000830152612f6e81612f32565b9050919050565b600060208284031215612f8b57612f8a6124e6565b5b6000612f9984828501612707565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612fdc82612682565b9150612fe783612682565b9250828203905081811115612fff57612ffe612fa2565b5b92915050565b600061301082612682565b915061301b83612682565b925082820261302981612682565b915082820484148315176130405761303f612fa2565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061308182612682565b915061308c83612682565b92508261309c5761309b613047565b5b828204905092915050565b60006130c26130bd6130b8846126e2565b612c1d565b612682565b9050919050565b6130d2816130a7565b82525050565b60006130e3826125d0565b9050919050565b6130f3816130d8565b82525050565b60006101208201905061310f600083018c612b22565b61311c602083018b6130c9565b613129604083018a6130c9565b61313660608301896130ea565b613143608083018861268c565b61315060a083018761268c565b81810360c08301526131628186612d30565b905081810360e08301526131768185612c9e565b905081810361010083015261318b8184612c9e565b90509a9950505050505050505050565b600060a0820190506131b06000830188612bdc565b6131bd6020830187612bdc565b6131ca6040830186612bdc565b6131d7606083018561268c565b6131e4608083018461268c565b9695505050505050565b7f53746172676174653a3a20696e76616c696420726f757465722061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061324a602183612e66565b9150613255826131ee565b604082019050919050565b600060208201905081810360008301526132798161323d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006132ba82612682565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132ec576132eb612fa2565b5b600182019050919050565b600060608201905061330c6000830186612bdc565b6133196020830185612bdc565b613326604083018461268c565b949350505050565b7f53746172676174653a3a2043616e6e6f74206469726563746c7920627269646760008201527f65204554482066726f6d207468697320636861696e0000000000000000000000602082015250565b600061338a603583612e66565b91506133958261332e565b604082019050919050565b600060208201905081810360008301526133b98161337d565b9050919050565b7f53746172676174653a3a2043616e6e6f74206469726563746c7920627269646760008201527f652045544820746f207468697320636861696e00000000000000000000000000602082015250565b600061341c603383612e66565b9150613427826133c0565b604082019050919050565b6000602082019050818103600083015261344b8161340f565b9050919050565b7f53746172676174653a3a206d73672e76616c7565207265717569726564000000600082015250565b6000613488601d83612e66565b915061349382613452565b602082019050919050565b600060208201905081810360008301526134b78161347b565b9050919050565b7f53746172676174653a206e6f206665657320616464656420666f72204554482060008201527f7472616e73666572000000000000000000000000000000000000000000000000602082015250565b600061351a602883612e66565b9150613525826134be565b604082019050919050565b600060208201905081810360008301526135498161350d565b9050919050565b7f53746172676174653a3a20455448207472616e73666572206e6f74206176616960008201527f6c61626c65000000000000000000000000000000000000000000000000000000602082015250565b60006135ac602583612e66565b91506135b782613550565b604082019050919050565b600060208201905081810360008301526135db8161359f565b9050919050565b600060a0820190506135f76000830188612b22565b61360460208301876130ea565b81810360408301526136168186612c9e565b9050613625606083018561268c565b613632608083018461268c565b9695505050505050565b60006080820190506136516000830187612bdc565b61365e6020830186612bdc565b61366b604083018561268c565b613678606083018461268c565b95945050505050565b7f53746172676174653a3a206f6e6c7920737461726761746520726f7574657200600082015250565b60006136b7601f83612e66565b91506136c282613681565b602082019050919050565b600060208201905081810360008301526136e6816136aa565b9050919050565b6136f6816130d8565b811461370157600080fd5b50565b600081519050613713816136ed565b92915050565b60006020828403121561372f5761372e6124e6565b5b600061373d84828501613704565b91505092915050565b600060408201905061375b6000830185612bdc565b613768602083018461268c565b9392505050565b7f53746172676174653a3a20636861696e206e6f742061737369676e6564206c6160008201527f796572207a65726f20636861696e206964000000000000000000000000000000602082015250565b60006137cb603183612e66565b91506137d68261376f565b604082019050919050565b600060208201905081810360008301526137fa816137be565b9050919050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b600061385d602283612e66565b915061386882613801565b604082019050919050565b6000602082019050818103600083015261388c81613850565b9050919050565b60006040820190506138a86000830185612bdc565b6138b56020830184612bdc565b9392505050565b6000602082840312156138d2576138d16124e6565b5b60006138e084828501612de8565b91505092915050565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b6000613945603683612e66565b9150613950826138e9565b604082019050919050565b6000602082019050818103600083015261397481613938565b9050919050565b61398481612575565b811461398f57600080fd5b50565b6000815190506139a18161397b565b92915050565b6000602082840312156139bd576139bc6124e6565b5b60006139cb84828501613992565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000613a30602a83612e66565b9150613a3b826139d4565b604082019050919050565b60006020820190508181036000830152613a5f81613a23565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b6000613ac2602683612e66565b9150613acd82613a66565b604082019050919050565b60006020820190508181036000830152613af181613ab5565b9050919050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000613b2e601d83612e66565b9150613b3982613af8565b602082019050919050565b60006020820190508181036000830152613b5d81613b21565b9050919050565b600081905092915050565b6000613b7a82612c58565b613b848185613b64565b9350613b94818560208601612c74565b80840191505092915050565b6000613bac8284613b6f565b915081905092915050565b600081519050919050565b6000613bcd82613bb7565b613bd78185612e66565b9350613be7818560208601612c74565b613bf0816128f4565b840191505092915050565b60006020820190508181036000830152613c158184613bc2565b90509291505056fea264697066735822122090655d77560fbdcd4e095f3dfc930a3e7db070b320dc9b637744ec84d85af1ca64736f6c63430008110033", + "deployedBytecode": "0x6080604052600436106100c25760003560e01c8063839408ac1161007f578063ab8236f311610059578063ab8236f31461025a578063ac0d2b1314610283578063e08e5071146102c0578063ffa47670146102fd576100c2565b8063839408ac146101f9578063940c9dee146102155780639b250ded1461023e576100c2565b806314917f99146100c757806316016d03146100f0578063264e6c9b1461012d578063295d4d411461016a57806332a7ab5d146101935780634a6f22c4146101bc575b600080fd5b3480156100d357600080fd5b506100ee60048036038101906100e99190612548565b61033a565b005b3480156100fc57600080fd5b5061011760048036038101906101129190612548565b61033d565b6040516101249190612590565b60405180910390f35b34801561013957600080fd5b50610154600480360381019061014f9190612640565b610344565b604051610161919061269b565b60405180910390f35b34801561017657600080fd5b50610191600480360381019061018c919061271c565b6104e7565b005b34801561019f57600080fd5b506101ba60048036038101906101b59190612548565b610609565b005b3480156101c857600080fd5b506101e360048036038101906101de9190612548565b61060c565b6040516101f09190612590565b60405180910390f35b610213600480360381019061020e919061275c565b610617565b005b34801561022157600080fd5b5061023c6004803603810190610237919061281b565b610d0c565b005b610258600480360381019061025391906128c2565b61104b565b005b34801561026657600080fd5b50610281600480360381019061027c9190612a30565b61190d565b005b34801561028f57600080fd5b506102aa60048036038101906102a59190612548565b611ae3565b6040516102b79190612590565b60405180910390f35b3480156102cc57600080fd5b506102e760048036038101906102e29190612af5565b611aea565b6040516102f49190612b31565b60405180910390f35b34801561030957600080fd5b50610324600480360381019061031f9190612548565b611c4d565b6040516103319190612590565b60405180910390f35b50565b6000919050565b600061035a676b6a1706fc40421f60c01b610609565b61036e67a17253b2deeb069060c01b610609565b61038267ccc986379c4d80f160c01b610609565b60008273ffffffffffffffffffffffffffffffffffffffff16630a5123696103ad8660400135611aea565b60018760e00160208101906103c29190612b4c565b6040516020016103d29190612bc1565b6040516020818303038152906040528860a00160208101906103f49190612b4c565b6040516020016104049190612beb565b60405160208183030381529060405260405180606001604052806207a12081526020016000815260200160006040516020016104409190612bc1565b6040516020818303038152906040528152506040518663ffffffff1660e01b8152600401610472959493929190612d80565b6040805180830381865afa15801561048e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b29190612dfd565b5090506104c967e102f2c572cf40f860c01b610609565b6104dd6716e95b907e1816a560c01b610609565b8091505092915050565b6104fb67988e490ae4c703d260c01b610609565b61050f676f8f307cb7de9ab860c01b610609565b6105236758da89dc13ce7b8860c01b610609565b61052b611c58565b61053f676a22c727528aee5e60c01b610609565b61055367108c5580da60d05260c01b610609565b600061055d611d57565b905061057367f670e362f8950d9d60c01b610609565b8181600301600085815260200190815260200160002060006101000a81548161ffff021916908361ffff1602179055506105b7675bcc90cec163367d60c01b610609565b6105cb674c56ade916095c4060c01b610609565b7f50cfe49eeb0e0291ed2de7bb42b55c6edb09463f1e8d96e373069cf1430e33fc83836040516105fc929190612e3d565b60405180910390a1505050565b50565b600060019050919050565b61062b6718ed4b83c401710460c01b610609565b61063f6770f43b674d4e55d060c01b61033a565b61065367fdb58b8d5e8c5bd260c01b61033a565b61066767f88563faceb9065260c01b61033a565b6000610671611dd5565b905061068767f5511ed184b06f9d60c01b61033a565b61069b675fe6356e9bb02e7e60c01b61033a565b60018160000154036106ed576106bb67c2bf72a01148a95560c01b61033a565b6040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107016759328cc6ac1a5b8460c01b61033a565b610715676585023ebf8de8b060c01b61033a565b600181600001819055506107336794e629fc71d8c79e60c01b61033a565b610747672881a2aec321239260c01b610609565b61075b67dd2c0f1b8d09895b60c01b610609565b61076f67cd6a1ff81758e0f760c01b610609565b6107836782429254fa8269b060c01b610609565b61079767a0f691c89b27008d60c01b610609565b60008260000135116107de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d590612ec3565b60405180910390fd5b6107f2677ebf072840a4d95f60c01b610609565b61080667fed74be637eda80b60c01b610609565b61081a676eb83bf20210390c60c01b610609565b6000610824611e53565b905061083a678182ad2943df89e460c01b610609565b61084e677425dff707a185d960c01b610609565b600061085a8483610344565b9050610870674404183e17d9e74c60c01b610609565b610884673bd291009b8078c860c01b610609565b610898670f089b8f5498528860c01b610609565b803410156108db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d290612f55565b60405180910390fd5b6108ef67820939dc08b273dd60c01b610609565b61090367c4e73b662355a21b60c01b610609565b61091767a3a1bb2ef1bf1ec660c01b610609565b60007f00000000000000000000000000000000000000000000000000000000000000008560c001602081019061094d9190612f75565b61ffff167f000000000000000000000000000000000000000000000000000000000000000061097c9190612fd1565b866000013561098b9190613005565b6109959190613076565b90506109ab67cc171d672a2a38cf60c01b610609565b6109bf673cb3bfc2ae73be4260c01b610609565b60008560e00160208101906109d49190612b4c565b6040516020016109e49190612bc1565b6040516020818303038152906040529050610a09670ddeef3ed113f00660c01b610609565b610a1d674e97eb2217c77f0f60c01b610609565b60008660a0016020810190610a329190612b4c565b604051602001610a429190612beb565b6040516020818303038152906040529050610a67674dab0ce8baf9c74160c01b610609565b610a7b67b7bb61978f9d97e560c01b610609565b610abe333089600001358a6020016020810190610a989190612b4c565b73ffffffffffffffffffffffffffffffffffffffff16611ec2909392919063ffffffff16565b610ad26708c58c8607868d6660c01b610609565b610ae6672a5fdb16657578a160c01b610609565b610b27858860000135896020016020810190610b029190612b4c565b73ffffffffffffffffffffffffffffffffffffffff16611f4b9092919063ffffffff16565b610b3b67fb60f2f8d21dd4f560c01b610609565b610b4f672e33f0d6552af9c760c01b610609565b8473ffffffffffffffffffffffffffffffffffffffff16639fbf10fc85610b798a60400135611aea565b8a6060016020810190610b8c9190612f75565b8b6080016020810190610b9f9190612f75565b338d600001358a60405180606001604052806207a1208152602001600081526020016040518060400160405280600281526020017f30780000000000000000000000000000000000000000000000000000000000008152508152508b8b6040518b63ffffffff1660e01b8152600401610c20999897969594939291906130f9565b6000604051808303818588803b158015610c3957600080fd5b505af1158015610c4d573d6000803e3d6000fd5b5050505050610c6667bab67b428018644460c01b610609565b610c7a6706ce641916e6cc2c60c01b610609565b7f0e95200cdc1da2112676781af663a51503f29bb3e511cfaa660977d2580be1d0876020016020810190610cae9190612b4c565b338960a0016020810190610cc29190612b4c565b8a600001358b60400135604051610cdd95949392919061319b565b60405180910390a15050505050610cfe67441391ce80e99b6c60c01b61033a565b600081600001819055505050565b610d2067dc78b0b6dcb719a660c01b610609565b610d34671ad991e745fcd88760c01b610609565b610d4867fbb408854cfb5ba560c01b610609565b610d5c671bab65bc473a358060c01b610609565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610dcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc290613260565b60405180910390fd5b610ddf67e238d996e1c6a29b60c01b610609565b610df367346f91eeb5fc6c6260c01b610609565b610e076759434cdfca46912960c01b610609565b610e0f611c58565b610e23672f925d4afc29a3a260c01b610609565b610e3767e89ae70bcfd142a660c01b610609565b6000610e41611d57565b9050610e5767ec5bab896690566660c01b610609565b858160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610eae670c86ec52c985f76e60c01b610609565b848160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f0567230957ad1da75ff460c01b610609565b838160020181905550610f2267f53cb1bb6c6a5c5860c01b610609565b610f36674dbd10ddc78689da60c01b610609565b60005b83839050811015610fdf57610f58677766d8e0fe7ffd4b60c01b610609565b838382818110610f6b57610f6a613280565b5b9050604002016020016020810190610f839190612f75565b826003016000868685818110610f9c57610f9b613280565b5b90506040020160000135815260200190815260200160002060006101000a81548161ffff021916908361ffff16021790555080610fd8906132af565b9050610f39565b50610ff467eea98b178fd576e060c01b610609565b611008672f4996614d79aa5760c01b610609565b7ff4ec21f4fb595315ed445181b8973d6ebb853009bd6593a82fbbeadab2efc9b086868660405161103b939291906132f7565b60405180910390a1505050505050565b61105f677b6b1c7fc9e8a18560c01b610609565b6110736770f43b674d4e55d060c01b61033a565b61108767fdb58b8d5e8c5bd260c01b61033a565b61109b67f88563faceb9065260c01b61033a565b60006110a5611dd5565b90506110bb67f5511ed184b06f9d60c01b61033a565b6110cf675fe6356e9bb02e7e60c01b61033a565b6001816000015403611121576110ef67c2bf72a01148a95560c01b61033a565b6040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111356759328cc6ac1a5b8460c01b61033a565b611149676585023ebf8de8b060c01b61033a565b600181600001819055506111676794e629fc71d8c79e60c01b61033a565b61117b6755ebe8d99bfab0e660c01b610609565b61118f6783c099c3d6920eee60c01b610609565b6111a3677b2d23df6c743c1660c01b610609565b6111b7670e1bf95028b3562660c01b610609565b60006111c161209a565b90506111d767826a8031febc47a560c01b610609565b6111eb67e55f748511272f7660c01b610609565b6111ff6797ef46cfb2e1f1d860c01b610609565b60018114801561121f575061121e67b9defce38c448c0160c01b611c4d565b5b80611263575061a4b18114801561124657506112456744e394d95fc655b860c01b611c4d565b5b80156112625750611261676db8cef885766f1060c01b611c4d565b5b5b8061128a5750600a8114801561128957506112886791823fee38b54f9160c01b611c4d565b5b5b6112c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c0906133a0565b60405180910390fd5b6112dd67c9884dd7993613aa60c01b610609565b6112f167ce6b46409cb3036260c01b610609565b611305678e4e74cf10e6efcd60c01b610609565b61131967f1661058e39d604460c01b610609565b6001836020013514801561133d575061133c67d994b9fff3faf3d060c01b611c4d565b5b80611385575061a4b183602001351480156113685750611367678522fbcee38e3f2b60c01b611c4d565b5b80156113845750611383673d7f2a1cdc796c6b60c01b611c4d565b5b5b806113b05750600a83602001351480156113af57506113ae67a0b23bb6c5a2034d60c01b611c4d565b5b5b6113ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e690613432565b60405180910390fd5b61140367634ee426de357fec60c01b610609565b61141767671a1c703a7e255060c01b610609565b61142b671b85965e9b09a19360c01b610609565b61143f673e51b130d02414f960c01b610609565b60003411611482576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114799061349e565b60405180910390fd5b611496675475f5afcea4234f60c01b610609565b6114aa675be0e357a87433b260c01b610609565b6114be6714bd332749c6464c60c01b610609565b6114d267824e0feb461fd68b60c01b610609565b6000836000013511611519576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151090612ec3565b60405180910390fd5b61152d675aead8b9e4a94ad660c01b610609565b6115416715642c51226fe7e860c01b610609565b61155567bf6afb6d248e364260c01b610609565b611569675814d8dff7797ece60c01b610609565b826000013534116115af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a690613530565b60405180910390fd5b6115c367a7838bcc3dcf6f4960c01b610609565b6115d7674b87efcc48a2f6f860c01b610609565b6115eb67b577870ea07885de60c01b610609565b60006115f56120e9565b905061160b67504c44f964d09bda60c01b610609565b61161f67b629ff5fe4b6bbfb60c01b610609565b6116336791136c08444782d460c01b610609565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611699906135c2565b60405180910390fd5b6116b667945f14428689a58760c01b610609565b6116ca6709e6dbebddbfaf8160c01b610609565b6116de67506d17b653e10f7c60c01b610609565b60008460400160208101906116f39190612b4c565b6040516020016117039190612bc1565b60405160208183030381529060405290506117286779683220dd60860f60c01b610609565b61173c67c5d6139a64abbcc360c01b610609565b60007f00000000000000000000000000000000000000000000000000000000000000008660600160208101906117729190612f75565b61ffff167f00000000000000000000000000000000000000000000000000000000000000006117a19190612fd1565b87600001356117b09190613005565b6117ba9190613076565b90506117d067edccaf14a309f8b960c01b610609565b6117e467dfd394e8ca55834a60c01b610609565b8273ffffffffffffffffffffffffffffffffffffffff16631114cd2a3461180e8960200135611aea565b33868b60000135876040518763ffffffff1660e01b81526004016118369594939291906135e2565b6000604051808303818588803b15801561184f57600080fd5b505af1158015611863573d6000803e3d6000fd5b505050505061187c678f9ff857a7f5aa9860c01b610609565b611890679c044cacc1ce321260c01b610609565b7f2bedf250e292271a6dbcf3e289b75c4218a8494e721aabc2b475c22d8816f1d2338760400160208101906118c59190612b4c565b886000013589602001356040516118df949392919061363c565b60405180910390a1505050506118ff67441391ce80e99b6c60c01b61033a565b600081600001819055505050565b61192167c3456030a1bbb0e360c01b610609565b611935670b715fd8e1f8669860c01b610609565b61194967b53fdb9756ae99c460c01b610609565b61195d67de50a656d8824a5b60c01b610609565b611965611e53565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c9906136cd565b60405180910390fd5b6119e66704131b314593100d60c01b610609565b6119fa677fc8dbefdd35b0e460c01b610609565b611a0e6748055bde4d58675260c01b610609565b600081806020019051810190611a249190613719565b9050611a3a675e435c4e6f42509860c01b610609565b611a4e675b92b8826195634960c01b610609565b611a7981848673ffffffffffffffffffffffffffffffffffffffff166121589092919063ffffffff16565b611a8d67cf796a2db721527860c01b610609565b611aa167582a53062f53745760c01b610609565b7fa99538de04029bcd6cc1a8af32ebefef188052f963f80ab67b7fc49e23d0cd4c8484604051611ad2929190613746565b60405180910390a150505050505050565b6000919050565b6000611b0067a57cd9c6b9c41c6a60c01b610609565b611b14674f07f9242ebfa41160c01b610609565b611b28677a529f509caba1b060c01b610609565b6000611b32611d57565b9050611b48678fefb47c1559ea4b60c01b610609565b611b5c67d18e9683e19854f960c01b610609565b600081600301600085815260200190815260200160002060009054906101000a900461ffff169050611b9867e3c404249a55474b60c01b610609565b611bac67fbcd6388192b0a2f60c01b610609565b611bc0678530e22ceaeb424960c01b610609565b60008161ffff1603611c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfe906137e1565b60405180910390fd5b611c1b670c18b96b58e103a860c01b610609565b611c2f67f817d71c659e66ef60c01b610609565b611c43673ae9ed46966d707860c01b610609565b8092505050919050565b600060019050919050565b611c6c6721b40df6734b4e6460c01b6121de565b611c80677276b6d1bbf7b68b60c01b6121de565b611c9467f8611dbcb55a1f7860c01b6121de565b611ca8676cedf54251a3375160c01b6121de565b611cb06121e1565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3890613873565b60405180910390fd5b611d5567e452355b21bbd41e60c01b6121de565b565b6000611d6d67b34d90284ae0e9ef60c01b610609565b611d81672ed81e52c23168e360c01b610609565b611d9567e2ec83ce9578657560c01b610609565b60007fbaeadb48cbcf0176d6c6ac156b0140abe0fb28a100a9a6a8b5df37e55693b1c89050611dce670edd023654e5f17260c01b610609565b8091505090565b6000611deb67fa11c344c1ec53a860c01b61033a565b611dff670fd7b7008acdbf5460c01b61033a565b611e13679fbd6d57c5d665d460c01b61033a565b60007fc59b5acc5a6673a6c49ca2de898f87adbd9fdfdff36f689476b1c9e0c50964b49050611e4c67a9235c9a8268ed9060c01b61033a565b8091505090565b6000611e6967fd4dc90c18680f3060c01b610609565b611e7d6793e4e41457cec23060c01b610609565b611e9167f074c466862371b560c01b610609565b611e99611d57565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611f45846323b872dd60e01b858585604051602401611ee3939291906132f7565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061225f565b50505050565b6000811480611fd5575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401611f92929190613893565b602060405180830381865afa158015611faf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd391906138bc565b145b612014576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200b9061395b565b60405180910390fd5b6120958363095ea7b360e01b8484604051602401612033929190613746565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061225f565b505050565b60006120b067d1228306a9aa7ca160c01b610609565b6120c467a36f2b778691a42060c01b610609565b6120d86768a861b45d12e14460c01b610609565b6120e0611d57565b60020154905090565b60006120ff67ef5c638aa66eb48260c01b610609565b612113675a88d7efbd851a3e60c01b610609565b61212767cceaffc246b2acc960c01b610609565b61212f611d57565b60010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6121d98363a9059cbb60e01b8484604051602401612177929190613746565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061225f565b505050565b50565b60006121f7674f9afbb757d80e6360c01b6121de565b61220b674b823103125da15660c01b6121de565b61221f674ab715c231c1608d60c01b6121de565b60007fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c905061225867982d9bb86701efa860c01b6121de565b8091505090565b60006122c1826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166123269092919063ffffffff16565b905060008151111561232157808060200190518101906122e191906139a7565b612320576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231790613a46565b60405180910390fd5b5b505050565b6060612335848460008561233e565b90509392505050565b606082471015612383576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237a90613ad8565b60405180910390fd5b61238c85612452565b6123cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c290613b44565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516123f49190613ba0565b60006040518083038185875af1925050503d8060008114612431576040519150601f19603f3d011682016040523d82523d6000602084013e612436565b606091505b5091509150612446828286612475565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60608315612485578290506124d5565b6000835111156124985782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124cc9190613bfb565b60405180910390fd5b9392505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b612525816124f0565b811461253057600080fd5b50565b6000813590506125428161251c565b92915050565b60006020828403121561255e5761255d6124e6565b5b600061256c84828501612533565b91505092915050565b60008115159050919050565b61258a81612575565b82525050565b60006020820190506125a56000830184612581565b92915050565b600080fd5b600061010082840312156125c7576125c66125ab565b5b81905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125fb826125d0565b9050919050565b600061260d826125f0565b9050919050565b61261d81612602565b811461262857600080fd5b50565b60008135905061263a81612614565b92915050565b6000806101208385031215612658576126576124e6565b5b6000612666858286016125b0565b9250506101006126788582860161262b565b9150509250929050565b6000819050919050565b61269581612682565b82525050565b60006020820190506126b0600083018461268c565b92915050565b6126bf81612682565b81146126ca57600080fd5b50565b6000813590506126dc816126b6565b92915050565b600061ffff82169050919050565b6126f9816126e2565b811461270457600080fd5b50565b600081359050612716816126f0565b92915050565b60008060408385031215612733576127326124e6565b5b6000612741858286016126cd565b925050602061275285828601612707565b9150509250929050565b60006101008284031215612773576127726124e6565b5b6000612781848285016125b0565b91505092915050565b612793816125f0565b811461279e57600080fd5b50565b6000813590506127b08161278a565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126127db576127da6127b6565b5b8235905067ffffffffffffffff8111156127f8576127f76127bb565b5b602083019150836040820283011115612814576128136127c0565b5b9250929050565b600080600080600060808688031215612837576128366124e6565b5b6000612845888289016127a1565b9550506020612856888289016127a1565b9450506040612867888289016126cd565b935050606086013567ffffffffffffffff811115612888576128876124eb565b5b612894888289016127c5565b92509250509295509295909350565b6000608082840312156128b9576128b86125ab565b5b81905092915050565b6000608082840312156128d8576128d76124e6565b5b60006128e6848285016128a3565b91505092915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61293d826128f4565b810181811067ffffffffffffffff8211171561295c5761295b612905565b5b80604052505050565b600061296f6124dc565b905061297b8282612934565b919050565b600067ffffffffffffffff82111561299b5761299a612905565b5b6129a4826128f4565b9050602081019050919050565b82818337600083830152505050565b60006129d36129ce84612980565b612965565b9050828152602081018484840111156129ef576129ee6128ef565b5b6129fa8482856129b1565b509392505050565b600082601f830112612a1757612a166127b6565b5b8135612a278482602086016129c0565b91505092915050565b60008060008060008060c08789031215612a4d57612a4c6124e6565b5b6000612a5b89828a01612707565b965050602087013567ffffffffffffffff811115612a7c57612a7b6124eb565b5b612a8889828a01612a02565b9550506040612a9989828a016126cd565b9450506060612aaa89828a016127a1565b9350506080612abb89828a016126cd565b92505060a087013567ffffffffffffffff811115612adc57612adb6124eb565b5b612ae889828a01612a02565b9150509295509295509295565b600060208284031215612b0b57612b0a6124e6565b5b6000612b19848285016126cd565b91505092915050565b612b2b816126e2565b82525050565b6000602082019050612b466000830184612b22565b92915050565b600060208284031215612b6257612b616124e6565b5b6000612b70848285016127a1565b91505092915050565b60008160601b9050919050565b6000612b9182612b79565b9050919050565b6000612ba382612b86565b9050919050565b612bbb612bb6826125f0565b612b98565b82525050565b6000612bcd8284612baa565b60148201915081905092915050565b612be5816125f0565b82525050565b6000602082019050612c006000830184612bdc565b92915050565b6000819050919050565b600060ff82169050919050565b6000819050919050565b6000612c42612c3d612c3884612c06565b612c1d565b612c10565b9050919050565b612c5281612c27565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c92578082015181840152602081019050612c77565b60008484015250505050565b6000612ca982612c58565b612cb38185612c63565b9350612cc3818560208601612c74565b612ccc816128f4565b840191505092915050565b612ce081612682565b82525050565b600082825260208201905092915050565b6000612d0282612c58565b612d0c8185612ce6565b9350612d1c818560208601612c74565b612d25816128f4565b840191505092915050565b6000606083016000830151612d486000860182612cd7565b506020830151612d5b6020860182612cd7565b5060408301518482036040860152612d738282612cf7565b9150508091505092915050565b600060a082019050612d956000830188612b22565b612da26020830187612c49565b8181036040830152612db48186612c9e565b90508181036060830152612dc88185612c9e565b90508181036080830152612ddc8184612d30565b90509695505050505050565b600081519050612df7816126b6565b92915050565b60008060408385031215612e1457612e136124e6565b5b6000612e2285828601612de8565b9250506020612e3385828601612de8565b9150509250929050565b6000604082019050612e52600083018561268c565b612e5f6020830184612b22565b9392505050565b600082825260208201905092915050565b7f53746172676174653a3a20696e76616c6964207175616e746974790000000000600082015250565b6000612ead601b83612e66565b9150612eb882612e77565b602082019050919050565b60006020820190508181036000830152612edc81612ea0565b9050919050565b7f53746172676174653a3a206d73672e76616c7565206e6f7420656e6f7567682060008201527f746f20706179206272696467696e672066656500000000000000000000000000602082015250565b6000612f3f603383612e66565b9150612f4a82612ee3565b604082019050919050565b60006020820190508181036000830152612f6e81612f32565b9050919050565b600060208284031215612f8b57612f8a6124e6565b5b6000612f9984828501612707565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612fdc82612682565b9150612fe783612682565b9250828203905081811115612fff57612ffe612fa2565b5b92915050565b600061301082612682565b915061301b83612682565b925082820261302981612682565b915082820484148315176130405761303f612fa2565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061308182612682565b915061308c83612682565b92508261309c5761309b613047565b5b828204905092915050565b60006130c26130bd6130b8846126e2565b612c1d565b612682565b9050919050565b6130d2816130a7565b82525050565b60006130e3826125d0565b9050919050565b6130f3816130d8565b82525050565b60006101208201905061310f600083018c612b22565b61311c602083018b6130c9565b613129604083018a6130c9565b61313660608301896130ea565b613143608083018861268c565b61315060a083018761268c565b81810360c08301526131628186612d30565b905081810360e08301526131768185612c9e565b905081810361010083015261318b8184612c9e565b90509a9950505050505050505050565b600060a0820190506131b06000830188612bdc565b6131bd6020830187612bdc565b6131ca6040830186612bdc565b6131d7606083018561268c565b6131e4608083018461268c565b9695505050505050565b7f53746172676174653a3a20696e76616c696420726f757465722061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061324a602183612e66565b9150613255826131ee565b604082019050919050565b600060208201905081810360008301526132798161323d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006132ba82612682565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132ec576132eb612fa2565b5b600182019050919050565b600060608201905061330c6000830186612bdc565b6133196020830185612bdc565b613326604083018461268c565b949350505050565b7f53746172676174653a3a2043616e6e6f74206469726563746c7920627269646760008201527f65204554482066726f6d207468697320636861696e0000000000000000000000602082015250565b600061338a603583612e66565b91506133958261332e565b604082019050919050565b600060208201905081810360008301526133b98161337d565b9050919050565b7f53746172676174653a3a2043616e6e6f74206469726563746c7920627269646760008201527f652045544820746f207468697320636861696e00000000000000000000000000602082015250565b600061341c603383612e66565b9150613427826133c0565b604082019050919050565b6000602082019050818103600083015261344b8161340f565b9050919050565b7f53746172676174653a3a206d73672e76616c7565207265717569726564000000600082015250565b6000613488601d83612e66565b915061349382613452565b602082019050919050565b600060208201905081810360008301526134b78161347b565b9050919050565b7f53746172676174653a206e6f206665657320616464656420666f72204554482060008201527f7472616e73666572000000000000000000000000000000000000000000000000602082015250565b600061351a602883612e66565b9150613525826134be565b604082019050919050565b600060208201905081810360008301526135498161350d565b9050919050565b7f53746172676174653a3a20455448207472616e73666572206e6f74206176616960008201527f6c61626c65000000000000000000000000000000000000000000000000000000602082015250565b60006135ac602583612e66565b91506135b782613550565b604082019050919050565b600060208201905081810360008301526135db8161359f565b9050919050565b600060a0820190506135f76000830188612b22565b61360460208301876130ea565b81810360408301526136168186612c9e565b9050613625606083018561268c565b613632608083018461268c565b9695505050505050565b60006080820190506136516000830187612bdc565b61365e6020830186612bdc565b61366b604083018561268c565b613678606083018461268c565b95945050505050565b7f53746172676174653a3a206f6e6c7920737461726761746520726f7574657200600082015250565b60006136b7601f83612e66565b91506136c282613681565b602082019050919050565b600060208201905081810360008301526136e6816136aa565b9050919050565b6136f6816130d8565b811461370157600080fd5b50565b600081519050613713816136ed565b92915050565b60006020828403121561372f5761372e6124e6565b5b600061373d84828501613704565b91505092915050565b600060408201905061375b6000830185612bdc565b613768602083018461268c565b9392505050565b7f53746172676174653a3a20636861696e206e6f742061737369676e6564206c6160008201527f796572207a65726f20636861696e206964000000000000000000000000000000602082015250565b60006137cb603183612e66565b91506137d68261376f565b604082019050919050565b600060208201905081810360008301526137fa816137be565b9050919050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b600061385d602283612e66565b915061386882613801565b604082019050919050565b6000602082019050818103600083015261388c81613850565b9050919050565b60006040820190506138a86000830185612bdc565b6138b56020830184612bdc565b9392505050565b6000602082840312156138d2576138d16124e6565b5b60006138e084828501612de8565b91505092915050565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b6000613945603683612e66565b9150613950826138e9565b604082019050919050565b6000602082019050818103600083015261397481613938565b9050919050565b61398481612575565b811461398f57600080fd5b50565b6000815190506139a18161397b565b92915050565b6000602082840312156139bd576139bc6124e6565b5b60006139cb84828501613992565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000613a30602a83612e66565b9150613a3b826139d4565b604082019050919050565b60006020820190508181036000830152613a5f81613a23565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b6000613ac2602683612e66565b9150613acd82613a66565b604082019050919050565b60006020820190508181036000830152613af181613ab5565b9050919050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000613b2e601d83612e66565b9150613b3982613af8565b602082019050919050565b60006020820190508181036000830152613b5d81613b21565b9050919050565b600081905092915050565b6000613b7a82612c58565b613b848185613b64565b9350613b94818560208601612c74565b80840191505092915050565b6000613bac8284613b6f565b915081905092915050565b600081519050919050565b6000613bcd82613bb7565b613bd78185612e66565b9350613be7818560208601612c74565b613bf0816128f4565b840191505092915050565b60006020820190508181036000830152613c158184613bc2565b90509291505056fea264697066735822122090655d77560fbdcd4e095f3dfc930a3e7db070b320dc9b637744ec84d85af1ca64736f6c63430008110033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/WrappedWeiToken.json b/artifacts/WrappedWeiToken.json index b9a23edc..0b181dfb 100644 --- a/artifacts/WrappedWeiToken.json +++ b/artifacts/WrappedWeiToken.json @@ -164,6 +164,210 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__098c0657", + "type": "bytes8" + } + ], + "name": "c_098c0657", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__42d24766", + "type": "bytes8" + } + ], + "name": "c_42d24766", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__99a47378", + "type": "bytes8" + } + ], + "name": "c_99a47378", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__d18be0f9", + "type": "bytes8" + } + ], + "name": "c_d18be0f9", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__098c0657", + "type": "bytes8" + } + ], + "name": "c_false098c0657", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__42d24766", + "type": "bytes8" + } + ], + "name": "c_false42d24766", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__99a47378", + "type": "bytes8" + } + ], + "name": "c_false99a47378", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__d18be0f9", + "type": "bytes8" + } + ], + "name": "c_falsed18be0f9", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__098c0657", + "type": "bytes8" + } + ], + "name": "c_true098c0657", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__42d24766", + "type": "bytes8" + } + ], + "name": "c_true42d24766", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__99a47378", + "type": "bytes8" + } + ], + "name": "c_true99a47378", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes8", + "name": "c__d18be0f9", + "type": "bytes8" + } + ], + "name": "c_trued18be0f9", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [], "name": "decimals", @@ -415,8 +619,8 @@ "type": "receive" } ], - "bytecode": "0x60806040523480156200001157600080fd5b50326000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600b81526020017f5772617070656420576569000000000000000000000000000000000000000000815250600190805190602001906200009f929190620000f4565b506040518060400160405280600481526020017f575745490000000000000000000000000000000000000000000000000000000081525060029080519060200190620000ed929190620000f4565b506200019a565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200013757805160ff191683800117855562000168565b8280016001018555821562000168579182015b82811115620001675782518255916020019190600101906200014a565b5b5090506200017791906200017b565b5090565b5b80821115620001965760008160009055506001016200017c565b5090565b6120b080620001aa6000396000f3fe6080604052600436106101235760003560e01c806356a3b64b116100a0578063a9059cbb11610064578063a9059cbb1461065f578063b760faf9146106d0578063ca9add8f14610714578063dd62ed3e14610765578063f55647e0146107ea5761013b565b806356a3b64b146104d557806370a08231146104ec578063834ff73914610551578063853828b6146105b857806395d89b41146105cf5761013b565b806323b872dd116100e757806323b872dd146103085780632e1a7d4d14610399578063313ce567146103d4578063392e53cd14610402578063462d0b2e1461042f5761013b565b806306fdde0314610140578063095ea7b3146101d0578063116191b61461024157806318160ddd14610282578063205c2878146102ad5761013b565b3661013b57610139610133610801565b34610810565b005b600080fd5b34801561014c57600080fd5b50610155610a26565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561019557808201518184015260208101905061017a565b50505050905090810190601f1680156101c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101dc57600080fd5b50610229600480360360408110156101f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ac4565b60405180821515815260200191505060405180910390f35b34801561024d57600080fd5b50610256610ae2565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561028e57600080fd5b50610297610b08565b6040518082815260200191505060405180910390f35b3480156102b957600080fd5b50610306600480360360408110156102d057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b0e565b005b34801561031457600080fd5b506103816004803603606081101561032b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b24565b60405180821515815260200191505060405180910390f35b3480156103a557600080fd5b506103d2600480360360208110156103bc57600080fd5b8101908080359060200190929190505050610be1565b005b3480156103e057600080fd5b506103e9610bfd565b604051808260ff16815260200191505060405180910390f35b34801561040e57600080fd5b50610417610c10565b60405180821515815260200191505060405180910390f35b34801561043b57600080fd5b506104d36004803603604081101561045257600080fd5b810190808035906020019064010000000081111561046f57600080fd5b82018360208201111561048157600080fd5b803590602001918460208302840111640100000000831117156104a357600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c66565b005b3480156104e157600080fd5b506104ea610e05565b005b3480156104f857600080fd5b5061053b6004803603602081101561050f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e17565b6040518082815260200191505060405180910390f35b34801561055d57600080fd5b506105a06004803603602081101561057457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e60565b60405180821515815260200191505060405180910390f35b3480156105c457600080fd5b506105cd610eb6565b005b3480156105db57600080fd5b506105e4610f0f565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610624578082015181840152602081019050610609565b50505050905090810190601f1680156106515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561066b57600080fd5b506106b86004803603604081101561068257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fad565b60405180821515815260200191505060405180910390f35b610712600480360360208110156106e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fcb565b005b34801561072057600080fd5b506107636004803603602081101561073757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fd8565b005b34801561077157600080fd5b506107d46004803603604081101561078857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611032565b6040518082815260200191505060405180910390f35b3480156107f657600080fd5b506107ff6110b9565b005b600061080b61120f565b905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610896576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611fb66026913960400191505060405180910390fd5b6000811161090c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4552433230546f6b656e3a2063616e6e6f74206d696e7420302076616c75650081525060200191505060405180910390fd5b61095e81600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461122090919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109b68160045461122090919063ffffffff16565b6004819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610abc5780601f10610a9157610100808354040283529160200191610abc565b820191906000526020600020905b815481529060010190602001808311610a9f57829003601f168201915b505050505081565b6000610ad8610ad1610801565b84846112a8565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b610b20610b19610801565b838361149f565b5050565b600080610b2f610801565b9050610b3c858585611538565b610bd58582610bd086600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ab90919063ffffffff16565b6112a8565b60019150509392505050565b610bfa610bec610801565b610bf4610801565b8361149f565b50565b600360009054906101000a900460ff1681565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614610d0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180611ec8602f913960400191505060405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008383905014610daa57600083839050905060005b81811015610da757610d9a858583818110610d7857fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff166115d8565b8080600101915050610d61565b50505b610db381611723565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e632604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b610e15610e10610801565b6115d8565b565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000610ec0610801565b9050610f0c8182600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461149f565b50565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610fa55780601f10610f7a57610100808354040283529160200191610fa5565b820191906000526020600020905b815481529060010190602001808311610f8857829003601f168201915b505050505081565b6000610fc1610fba610801565b8484611538565b6001905092915050565b610fd58134610810565b50565b6000610fe2610801565b905061102e8183600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461149f565b5050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60006110c3610801565b9050600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611167576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806120066027913960400191505060405180910390fd5b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fe3f5ed5f263f1f01764a96edfc7d025f511ec5f7d180e8816908b78bcf74f09881604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600061121b6028611767565b905090565b60008082840190508381101561129e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174684c69623a206164646974696f6e206f766572666c6f77000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561132e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180611f8b602b913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113b4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180611f416029913960400191505060405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6114a983826117fc565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050611533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061202d6025913960400191505060405180910390fd5b505050565b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561159a5761159583838361149f565b6115a6565b6115a58383836119b6565b5b505050565b60006115d08383604051806060016040528060218152602001611f6a60219139611c56565b905092915050565b600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561167b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611ef76028913960400191505060405180910390fd5b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f28b26e7a3d20aedbc5f8f2ebf7da671c0491723a2b78f47a097b0e46dee0714281604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009050611776611d10565b156117ef5760008360003690500390506117e76000368390601485019261179f93929190611e6c565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611dd3565b9150506117f3565b3390505b80915050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611882576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611ea06028913960400191505060405180910390fd5b6118ee8160405180606001604052806026815260200161205260269139600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c569092919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611946816004546115ab90919063ffffffff16565b600481905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a3c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180612078602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ac2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180611fdc602a913960400191505060405180910390fd5b611b1481600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ab90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ba981600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461122090919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290611d03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cc8578082015181840152602081019050611cad565b50505050905090810190601f168015611cf55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b600080600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611dcc57602c60003690501015611dc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611f1f6022913960400191505060405180910390fd5b600190505b8091505090565b6000806014835114611e4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f42797465734c69623a20696e76616c69642064617461206c656e67746800000081525060200191505060405180910390fd5b6c01000000000000000000000000602084015104905080915050919050565b60008085851115611e7c57600080fd5b83861115611e8957600080fd5b600185028301915084860390509450949250505056fe4552433230546f6b656e3a2063616e6e6f74206275726e2066726f6d203078302061646472657373496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742074686520696e697469616c697a657257726170706564576569546f6b656e3a20636f6e73756d657220616c72656164792065786973747347617465776179526563697069656e743a20696e76616c6964206d73672e646174614552433230546f6b656e3a2063616e6e6f7420617070726f766520746f203078302061646472657373536166654d6174684c69623a207375627472616374696f6e206f766572666c6f774552433230546f6b656e3a2063616e6e6f7420617070726f76652066726f6d2030783020616464726573734552433230546f6b656e3a2063616e6e6f74206d696e7420746f2030783020616464726573734552433230546f6b656e3a2063616e6e6f74207472616e7366657220746f20307830206164647265737357726170706564576569546f6b656e3a20636f6e73756d657220646f65736e277420657869737457726170706564576569546f6b656e3a207472616e73616374696f6e2072657665727465644552433230546f6b656e3a206275726e2076616c756520657863656564732062616c616e63654552433230546f6b656e3a2063616e6e6f74207472616e736665722066726f6d203078302061646472657373a164736f6c634300060c000a", - "deployedBytecode": "0x6080604052600436106101235760003560e01c806356a3b64b116100a0578063a9059cbb11610064578063a9059cbb1461065f578063b760faf9146106d0578063ca9add8f14610714578063dd62ed3e14610765578063f55647e0146107ea5761013b565b806356a3b64b146104d557806370a08231146104ec578063834ff73914610551578063853828b6146105b857806395d89b41146105cf5761013b565b806323b872dd116100e757806323b872dd146103085780632e1a7d4d14610399578063313ce567146103d4578063392e53cd14610402578063462d0b2e1461042f5761013b565b806306fdde0314610140578063095ea7b3146101d0578063116191b61461024157806318160ddd14610282578063205c2878146102ad5761013b565b3661013b57610139610133610801565b34610810565b005b600080fd5b34801561014c57600080fd5b50610155610a26565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561019557808201518184015260208101905061017a565b50505050905090810190601f1680156101c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101dc57600080fd5b50610229600480360360408110156101f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ac4565b60405180821515815260200191505060405180910390f35b34801561024d57600080fd5b50610256610ae2565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561028e57600080fd5b50610297610b08565b6040518082815260200191505060405180910390f35b3480156102b957600080fd5b50610306600480360360408110156102d057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b0e565b005b34801561031457600080fd5b506103816004803603606081101561032b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b24565b60405180821515815260200191505060405180910390f35b3480156103a557600080fd5b506103d2600480360360208110156103bc57600080fd5b8101908080359060200190929190505050610be1565b005b3480156103e057600080fd5b506103e9610bfd565b604051808260ff16815260200191505060405180910390f35b34801561040e57600080fd5b50610417610c10565b60405180821515815260200191505060405180910390f35b34801561043b57600080fd5b506104d36004803603604081101561045257600080fd5b810190808035906020019064010000000081111561046f57600080fd5b82018360208201111561048157600080fd5b803590602001918460208302840111640100000000831117156104a357600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c66565b005b3480156104e157600080fd5b506104ea610e05565b005b3480156104f857600080fd5b5061053b6004803603602081101561050f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e17565b6040518082815260200191505060405180910390f35b34801561055d57600080fd5b506105a06004803603602081101561057457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e60565b60405180821515815260200191505060405180910390f35b3480156105c457600080fd5b506105cd610eb6565b005b3480156105db57600080fd5b506105e4610f0f565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610624578082015181840152602081019050610609565b50505050905090810190601f1680156106515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561066b57600080fd5b506106b86004803603604081101561068257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fad565b60405180821515815260200191505060405180910390f35b610712600480360360208110156106e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fcb565b005b34801561072057600080fd5b506107636004803603602081101561073757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fd8565b005b34801561077157600080fd5b506107d46004803603604081101561078857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611032565b6040518082815260200191505060405180910390f35b3480156107f657600080fd5b506107ff6110b9565b005b600061080b61120f565b905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610896576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611fb66026913960400191505060405180910390fd5b6000811161090c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4552433230546f6b656e3a2063616e6e6f74206d696e7420302076616c75650081525060200191505060405180910390fd5b61095e81600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461122090919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109b68160045461122090919063ffffffff16565b6004819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610abc5780601f10610a9157610100808354040283529160200191610abc565b820191906000526020600020905b815481529060010190602001808311610a9f57829003601f168201915b505050505081565b6000610ad8610ad1610801565b84846112a8565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b610b20610b19610801565b838361149f565b5050565b600080610b2f610801565b9050610b3c858585611538565b610bd58582610bd086600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ab90919063ffffffff16565b6112a8565b60019150509392505050565b610bfa610bec610801565b610bf4610801565b8361149f565b50565b600360009054906101000a900460ff1681565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614610d0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180611ec8602f913960400191505060405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008383905014610daa57600083839050905060005b81811015610da757610d9a858583818110610d7857fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff166115d8565b8080600101915050610d61565b50505b610db381611723565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e632604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b610e15610e10610801565b6115d8565b565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000610ec0610801565b9050610f0c8182600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461149f565b50565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610fa55780601f10610f7a57610100808354040283529160200191610fa5565b820191906000526020600020905b815481529060010190602001808311610f8857829003601f168201915b505050505081565b6000610fc1610fba610801565b8484611538565b6001905092915050565b610fd58134610810565b50565b6000610fe2610801565b905061102e8183600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461149f565b5050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60006110c3610801565b9050600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611167576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806120066027913960400191505060405180910390fd5b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fe3f5ed5f263f1f01764a96edfc7d025f511ec5f7d180e8816908b78bcf74f09881604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600061121b6028611767565b905090565b60008082840190508381101561129e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174684c69623a206164646974696f6e206f766572666c6f77000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561132e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180611f8b602b913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113b4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180611f416029913960400191505060405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6114a983826117fc565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050611533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061202d6025913960400191505060405180910390fd5b505050565b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561159a5761159583838361149f565b6115a6565b6115a58383836119b6565b5b505050565b60006115d08383604051806060016040528060218152602001611f6a60219139611c56565b905092915050565b600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561167b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611ef76028913960400191505060405180910390fd5b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f28b26e7a3d20aedbc5f8f2ebf7da671c0491723a2b78f47a097b0e46dee0714281604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009050611776611d10565b156117ef5760008360003690500390506117e76000368390601485019261179f93929190611e6c565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611dd3565b9150506117f3565b3390505b80915050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611882576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611ea06028913960400191505060405180910390fd5b6118ee8160405180606001604052806026815260200161205260269139600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c569092919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611946816004546115ab90919063ffffffff16565b600481905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a3c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180612078602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ac2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180611fdc602a913960400191505060405180910390fd5b611b1481600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ab90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ba981600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461122090919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290611d03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cc8578082015181840152602081019050611cad565b50505050905090810190601f168015611cf55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b600080600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611dcc57602c60003690501015611dc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611f1f6022913960400191505060405180910390fd5b600190505b8091505090565b6000806014835114611e4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f42797465734c69623a20696e76616c69642064617461206c656e67746800000081525060200191505060405180910390fd5b6c01000000000000000000000000602084015104905080915050919050565b60008085851115611e7c57600080fd5b83861115611e8957600080fd5b600185028301915084860390509450949250505056fe4552433230546f6b656e3a2063616e6e6f74206275726e2066726f6d203078302061646472657373496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742074686520696e697469616c697a657257726170706564576569546f6b656e3a20636f6e73756d657220616c72656164792065786973747347617465776179526563697069656e743a20696e76616c6964206d73672e646174614552433230546f6b656e3a2063616e6e6f7420617070726f766520746f203078302061646472657373536166654d6174684c69623a207375627472616374696f6e206f766572666c6f774552433230546f6b656e3a2063616e6e6f7420617070726f76652066726f6d2030783020616464726573734552433230546f6b656e3a2063616e6e6f74206d696e7420746f2030783020616464726573734552433230546f6b656e3a2063616e6e6f74207472616e7366657220746f20307830206164647265737357726170706564576569546f6b656e3a20636f6e73756d657220646f65736e277420657869737457726170706564576569546f6b656e3a207472616e73616374696f6e2072657665727465644552433230546f6b656e3a206275726e2076616c756520657863656564732062616c616e63654552433230546f6b656e3a2063616e6e6f74207472616e736665722066726f6d203078302061646472657373a164736f6c634300060c000a", + "bytecode": "0x60806040523480156200001157600080fd5b506200002e67bcc9be562f8a4b0a60c01b620001b860201b60201c565b6200004a67579ae7209daca85260c01b620001b860201b60201c565b326000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000a667d2295553e6d85b4460c01b620001bb60201b60201c565b620000c2674f33f857671bcade60c01b620001be60201b60201c565b620000de6772a61782d26adf1660c01b620001c160201b60201c565b620000fa6741903526ccaa472460c01b620001c160201b60201c565b6040518060400160405280600b81526020017f57726170706564205765690000000000000000000000000000000000000000008152506001908051906020019062000147929190620001c4565b506200016467a44e88e0af10dbc560c01b620001c160201b60201c565b6040518060400160405280600481526020017f575745490000000000000000000000000000000000000000000000000000000081525060029080519060200190620001b1929190620001c4565b506200026a565b50565b50565b50565b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200020757805160ff191683800117855562000238565b8280016001018555821562000238579182015b82811115620002375782518255916020019190600101906200021a565b5b5090506200024791906200024b565b5090565b5b80821115620002665760008160009055506001016200024c565b5090565b6137fe806200027a6000396000f3fe6080604052600436106101e75760003560e01c8063692b0ad911610102578063b760faf911610095578063d84fa10c11610064578063d84fa10c14610c33578063dd62ed3e14610c9f578063f0af072114610d24578063f55647e014610d7a57610213565b8063b760faf914610adc578063c0fb758214610b20578063c454330514610b76578063ca9add8f14610be257610213565b806395d89b41116100d157806395d89b41146109035780639d713549146109935780639f106f7e146109ff578063a9059cbb14610a6b57610213565b8063692b0ad9146107b457806370a0823114610820578063834ff73914610885578063853828b6146108ec57610213565b80632e1a7d4d1161017a578063462d0b2e11610149578063462d0b2e146106355780634b08df6b146106db57806356a3b64b14610731578063683e15fd1461074857610213565b80632e1a7d4d14610549578063313ce56714610584578063392e53cd146105b25780633e260b13146105df57610213565b806318160ddd116101b657806318160ddd146103c6578063205c2878146103f157806323b872dd1461044c57806325921237146104dd57610213565b806306fdde0314610218578063095ea7b3146102a85780630bdaef0514610319578063116191b61461038557610213565b36610213576102006792eb7c3145cf751760c01b610d91565b61021161020b610d94565b34610ddf565b005b600080fd5b34801561022457600080fd5b5061022d6110f9565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561026d578082015181840152602081019050610252565b50505050905090810190601f16801561029a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102b457600080fd5b50610301600480360360408110156102cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611197565b60405180821515815260200191505060405180910390f35b34801561032557600080fd5b5061036d6004803603602081101561033c57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611219565b60405180821515815260200191505060405180910390f35b34801561039157600080fd5b5061039a611224565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103d257600080fd5b506103db61124a565b6040518082815260200191505060405180910390f35b3480156103fd57600080fd5b5061044a6004803603604081101561041457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611250565b005b34801561045857600080fd5b506104c56004803603606081101561046f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112a2565b60405180821515815260200191505060405180910390f35b3480156104e957600080fd5b506105316004803603602081101561050057600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611414565b60405180821515815260200191505060405180910390f35b34801561055557600080fd5b506105826004803603602081101561056c57600080fd5b810190808035906020019092919050505061141f565b005b34801561059057600080fd5b50610599611477565b604051808260ff16815260200191505060405180910390f35b3480156105be57600080fd5b506105c761148a565b60405180821515815260200191505060405180910390f35b3480156105eb57600080fd5b506106336004803603602081101561060257600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061151d565b005b34801561064157600080fd5b506106d96004803603604081101561065857600080fd5b810190808035906020019064010000000081111561067557600080fd5b82018360208201111561068757600080fd5b803590602001918460208302840111640100000000831117156106a957600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611520565b005b3480156106e757600080fd5b5061072f600480360360208110156106fe57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506118a4565b005b34801561073d57600080fd5b506107466118a7565b005b34801561075457600080fd5b5061079c6004803603602081101561076b57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506118f5565b60405180821515815260200191505060405180910390f35b3480156107c057600080fd5b50610808600480360360208110156107d757600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506118fc565b60405180821515815260200191505060405180910390f35b34801561082c57600080fd5b5061086f6004803603602081101561084357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611903565b6040518082815260200191505060405180910390f35b34801561089157600080fd5b506108d4600480360360208110156108a857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611988565b60405180821515815260200191505060405180910390f35b3480156108f857600080fd5b50610901611a1a565b005b34801561090f57600080fd5b50610918611ad7565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561095857808201518184015260208101905061093d565b50505050905090810190601f1680156109855780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561099f57600080fd5b506109e7600480360360208110156109b657600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611b75565b60405180821515815260200191505060405180910390f35b348015610a0b57600080fd5b50610a5360048036036020811015610a2257600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611b7c565b60405180821515815260200191505060405180910390f35b348015610a7757600080fd5b50610ac460048036036040811015610a8e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b87565b60405180821515815260200191505060405180910390f35b610b1e60048036036020811015610af257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c09565b005b348015610b2c57600080fd5b50610b7460048036036020811015610b4357600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610d91565b005b348015610b8257600080fd5b50610bca60048036036020811015610b9957600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611c52565b60405180821515815260200191505060405180910390f35b348015610bee57600080fd5b50610c3160048036036020811015610c0557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c5d565b005b348015610c3f57600080fd5b50610c8760048036036020811015610c5657600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611d1b565b60405180821515815260200191505060405180910390f35b348015610cab57600080fd5b50610d0e60048036036040811015610cc257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d22565b6040518082815260200191505060405180910390f35b348015610d3057600080fd5b50610d7860048036036020811015610d4757600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611de5565b005b348015610d8657600080fd5b50610d8f611de8565b005b50565b6000610daa673b19a8263bb5ce2460c01b610d91565b610dbe6707308200f7e8bb4d60c01b610d91565b610dd267a9938f0e39e5eb3d60c01b610d91565b610dda612006565b905090565b610df3675e2153e1f04496b660c01b6118a4565b610e0767bc8dc79551375fc360c01b6118a4565b610e1b67d8c712b22313922360c01b6118a4565b610e2f67e0f6206a227a3a8e60c01b6118a4565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610eb5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806137046026913960400191505060405180910390fd5b610ec967ae039e1267b9559d60c01b6118a4565b610edd67db578c8e6e46de9260c01b6118a4565b610ef167e5ab2d5fbd27ad7b60c01b6118a4565b610f0567d6e3b8bd2f0c381960c01b6118a4565b60008111610f7b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4552433230546f6b656e3a2063616e6e6f74206d696e7420302076616c75650081525060200191505060405180910390fd5b610f8f672123d38f06edc1d960c01b6118a4565b610fa3674b7af22033a895c860c01b6118a4565b610ff581600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461205390919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061104c67ea2406dd5469a09560c01b6118a4565b6110618160045461205390919063ffffffff16565b60048190555061107b675c59db56e0a7542360c01b6118a4565b61108f672022246315104eac60c01b6118a4565b8173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561118f5780601f106111645761010080835404028352916020019161118f565b820191906000526020600020905b81548152906001019060200180831161117257829003601f168201915b505050505081565b60006111ad6753bec140568681c060c01b6118a4565b6111c1673fe4b697901a171d60c01b6118a4565b6111d56730b64dab119d9aa060c01b6118a4565b6111e76111e0610d94565b8484612190565b6111fb67e05419833179c73560c01b6118a4565b61120f677ca1f591274800dd60c01b6118a4565b6001905092915050565b600060019050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b6112646752831001089b6de460c01b610d91565b61127867109e354adc08fcd760c01b610d91565b61128c6708f8eb69ec45706160c01b610d91565b61129e611297610d94565b8383612477565b5050565b60006112b86769df9d60650e32ef60c01b6118a4565b6112cc67d0ac32c0a71a47dd60c01b6118a4565b6112e067499eb90da77634db60c01b6118a4565b60006112ea610d94565b905061130067bb9ddff3033764bb60c01b6118a4565b611314678ab65d386d94fe9660c01b6118a4565b61131f85858561259c565b611333678c2a5f95b7f72efe60c01b6118a4565b61134767ee2bb8b53d569c0460c01b6118a4565b6113e085826113db86600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c390919063ffffffff16565b612190565b6113f467726c4938a33167c360c01b6118a4565b61140867e2df8d12e60e2b3460c01b6118a4565b60019150509392505050565b600060019050919050565b611433675f0e4b215ce3e35b60c01b610d91565b611447679a6e749bc50b015460c01b610d91565b61145b67d9c3d5315c46b14b60c01b610d91565b611474611466610d94565b61146e610d94565b83612477565b50565b600360009054906101000a900460ff1681565b60006114a067e29fe2f351ca6b2760c01b61151d565b6114b4676f5dd3f08b97747760c01b61151d565b6114c8673a9488d62818322a60c01b61151d565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b50565b6115346756e55d7a3416e9c260c01b610d91565b61154867d2ba19feb39e0b7f60c01b61151d565b61155c670c5ad53cdb9edd1560c01b61151d565b61157067b6b588d2ebb9ae6960c01b61151d565b61158467c4ec9a90a885875260c01b61151d565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180613616602f913960400191505060405180910390fd5b61163c67c3785ba1534db95460c01b61151d565b61165067e4202927591248ef60c01b61151d565b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506116a567531cfa2817fbdc8660c01b61151d565b6116b96725112fbc6ad1983560c01b610d91565b6116cd6774de259cf59a52a060c01b610d91565b6116e167413fe8b2561609c360c01b610d91565b6116f5673c40f28155f55a7460c01b610d91565b600083839050146117e45761171467d2bf7add9390b8ab60c01b610d91565b61172867c85fbc643d893c2660c01b610d91565b61173c67e8b07434fefc74b260c01b610d91565b6000838390509050611758670904b86e5b4f176f60c01b610d91565b61176c67f1990e4ec7ff150b60c01b610d91565b60005b818110156117dd5761178b6778daa037f5002fa960c01b610d91565b61179f67bbb76c7699d9c3ab60c01b610d91565b6117d08585838181106117ae57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1661272c565b808060010191505061176f565b50506117f9565b6117f867c96393be4a94ec6d60c01b610d91565b5b61180d67070298a97c7cd85960c01b610d91565b61182167a289f83d4763b18b60c01b610d91565b61182a81612917565b61183e6701520f419008b58e60c01b61151d565b6118526775364c04848b013b60c01b61151d565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e632604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b50565b6118bb67fe0e01cc5375259060c01b610d91565b6118cf67fc8caeb1e65f57dd60c01b610d91565b6118e3673313c636cb55688360c01b610d91565b6118f36118ee610d94565b61272c565b565b6000919050565b6000919050565b600061191967d01fdb7dd74bc5aa60c01b6118a4565b61192d670163cf5e2436a2dd60c01b6118a4565b61194167b670bfbcbdad8dbf60c01b6118a4565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600061199e67557a32e63afd7fae60c01b610d91565b6119b267af98f833a3543e5560c01b610d91565b6119c667585c1b6e111b4a0d60c01b610d91565b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611a2e67d10e42b3232f553660c01b610d91565b611a4267ab1899c5f8e6d78d60c01b610d91565b611a5667be0ea1bfa097245160c01b610d91565b6000611a60610d94565b9050611a76679ea6aa7e891d5e2360c01b610d91565b611a8a67973a00b8d03c62a960c01b610d91565b611ad48182600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612477565b50565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b6d5780601f10611b4257610100808354040283529160200191611b6d565b820191906000526020600020905b815481529060010190602001808311611b5057829003601f168201915b505050505081565b6000919050565b600060019050919050565b6000611b9d67a1f7e11949ea673560c01b6118a4565b611bb16787d7d0fd85a9bf1460c01b6118a4565b611bc567fbb8b6f8a252809960c01b6118a4565b611bd7611bd0610d94565b848461259c565b611beb6773727b9781cbc97760c01b6118a4565b611bff679893780bf3355ed360c01b6118a4565b6001905092915050565b611c1d6710d22658e34d8a1e60c01b610d91565b611c316745d71858c148dcc060c01b610d91565b611c45672007145b8fc56ca760c01b610d91565b611c4f8134610ddf565b50565b600060019050919050565b611c7167cb6796f5f55fa8b060c01b610d91565b611c85675f90f5ba6367291660c01b610d91565b611c9967cdbcc0280667dda760c01b610d91565b6000611ca3610d94565b9050611cb9670e82bc9a4e3336a260c01b610d91565b611ccd67e6308fea357f466a60c01b610d91565b611d178183600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612477565b5050565b6000919050565b6000611d3867729c8b6593ca8f8960c01b6118a4565b611d4c67e58501633424d2de60c01b6118a4565b611d6067c33edf4e7d4f7b8660c01b6118a4565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b50565b611dfc679e757f11a69f758760c01b610d91565b611e106787c00fd9cd62c25660c01b610d91565b611e2467bebb895358ec005a60c01b610d91565b6000611e2e610d94565b9050611e44674b64f02e133a70c860c01b610d91565b611e5867fcc1ec6f797b112560c01b610d91565b611e6c67c5142b5459c66f1660c01b610d91565b600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611f0e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806137546027913960400191505060405180910390fd5b611f2267c075cd592854b9ad60c01b610d91565b611f3667e6d6ba5100391fca60c01b610d91565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611fa267b274bd40f3d8ce8660c01b610d91565b611fb667eb389a834e01769d60c01b610d91565b7fe3f5ed5f263f1f01764a96edfc7d025f511ec5f7d180e8816908b78bcf74f09881604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600061201c677ac614d5268cc8ac60c01b611de5565b612030670a6b7ac33c94c4ed60c01b611de5565b61204467e7ef433820a2765360c01b611de5565b61204e6028612983565b905090565b6000612069672797d9bbee8e685760c01b612b19565b61207d67e25930aa3032662f60c01b612b19565b612091673b804ace3fd44ea060c01b612b19565b600082840190506120ac67e0d809daafe36a0460c01b612b19565b6120c067d0d7b021c1a6823260c01b612b19565b6120d46741f1099b5fa09b9360c01b612b19565b8381101561214a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174684c69623a206164646974696f6e206f766572666c6f77000081525060200191505060405180910390fd5b61215e6728a352a27e50889560c01b612b19565b61217267f55e5f024a80111c60c01b612b19565b61218667d865abdcb752192460c01b612b19565b8091505092915050565b6121a467bfc0ff88689df43460c01b6118a4565b6121b8679a14afb3f0a041d360c01b6118a4565b6121cc67bc128d0a874c4c3e60c01b6118a4565b6121e0678d8cbef08defe69360c01b6118a4565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612266576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806136d9602b913960400191505060405180910390fd5b61227a675349b1b172aa0a0b60c01b6118a4565b61228e67a7a8f58d25b50fd860c01b6118a4565b6122a2671ee4a7660e290fa660c01b6118a4565b6122b667815a40a05033c43460c01b6118a4565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561233c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602981526020018061368f6029913960400191505060405180910390fd5b61235067f33c07d56d5928e460c01b6118a4565b612364673937a971ebc35cc360c01b6118a4565b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123f967ca487db6f83002b660c01b6118a4565b61240d67e9b745e5ba7cbe6060c01b6118a4565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b61248b67187ddac9d5bc8bd160c01b610d91565b61249f67fbe7feb4b95b96c560c01b610d91565b6124b367a35ce9908849156360c01b610d91565b6124bd8382612b1c565b6124d167925831981356ea5e60c01b610d91565b6124e567cab401306d87cae360c01b610d91565b6124f96777aed7e1f4f8582460c01b610d91565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050612583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061377b6025913960400191505060405180910390fd5b6125976754a6bfed8f0f6e8f60c01b610d91565b505050565b6125b067881f2d43dfda86ce60c01b610d91565b6125c4675725d33c0352682360c01b610d91565b6125d86739cbd5e8af561a7760c01b610d91565b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156126765761263e6732e98b0a1e609fdd60c01b610d91565b612652678e42a4adb560808d60c01b610d91565b612666675f86e6684580200060c01b610d91565b612671838383612477565b6126be565b61268a6786b10d3e0d3edcd260c01b610d91565b61269e67147fe14eac7d123360c01b610d91565b6126b267cacbb0791179368760c01b610d91565b6126bd838383612d8a565b5b505050565b60006126d967e0716c1000d7d1da60c01b612b19565b6126ed674e44df08c8f0b5bb60c01b612b19565b612701679b7e32e8ae0c005160c01b612b19565b61272483836040518060600160405280602181526020016136b86021913961312e565b905092915050565b61274067a137779df390536260c01b610d91565b612754678e5297a1aa72533860c01b610d91565b6127686734e57ab99ec6b64160c01b610d91565b61277c6711bcf916f600f17460c01b610d91565b600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561281f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806136456028913960400191505060405180910390fd5b61283367f3d6f26f35ccb86060c01b610d91565b61284767b9a863a98600747660c01b610d91565b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506128b3676e060f957467342d60c01b610d91565b6128c767b500732acf97022160c01b610d91565b7f28b26e7a3d20aedbc5f8f2ebf7da671c0491723a2b78f47a097b0e46dee0714281604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b61292b670beab42e12728d3b60c01b611de5565b61293f675ecbac840a5512ec60c01b611de5565b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006129996787c8246a4b35d1f160c01b611de5565b6129ad67976a1e8d41064d2460c01b611de5565b6129c1671867d8bf077bb31160c01b611de5565b60006129d767bdfeda5454a1273960c01b611de5565b6129eb677709e048711a13c960c01b611de5565b6129f3613274565b15612abc57612a0c67d3c6f6b0bcac9b6e60c01b611de5565b612a20673b2573735f5d680260c01b611de5565b612a34675089eb0622c78a2260c01b611de5565b6000836000369050039050612a53674bc94a8e9a6ee57960c01b611de5565b612ab460003683906014850192612a6c939291906135ba565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050613455565b915050612ae8565b612ad0677e45e81af2ec2edc60c01b611de5565b612ae467391e31dbfdfb407e60c01b611de5565b3390505b612afc67c4042e2c7c2c999760c01b611de5565b612b1067fc44c5cccf2cd16760c01b611de5565b80915050919050565b50565b612b3067bc021464e5f3dd5460c01b6118a4565b612b4467bfc9321f335d4b8160c01b6118a4565b612b58673da1f67c1f439b0960c01b6118a4565b612b6c6764f5be91a42ad5bc60c01b6118a4565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612bf2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806135ee6028913960400191505060405180910390fd5b612c06673f1310f25b67216160c01b6118a4565b612c1a672ae8ed6802151ce460c01b6118a4565b612c86816040518060600160405280602681526020016137a060269139600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461312e9092919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612cdd674ae84cdbca296be160c01b6118a4565b612cf2816004546126c390919063ffffffff16565b600481905550612d0c6790c5dcef045f105560c01b6118a4565b612d2067df66109d66fc00c860c01b6118a4565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b612d9e674d9d827b3eb8335f60c01b6118a4565b612db267029e04d47309ef2160c01b6118a4565b612dc6672a3032957b5eca3560c01b6118a4565b612dda676962e5e3dc9f5a1660c01b6118a4565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612e60576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806137c6602c913960400191505060405180910390fd5b612e746781fe059091eccd2260c01b6118a4565b612e8867ddb72a693e1e207f60c01b6118a4565b612e9c67a1475e83b0b9ddea60c01b6118a4565b612eb0674e6d322763042a0660c01b6118a4565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612f36576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061372a602a913960400191505060405180910390fd5b612f4a67df6b8336912560fa60c01b6118a4565b612f5e67617dce23d46bc03d60c01b6118a4565b612fb081600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c390919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613007678bc66573c313c9d660c01b6118a4565b61305981600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461205390919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130b067aa96686749a64e0c60c01b6118a4565b6130c4678ddd20d1037089ef60c01b6118a4565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000613144677d731b0c9f0e103a60c01b612b19565b613158672e44734f88495e8b60c01b612b19565b61316c670d025d40fd1bee3e60c01b612b19565b61318067025828287ef1fd1b60c01b612b19565b83831115829061322b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156131f05780820151818401526020810190506131d5565b50505050905090810190601f16801561321d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5061324067e9c31dd44a0bf91260c01b612b19565b613254675031ed2b8fb2561960c01b612b19565b61326867301f4385f3c6735c60c01b612b19565b82840390509392505050565b600061328a6714ec9ba31585b6f760c01b611de5565b61329e6764d00f8ee4cbc0f460c01b611de5565b6132b26728aef4b71ffef7e260c01b611de5565b60006132c8677b6cf6392b8d09d960c01b611de5565b6132dc67da655f124163f4bc60c01b611de5565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561341157613346678c4556fd14dc507160c01b611de5565b61335a674811af4455ee520960c01b611de5565b61336e67ae36e4b52033411860c01b611de5565b61338267ffe63a27679b309260c01b611de5565b602c600036905010156133e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061366d6022913960400191505060405180910390fd5b6133f467d1762b0b1ca636f360c01b611de5565b6134086769c465f7e405b9f660c01b611de5565b60019050613426565b6134256710f40798097af22060c01b611de5565b5b61343a671855328cbdf7411660c01b611de5565b61344e670e4f1457e534f9ac60c01b611de5565b8091505090565b600061346b670df8d76b8cabf76a60c01b6135b7565b61347f67e180fcce9e2bf4c560c01b6135b7565b613493670dcb70abe8e8bb0b60c01b6135b7565b60006134a967c9f13cc22eb780e060c01b6135b7565b6134bd67c60f8d891ff21de960c01b6135b7565b6134d16782bb9e679e55c73460c01b6135b7565b6014835114613548576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f42797465734c69623a20696e76616c69642064617461206c656e67746800000081525060200191505060405180910390fd5b61355c679ea304b1b6348ade60c01b6135b7565b61357067a0049b4768bf518260c01b6135b7565b6c01000000000000000000000000602084015104905061359a671f4dc55703cfba1860c01b6135b7565b6135ae67afb63a07e82275e260c01b6135b7565b80915050919050565b50565b600080858511156135ca57600080fd5b838611156135d757600080fd5b600185028301915084860390509450949250505056fe4552433230546f6b656e3a2063616e6e6f74206275726e2066726f6d203078302061646472657373496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742074686520696e697469616c697a657257726170706564576569546f6b656e3a20636f6e73756d657220616c72656164792065786973747347617465776179526563697069656e743a20696e76616c6964206d73672e646174614552433230546f6b656e3a2063616e6e6f7420617070726f766520746f203078302061646472657373536166654d6174684c69623a207375627472616374696f6e206f766572666c6f774552433230546f6b656e3a2063616e6e6f7420617070726f76652066726f6d2030783020616464726573734552433230546f6b656e3a2063616e6e6f74206d696e7420746f2030783020616464726573734552433230546f6b656e3a2063616e6e6f74207472616e7366657220746f20307830206164647265737357726170706564576569546f6b656e3a20636f6e73756d657220646f65736e277420657869737457726170706564576569546f6b656e3a207472616e73616374696f6e2072657665727465644552433230546f6b656e3a206275726e2076616c756520657863656564732062616c616e63654552433230546f6b656e3a2063616e6e6f74207472616e736665722066726f6d203078302061646472657373a164736f6c634300060c000a", + "deployedBytecode": "0x6080604052600436106101e75760003560e01c8063692b0ad911610102578063b760faf911610095578063d84fa10c11610064578063d84fa10c14610c33578063dd62ed3e14610c9f578063f0af072114610d24578063f55647e014610d7a57610213565b8063b760faf914610adc578063c0fb758214610b20578063c454330514610b76578063ca9add8f14610be257610213565b806395d89b41116100d157806395d89b41146109035780639d713549146109935780639f106f7e146109ff578063a9059cbb14610a6b57610213565b8063692b0ad9146107b457806370a0823114610820578063834ff73914610885578063853828b6146108ec57610213565b80632e1a7d4d1161017a578063462d0b2e11610149578063462d0b2e146106355780634b08df6b146106db57806356a3b64b14610731578063683e15fd1461074857610213565b80632e1a7d4d14610549578063313ce56714610584578063392e53cd146105b25780633e260b13146105df57610213565b806318160ddd116101b657806318160ddd146103c6578063205c2878146103f157806323b872dd1461044c57806325921237146104dd57610213565b806306fdde0314610218578063095ea7b3146102a85780630bdaef0514610319578063116191b61461038557610213565b36610213576102006792eb7c3145cf751760c01b610d91565b61021161020b610d94565b34610ddf565b005b600080fd5b34801561022457600080fd5b5061022d6110f9565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561026d578082015181840152602081019050610252565b50505050905090810190601f16801561029a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102b457600080fd5b50610301600480360360408110156102cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611197565b60405180821515815260200191505060405180910390f35b34801561032557600080fd5b5061036d6004803603602081101561033c57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611219565b60405180821515815260200191505060405180910390f35b34801561039157600080fd5b5061039a611224565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103d257600080fd5b506103db61124a565b6040518082815260200191505060405180910390f35b3480156103fd57600080fd5b5061044a6004803603604081101561041457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611250565b005b34801561045857600080fd5b506104c56004803603606081101561046f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112a2565b60405180821515815260200191505060405180910390f35b3480156104e957600080fd5b506105316004803603602081101561050057600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611414565b60405180821515815260200191505060405180910390f35b34801561055557600080fd5b506105826004803603602081101561056c57600080fd5b810190808035906020019092919050505061141f565b005b34801561059057600080fd5b50610599611477565b604051808260ff16815260200191505060405180910390f35b3480156105be57600080fd5b506105c761148a565b60405180821515815260200191505060405180910390f35b3480156105eb57600080fd5b506106336004803603602081101561060257600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061151d565b005b34801561064157600080fd5b506106d96004803603604081101561065857600080fd5b810190808035906020019064010000000081111561067557600080fd5b82018360208201111561068757600080fd5b803590602001918460208302840111640100000000831117156106a957600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611520565b005b3480156106e757600080fd5b5061072f600480360360208110156106fe57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506118a4565b005b34801561073d57600080fd5b506107466118a7565b005b34801561075457600080fd5b5061079c6004803603602081101561076b57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506118f5565b60405180821515815260200191505060405180910390f35b3480156107c057600080fd5b50610808600480360360208110156107d757600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506118fc565b60405180821515815260200191505060405180910390f35b34801561082c57600080fd5b5061086f6004803603602081101561084357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611903565b6040518082815260200191505060405180910390f35b34801561089157600080fd5b506108d4600480360360208110156108a857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611988565b60405180821515815260200191505060405180910390f35b3480156108f857600080fd5b50610901611a1a565b005b34801561090f57600080fd5b50610918611ad7565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561095857808201518184015260208101905061093d565b50505050905090810190601f1680156109855780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561099f57600080fd5b506109e7600480360360208110156109b657600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611b75565b60405180821515815260200191505060405180910390f35b348015610a0b57600080fd5b50610a5360048036036020811015610a2257600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611b7c565b60405180821515815260200191505060405180910390f35b348015610a7757600080fd5b50610ac460048036036040811015610a8e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b87565b60405180821515815260200191505060405180910390f35b610b1e60048036036020811015610af257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c09565b005b348015610b2c57600080fd5b50610b7460048036036020811015610b4357600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610d91565b005b348015610b8257600080fd5b50610bca60048036036020811015610b9957600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611c52565b60405180821515815260200191505060405180910390f35b348015610bee57600080fd5b50610c3160048036036020811015610c0557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c5d565b005b348015610c3f57600080fd5b50610c8760048036036020811015610c5657600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611d1b565b60405180821515815260200191505060405180910390f35b348015610cab57600080fd5b50610d0e60048036036040811015610cc257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d22565b6040518082815260200191505060405180910390f35b348015610d3057600080fd5b50610d7860048036036020811015610d4757600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611de5565b005b348015610d8657600080fd5b50610d8f611de8565b005b50565b6000610daa673b19a8263bb5ce2460c01b610d91565b610dbe6707308200f7e8bb4d60c01b610d91565b610dd267a9938f0e39e5eb3d60c01b610d91565b610dda612006565b905090565b610df3675e2153e1f04496b660c01b6118a4565b610e0767bc8dc79551375fc360c01b6118a4565b610e1b67d8c712b22313922360c01b6118a4565b610e2f67e0f6206a227a3a8e60c01b6118a4565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610eb5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806137046026913960400191505060405180910390fd5b610ec967ae039e1267b9559d60c01b6118a4565b610edd67db578c8e6e46de9260c01b6118a4565b610ef167e5ab2d5fbd27ad7b60c01b6118a4565b610f0567d6e3b8bd2f0c381960c01b6118a4565b60008111610f7b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4552433230546f6b656e3a2063616e6e6f74206d696e7420302076616c75650081525060200191505060405180910390fd5b610f8f672123d38f06edc1d960c01b6118a4565b610fa3674b7af22033a895c860c01b6118a4565b610ff581600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461205390919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061104c67ea2406dd5469a09560c01b6118a4565b6110618160045461205390919063ffffffff16565b60048190555061107b675c59db56e0a7542360c01b6118a4565b61108f672022246315104eac60c01b6118a4565b8173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561118f5780601f106111645761010080835404028352916020019161118f565b820191906000526020600020905b81548152906001019060200180831161117257829003601f168201915b505050505081565b60006111ad6753bec140568681c060c01b6118a4565b6111c1673fe4b697901a171d60c01b6118a4565b6111d56730b64dab119d9aa060c01b6118a4565b6111e76111e0610d94565b8484612190565b6111fb67e05419833179c73560c01b6118a4565b61120f677ca1f591274800dd60c01b6118a4565b6001905092915050565b600060019050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b6112646752831001089b6de460c01b610d91565b61127867109e354adc08fcd760c01b610d91565b61128c6708f8eb69ec45706160c01b610d91565b61129e611297610d94565b8383612477565b5050565b60006112b86769df9d60650e32ef60c01b6118a4565b6112cc67d0ac32c0a71a47dd60c01b6118a4565b6112e067499eb90da77634db60c01b6118a4565b60006112ea610d94565b905061130067bb9ddff3033764bb60c01b6118a4565b611314678ab65d386d94fe9660c01b6118a4565b61131f85858561259c565b611333678c2a5f95b7f72efe60c01b6118a4565b61134767ee2bb8b53d569c0460c01b6118a4565b6113e085826113db86600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c390919063ffffffff16565b612190565b6113f467726c4938a33167c360c01b6118a4565b61140867e2df8d12e60e2b3460c01b6118a4565b60019150509392505050565b600060019050919050565b611433675f0e4b215ce3e35b60c01b610d91565b611447679a6e749bc50b015460c01b610d91565b61145b67d9c3d5315c46b14b60c01b610d91565b611474611466610d94565b61146e610d94565b83612477565b50565b600360009054906101000a900460ff1681565b60006114a067e29fe2f351ca6b2760c01b61151d565b6114b4676f5dd3f08b97747760c01b61151d565b6114c8673a9488d62818322a60c01b61151d565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b50565b6115346756e55d7a3416e9c260c01b610d91565b61154867d2ba19feb39e0b7f60c01b61151d565b61155c670c5ad53cdb9edd1560c01b61151d565b61157067b6b588d2ebb9ae6960c01b61151d565b61158467c4ec9a90a885875260c01b61151d565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180613616602f913960400191505060405180910390fd5b61163c67c3785ba1534db95460c01b61151d565b61165067e4202927591248ef60c01b61151d565b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506116a567531cfa2817fbdc8660c01b61151d565b6116b96725112fbc6ad1983560c01b610d91565b6116cd6774de259cf59a52a060c01b610d91565b6116e167413fe8b2561609c360c01b610d91565b6116f5673c40f28155f55a7460c01b610d91565b600083839050146117e45761171467d2bf7add9390b8ab60c01b610d91565b61172867c85fbc643d893c2660c01b610d91565b61173c67e8b07434fefc74b260c01b610d91565b6000838390509050611758670904b86e5b4f176f60c01b610d91565b61176c67f1990e4ec7ff150b60c01b610d91565b60005b818110156117dd5761178b6778daa037f5002fa960c01b610d91565b61179f67bbb76c7699d9c3ab60c01b610d91565b6117d08585838181106117ae57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1661272c565b808060010191505061176f565b50506117f9565b6117f867c96393be4a94ec6d60c01b610d91565b5b61180d67070298a97c7cd85960c01b610d91565b61182167a289f83d4763b18b60c01b610d91565b61182a81612917565b61183e6701520f419008b58e60c01b61151d565b6118526775364c04848b013b60c01b61151d565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e632604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b50565b6118bb67fe0e01cc5375259060c01b610d91565b6118cf67fc8caeb1e65f57dd60c01b610d91565b6118e3673313c636cb55688360c01b610d91565b6118f36118ee610d94565b61272c565b565b6000919050565b6000919050565b600061191967d01fdb7dd74bc5aa60c01b6118a4565b61192d670163cf5e2436a2dd60c01b6118a4565b61194167b670bfbcbdad8dbf60c01b6118a4565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600061199e67557a32e63afd7fae60c01b610d91565b6119b267af98f833a3543e5560c01b610d91565b6119c667585c1b6e111b4a0d60c01b610d91565b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611a2e67d10e42b3232f553660c01b610d91565b611a4267ab1899c5f8e6d78d60c01b610d91565b611a5667be0ea1bfa097245160c01b610d91565b6000611a60610d94565b9050611a76679ea6aa7e891d5e2360c01b610d91565b611a8a67973a00b8d03c62a960c01b610d91565b611ad48182600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612477565b50565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b6d5780601f10611b4257610100808354040283529160200191611b6d565b820191906000526020600020905b815481529060010190602001808311611b5057829003601f168201915b505050505081565b6000919050565b600060019050919050565b6000611b9d67a1f7e11949ea673560c01b6118a4565b611bb16787d7d0fd85a9bf1460c01b6118a4565b611bc567fbb8b6f8a252809960c01b6118a4565b611bd7611bd0610d94565b848461259c565b611beb6773727b9781cbc97760c01b6118a4565b611bff679893780bf3355ed360c01b6118a4565b6001905092915050565b611c1d6710d22658e34d8a1e60c01b610d91565b611c316745d71858c148dcc060c01b610d91565b611c45672007145b8fc56ca760c01b610d91565b611c4f8134610ddf565b50565b600060019050919050565b611c7167cb6796f5f55fa8b060c01b610d91565b611c85675f90f5ba6367291660c01b610d91565b611c9967cdbcc0280667dda760c01b610d91565b6000611ca3610d94565b9050611cb9670e82bc9a4e3336a260c01b610d91565b611ccd67e6308fea357f466a60c01b610d91565b611d178183600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612477565b5050565b6000919050565b6000611d3867729c8b6593ca8f8960c01b6118a4565b611d4c67e58501633424d2de60c01b6118a4565b611d6067c33edf4e7d4f7b8660c01b6118a4565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b50565b611dfc679e757f11a69f758760c01b610d91565b611e106787c00fd9cd62c25660c01b610d91565b611e2467bebb895358ec005a60c01b610d91565b6000611e2e610d94565b9050611e44674b64f02e133a70c860c01b610d91565b611e5867fcc1ec6f797b112560c01b610d91565b611e6c67c5142b5459c66f1660c01b610d91565b600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611f0e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806137546027913960400191505060405180910390fd5b611f2267c075cd592854b9ad60c01b610d91565b611f3667e6d6ba5100391fca60c01b610d91565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611fa267b274bd40f3d8ce8660c01b610d91565b611fb667eb389a834e01769d60c01b610d91565b7fe3f5ed5f263f1f01764a96edfc7d025f511ec5f7d180e8816908b78bcf74f09881604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600061201c677ac614d5268cc8ac60c01b611de5565b612030670a6b7ac33c94c4ed60c01b611de5565b61204467e7ef433820a2765360c01b611de5565b61204e6028612983565b905090565b6000612069672797d9bbee8e685760c01b612b19565b61207d67e25930aa3032662f60c01b612b19565b612091673b804ace3fd44ea060c01b612b19565b600082840190506120ac67e0d809daafe36a0460c01b612b19565b6120c067d0d7b021c1a6823260c01b612b19565b6120d46741f1099b5fa09b9360c01b612b19565b8381101561214a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174684c69623a206164646974696f6e206f766572666c6f77000081525060200191505060405180910390fd5b61215e6728a352a27e50889560c01b612b19565b61217267f55e5f024a80111c60c01b612b19565b61218667d865abdcb752192460c01b612b19565b8091505092915050565b6121a467bfc0ff88689df43460c01b6118a4565b6121b8679a14afb3f0a041d360c01b6118a4565b6121cc67bc128d0a874c4c3e60c01b6118a4565b6121e0678d8cbef08defe69360c01b6118a4565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612266576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806136d9602b913960400191505060405180910390fd5b61227a675349b1b172aa0a0b60c01b6118a4565b61228e67a7a8f58d25b50fd860c01b6118a4565b6122a2671ee4a7660e290fa660c01b6118a4565b6122b667815a40a05033c43460c01b6118a4565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561233c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602981526020018061368f6029913960400191505060405180910390fd5b61235067f33c07d56d5928e460c01b6118a4565b612364673937a971ebc35cc360c01b6118a4565b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123f967ca487db6f83002b660c01b6118a4565b61240d67e9b745e5ba7cbe6060c01b6118a4565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b61248b67187ddac9d5bc8bd160c01b610d91565b61249f67fbe7feb4b95b96c560c01b610d91565b6124b367a35ce9908849156360c01b610d91565b6124bd8382612b1c565b6124d167925831981356ea5e60c01b610d91565b6124e567cab401306d87cae360c01b610d91565b6124f96777aed7e1f4f8582460c01b610d91565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050612583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061377b6025913960400191505060405180910390fd5b6125976754a6bfed8f0f6e8f60c01b610d91565b505050565b6125b067881f2d43dfda86ce60c01b610d91565b6125c4675725d33c0352682360c01b610d91565b6125d86739cbd5e8af561a7760c01b610d91565b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156126765761263e6732e98b0a1e609fdd60c01b610d91565b612652678e42a4adb560808d60c01b610d91565b612666675f86e6684580200060c01b610d91565b612671838383612477565b6126be565b61268a6786b10d3e0d3edcd260c01b610d91565b61269e67147fe14eac7d123360c01b610d91565b6126b267cacbb0791179368760c01b610d91565b6126bd838383612d8a565b5b505050565b60006126d967e0716c1000d7d1da60c01b612b19565b6126ed674e44df08c8f0b5bb60c01b612b19565b612701679b7e32e8ae0c005160c01b612b19565b61272483836040518060600160405280602181526020016136b86021913961312e565b905092915050565b61274067a137779df390536260c01b610d91565b612754678e5297a1aa72533860c01b610d91565b6127686734e57ab99ec6b64160c01b610d91565b61277c6711bcf916f600f17460c01b610d91565b600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561281f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806136456028913960400191505060405180910390fd5b61283367f3d6f26f35ccb86060c01b610d91565b61284767b9a863a98600747660c01b610d91565b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506128b3676e060f957467342d60c01b610d91565b6128c767b500732acf97022160c01b610d91565b7f28b26e7a3d20aedbc5f8f2ebf7da671c0491723a2b78f47a097b0e46dee0714281604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b61292b670beab42e12728d3b60c01b611de5565b61293f675ecbac840a5512ec60c01b611de5565b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006129996787c8246a4b35d1f160c01b611de5565b6129ad67976a1e8d41064d2460c01b611de5565b6129c1671867d8bf077bb31160c01b611de5565b60006129d767bdfeda5454a1273960c01b611de5565b6129eb677709e048711a13c960c01b611de5565b6129f3613274565b15612abc57612a0c67d3c6f6b0bcac9b6e60c01b611de5565b612a20673b2573735f5d680260c01b611de5565b612a34675089eb0622c78a2260c01b611de5565b6000836000369050039050612a53674bc94a8e9a6ee57960c01b611de5565b612ab460003683906014850192612a6c939291906135ba565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050613455565b915050612ae8565b612ad0677e45e81af2ec2edc60c01b611de5565b612ae467391e31dbfdfb407e60c01b611de5565b3390505b612afc67c4042e2c7c2c999760c01b611de5565b612b1067fc44c5cccf2cd16760c01b611de5565b80915050919050565b50565b612b3067bc021464e5f3dd5460c01b6118a4565b612b4467bfc9321f335d4b8160c01b6118a4565b612b58673da1f67c1f439b0960c01b6118a4565b612b6c6764f5be91a42ad5bc60c01b6118a4565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612bf2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806135ee6028913960400191505060405180910390fd5b612c06673f1310f25b67216160c01b6118a4565b612c1a672ae8ed6802151ce460c01b6118a4565b612c86816040518060600160405280602681526020016137a060269139600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461312e9092919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612cdd674ae84cdbca296be160c01b6118a4565b612cf2816004546126c390919063ffffffff16565b600481905550612d0c6790c5dcef045f105560c01b6118a4565b612d2067df66109d66fc00c860c01b6118a4565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b612d9e674d9d827b3eb8335f60c01b6118a4565b612db267029e04d47309ef2160c01b6118a4565b612dc6672a3032957b5eca3560c01b6118a4565b612dda676962e5e3dc9f5a1660c01b6118a4565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612e60576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806137c6602c913960400191505060405180910390fd5b612e746781fe059091eccd2260c01b6118a4565b612e8867ddb72a693e1e207f60c01b6118a4565b612e9c67a1475e83b0b9ddea60c01b6118a4565b612eb0674e6d322763042a0660c01b6118a4565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612f36576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061372a602a913960400191505060405180910390fd5b612f4a67df6b8336912560fa60c01b6118a4565b612f5e67617dce23d46bc03d60c01b6118a4565b612fb081600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c390919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613007678bc66573c313c9d660c01b6118a4565b61305981600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461205390919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130b067aa96686749a64e0c60c01b6118a4565b6130c4678ddd20d1037089ef60c01b6118a4565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000613144677d731b0c9f0e103a60c01b612b19565b613158672e44734f88495e8b60c01b612b19565b61316c670d025d40fd1bee3e60c01b612b19565b61318067025828287ef1fd1b60c01b612b19565b83831115829061322b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156131f05780820151818401526020810190506131d5565b50505050905090810190601f16801561321d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5061324067e9c31dd44a0bf91260c01b612b19565b613254675031ed2b8fb2561960c01b612b19565b61326867301f4385f3c6735c60c01b612b19565b82840390509392505050565b600061328a6714ec9ba31585b6f760c01b611de5565b61329e6764d00f8ee4cbc0f460c01b611de5565b6132b26728aef4b71ffef7e260c01b611de5565b60006132c8677b6cf6392b8d09d960c01b611de5565b6132dc67da655f124163f4bc60c01b611de5565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561341157613346678c4556fd14dc507160c01b611de5565b61335a674811af4455ee520960c01b611de5565b61336e67ae36e4b52033411860c01b611de5565b61338267ffe63a27679b309260c01b611de5565b602c600036905010156133e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061366d6022913960400191505060405180910390fd5b6133f467d1762b0b1ca636f360c01b611de5565b6134086769c465f7e405b9f660c01b611de5565b60019050613426565b6134256710f40798097af22060c01b611de5565b5b61343a671855328cbdf7411660c01b611de5565b61344e670e4f1457e534f9ac60c01b611de5565b8091505090565b600061346b670df8d76b8cabf76a60c01b6135b7565b61347f67e180fcce9e2bf4c560c01b6135b7565b613493670dcb70abe8e8bb0b60c01b6135b7565b60006134a967c9f13cc22eb780e060c01b6135b7565b6134bd67c60f8d891ff21de960c01b6135b7565b6134d16782bb9e679e55c73460c01b6135b7565b6014835114613548576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f42797465734c69623a20696e76616c69642064617461206c656e67746800000081525060200191505060405180910390fd5b61355c679ea304b1b6348ade60c01b6135b7565b61357067a0049b4768bf518260c01b6135b7565b6c01000000000000000000000000602084015104905061359a671f4dc55703cfba1860c01b6135b7565b6135ae67afb63a07e82275e260c01b6135b7565b80915050919050565b50565b600080858511156135ca57600080fd5b838611156135d757600080fd5b600185028301915084860390509450949250505056fe4552433230546f6b656e3a2063616e6e6f74206275726e2066726f6d203078302061646472657373496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742074686520696e697469616c697a657257726170706564576569546f6b656e3a20636f6e73756d657220616c72656164792065786973747347617465776179526563697069656e743a20696e76616c6964206d73672e646174614552433230546f6b656e3a2063616e6e6f7420617070726f766520746f203078302061646472657373536166654d6174684c69623a207375627472616374696f6e206f766572666c6f774552433230546f6b656e3a2063616e6e6f7420617070726f76652066726f6d2030783020616464726573734552433230546f6b656e3a2063616e6e6f74206d696e7420746f2030783020616464726573734552433230546f6b656e3a2063616e6e6f74207472616e7366657220746f20307830206164647265737357726170706564576569546f6b656e3a20636f6e73756d657220646f65736e277420657869737457726170706564576569546f6b656e3a207472616e73616374696f6e2072657665727465644552433230546f6b656e3a206275726e2076616c756520657863656564732062616c616e63654552433230546f6b656e3a2063616e6e6f74207472616e736665722066726f6d203078302061646472657373a164736f6c634300060c000a", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/config/stargate.ts b/config/stargate.ts index f4271609..9b25736f 100644 --- a/config/stargate.ts +++ b/config/stargate.ts @@ -3,7 +3,9 @@ import { NetworkNames } from "../extensions/constants"; interface StargateConfig { [key: string]: { stargateRouter: string; + stargateETHRouter: string; // address(0) = no ETH router on that chain chainId: number; + lzChainId: number; }; } @@ -11,57 +13,102 @@ const config: StargateConfig = { // leave StargateConfig as '' if you want to deploy a router with deployments [NetworkNames.Mainnet]: { stargateRouter: "0x8731d54E9D02c286767d56ac03e8037C07e01e98", + stargateETHRouter: "0x150f94B44927F078737562f0fcF3C95c01Cc2376", chainId: 1, + lzChainId: 101, }, [NetworkNames.Optimism]: { stargateRouter: "0xB0D502E938ed5f4df2E681fE6E419ff29631d62b", + stargateETHRouter: "0xB49c4e680174E331CB0A7fF3Ab58afC9738d5F8b", chainId: 10, + lzChainId: 111, }, [NetworkNames.Bsc]: { stargateRouter: "0x4a364f8c717cAAD9A442737Eb7b8A55cc6cf18D8", + stargateETHRouter: "0x0000000000000000000000000000000000000000", chainId: 56, + lzChainId: 102, }, [NetworkNames.Matic]: { stargateRouter: "0x45A01E4e04F14f7A4a6702c74187c5F6222033cd", + stargateETHRouter: "0x0000000000000000000000000000000000000000", chainId: 137, + lzChainId: 109, }, [NetworkNames.Fantom]: { stargateRouter: "0xAf5191B0De278C7286d6C7CC6ab6BB8A73bA2Cd6", + stargateETHRouter: "0x0000000000000000000000000000000000000000", chainId: 250, + lzChainId: 112, }, [NetworkNames.Arbitrum]: { stargateRouter: "0x53Bf833A5d6c4ddA888F69c22C88C9f356a41614", + stargateETHRouter: "0xbf22f0f184bCcbeA268dF387a49fF5238dD23E40", chainId: 42161, + lzChainId: 110, }, [NetworkNames.Avalanche]: { stargateRouter: "0x45A01E4e04F14f7A4a6702c74187c5F6222033cd", + stargateETHRouter: "0x0000000000000000000000000000000000000000", chainId: 43114, + lzChainId: 106, }, // TESTNETS - [NetworkNames.Rinkeby]: { - stargateRouter: "0x82A0F5F531F9ce0df1DF5619f74a0d3fA31FF561", - chainId: 10001, + [NetworkNames.Goerli]: { + stargateRouter: "0x7612aE2a34E5A363E137De748801FB4c86499152", + stargateETHRouter: "0xb1b2eeF380f21747944f46d28f683cD1FBB4d03c", + chainId: 5, + lzChainId: 10121, }, [NetworkNames.BscTest]: { stargateRouter: "0xbB0f1be1E9CE9cB27EA5b0c3a85B7cc3381d8176", - chainId: 10002, + stargateETHRouter: "0x0000000000000000000000000000000000000000", + chainId: 97, + lzChainId: 10102, }, [NetworkNames.Fuji]: { stargateRouter: "0x13093E05Eb890dfA6DacecBdE51d24DabAb2Faa1", - chainId: 10006, + stargateETHRouter: "0x0000000000000000000000000000000000000000", + chainId: 43113, + lzChainId: 10106, }, [NetworkNames.Mumbai]: { stargateRouter: "0x817436a076060D158204d955E5403b6Ed0A5fac0", - chainId: 10009, + stargateETHRouter: "0x0000000000000000000000000000000000000000", + chainId: 80001, + lzChainId: 10109, }, - [NetworkNames.OptimismKovan]: { - stargateRouter: "0xCC68641528B948642bDE1729805d6cf1DECB0B00", - chainId: 10011, + [NetworkNames.ArbitrumNitro]: { + stargateRouter: "0xb850873f4c993Ac2405A1AdD71F6ca5D4d4d6b4f", + stargateETHRouter: "0xb1b2eeF380f21747944f46d28f683cD1FBB4d03c", + chainId: 421613, + lzChainId: 10143, + }, + [NetworkNames.OptimismGoerli]: { + stargateRouter: "0x95461eF0e0ecabC049a5c4a6B98Ca7B335FAF068", + stargateETHRouter: "0xb1b2eeF380f21747944f46d28f683cD1FBB4d03c", + chainId: 420, + lzChainId: 10132, }, [NetworkNames.FantomTest]: { stargateRouter: "0xa73b0a56B29aD790595763e71505FCa2c1abb77f", - chainId: 10012, + stargateETHRouter: "0x0000000000000000000000000000000000000000", + chainId: 4002, + lzChainId: 10112, + }, + [NetworkNames.BaseGoerli]: { + stargateRouter: "0x631774c0B3FDB9502b3093a22aD91FA83fEc493e", + stargateETHRouter: "0x0000000000000000000000000000000000000000", + chainId: 84531, + lzChainId: 10158, }, + // Local Deployment Script Testing + // ["hardhat"]: { + // stargateRouter: "0x7612aE2a34E5A363E137De748801FB4c86499152", + // stargateETHRouter: "0xb1b2eeF380f21747944f46d28f683cD1FBB4d03c", + // chainId: 3333, + // lzChainId: 13333, + // }, }; export default config; diff --git a/deploy/205_deploy_stargate_facet.ts b/deploy/205_deploy_stargate_facet.ts index 226d8690..79228345 100644 --- a/deploy/205_deploy_stargate_facet.ts +++ b/deploy/205_deploy_stargate_facet.ts @@ -2,6 +2,7 @@ import { DeployFunction } from "hardhat-deploy/types"; import { HardhatRuntimeEnvironment } from "hardhat/types"; import { addOrReplaceFacets } from "../utils/diamond"; import config from "../config/stargate"; +import { ChainIdConfigStruct } from "typings/StargateFacet"; const func: DeployFunction = async function(hre: HardhatRuntimeEnvironment) { const { @@ -13,7 +14,24 @@ const func: DeployFunction = async function(hre: HardhatRuntimeEnvironment) { const { from } = await getNamedAccounts(); if (!config[network.name]) { - return log("No stargate config for this network available: " + network.name); + return log( + "No stargate config for this network available: " + network.name, + ); + } + + const chainIdConfigs: ChainIdConfigStruct[] = []; + for (const networkName in config) { + if (config.hasOwnProperty(networkName)) { + const networkConfig = config[networkName]; + const { chainId, lzChainId } = networkConfig; + + const chainIds: ChainIdConfigStruct = { + chainId, + layerZeroChainId: lzChainId, + }; + + chainIdConfigs.push(chainIds); + } } await deploy("StargateFacet", { @@ -25,12 +43,16 @@ const func: DeployFunction = async function(hre: HardhatRuntimeEnvironment) { const diamond = await ethers.getContract("Diamond"); const stargateFacet = await ethers.getContract("StargateFacet"); - const ABI = ["function sgInitialize(address, uint16)"]; + const ABI = [ + "function initStargate(address, address, uint16, ChainIdConfig[])", + ]; const iface = new hre.ethers.utils.Interface(ABI); - const initData = iface.encodeFunctionData("sgInitialize", [ + const initData = iface.encodeFunctionData("initStargate", [ config[network.name].stargateRouter, + config[network.name].stargateETHRouter, config[network.name].chainId, + chainIdConfigs, ]); await addOrReplaceFacets( diff --git a/docs/bridging/STARGATE_FACET.md b/docs/bridging/STARGATE_FACET.md new file mode 100644 index 00000000..6612861b --- /dev/null +++ b/docs/bridging/STARGATE_FACET.md @@ -0,0 +1,195 @@ +# StargateFacet Smart Contract Documentation + +## Overview + +The StargateFacet is a Solidity smart contract that provides Stargate/LayerZero integration for bridging tokens across different chains. It allows users to transfer tokens and Ether between different chains using Stargate's routing mechanism. + +## Contract Details + +Solidity Version: 0.8.17 +License: MIT + +## Imports + +*@openzeppelin/contracts/token/ERC20/IERC20.sol*: Interface for ERC20 tokens. +*@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol*: Library for safe ERC20 token operations. +*../../common/helpers/DiamondReentrancyGuard.sol*: Helper contract for preventing reentrancy attacks. +*../libs/LibDiamond.sol*: Library for Diamond proxy contract implementation. +*../interfaces/stargate/IStargateRouter.sol*: Interface for Stargate Router contract. +*../interfaces/stargate/IStargateRouterETH.sol*: Interface for Stargate ETH Router contract. +*../interfaces/stargate/IStargateReceiver.sol*: Interface for Stargate Receiver contract. + +## Storage and Structs + +The contract has the following storage variables and structs: + +**Storage** +Contains various state variables for the contract: + +* `stargateRouter`: Address of the Stargate Router contract. +* `stargateETHRouter`: Address of the Stargate ETH Router contract. +* `chainId`: Current chain ID. +* `lzChainIds`: Mapping of chain IDs to corresponding LayerZero chain IDs. + +**ChainIdConfig** +Represents the mapping of chain IDs to LayerZero chain IDs: + +* `chainId`: Actual chain ID. +* `layerZeroChainId`: LayerZero chain ID that corresponds to the actual chain ID. + +**StargateData** +Represents the data required for token transfers between chains: + +* `amount`: Amount of tokens to swap. +* `bridgeToken`: The address of the native ERC20 token to swap. +* `dstChainId`: Chain ID of the destination chain. +* `srcPoolId`: Stargate pool ID for the source tokens. +* `dstPoolId`: Stargate pool ID for the destination tokens. +* `to`: Address to receive the destination tokens. +* `slippage`: Slippage tolerance on the quantity (in basis points). +* `destStargateComposed`: Address of the destination contract that must implement `sgReceive`. + +**StargateETHData** +Represents the data required for Ether transfers between chains: + +* `amount`: Amount of Ether to swap. +* `dstChainId`: Chain ID of the destination chain. +* `to`: Address to receive the destination Ether. +* `slippage`: Slippage tolerance on the quantity (in basis points). + +## Events + +The contract emits the following events: + +**StargateInitialized** +Emitted when the facet is initialized. + +Parameters: + +* `stargateRouter`: Address of the Stargate Router contract. +* `stargateETHRouter`: Address of the Stargate ETH Router contract. +* `chainId`: Current chain ID. + +**StargateTokenSwap** +Emitted on ERC20 token swap between chains. + +Parameters: + +* `fromToken`: Address of the token being swapped. +* `from`: Address from which the token is transferred. +* `to`: Address to which the token is transferred. +* `amount`: Amount of tokens being swapped. +* `chainIdTo`: Receiving chain ID. + +**StargateETHSwap** +Emitted on ETH swap between chains. + +Parameters: + +* `from`: Address from which the ETH is transferred. +* `to`: Address to which the ETH is transferred. +* `amount`: Amount of ETH being swapped. +* `chainIdTo`: Receiving chain ID. + +**StargateReceivedOnDestination** +Emitted when tokens are received on the destination chain. + +Parameters: + +* `token`: Address of the token received. +* `amount`: Amount of tokens received. + +**LzChainIdSet** +Emitted when a LayerZero chain ID is set for a chain. + +Parameters: + +* `chainId`: Chain ID for which the LayerZero chain ID is set. +* `lzChainId`: LayerZero chain ID that corresponds to the chain ID. + +## Public/External Functions + +The contract provides the following functions: + +`initStargate` +Initializes the state variables for the Stargate facet. + +Parameters: + +* `_stargateRouter`: Address of the Stargate Router contract. +* `_stargateEthRouter`: Address of the Stargate ETH Router contract. +* `_chainId`: Current chain ID. +* `_chainIdConfigs`: An array of ChainIdConfig representing mappings of chain IDs to LayerZero chain IDs. + +`stargateTokenTransfer` +Initiates a token bridge transfer between chains. + +Parameters: + +* `_data`: A StargateData object containing the transfer details. + +`stargateETHTransfer` +Initiates an Ether bridge transfer between chains. + +Parameters: + +* `_data`: A StargateETHData object containing the transfer details. + +`stargateFees` +Calculates the cross-chain fee for a token transfer. + +Parameters: + +* `_data`: A StargateData object containing the transfer details. +* `_router`: Address of the Stargate Router contract. +Returns: The calculated fee amount. + +`sgReceive` +Required to receive tokens on the destination chain. + +Parameters: + +* `_chainId`: Chain ID of the sender. +* `_srcAddress`: Source address on the sender chain (not used). +* `_nonce`: Nonce of the sender chain (not used). +* `_token`: The address of the token contract on the local chain. +* `_amountLD`: The quantity of local token contract tokens to receive. +* `_payload`: Bytes containing the destination address. + +`getLzChainId` +Gets the LayerZero chain ID for the specified chain. + +Parameters: + +* `_chainId`: Chain ID for which to get the LayerZero chain ID. +Returns: The corresponding LayerZero chain ID. + +`setLzChainId` +Sets the LayerZero chain ID for the specified chain. + +Parameters: + +* `_chainId`: Chain ID for which to set the LayerZero chain ID. +* _lzChainId: LayerZero chain ID to set. + +## Internal Functions + +`getStargateRouter` +Retrieves Stargate Router address from storage + +Returns: The Stargate Router address for the current chain. + +`getStargateETHRouter` +Retrieves Stargate ETH Router address from storage + +Returns: The Stargate ETH Router address for the current chain (if no ETH router then zero address will be returned). + +`getChainId` +Retrieves current chain ID. + +Returns: The current chain ID that the facet is deployed on. + +`getStorage` +Retrieves Storage struct data. + +Returns: All of the data stored in the Storage struct. diff --git a/hardhat.config.ts b/hardhat.config.ts index aa5914d5..c24c569a 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -6,7 +6,7 @@ import "hardhat-deploy"; import "hardhat-deploy-ethers"; import "hardhat-gas-reporter"; import "solidity-coverage"; -// import "hardhat-tracer"; +import "hardhat-tracer"; import { HardhatUserConfig } from "hardhat/config"; import { utils } from "ethers"; import { @@ -16,11 +16,7 @@ import { NETWORK_CONFIGS, } from "./extensions"; -const { - HARDHAT_MNEMONIC, - MAINNET_ALCHEMY_API_KEY, - ETHERSCAN_API_KEY, -} = process.env; +const { HARDHAT_MNEMONIC, ETHERSCAN_API_KEY } = process.env; const config: HardhatUserConfig = { namedAccounts: { @@ -28,11 +24,6 @@ const config: HardhatUserConfig = { }, networks: { hardhat: { - forking: { - enabled: false, - url: `https://eth-mainnet.alchemyapi.io/v2/${MAINNET_ALCHEMY_API_KEY}`, - blockNumber: 13798171, - }, accounts: { mnemonic: HARDHAT_MNEMONIC || diff --git a/package-lock.json b/package-lock.json index b037c06e..a1d3da36 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@etherspot/contracts", - "version": "2.0.1", + "version": "2.0.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@etherspot/contracts", - "version": "2.0.1", + "version": "2.0.2", "license": "MIT", "devDependencies": { "@ethereumjs/tx": "3.5.2", @@ -222,375 +222,7 @@ "js-sha3": "^0.8.0" } }, - "node_modules/@ensdomains/resolver": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@ensdomains/resolver/-/resolver-0.2.4.tgz", - "integrity": "sha512-bvaTH34PMCbv6anRa9I/0zjLJgY4EuznbEMgbV77JBCQ9KNC46rzi0avuxpOfu+xDjPEtSFGqVEOr5GlUSGudA==", - "deprecated": "Please use @ensdomains/ens-contracts", - "dev": true - }, - "node_modules/@ethereumjs/block": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@ethereumjs/block/-/block-3.6.3.tgz", - "integrity": "sha512-CegDeryc2DVKnDkg5COQrE0bJfw/p0v3GBk2W5/Dj5dOVfEmb50Ux0GLnSPypooLnfqjwFaorGuT9FokWB3GRg==", - "dev": true, - "dependencies": { - "@ethereumjs/common": "^2.6.5", - "@ethereumjs/tx": "^3.5.2", - "ethereumjs-util": "^7.1.5", - "merkle-patricia-tree": "^4.2.4" - } - }, - "node_modules/@ethereumjs/blockchain": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/@ethereumjs/blockchain/-/blockchain-5.5.3.tgz", - "integrity": "sha512-bi0wuNJ1gw4ByNCV56H0Z4Q7D+SxUbwyG12Wxzbvqc89PXLRNR20LBcSUZRKpN0+YCPo6m0XZL/JLio3B52LTw==", - "dev": true, - "dependencies": { - "@ethereumjs/block": "^3.6.2", - "@ethereumjs/common": "^2.6.4", - "@ethereumjs/ethash": "^1.1.0", - "debug": "^4.3.3", - "ethereumjs-util": "^7.1.5", - "level-mem": "^5.0.1", - "lru-cache": "^5.1.1", - "semaphore-async-await": "^1.5.1" - } - }, - "node_modules/@ethereumjs/blockchain/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/@ethereumjs/blockchain/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/@ethereumjs/common": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", - "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", - "dev": true, - "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.5" - } - }, - "node_modules/@ethereumjs/ethash": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/ethash/-/ethash-1.1.0.tgz", - "integrity": "sha512-/U7UOKW6BzpA+Vt+kISAoeDie1vAvY4Zy2KF5JJb+So7+1yKmJeJEHOGSnQIj330e9Zyl3L5Nae6VZyh2TJnAA==", - "dev": true, - "dependencies": { - "@ethereumjs/block": "^3.5.0", - "@types/levelup": "^4.3.0", - "buffer-xor": "^2.0.1", - "ethereumjs-util": "^7.1.1", - "miller-rabin": "^4.0.0" - } - }, - "node_modules/@ethereumjs/ethash/node_modules/buffer-xor": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-2.0.2.tgz", - "integrity": "sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.1" - } - }, - "node_modules/@ethereumjs/tx": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", - "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", - "dev": true, - "dependencies": { - "@ethereumjs/common": "^2.6.4", - "ethereumjs-util": "^7.1.5" - } - }, - "node_modules/@ethereumjs/vm": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/@ethereumjs/vm/-/vm-5.9.3.tgz", - "integrity": "sha512-Ha04TeF8goEglr8eL7hkkYyjhzdZS0PsoRURzYlTF6I0VVId5KjKb0N7MrA8GMgheN+UeTncfTgYx52D/WhEmg==", - "dev": true, - "dependencies": { - "@ethereumjs/block": "^3.6.3", - "@ethereumjs/blockchain": "^5.5.3", - "@ethereumjs/common": "^2.6.5", - "@ethereumjs/tx": "^3.5.2", - "async-eventemitter": "^0.2.4", - "core-js-pure": "^3.0.1", - "debug": "^4.3.3", - "ethereumjs-util": "^7.1.5", - "functional-red-black-tree": "^1.0.1", - "mcl-wasm": "^0.7.1", - "merkle-patricia-tree": "^4.2.4", - "rustbn.js": "~0.2.0" - } - }, - "node_modules/@ethersproject/abi": { - "version": "5.6.4", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.6.4.tgz", - "integrity": "sha512-TTeZUlCeIHG6527/2goZA6gW5F8Emoc7MrZDC7hhP84aRGvW3TEdTnZR08Ls88YXM1m2SuK42Osw/jSi3uO8gg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/address": "^5.6.1", - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/constants": "^5.6.1", - "@ethersproject/hash": "^5.6.1", - "@ethersproject/keccak256": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.1" - } - }, - "node_modules/@ethersproject/abstract-provider": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.6.1.tgz", - "integrity": "sha512-BxlIgogYJtp1FS8Muvj8YfdClk3unZH0vRMVX791Z9INBNT/kuACZ9GzaY1Y4yFq+YSy6/w4gzj3HCRKrK9hsQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.3", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.2", - "@ethersproject/web": "^5.6.1" - } - }, - "node_modules/@ethersproject/abstract-signer": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.6.2.tgz", - "integrity": "sha512-n1r6lttFBG0t2vNiI3HoWaS/KdOt8xyDjzlP2cuevlWLG6EX0OwcKLyG/Kp/cuwNxdy/ous+R/DEMdTUwWQIjQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-provider": "^5.6.1", - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0" - } - }, - "node_modules/@ethersproject/address": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.1.tgz", - "integrity": "sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/keccak256": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.1" - } - }, - "node_modules/@ethersproject/base64": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.6.1.tgz", - "integrity": "sha512-qB76rjop6a0RIYYMiB4Eh/8n+Hxu2NIZm8S/Q7kNo5pmZfXhHGHmS4MinUainiBC54SCyRnwzL+KZjj8zbsSsw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.6.1" - } - }, - "node_modules/@ethersproject/basex": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.6.1.tgz", - "integrity": "sha512-a52MkVz4vuBXR06nvflPMotld1FJWSj2QT0985v7P/emPZO00PucFAkbcmq2vpVU7Ts7umKiSI6SppiLykVWsA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/properties": "^5.6.0" - } - }, - "node_modules/@ethersproject/bignumber": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.2.tgz", - "integrity": "sha512-v7+EEUbhGqT3XJ9LMPsKvXYHFc8eHxTowFCG/HgJErmq4XHJ2WR7aeyICg3uTOAQ7Icn0GFHAohXEhxQHq4Ubw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^5.2.1" - } - }, - "node_modules/@ethersproject/bignumber/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/@ethersproject/bytes": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.6.1.tgz", - "integrity": "sha512-NwQt7cKn5+ZE4uDn+X5RAXLp46E1chXoaMmrxAyA0rblpxz8t58lVkrHXoRIn0lz1joQElQ8410GqhTqMOwc6g==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/@ethersproject/constants": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.6.1.tgz", - "integrity": "sha512-QSq9WVnZbxXYFftrjSjZDUshp6/eKp6qrtdBtUCm0QxCV5z1fG/w3kdlcsjMCQuQHUnAclKoK7XpXMezhRDOLg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.6.2" - } - }, - "node_modules/@ethersproject/contracts": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.6.2.tgz", - "integrity": "sha512-hguUA57BIKi6WY0kHvZp6PwPlWF87MCeB4B7Z7AbUpTxfFXFdn/3b0GmjZPagIHS+3yhcBJDnuEfU4Xz+Ks/8g==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abi": "^5.6.3", - "@ethersproject/abstract-provider": "^5.6.1", - "@ethersproject/abstract-signer": "^5.6.2", - "@ethersproject/address": "^5.6.1", - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/constants": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.2" - } - }, - "node_modules/@ethersproject/hardware-wallets": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hardware-wallets/-/hardware-wallets-5.7.0.tgz", - "integrity": "sha512-DjMMXIisRc8xFvEoLoYz1w7JDOYmaz/a0X9sp7Zu668RR8U1zCAyj5ow25HLRW+TCzEC5XiFetTXqS5kXonFCQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, - "dependencies": { - "@ledgerhq/hw-app-eth": "5.27.2", - "@ledgerhq/hw-transport": "5.26.0", - "@ledgerhq/hw-transport-u2f": "5.26.0", - "ethers": "^5.7.0" - }, - "optionalDependencies": { - "@ledgerhq/hw-transport-node-hid": "5.26.0" - } - }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/abi": { + "node_modules/@ensdomains/ensjs/node_modules/@ethersproject/abi": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", @@ -605,7 +237,6 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/address": "^5.7.0", "@ethersproject/bignumber": "^5.7.0", @@ -618,7 +249,7 @@ "@ethersproject/strings": "^5.7.0" } }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/abstract-provider": { + "node_modules/@ensdomains/ensjs/node_modules/@ethersproject/abstract-provider": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", @@ -633,7 +264,6 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/bignumber": "^5.7.0", "@ethersproject/bytes": "^5.7.0", @@ -644,7 +274,7 @@ "@ethersproject/web": "^5.7.0" } }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/abstract-signer": { + "node_modules/@ensdomains/ensjs/node_modules/@ethersproject/abstract-signer": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", @@ -659,7 +289,6 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/abstract-provider": "^5.7.0", "@ethersproject/bignumber": "^5.7.0", @@ -668,7 +297,7 @@ "@ethersproject/properties": "^5.7.0" } }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/address": { + "node_modules/@ensdomains/ensjs/node_modules/@ethersproject/address": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", @@ -683,7 +312,6 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/bignumber": "^5.7.0", "@ethersproject/bytes": "^5.7.0", @@ -692,7 +320,7 @@ "@ethersproject/rlp": "^5.7.0" } }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/base64": { + "node_modules/@ensdomains/ensjs/node_modules/@ethersproject/base64": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", @@ -707,12 +335,11 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/bytes": "^5.7.0" } }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/basex": { + "node_modules/@ensdomains/ensjs/node_modules/@ethersproject/basex": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", @@ -727,13 +354,12 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/properties": "^5.7.0" } }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/bignumber": { + "node_modules/@ensdomains/ensjs/node_modules/@ethersproject/bignumber": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", @@ -748,14 +374,13 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/logger": "^5.7.0", "bn.js": "^5.2.1" } }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/bytes": { + "node_modules/@ensdomains/ensjs/node_modules/@ethersproject/bytes": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", @@ -770,12 +395,11 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/logger": "^5.7.0" } }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/constants": { + "node_modules/@ensdomains/ensjs/node_modules/@ethersproject/constants": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", @@ -790,12 +414,11 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/bignumber": "^5.7.0" } }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/contracts": { + "node_modules/@ensdomains/ensjs/node_modules/@ethersproject/contracts": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", @@ -810,7 +433,6 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/abi": "^5.7.0", "@ethersproject/abstract-provider": "^5.7.0", @@ -824,7 +446,7 @@ "@ethersproject/transactions": "^5.7.0" } }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/hash": { + "node_modules/@ensdomains/ensjs/node_modules/@ethersproject/hash": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", @@ -839,7 +461,6 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/abstract-signer": "^5.7.0", "@ethersproject/address": "^5.7.0", @@ -852,7 +473,7 @@ "@ethersproject/strings": "^5.7.0" } }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/hdnode": { + "node_modules/@ensdomains/ensjs/node_modules/@ethersproject/hdnode": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", @@ -867,7 +488,6 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/abstract-signer": "^5.7.0", "@ethersproject/basex": "^5.7.0", @@ -883,7 +503,7 @@ "@ethersproject/wordlists": "^5.7.0" } }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/json-wallets": { + "node_modules/@ensdomains/ensjs/node_modules/@ethersproject/json-wallets": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", @@ -898,7 +518,6 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/abstract-signer": "^5.7.0", "@ethersproject/address": "^5.7.0", @@ -915,7 +534,7 @@ "scrypt-js": "3.0.1" } }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/keccak256": { + "node_modules/@ensdomains/ensjs/node_modules/@ethersproject/keccak256": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", @@ -930,13 +549,12 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/bytes": "^5.7.0", "js-sha3": "0.8.0" } }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/logger": { + "node_modules/@ensdomains/ensjs/node_modules/@ethersproject/logger": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", @@ -950,10 +568,9 @@ "type": "individual", "url": "https://www.buymeacoffee.com/ricmoo" } - ], - "peer": true + ] }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/networks": { + "node_modules/@ensdomains/ensjs/node_modules/@ethersproject/networks": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", @@ -968,12 +585,11 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/logger": "^5.7.0" } }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/pbkdf2": { + "node_modules/@ensdomains/ensjs/node_modules/@ethersproject/pbkdf2": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", @@ -988,13 +604,12 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/sha2": "^5.7.0" } }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/properties": { + "node_modules/@ensdomains/ensjs/node_modules/@ethersproject/properties": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", @@ -1009,12 +624,11 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/logger": "^5.7.0" } }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/providers": { + "node_modules/@ensdomains/ensjs/node_modules/@ethersproject/providers": { "version": "5.7.2", "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", @@ -1029,7 +643,6 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/abstract-provider": "^5.7.0", "@ethersproject/abstract-signer": "^5.7.0", @@ -1053,7 +666,7 @@ "ws": "7.4.6" } }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/random": { + "node_modules/@ensdomains/ensjs/node_modules/@ethersproject/random": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", @@ -1068,13 +681,12 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/logger": "^5.7.0" } }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/rlp": { + "node_modules/@ensdomains/ensjs/node_modules/@ethersproject/rlp": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", @@ -1089,13 +701,12 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/logger": "^5.7.0" } }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/sha2": { + "node_modules/@ensdomains/ensjs/node_modules/@ethersproject/sha2": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", @@ -1110,14 +721,13 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/logger": "^5.7.0", "hash.js": "1.1.7" } }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/signing-key": { + "node_modules/@ensdomains/ensjs/node_modules/@ethersproject/signing-key": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", @@ -1132,7 +742,6 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/logger": "^5.7.0", @@ -1142,7 +751,7 @@ "hash.js": "1.1.7" } }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/solidity": { + "node_modules/@ensdomains/ensjs/node_modules/@ethersproject/solidity": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", @@ -1157,7 +766,6 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/bignumber": "^5.7.0", "@ethersproject/bytes": "^5.7.0", @@ -1167,7 +775,7 @@ "@ethersproject/strings": "^5.7.0" } }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/strings": { + "node_modules/@ensdomains/ensjs/node_modules/@ethersproject/strings": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", @@ -1182,14 +790,13 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/constants": "^5.7.0", "@ethersproject/logger": "^5.7.0" } }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/transactions": { + "node_modules/@ensdomains/ensjs/node_modules/@ethersproject/transactions": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", @@ -1204,7 +811,6 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/address": "^5.7.0", "@ethersproject/bignumber": "^5.7.0", @@ -1217,7 +823,7 @@ "@ethersproject/signing-key": "^5.7.0" } }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/units": { + "node_modules/@ensdomains/ensjs/node_modules/@ethersproject/units": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", @@ -1232,14 +838,13 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/bignumber": "^5.7.0", "@ethersproject/constants": "^5.7.0", "@ethersproject/logger": "^5.7.0" } }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/wallet": { + "node_modules/@ensdomains/ensjs/node_modules/@ethersproject/wallet": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", @@ -1254,7 +859,6 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/abstract-provider": "^5.7.0", "@ethersproject/abstract-signer": "^5.7.0", @@ -1273,7 +877,7 @@ "@ethersproject/wordlists": "^5.7.0" } }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/web": { + "node_modules/@ensdomains/ensjs/node_modules/@ethersproject/web": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", @@ -1288,7 +892,6 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/base64": "^5.7.0", "@ethersproject/bytes": "^5.7.0", @@ -1297,7 +900,7 @@ "@ethersproject/strings": "^5.7.0" } }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/wordlists": { + "node_modules/@ensdomains/ensjs/node_modules/@ethersproject/wordlists": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", @@ -1312,7 +915,6 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/hash": "^5.7.0", @@ -1321,14 +923,13 @@ "@ethersproject/strings": "^5.7.0" } }, - "node_modules/@ethersproject/hardware-wallets/node_modules/bn.js": { + "node_modules/@ensdomains/ensjs/node_modules/bn.js": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true, - "peer": true + "dev": true }, - "node_modules/@ethersproject/hardware-wallets/node_modules/ethers": { + "node_modules/@ensdomains/ensjs/node_modules/ethers": { "version": "5.7.2", "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", @@ -1343,7 +944,1161 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, + "dependencies": { + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + } + }, + "node_modules/@ensdomains/resolver": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@ensdomains/resolver/-/resolver-0.2.4.tgz", + "integrity": "sha512-bvaTH34PMCbv6anRa9I/0zjLJgY4EuznbEMgbV77JBCQ9KNC46rzi0avuxpOfu+xDjPEtSFGqVEOr5GlUSGudA==", + "deprecated": "Please use @ensdomains/ens-contracts", + "dev": true + }, + "node_modules/@ethereumjs/block": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@ethereumjs/block/-/block-3.6.3.tgz", + "integrity": "sha512-CegDeryc2DVKnDkg5COQrE0bJfw/p0v3GBk2W5/Dj5dOVfEmb50Ux0GLnSPypooLnfqjwFaorGuT9FokWB3GRg==", + "dev": true, + "dependencies": { + "@ethereumjs/common": "^2.6.5", + "@ethereumjs/tx": "^3.5.2", + "ethereumjs-util": "^7.1.5", + "merkle-patricia-tree": "^4.2.4" + } + }, + "node_modules/@ethereumjs/blockchain": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/@ethereumjs/blockchain/-/blockchain-5.5.3.tgz", + "integrity": "sha512-bi0wuNJ1gw4ByNCV56H0Z4Q7D+SxUbwyG12Wxzbvqc89PXLRNR20LBcSUZRKpN0+YCPo6m0XZL/JLio3B52LTw==", + "dev": true, + "dependencies": { + "@ethereumjs/block": "^3.6.2", + "@ethereumjs/common": "^2.6.4", + "@ethereumjs/ethash": "^1.1.0", + "debug": "^4.3.3", + "ethereumjs-util": "^7.1.5", + "level-mem": "^5.0.1", + "lru-cache": "^5.1.1", + "semaphore-async-await": "^1.5.1" + } + }, + "node_modules/@ethereumjs/blockchain/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@ethereumjs/blockchain/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/@ethereumjs/common": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", + "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", + "dev": true, + "dependencies": { + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.5" + } + }, + "node_modules/@ethereumjs/ethash": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/ethash/-/ethash-1.1.0.tgz", + "integrity": "sha512-/U7UOKW6BzpA+Vt+kISAoeDie1vAvY4Zy2KF5JJb+So7+1yKmJeJEHOGSnQIj330e9Zyl3L5Nae6VZyh2TJnAA==", + "dev": true, + "dependencies": { + "@ethereumjs/block": "^3.5.0", + "@types/levelup": "^4.3.0", + "buffer-xor": "^2.0.1", + "ethereumjs-util": "^7.1.1", + "miller-rabin": "^4.0.0" + } + }, + "node_modules/@ethereumjs/ethash/node_modules/buffer-xor": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-2.0.2.tgz", + "integrity": "sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.1" + } + }, + "node_modules/@ethereumjs/tx": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", + "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", + "dev": true, + "dependencies": { + "@ethereumjs/common": "^2.6.4", + "ethereumjs-util": "^7.1.5" + } + }, + "node_modules/@ethereumjs/vm": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/@ethereumjs/vm/-/vm-5.9.3.tgz", + "integrity": "sha512-Ha04TeF8goEglr8eL7hkkYyjhzdZS0PsoRURzYlTF6I0VVId5KjKb0N7MrA8GMgheN+UeTncfTgYx52D/WhEmg==", + "dev": true, + "dependencies": { + "@ethereumjs/block": "^3.6.3", + "@ethereumjs/blockchain": "^5.5.3", + "@ethereumjs/common": "^2.6.5", + "@ethereumjs/tx": "^3.5.2", + "async-eventemitter": "^0.2.4", + "core-js-pure": "^3.0.1", + "debug": "^4.3.3", + "ethereumjs-util": "^7.1.5", + "functional-red-black-tree": "^1.0.1", + "mcl-wasm": "^0.7.1", + "merkle-patricia-tree": "^4.2.4", + "rustbn.js": "~0.2.0" + } + }, + "node_modules/@ethersproject/abi": { + "version": "5.6.4", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.6.4.tgz", + "integrity": "sha512-TTeZUlCeIHG6527/2goZA6gW5F8Emoc7MrZDC7hhP84aRGvW3TEdTnZR08Ls88YXM1m2SuK42Osw/jSi3uO8gg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/address": "^5.6.1", + "@ethersproject/bignumber": "^5.6.2", + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/constants": "^5.6.1", + "@ethersproject/hash": "^5.6.1", + "@ethersproject/keccak256": "^5.6.1", + "@ethersproject/logger": "^5.6.0", + "@ethersproject/properties": "^5.6.0", + "@ethersproject/strings": "^5.6.1" + } + }, + "node_modules/@ethersproject/abstract-provider": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.6.1.tgz", + "integrity": "sha512-BxlIgogYJtp1FS8Muvj8YfdClk3unZH0vRMVX791Z9INBNT/kuACZ9GzaY1Y4yFq+YSy6/w4gzj3HCRKrK9hsQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.6.2", + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/logger": "^5.6.0", + "@ethersproject/networks": "^5.6.3", + "@ethersproject/properties": "^5.6.0", + "@ethersproject/transactions": "^5.6.2", + "@ethersproject/web": "^5.6.1" + } + }, + "node_modules/@ethersproject/abstract-signer": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.6.2.tgz", + "integrity": "sha512-n1r6lttFBG0t2vNiI3HoWaS/KdOt8xyDjzlP2cuevlWLG6EX0OwcKLyG/Kp/cuwNxdy/ous+R/DEMdTUwWQIjQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-provider": "^5.6.1", + "@ethersproject/bignumber": "^5.6.2", + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/logger": "^5.6.0", + "@ethersproject/properties": "^5.6.0" + } + }, + "node_modules/@ethersproject/address": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.1.tgz", + "integrity": "sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.6.2", + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/keccak256": "^5.6.1", + "@ethersproject/logger": "^5.6.0", + "@ethersproject/rlp": "^5.6.1" + } + }, + "node_modules/@ethersproject/base64": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.6.1.tgz", + "integrity": "sha512-qB76rjop6a0RIYYMiB4Eh/8n+Hxu2NIZm8S/Q7kNo5pmZfXhHGHmS4MinUainiBC54SCyRnwzL+KZjj8zbsSsw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.6.1" + } + }, + "node_modules/@ethersproject/basex": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.6.1.tgz", + "integrity": "sha512-a52MkVz4vuBXR06nvflPMotld1FJWSj2QT0985v7P/emPZO00PucFAkbcmq2vpVU7Ts7umKiSI6SppiLykVWsA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/properties": "^5.6.0" + } + }, + "node_modules/@ethersproject/bignumber": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.2.tgz", + "integrity": "sha512-v7+EEUbhGqT3XJ9LMPsKvXYHFc8eHxTowFCG/HgJErmq4XHJ2WR7aeyICg3uTOAQ7Icn0GFHAohXEhxQHq4Ubw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/logger": "^5.6.0", + "bn.js": "^5.2.1" + } + }, + "node_modules/@ethersproject/bignumber/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + }, + "node_modules/@ethersproject/bytes": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.6.1.tgz", + "integrity": "sha512-NwQt7cKn5+ZE4uDn+X5RAXLp46E1chXoaMmrxAyA0rblpxz8t58lVkrHXoRIn0lz1joQElQ8410GqhTqMOwc6g==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.6.0" + } + }, + "node_modules/@ethersproject/constants": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.6.1.tgz", + "integrity": "sha512-QSq9WVnZbxXYFftrjSjZDUshp6/eKp6qrtdBtUCm0QxCV5z1fG/w3kdlcsjMCQuQHUnAclKoK7XpXMezhRDOLg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.6.2" + } + }, + "node_modules/@ethersproject/contracts": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.6.2.tgz", + "integrity": "sha512-hguUA57BIKi6WY0kHvZp6PwPlWF87MCeB4B7Z7AbUpTxfFXFdn/3b0GmjZPagIHS+3yhcBJDnuEfU4Xz+Ks/8g==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abi": "^5.6.3", + "@ethersproject/abstract-provider": "^5.6.1", + "@ethersproject/abstract-signer": "^5.6.2", + "@ethersproject/address": "^5.6.1", + "@ethersproject/bignumber": "^5.6.2", + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/constants": "^5.6.1", + "@ethersproject/logger": "^5.6.0", + "@ethersproject/properties": "^5.6.0", + "@ethersproject/transactions": "^5.6.2" + } + }, + "node_modules/@ethersproject/hardware-wallets": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hardware-wallets/-/hardware-wallets-5.7.0.tgz", + "integrity": "sha512-DjMMXIisRc8xFvEoLoYz1w7JDOYmaz/a0X9sp7Zu668RR8U1zCAyj5ow25HLRW+TCzEC5XiFetTXqS5kXonFCQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ledgerhq/hw-app-eth": "5.27.2", + "@ledgerhq/hw-transport": "5.26.0", + "@ledgerhq/hw-transport-u2f": "5.26.0", + "ethers": "^5.7.0" + }, + "optionalDependencies": { + "@ledgerhq/hw-transport-node-hid": "5.26.0" + } + }, + "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/abi": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" + } + }, + "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/abstract-signer": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/address": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" + } + }, + "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/base64": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0" + } + }, + "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/basex": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", + "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/bignumber": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" + } + }, + "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bignumber": "^5.7.0" + } + }, + "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/contracts": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", + "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" + } + }, + "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/hdnode": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", + "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/json-wallets": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", + "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" + } + }, + "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/keccak256": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" + } + }, + "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true + }, + "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/networks": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/pbkdf2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", + "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" + } + }, + "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/providers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", + "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bech32": "1.1.4", + "ws": "7.4.6" + } + }, + "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/random": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", + "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/rlp": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/sha2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", + "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/solidity": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", + "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" + } + }, + "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/units": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", + "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/wallet": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", + "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/web": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/hardware-wallets/node_modules/@ethersproject/wordlists": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", + "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/hardware-wallets/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true, + "peer": true + }, + "node_modules/@ethersproject/hardware-wallets/node_modules/ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, "dependencies": { "@ethersproject/abi": "5.7.0", "@ethersproject/abstract-provider": "5.7.0", @@ -2643,172 +3398,7 @@ "web3-utils": "1.5.3" } }, - "node_modules/@superfluid-finance/ethereum-contracts/node_modules/bignumber.js": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz", - "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/@superfluid-finance/ethereum-contracts/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/@superfluid-finance/ethereum-contracts/node_modules/ethereumjs-util": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz", - "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@superfluid-finance/ethereum-contracts/node_modules/ethereumjs-util/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/@superfluid-finance/ethereum-contracts/node_modules/ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dev": true, - "dependencies": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "node_modules/@superfluid-finance/ethereum-contracts/node_modules/hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/@superfluid-finance/ethereum-contracts/node_modules/js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==", - "dev": true - }, - "node_modules/@superfluid-finance/ethereum-contracts/node_modules/scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", - "dev": true - }, - "node_modules/@superfluid-finance/ethereum-contracts/node_modules/setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==", - "dev": true - }, - "node_modules/@superfluid-finance/ethereum-contracts/node_modules/uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true - }, - "node_modules/@superfluid-finance/ethereum-contracts/node_modules/web3": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.5.3.tgz", - "integrity": "sha512-eyBg/1K44flfv0hPjXfKvNwcUfIVDI4NX48qHQe6wd7C8nPSdbWqo9vLy6ksZIt9NLa90HjI8HsGYgnMSUxn6w==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "web3-bzz": "1.5.3", - "web3-core": "1.5.3", - "web3-eth": "1.5.3", - "web3-eth-personal": "1.5.3", - "web3-net": "1.5.3", - "web3-shh": "1.5.3", - "web3-utils": "1.5.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@superfluid-finance/ethereum-contracts/node_modules/web3-utils": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz", - "integrity": "sha512-56nRgA+Ad9SEyCv39g36rTcr5fpsd4L9LgV3FK0aB66nAMazLAA6Qz4lH5XrUKPDyBIPGJIR+kJsyRtwcu2q1Q==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.9", - "eth-lib": "0.2.8", - "ethereum-bloom-filters": "^1.0.6", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@superfluid-finance/js-sdk": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/@superfluid-finance/js-sdk/-/js-sdk-0.5.13.tgz", - "integrity": "sha512-bkRYFD7aZIVnlxTwJUlViYBq7mXilNvDdBcJhBQ3vFlTPZPrNg+zL319u5C+vQGlkDwtvAD6J6nR0CnuQ0TR6w==", - "dev": true, - "dependencies": { - "@ethersproject/abi": "^5.6.0", - "@ethersproject/hash": "^5.6.0", - "@truffle/contract": "4.5.5", - "auto-bind": "^4.0.0", - "node-fetch": "^2.6.7" - }, - "peerDependencies": { - "@ethersproject/contracts": "^5.0.0", - "@truffle/contract": "^4.0.0" - } - }, - "node_modules/@superfluid-finance/js-sdk/node_modules/@truffle/contract": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/@truffle/contract/-/contract-4.5.5.tgz", - "integrity": "sha512-CAG8UTP7OpCh+aSkMt+nYe6PA7QzZcnbAjFpXOJ5JSjLBlCNzu/Mh5zNG03JyVl/uIrCZzG6WIKpV7f8SOlRfA==", - "dev": true, - "dependencies": { - "@ensdomains/ensjs": "^2.0.1", - "@truffle/blockchain-utils": "^0.1.2", - "@truffle/contract-schema": "^3.4.7", - "@truffle/debug-utils": "^6.0.17", - "@truffle/error": "^0.1.0", - "@truffle/interface-adapter": "^0.5.13", - "bignumber.js": "^7.2.1", - "debug": "^4.3.1", - "ethers": "^4.0.32", - "web3": "1.5.3", - "web3-core-helpers": "1.5.3", - "web3-core-promievent": "1.5.3", - "web3-eth-abi": "1.5.3", - "web3-utils": "1.5.3" - } - }, - "node_modules/@superfluid-finance/js-sdk/node_modules/bignumber.js": { + "node_modules/@superfluid-finance/ethereum-contracts/node_modules/bignumber.js": { "version": "7.2.1", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz", "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==", @@ -2817,12 +3407,165 @@ "node": "*" } }, - "node_modules/@superfluid-finance/js-sdk/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "node_modules/@superfluid-finance/ethereum-contracts/node_modules/ethereumjs-util": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz", + "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==", + "dev": true, + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@superfluid-finance/ethereum-contracts/node_modules/ethereumjs-util/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", "dev": true }, + "node_modules/@superfluid-finance/ethereum-contracts/node_modules/ethers": { + "version": "4.0.49", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", + "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", + "dev": true, + "dependencies": { + "aes-js": "3.0.0", + "bn.js": "^4.11.9", + "elliptic": "6.5.4", + "hash.js": "1.1.3", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.4", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.0" + } + }, + "node_modules/@superfluid-finance/ethereum-contracts/node_modules/hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/@superfluid-finance/ethereum-contracts/node_modules/js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==", + "dev": true + }, + "node_modules/@superfluid-finance/ethereum-contracts/node_modules/scrypt-js": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", + "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", + "dev": true + }, + "node_modules/@superfluid-finance/ethereum-contracts/node_modules/setimmediate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", + "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==", + "dev": true + }, + "node_modules/@superfluid-finance/ethereum-contracts/node_modules/uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true + }, + "node_modules/@superfluid-finance/ethereum-contracts/node_modules/web3": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.5.3.tgz", + "integrity": "sha512-eyBg/1K44flfv0hPjXfKvNwcUfIVDI4NX48qHQe6wd7C8nPSdbWqo9vLy6ksZIt9NLa90HjI8HsGYgnMSUxn6w==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "web3-bzz": "1.5.3", + "web3-core": "1.5.3", + "web3-eth": "1.5.3", + "web3-eth-personal": "1.5.3", + "web3-net": "1.5.3", + "web3-shh": "1.5.3", + "web3-utils": "1.5.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@superfluid-finance/ethereum-contracts/node_modules/web3-utils": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz", + "integrity": "sha512-56nRgA+Ad9SEyCv39g36rTcr5fpsd4L9LgV3FK0aB66nAMazLAA6Qz4lH5XrUKPDyBIPGJIR+kJsyRtwcu2q1Q==", + "dev": true, + "dependencies": { + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@superfluid-finance/js-sdk": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/@superfluid-finance/js-sdk/-/js-sdk-0.5.13.tgz", + "integrity": "sha512-bkRYFD7aZIVnlxTwJUlViYBq7mXilNvDdBcJhBQ3vFlTPZPrNg+zL319u5C+vQGlkDwtvAD6J6nR0CnuQ0TR6w==", + "dev": true, + "dependencies": { + "@ethersproject/abi": "^5.6.0", + "@ethersproject/hash": "^5.6.0", + "@truffle/contract": "4.5.5", + "auto-bind": "^4.0.0", + "node-fetch": "^2.6.7" + }, + "peerDependencies": { + "@ethersproject/contracts": "^5.0.0", + "@truffle/contract": "^4.0.0" + } + }, + "node_modules/@superfluid-finance/js-sdk/node_modules/@truffle/contract": { + "version": "4.5.5", + "resolved": "https://registry.npmjs.org/@truffle/contract/-/contract-4.5.5.tgz", + "integrity": "sha512-CAG8UTP7OpCh+aSkMt+nYe6PA7QzZcnbAjFpXOJ5JSjLBlCNzu/Mh5zNG03JyVl/uIrCZzG6WIKpV7f8SOlRfA==", + "dev": true, + "dependencies": { + "@ensdomains/ensjs": "^2.0.1", + "@truffle/blockchain-utils": "^0.1.2", + "@truffle/contract-schema": "^3.4.7", + "@truffle/debug-utils": "^6.0.17", + "@truffle/error": "^0.1.0", + "@truffle/interface-adapter": "^0.5.13", + "bignumber.js": "^7.2.1", + "debug": "^4.3.1", + "ethers": "^4.0.32", + "web3": "1.5.3", + "web3-core-helpers": "1.5.3", + "web3-core-promievent": "1.5.3", + "web3-eth-abi": "1.5.3", + "web3-utils": "1.5.3" + } + }, + "node_modules/@superfluid-finance/js-sdk/node_modules/bignumber.js": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz", + "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==", + "dev": true, + "engines": { + "node": "*" + } + }, "node_modules/@superfluid-finance/js-sdk/node_modules/ethers": { "version": "4.0.49", "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", @@ -3177,12 +3920,6 @@ "node": "*" } }, - "node_modules/@truffle/contract/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "node_modules/@truffle/contract/node_modules/ethers": { "version": "4.0.49", "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", @@ -3498,12 +4235,6 @@ "web3": "1.5.3" } }, - "node_modules/@truffle/provider/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "node_modules/@truffle/provider/node_modules/web3": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/web3/-/web3-1.5.3.tgz", @@ -4835,9 +5566,9 @@ "dev": true }, "node_modules/bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true }, "node_modules/body-parser": { @@ -6736,12 +7467,6 @@ "minimalistic-crypto-utils": "^1.0.1" } }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "node_modules/emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", @@ -7968,12 +8693,6 @@ } } }, - "node_modules/eth-gas-reporter/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "node_modules/eth-gas-reporter/node_modules/ethereum-cryptography": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.1.0.tgz", @@ -8926,12 +9645,6 @@ "@ethersproject/strings": "^5.5.0" } }, - "node_modules/ethers/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "node_modules/ethjs-abi": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/ethjs-abi/-/ethjs-abi-0.2.1.tgz", @@ -13915,10 +14628,13 @@ } }, "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/minipass": { "version": "2.9.0", @@ -19559,12 +20275,6 @@ "node": ">=8.0.0" } }, - "node_modules/web3-core-helpers/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "node_modules/web3-core-helpers/node_modules/web3-utils": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz", @@ -19600,12 +20310,6 @@ "node": ">=8.0.0" } }, - "node_modules/web3-core-method/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "node_modules/web3-core-method/node_modules/web3-utils": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz", @@ -19692,12 +20396,6 @@ "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", "dev": true }, - "node_modules/web3-core/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "node_modules/web3-core/node_modules/web3-utils": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz", @@ -19769,12 +20467,6 @@ "@ethersproject/strings": "^5.0.4" } }, - "node_modules/web3-eth-abi/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "node_modules/web3-eth-abi/node_modules/web3-utils": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz", @@ -19815,12 +20507,6 @@ "node": ">=8.0.0" } }, - "node_modules/web3-eth-accounts/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "node_modules/web3-eth-accounts/node_modules/uuid": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", @@ -19877,12 +20563,6 @@ "@types/node": "*" } }, - "node_modules/web3-eth-contract/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "node_modules/web3-eth-contract/node_modules/web3-utils": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz", @@ -19920,12 +20600,6 @@ "node": ">=8.0.0" } }, - "node_modules/web3-eth-ens/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "node_modules/web3-eth-ens/node_modules/web3-utils": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz", @@ -19957,12 +20631,6 @@ "node": ">=8.0.0" } }, - "node_modules/web3-eth-iban/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "node_modules/web3-eth-iban/node_modules/web3-utils": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz", @@ -20004,12 +20672,6 @@ "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", "dev": true }, - "node_modules/web3-eth-personal/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "node_modules/web3-eth-personal/node_modules/web3-utils": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz", @@ -20028,12 +20690,6 @@ "node": ">=8.0.0" } }, - "node_modules/web3-eth/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "node_modules/web3-eth/node_modules/web3-utils": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz", @@ -20066,12 +20722,6 @@ "node": ">=8.0.0" } }, - "node_modules/web3-net/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "node_modules/web3-net/node_modules/web3-utils": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz", @@ -20208,12 +20858,6 @@ "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", "dev": true }, - "node_modules/web3/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "node_modules/web3/node_modules/eventemitter3": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", @@ -21148,6 +21792,453 @@ "eth-ens-namehash": "^2.0.8", "ethers": "^5.0.13", "js-sha3": "^0.8.0" + }, + "dependencies": { + "@ethersproject/abi": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "dev": true, + "requires": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "dev": true, + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" + } + }, + "@ethersproject/abstract-signer": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "dev": true, + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "@ethersproject/address": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "dev": true, + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" + } + }, + "@ethersproject/base64": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.7.0" + } + }, + "@ethersproject/basex": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", + "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "@ethersproject/bignumber": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" + } + }, + "@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "dev": true, + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "dev": true, + "requires": { + "@ethersproject/bignumber": "^5.7.0" + } + }, + "@ethersproject/contracts": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", + "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", + "dev": true, + "requires": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" + } + }, + "@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "dev": true, + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/hdnode": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", + "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", + "dev": true, + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "@ethersproject/json-wallets": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", + "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", + "dev": true, + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" + } + }, + "@ethersproject/keccak256": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" + } + }, + "@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", + "dev": true + }, + "@ethersproject/networks": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "dev": true, + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/pbkdf2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", + "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" + } + }, + "@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "dev": true, + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/providers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", + "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", + "dev": true, + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bech32": "1.1.4", + "ws": "7.4.6" + } + }, + "@ethersproject/random": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", + "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/rlp": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/sha2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", + "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" + } + }, + "@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "@ethersproject/solidity": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", + "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", + "dev": true, + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "dev": true, + "requires": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" + } + }, + "@ethersproject/units": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", + "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", + "dev": true, + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/wallet": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", + "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", + "dev": true, + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "@ethersproject/web": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "dev": true, + "requires": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/wordlists": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", + "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + }, + "ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "dev": true, + "requires": { + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + } + } } }, "@ensdomains/resolver": { @@ -22835,12 +23926,6 @@ "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==", "dev": true }, - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "ethereumjs-util": { "version": "7.1.4", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz", @@ -22986,12 +24071,6 @@ "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==", "dev": true }, - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "ethers": { "version": "4.0.49", "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", @@ -23280,12 +24359,6 @@ "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==", "dev": true }, - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "ethers": { "version": "4.0.49", "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", @@ -23610,12 +24683,6 @@ "web3": "1.5.3" }, "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "web3": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/web3/-/web3-1.5.3.tgz", @@ -24668,9 +25735,9 @@ "dev": true }, "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true }, "body-parser": { @@ -26239,14 +27306,6 @@ "inherits": "^2.0.4", "minimalistic-assert": "^1.0.1", "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } } }, "emoji-regex": { @@ -27204,12 +28263,6 @@ "sync-request": "^6.0.0" }, "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "ethereum-cryptography": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.1.0.tgz", @@ -27853,12 +28906,6 @@ "@ethersproject/properties": "^5.5.0", "@ethersproject/strings": "^5.5.0" } - }, - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true } } }, @@ -31697,9 +32744,9 @@ } }, "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true }, "minipass": { @@ -36236,12 +37283,6 @@ "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", "dev": true }, - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "eventemitter3": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", @@ -36560,12 +37601,6 @@ "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", "dev": true }, - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "web3-utils": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz", @@ -36593,12 +37628,6 @@ "web3-utils": "1.5.3" }, "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "web3-utils": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz", @@ -36630,12 +37659,6 @@ "web3-utils": "1.5.3" }, "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "web3-utils": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz", @@ -36721,12 +37744,6 @@ "web3-utils": "1.5.3" }, "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "web3-utils": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz", @@ -36771,12 +37788,6 @@ "@ethersproject/strings": "^5.0.4" } }, - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "web3-utils": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz", @@ -36813,12 +37824,6 @@ "web3-utils": "1.5.3" }, "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "uuid": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", @@ -36867,12 +37872,6 @@ "@types/node": "*" } }, - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "web3-utils": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz", @@ -36906,12 +37905,6 @@ "web3-utils": "1.5.3" }, "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "web3-utils": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz", @@ -36939,12 +37932,6 @@ "web3-utils": "1.5.3" }, "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "web3-utils": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz", @@ -36982,12 +37969,6 @@ "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", "dev": true }, - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "web3-utils": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz", @@ -37016,12 +37997,6 @@ "web3-utils": "1.5.3" }, "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "web3-utils": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz", diff --git a/package.json b/package.json index 97f07df4..148b8d13 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@etherspot/contracts", - "version": "2.0.1", + "version": "2.0.2", "description": "Etherspot Solidity contracts", "keywords": [ "ether", diff --git a/scripts/001_test_stargate_facet.ts b/scripts/001_test_stargate_facet.ts new file mode 100644 index 00000000..96091471 --- /dev/null +++ b/scripts/001_test_stargate_facet.ts @@ -0,0 +1,75 @@ +import { DeployFunction } from "hardhat-deploy/types"; +import { HardhatRuntimeEnvironment } from "hardhat/types"; +import { addOrReplaceFacets } from "../utils/diamond"; +import config from "../config/stargate"; +import { ChainIdConfigStruct } from "typings/StargateFacet"; + +const func: DeployFunction = async function(hre: HardhatRuntimeEnvironment) { + const { + deployments: { deploy, log }, + getNamedAccounts, + ethers, + network, + } = hre; + const { from } = await getNamedAccounts(); + + if (!config[network.name]) { + return log( + "No stargate config for this network available: " + network.name, + ); + } + + const chainIdConfigs: ChainIdConfigStruct[] = []; + for (const networkName in config) { + if (config.hasOwnProperty(networkName)) { + const networkConfig = config[networkName]; + const { chainId, lzChainId } = networkConfig; + + const chainIds: ChainIdConfigStruct = { + chainId, + layerZeroChainId: lzChainId, + }; + + chainIdConfigs.push(chainIds); + } + } + + await deploy("StargateFacet", { + from, + log: true, + deterministicDeployment: true, + }); + + const diamond = await ethers.getContract("Diamond"); + const stargateFacet = await ethers.getContract("StargateFacet"); + + const ABI = [ + "function initStargate(address, address, uint16, ChainIdConfig[])", + ]; + const iface = new hre.ethers.utils.Interface(ABI); + + const initData = iface.encodeFunctionData("initStargate", [ + config[network.name].stargateRouter, + config[network.name].stargateETHRouter, + config[network.name].chainId, + chainIdConfigs, + ]); + + await addOrReplaceFacets( + [stargateFacet], + diamond.address, + stargateFacet.address, + initData, + ); + + await hre.run("verify:verify", { + address: stargateFacet.address, + contract: "src/bridges/facets/StargateFacet.sol", + constructorArguments: [], + }); +}; +func.id = "stargate_facet_deploy"; +func.tags = ["bridges", "stargate"]; +func.dependencies = ["init-facets"]; + +export default func; diff --git a/src/bridges/errors/StargateErrors.sol b/src/bridges/errors/StargateErrors.sol deleted file mode 100644 index c90b409b..00000000 --- a/src/bridges/errors/StargateErrors.sol +++ /dev/null @@ -1,9 +0,0 @@ -// SPDX-License-Identifier: MIT -// solhint-disable-next-line -pragma solidity 0.8.4; - -error SenderNotStargateRouter(); -error NoMsgValueForCrossChainMessage(); -error StargateRouterAddressZero(); -error InvalidSourcePoolId(); -error InvalidDestinationPoolId(); diff --git a/src/bridges/facets/StargateFacet.sol b/src/bridges/facets/StargateFacet.sol index a052b73b..fc070d36 100644 --- a/src/bridges/facets/StargateFacet.sol +++ b/src/bridges/facets/StargateFacet.sol @@ -1,289 +1,378 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.4; +pragma solidity 0.8.17; -import {IStargateRouter} from "../interfaces/IStargateRouter.sol"; -import {IStargateReceiver} from "../interfaces/IStargateReceiver.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; import {ReentrancyGuard} from "../../common/helpers/DiamondReentrancyGuard.sol"; -import {CannotBridgeToSameNetwork, InvalidAmount, InvalidConfig} from "../errors/GenericErrors.sol"; -import {SenderNotStargateRouter, NoMsgValueForCrossChainMessage, StargateRouterAddressZero, InvalidSourcePoolId, InvalidDestinationPoolId} from "../errors/StargateErrors.sol"; import {LibDiamond} from "../libs/LibDiamond.sol"; +import {IStargateRouter} from "../interfaces/stargate/IStargateRouter.sol"; +import {IStargateRouterETH} from "../interfaces/stargate/IStargateRouterETH.sol"; +import {IStargateReceiver} from "../interfaces/stargate/IStargateReceiver.sol"; -/// @title StargateFacet -/// @author Luke Wickens -/// @notice Stargate/LayerZero intergration for bridging tokens +/** + * @title StargateFacet + * @notice Stargate/LayerZero intergration for bridging tokens + */ contract StargateFacet is IStargateReceiver, ReentrancyGuard { using SafeERC20 for IERC20; - ////////////////////////////////////////////////////////////// - /////////////////////////// Events /////////////////////////// - ////////////////////////////////////////////////////////////// - event SGInitialized(address stargate, uint16 chainId); - event SGTransferStarted( - string bridgeUsed, - address fromToken, - address toToken, - address from, - address to, - uint256 amount, - uint16 chainIdTo - ); - event SGReceivedOnDestination(address token, uint256 amount); - event SGUpdatedRouter(address newAddress); - event SGUpdatedSlippageTolerance(uint256 newSlippage); - event SGAddedPool(uint16 chainId, address token, uint16 poolId); - - ////////////////////////////////////////////////////////////// - ////////////////////////// Storage /////////////////////////// - ////////////////////////////////////////////////////////////// - + ///// STORAGE AND STRUCTS ///// bytes32 internal constant NAMESPACE = keccak256("io.etherspot.facets.stargate"); struct Storage { - address stargateRouter; - uint16 chainId; - uint256 dstGas; - uint256 slippage; - mapping(uint16 => mapping(address => uint16)) poolIds; + IStargateRouter stargateRouter; + IStargateRouterETH stargateETHRouter; + uint256 chainId; + mapping(uint256 => uint16) lzChainIds; } - ////////////////////////////////////////////////////////////// - ////////////////////////// Structs /////////////////////////// - ////////////////////////////////////////////////////////////// + /** + * @notice maps chain ids to layer zero chain ids + * @param chainId - actual chain id + * @param lzChainId - layer zero chain id that corresponds to chain id + */ + struct ChainIdConfig { + uint256 chainId; + uint16 layerZeroChainId; + } + /** + * @notice token transfer data object + * @param amount - amount to swap + * @param bridgeToken - the address of the native ERC20 to swap() - *must* be the token for the poolId + * @param dstChainId - chain id + * @param srcPoolId - stargate poolId - *must* be the poolId for the qty asset + * @param dstPoolId - stargate destination poolId + * @param to - address to send the destination tokens to + * @param slippage - slippage tolerance on _qty (eg 50 == 0.5%) + * @param destStargateComposed - destination contract. it must implement sgReceive() + */ struct StargateData { - uint256 qty; - address fromToken; - address toToken; - uint16 dstChainId; + uint256 amount; + address bridgeToken; + uint256 dstChainId; + uint16 srcPoolId; + uint16 dstPoolId; address to; + uint16 slippage; address destStargateComposed; } - /// @notice initializes state variables for the Stargate facet - /// @param _stargateRouter - address of the Stargate router contract - /// @param _chainId - current chain id - function sgInitialize(address _stargateRouter, uint16 _chainId) external { - if (_stargateRouter == address(0)) revert InvalidConfig(); + /** + * @notice ETH transfer data object + * @param amount - amount to swap + * @param dstChainId - chain id + * @param to - address to send the destination tokens to + * @param slippage - slippage tolerance on _qty (eg 50 == 0.5%) + */ + struct StargateETHData { + uint256 amount; + uint256 dstChainId; + address to; + uint16 slippage; + } + + ///// VARIABLES ///// + uint256 private immutable BPS = 10000; + + ///// EVENTS ///// + /** + * @dev emitted when facet initializes + * @param stargateRouter - stargate router address + * @param stargateETHRouter - stargate ETH router address + * @param chainId - chain id + */ + event StargateInitialized( + address stargateRouter, + address stargateETHRouter, + uint256 chainId + ); + + /** + * @dev emitted on ERC20 token swap + * @param fromToken - from token + * @param from - from address + * @param to - to address + * @param amount - amount swapping + * @param chainIdTo - receiving chain id + */ + event StargateTokenSwap( + address fromToken, + address from, + address to, + uint256 amount, + uint256 chainIdTo + ); + + /** + * @dev emitted on ETH swap + * @param from - from address + * @param to - to address + * @param amount - amount swapping + * @param chainIdTo - receiving chain id + */ + event StargateETHSwap( + address from, + address to, + uint256 amount, + uint256 chainIdTo + ); + + /** + * @dev emitted when received on destination chain + * @param token - token address + * @param amount - amount swapping + */ + event StargateReceivedOnDestination(address token, uint256 amount); + + /** + * @dev emitted when layer zero chain id is set to chain id + * @param chainId - chain id + * @param lzChainId - layer zero chain id + */ + event LzChainIdSet(uint256 chainId, uint16 lzChainId); + + ///// INITIALIZE FACET ///// + /** + * @notice initializes state variables for the Stargate facet + * @param _stargateRouter - address of the Stargate router contract + * @param _stargateEthRouter - address of Stargate ETH router contract + * @param _chainId - current chain id + */ + function initStargate( + address _stargateRouter, + address _stargateEthRouter, + uint256 _chainId, + ChainIdConfig[] calldata _chainIdConfigs + ) external { + require( + _stargateRouter != address(0), + "Stargate:: invalid router address" + ); LibDiamond.enforceIsContractOwner(); Storage storage s = getStorage(); - s.stargateRouter = address(_stargateRouter); + s.stargateRouter = IStargateRouter(_stargateRouter); + s.stargateETHRouter = IStargateRouterETH(_stargateEthRouter); s.chainId = _chainId; - s.slippage = 50; // equates to 0.5% - // Adding pre-existing pools => USDC: 1, USDT: 2, BUSD: 5 - sgAddPool(1, 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, 1); - sgAddPool(1, 0xdAC17F958D2ee523a2206206994597C13D831ec7, 2); - sgAddPool(2, 0x55d398326f99059fF775485246999027B3197955, 2); - sgAddPool(2, 0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56, 5); - sgAddPool(6, 0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E, 1); - sgAddPool(6, 0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7, 2); - sgAddPool(9, 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174, 1); - sgAddPool(9, 0xc2132D05D31c914a87C6611C10748AEb04B58e8F, 2); - sgAddPool(10, 0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8, 1); - sgAddPool(10, 0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9, 2); - sgAddPool(11, 0x7F5c764cBc14f9669B88837ca1490cCa17c31607, 1); - sgAddPool(12, 0x04068DA6C83AFCFA0e13ba15A6696662335D5B75, 1); - emit SGInitialized(_stargateRouter, _chainId); + + for (uint256 i; i < _chainIdConfigs.length; ++i) { + s.lzChainIds[_chainIdConfigs[i].chainId] = _chainIdConfigs[i] + .layerZeroChainId; + } + emit StargateInitialized(_stargateRouter, _stargateEthRouter, _chainId); } - /// @notice initializes state variables for the stargate facet - /// @param _sgData - struct containing information required to execute bridge - function sgBridgeTokens(StargateData memory _sgData) - external - payable - nonReentrant - { - // if (msg.value <= 0) revert NoMsgValueForCrossChainMessage(); - if (_sgData.qty <= 0) revert InvalidAmount(); - if ( - _sgData.fromToken == address(0) || - _sgData.toToken == address(0) || - _sgData.to == address(0) || - _sgData.destStargateComposed == address(0) - ) revert InvalidConfig(); - - // access storage - Storage storage s = getStorage(); + /** + * @notice initiates token bridge transfer + * @param _data StargateData object + */ + function stargateTokenTransfer( + StargateData calldata _data + ) external payable nonReentrant { + require(_data.amount > 0, "Stargate:: invalid quantity"); + IStargateRouter router = getStargateRouter(); - // check pool ids are valid - uint16 srcPoolId = sgRetrievePoolId(s.chainId, _sgData.fromToken); - if (srcPoolId == 0) revert InvalidSourcePoolId(); - uint16 dstPoolId = sgRetrievePoolId( - _sgData.dstChainId, - _sgData.toToken + // get stargate fees + uint256 lzFee = stargateFees(_data, router); + // check msg.value is >= lzFee + require( + msg.value >= lzFee, + "Stargate:: msg.value not enough to pay bridging fee" ); - // calculate cross chain fees - uint256 fees = sgCalculateFees( - _sgData.dstChainId, - _sgData.to, - s.stargateRouter - ); + // calc minimum amount out + uint256 minAmountOut = (_data.amount * (BPS - _data.slippage)) / BPS; - // calculate slippage - uint256 minAmountOut = sgMinAmountOut(_sgData.qty); - - // encode sgReceive implemented - bytes memory destination = abi.encodePacked( - _sgData.destStargateComposed - ); + bytes memory to = abi.encodePacked(_data.destStargateComposed); // encode payload data to send to destination contract, which it will handle with sgReceive() - bytes memory payload = abi.encode(_sgData.to); + bytes memory payload = abi.encode(_data.to); // this contract calls stargate swap() - IERC20(_sgData.fromToken).safeTransferFrom( + IERC20(_data.bridgeToken).safeTransferFrom( msg.sender, address(this), - _sgData.qty - ); - - IERC20(_sgData.fromToken).safeApprove( - address(s.stargateRouter), - _sgData.qty + _data.amount ); + IERC20(_data.bridgeToken).safeApprove(address(router), _data.amount); // Stargate's Router.swap() function sends the tokens to the destination chain. - IStargateRouter(s.stargateRouter).swap{value: fees}( - _sgData.dstChainId, // the destination chain id - srcPoolId, // the source Stargate poolId - dstPoolId, // the destination Stargate poolId + router.swap{value: lzFee}( + getLzChainId(_data.dstChainId), // the destination lz chain id + _data.srcPoolId, // the source Stargate poolId + _data.dstPoolId, // the destination Stargate poolId payable(msg.sender), // refund adddress. if msg.sender pays too much gas, return extra eth - _sgData.qty, // total tokens to send to destination chain + _data.amount, // total tokens to send to destination chain minAmountOut, // min amount allowed out - IStargateRouter.lzTxObj(200000, 0, "0x"), // default lzTxObj - destination, // destination address, the sgReceive() implementer + IStargateRouter.lzTxObj(500000, 0, "0x"), // default lzTxObj + to, // destination address, the sgReceive() implementer payload // bytes payload ); - emit SGTransferStarted( - "stargate", - _sgData.fromToken, - _sgData.toToken, + emit StargateTokenSwap( + _data.bridgeToken, msg.sender, - _sgData.to, - _sgData.qty, - _sgData.dstChainId + _data.to, + _data.amount, + _data.dstChainId ); } - /// @notice required to receive tokens on destination chain - /// @param _chainId The remote chainId sending the tokens - /// @param _srcAddress The remote Bridge address - /// @param _nonce The message ordering nonce - /// @param _token The token contract on the local chain - /// @param amountLD The qty of local _token contract tokens - /// @param _payload The bytes containing the toAddress - function sgReceive( - uint16 _chainId, - bytes memory _srcAddress, - uint256 _nonce, - address _token, - uint256 amountLD, - bytes memory _payload - ) external override { - Storage storage s = getStorage(); - if (msg.sender != address(s.stargateRouter)) - revert SenderNotStargateRouter(); + /** + * @notice initiates an ETH bridging transfer + * @param _data StargateETHData object + * @dev only available between mainnet, arbitrum and optimism + */ + function stargateETHTransfer( + StargateETHData calldata _data + ) external payable nonReentrant { + uint256 curChain = getChainId(); + require( + curChain == 1 || curChain == 42161 || curChain == 10, + "Stargate:: Cannot directly bridge ETH from this chain" + ); + require( + _data.dstChainId == 1 || + _data.dstChainId == 42161 || + _data.dstChainId == 10, + "Stargate:: Cannot directly bridge ETH to this chain" + ); + + require(msg.value > 0, "Stargate:: msg.value required"); + require(_data.amount > 0, "Stargate:: invalid quantity"); + require( + msg.value > _data.amount, + "Stargate: no fees added for ETH transfer" + ); + IStargateRouterETH ethRouter = getStargateETHRouter(); - address _toAddr = abi.decode(_payload, (address)); - IERC20(_token).transfer(_toAddr, amountLD); - emit SGReceivedOnDestination(_token, amountLD); + require( + address(ethRouter) != address(0), + "Stargate:: ETH transfer not available" + ); + + bytes memory receiver = abi.encodePacked(_data.to); + + uint256 minAmountOut = (_data.amount * (BPS - _data.slippage)) / BPS; + + // value is amount of ETH to swap + stargate/lz fees + ethRouter.swapETH{value: msg.value}( + getLzChainId(_data.dstChainId), + payable(msg.sender), + receiver, + _data.amount, + minAmountOut + ); + + emit StargateETHSwap( + msg.sender, + _data.to, + _data.amount, + _data.dstChainId + ); } - /// @notice Calculates cross chain fee - /// @param _destChain Destination chain id - /// @param _receiver Receiver on destination chain - /// @param _router Address of stargate router - function sgCalculateFees( - uint16 _destChain, - address _receiver, - address _router + /** + * @notice Calculates cross chain fee + * @param _data StargateData object + * @param _router Address of stargate router + */ + function stargateFees( + StargateData calldata _data, + IStargateRouter _router ) public view returns (uint256) { - (uint256 nativeFee, ) = IStargateRouter(_router).quoteLayerZeroFee( - _destChain, // destination chain id + (uint256 nativeFee, ) = _router.quoteLayerZeroFee( + getLzChainId(_data.dstChainId), // destination chain id 1, // 1 = swap - abi.encodePacked(_receiver), // receiver on destination chain - "0x", // payload, using abi.encode() - IStargateRouter.lzTxObj(200000, 0, "0x") + abi.encodePacked(_data.destStargateComposed), // receiver on destination chain + abi.encode(_data.to), // payload, using abi.encode() + IStargateRouter.lzTxObj(500000, 0, abi.encodePacked(address(0))) ); return nativeFee; } - /// @notice Calculates the minimum amount out using slippage tolerance - /// @param _amount Transfer amount - function sgMinAmountOut(uint256 _amount) public view returns (uint256) { - Storage storage s = getStorage(); - // equates to 0.5% slippage - return (_amount * (10000 - s.slippage)) / (10000); - } + /** + * @notice required to receive tokens on destination chain + * @param _token the token contract on the local chain + * @param _amountLD the qty of local _token contract tokens + * @param _payload the bytes containing the toAddress + */ + function sgReceive( + uint16 /*_chainId*/, + bytes memory /*_srcAddress*/, + uint256 /*_nonce*/, + address _token, + uint256 _amountLD, + bytes memory _payload + ) external override { + require( + msg.sender == address(getStargateRouter()), + "Stargate:: only stargate router" + ); - /// @notice Updates stargate router address for deployed chain - /// @param _newAddress Address of the new router - function sgUpdateRouter(address _newAddress) external { - LibDiamond.enforceIsContractOwner(); - if (_newAddress == address(0)) revert StargateRouterAddressZero(); - Storage storage s = getStorage(); - s.stargateRouter = address(_newAddress); - emit SGUpdatedRouter(_newAddress); + address to = abi.decode(_payload, (address)); + IERC20(_token).safeTransfer(to, _amountLD); + emit StargateReceivedOnDestination(_token, _amountLD); } - /// @notice Updates slippage tolerance amount - /// @param _newSlippage New slippage amount - function sgUpdateSlippageTolerance(uint256 _newSlippage) external { - LibDiamond.enforceIsContractOwner(); + /** + * @notice gets layer zero chain id for specified chain + * @param _chainId - chain id + * @return layzer zero chain id + */ + function getLzChainId(uint256 _chainId) public view returns (uint16) { Storage storage s = getStorage(); - s.slippage = _newSlippage; - emit SGUpdatedSlippageTolerance(_newSlippage); + uint16 chainId = s.lzChainIds[_chainId]; + require( + chainId != 0, + "Stargate:: chain not assigned layer zero chain id" + ); + return chainId; } - /// @notice Adds a new pool for a specific token and chain - /// @param _chainId Chain id of new pool (NOT actual chain id - check stargate pool ids docs) - /// @param _token Address of token - /// @param _poolId Pool id (check stargate pool ids docs) - function sgAddPool( - uint16 _chainId, - address _token, - uint16 _poolId - ) public { + /** + * @notice sets layer zero chain id for specified chain + * @param _chainId - chain id + * @param _lzChainId - layzer zero chain id + */ + function setLzChainId(uint256 _chainId, uint16 _lzChainId) external { LibDiamond.enforceIsContractOwner(); Storage storage s = getStorage(); - s.poolIds[_chainId][_token] = _poolId; - emit SGAddedPool(_chainId, _token, _poolId); + + s.lzChainIds[_chainId] = _lzChainId; + emit LzChainIdSet(_chainId, _lzChainId); } - /// @notice Checks for a valid token pool on specific chain - /// @param _chainId Chain id of new pool (NOT actual chain id - check stargate pool ids docs) - /// @param _token Address of token - /// @param _poolId Pool id (check stargate pool ids docs) - function sgCheckPoolId( - uint16 _chainId, - address _token, - uint16 _poolId - ) external view returns (bool) { - Storage storage s = getStorage(); - return s.poolIds[_chainId][_token] == _poolId ? true : false; + ///// PRIVATE FUNCTIONS ///// + + /** + * @dev returns stargate router contract + * @return address stargate router contract + */ + function getStargateRouter() private view returns (IStargateRouter) { + return getStorage().stargateRouter; } - /// @notice Retrieves pool id for a token on a specified chain - /// @param _chainId Chain id of new pool (NOT actual chain id - check stargate pool ids docs) - /// @param _token Address of token - function sgRetrievePoolId(uint16 _chainId, address _token) - public - view - returns (uint16) - { - Storage storage s = getStorage(); - return s.poolIds[_chainId][_token]; + /** + * @dev returns stargate ETH router contract + * @return address stargate ETH router contract + */ + function getStargateETHRouter() private view returns (IStargateRouterETH) { + return getStorage().stargateETHRouter; } - ////////////////////////////////////////////////////////////// - ////////////////////// Private Functions ///////////////////// - ////////////////////////////////////////////////////////////// + /** + * @dev returns stargate chainId + * @return address connext contract + */ + function getChainId() private view returns (uint256) { + return getStorage().chainId; + } - /// @dev fetch local storage + /** + * @dev fetch local storage + */ function getStorage() private pure returns (Storage storage s) { bytes32 namespace = NAMESPACE; // solhint-disable-next-line no-inline-assembly diff --git a/src/bridges/interfaces/IStargateReceiver.sol b/src/bridges/interfaces/IStargateReceiver.sol deleted file mode 100644 index 5bdd994f..00000000 --- a/src/bridges/interfaces/IStargateReceiver.sol +++ /dev/null @@ -1,14 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity 0.8.4; - -interface IStargateReceiver { - function sgReceive( - uint16 _srcChainId, // the remote chainId sending the tokens - bytes memory _srcAddress, // the remote Bridge address - uint256 _nonce, - address _token, // the token contract on the local chain - uint256 amountLD, // the qty of local _token contract tokens - bytes memory payload - ) external; -} diff --git a/src/bridges/interfaces/stargate/IStargateReceiver.sol b/src/bridges/interfaces/stargate/IStargateReceiver.sol new file mode 100644 index 00000000..f260debe --- /dev/null +++ b/src/bridges/interfaces/stargate/IStargateReceiver.sol @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: MIT + +pragma solidity ^0.8.4; + +interface IStargateReceiver { + function sgReceive( + uint16 _chainId, + bytes memory _srcAddress, + uint256 _nonce, + address _token, + uint256 amountLD, + bytes memory payload + ) external; +} diff --git a/src/bridges/interfaces/IStargateRouter.sol b/src/bridges/interfaces/stargate/IStargateRouter.sol similarity index 96% rename from src/bridges/interfaces/IStargateRouter.sol rename to src/bridges/interfaces/stargate/IStargateRouter.sol index 4a6f441b..5c2ec574 100644 --- a/src/bridges/interfaces/IStargateRouter.sol +++ b/src/bridges/interfaces/stargate/IStargateRouter.sol @@ -1,6 +1,6 @@ -// SPDX-License-Identifier:MIT +// SPDX-License-Identifier: MIT -pragma solidity 0.8.4; +pragma solidity ^0.8.4; pragma abicoder v2; interface IStargateRouter { diff --git a/src/bridges/interfaces/stargate/IStargateRouterETH.sol b/src/bridges/interfaces/stargate/IStargateRouterETH.sol new file mode 100644 index 00000000..888625e9 --- /dev/null +++ b/src/bridges/interfaces/stargate/IStargateRouterETH.sol @@ -0,0 +1,16 @@ +// SPDX-License-Identifier: MIT + +pragma solidity ^0.8.4; +pragma abicoder v2; + +interface IStargateRouterETH { + function addLiquidityETH() external payable; + + function swapETH( + uint16 dstChainId, + address payable refundAddress, + bytes calldata to, + uint256 amountLD, + uint256 minAmountLD + ) external payable; +} diff --git a/src/common/helpers/DiamondReentrancyGuard.sol b/src/common/helpers/DiamondReentrancyGuard.sol index 531c1dd9..1657d936 100644 --- a/src/common/helpers/DiamondReentrancyGuard.sol +++ b/src/common/helpers/DiamondReentrancyGuard.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.4; +pragma solidity ^0.8.4; /// @title Reentrancy Guard /// @notice Abstract contract to provide protection against reentrancy diff --git a/test/bridges/StargateFacet.ts b/test/bridges/StargateFacet.ts index 7c9fe929..3f4da1d4 100644 --- a/test/bridges/StargateFacet.ts +++ b/test/bridges/StargateFacet.ts @@ -1,30 +1,52 @@ -import { BigNumber, ContractReceipt, ContractTransaction, utils } from "ethers"; +import { + BigNumber, + Contract, + ContractReceipt, + ContractTransaction, +} from "ethers"; import { deployContract, - checkEvent, multiCallCheckLastEventEmitted, + SignerWithAddress, } from "../shared"; import { addFacets, getSelectors } from "../../utils/diamond"; -import { StargateFacet, Diamond, DiamondCutFacet } from "../../typings"; -import { ethers, deployments, network } from "hardhat"; -import { SignerWithAddress } from "hardhat-deploy-ethers/dist/src/signers"; +import { Diamond, DiamondCutFacet, StargateFacet } from "../../typings"; +import { + ChainIdConfigStruct, + StargateDataStruct, + StargateETHDataStruct, +} from "../../typings/StargateFacet"; +import { ethers, network } from "hardhat"; import { expectRevert } from "@openzeppelin/test-helpers"; import USDC_ABI from "./abi/USDC_ABI.js"; +// import USDT_ABI from "./abi/USDT_ABI.js"; +import { defaultAbiCoder } from "ethers/lib/utils"; const ETH_CHAIN_ID = 1; -const POLYGON_CHAIN_ID = 9; // Specified in (https://stargateprotocol.gitbook.io/stargate/developers/contract-addresses/mainnet) - Chain ID normally 137 -const ARBITRUM_CHAIN_ID = 10; // Same as POLYGON_CHAIN_ID comments +const POLYGON_CHAIN_ID = 137; +const ARBITRUM_CHAIN_ID = 42161; +const LZ_ETH_CHAIN_ID = 101; +const LZ_POLYGON_CHAIN_ID = 109; +const LZ_ARBITRUM_CHAIN_ID = 110; const MAINNET_STARGATE_ROUTER_ADDRESS = "0x8731d54E9D02c286767d56ac03e8037C07e01e98"; +const MAINNET_STARGATE_ETH_ROUTER_ADDRESS = + "0x150f94B44927F078737562f0fcF3C95c01Cc2376"; const POLYGON_STARGATE_ROUTER_ADDRESS = "0x45A01E4e04F14f7A4a6702c74187c5F6222033cd"; -const ARBITRUM_STARGATE_ROUTER_ADDRESS = - "0x53Bf833A5d6c4ddA888F69c22C88C9f356a41614"; const MAINNET_USDC_ADDRESS = "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"; -const POLYGON_USDC_ADDRESS = "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174"; -const ARBITRUM_USDC_ADDRESS = "0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8"; +// const MAINNET_USDT_ADDRESS = "0xdAC17F958D2ee523a2206206994597C13D831ec7"; +const CHAIN_IDS_TO_LZ_CHAIN_IDS: ChainIdConfigStruct[] = [ + { chainId: ARBITRUM_CHAIN_ID, layerZeroChainId: LZ_ARBITRUM_CHAIN_ID }, + { chainId: ETH_CHAIN_ID, layerZeroChainId: LZ_ETH_CHAIN_ID }, + { chainId: POLYGON_CHAIN_ID, layerZeroChainId: LZ_POLYGON_CHAIN_ID }, +]; const ZERO_ADDRESS = ethers.constants.AddressZero; -const AMOUNT = utils.parseUnits("100", 6); +const ONE_USDC = ethers.utils.parseUnits("1", 6); +const TEN_USDC = ethers.utils.parseUnits("10", 6); +const VITALIK_ACCOUNT = "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"; +const USDC_FUNDER_ACCOUNT = "0x95Ba4cF87D6723ad9C0Db21737D862bE80e93911"; +// const BINANCE_PEG_ACCOUNT = "0x47ac0Fb4F2D84898e4D9E7b4DaB3C24507a6D503"; describe("StargateFacet", () => { let diamond: Diamond; @@ -34,501 +56,575 @@ describe("StargateFacet", () => { let owner: SignerWithAddress; let alice: SignerWithAddress; let bob: SignerWithAddress; - let dummy: SignerWithAddress; - let usdc, StargateData; - - /* eslint-enable @typescript-eslint/no-explicit-any */ - const setupTest = deployments.createFixture( - async ({ deployments, ethers }) => { - await deployments.fixture("DeployStargateFacet"); - - accounts = await ethers.getSigners(); - owner = accounts[0]; - bob = accounts[1]; - dummy = accounts[2]; - - // Set up diamond contract - diamondCutFacet = await deployContract("DiamondCutFacet"); - diamond = await deployContract("Diamond", [ - owner.address, - diamondCutFacet.address, - ]); - - // Deploy StargateFacet contract from Diamond - stargateFacet = await ethers.getContractAt( - "StargateFacet", - diamond.address, - ); - - // Add StargateFacet as facet - const facetsToAdd = ["StargateFacet"]; - const cut = { - [stargateFacet.address]: getSelectors(stargateFacet), - }; + let usdcFunder: SignerWithAddress; + // let usdtFunder: SignerWithAddress; + let transferData: StargateDataStruct; + let ethTransferData: StargateETHDataStruct; + let usdc: Contract; + // let usdt: Contract; + + async function setup() { + accounts = await ethers.getSigners(); + owner = accounts[0]; + bob = accounts[1]; + + // Impersonate Vitalik account + await network.provider.request({ + method: "hardhat_impersonateAccount", + params: [VITALIK_ACCOUNT], + }); - for (const facet of facetsToAdd) { - const facetContract = await deployContract(facet); - cut[facetContract.address] = getSelectors(facetContract); - await addFacets([facetContract], diamond.address); - } + // Assign to alice + alice = await ethers.getSigner(VITALIK_ACCOUNT); - // Impersonate Binance Peg Tokens account - await network.provider.request({ - method: "hardhat_impersonateAccount", - params: ["0x47ac0fb4f2d84898e4d9e7b4dab3c24507a6d503"], - }); - - // Assign to alice - alice = await ethers.getSigner( - "0x47ac0fb4f2d84898e4d9e7b4dab3c24507a6d503", - ); + // Impersonate USDC Funder account + await network.provider.request({ + method: "hardhat_impersonateAccount", + params: [USDC_FUNDER_ACCOUNT], + }); - // Initialize StargateFacet contract with Stargate Router address and chain id - stargateFacet - .connect(owner) - .sgInitialize(MAINNET_STARGATE_ROUTER_ADDRESS, ETH_CHAIN_ID, { + // Assign to usdcFunder + usdcFunder = await ethers.getSigner(USDC_FUNDER_ACCOUNT); + + diamondCutFacet = await deployContract("DiamondCutFacet"); + diamond = await deployContract("Diamond", [ + owner.address, + diamondCutFacet.address, + ]); + stargateFacet = await ethers.getContractAt( + "StargateFacet", + diamond.address, + ); + const facetsToAdd = ["StargateFacet"]; + const cut = { + [stargateFacet.address]: getSelectors(stargateFacet), + }; + for (const facet of facetsToAdd) { + const facetContract = await deployContract(facet); + cut[facetContract.address] = getSelectors(facetContract); + await addFacets([facetContract], diamond.address); + } + usdc = new ethers.Contract(MAINNET_USDC_ADDRESS, USDC_ABI); + await usdc + .connect(usdcFunder) + .transfer(alice.address, ethers.utils.parseUnits("100", 6)); + await usdc + .connect(alice) + .approve(stargateFacet.address, ethers.utils.parseUnits("1000000", 6)); + await owner.sendTransaction({ + to: stargateFacet.address, + value: ethers.utils.parseEther("10"), + }); + await owner.sendTransaction({ + to: alice.address, + value: ethers.utils.parseEther("10"), + }); + await owner.sendTransaction({ + to: usdcFunder.address, + value: ethers.utils.parseEther("10"), + }); + stargateFacet + .connect(owner) + .initStargate( + MAINNET_STARGATE_ROUTER_ADDRESS, + MAINNET_STARGATE_ETH_ROUTER_ADDRESS, + ETH_CHAIN_ID, + CHAIN_IDS_TO_LZ_CHAIN_IDS, + { gasLimit: 500000, - }); - - // get USDC contract instance - usdc = new ethers.Contract(MAINNET_USDC_ADDRESS, USDC_ABI); - - // Alice approve CBridgeFacet to use ERC20 tokens - await usdc - .connect(alice) - .approve(stargateFacet.address, utils.parseUnits("1000000", 10)); - - // send some eth to contract and alice - await owner.sendTransaction({ - to: stargateFacet.address, - value: ethers.utils.parseEther("5"), - }); - - await owner.sendTransaction({ - to: alice.address, - value: ethers.utils.parseEther("5"), - }); - }, - ); + }, + ); + } - before(async function() { - this.timeout(0); + beforeEach(async () => { await network.provider.request({ method: "hardhat_reset", params: [ { forking: { - jsonRpcUrl: `https://eth-mainnet.alchemyapi.io/v2/${process.env.ALCHEMY_API_KEY}`, - blockNumber: 15000000, + jsonRpcUrl: `https://eth-mainnet.alchemyapi.io/v2/${process.env.MAINNET_ALCHEMY_API_KEY}`, }, }, ], }); + await setup(); }); - beforeEach(async function() { - this.timeout(0); - await setupTest(); - }); + describe("#initStargate", async () => { + it("should trigger error if owner is not caller", async () => { + await expectRevert( + stargateFacet + .connect(bob) + .initStargate( + MAINNET_STARGATE_ROUTER_ADDRESS, + MAINNET_STARGATE_ETH_ROUTER_ADDRESS, + ETH_CHAIN_ID, + CHAIN_IDS_TO_LZ_CHAIN_IDS, + { + gasLimit: 500000, + }, + ), + "LibDiamond: Must be contract owner", + ); + }); - describe("sgInitialize()", async function() { - it("should revert if stargate router address is address(0)", async function() { + it("should revert if stargate router address is address(0)", async () => { await expectRevert( - stargateFacet.sgInitialize(ZERO_ADDRESS, ETH_CHAIN_ID), - "InvalidConfig", + stargateFacet.initStargate( + ZERO_ADDRESS, + MAINNET_STARGATE_ETH_ROUTER_ADDRESS, + ETH_CHAIN_ID, + CHAIN_IDS_TO_LZ_CHAIN_IDS, + ), + "Stargate:: invalid router address", ); }); - it("should initialize the stargate router address and chain id", async function() { + it("should initialize the stargate router address and chain id", async () => { const tx: ContractTransaction = await stargateFacet .connect(owner) - .sgInitialize(MAINNET_STARGATE_ROUTER_ADDRESS, ETH_CHAIN_ID, { - gasLimit: 500000, - }); + .initStargate( + MAINNET_STARGATE_ROUTER_ADDRESS, + MAINNET_STARGATE_ETH_ROUTER_ADDRESS, + ETH_CHAIN_ID, + CHAIN_IDS_TO_LZ_CHAIN_IDS, + { + gasLimit: 500000, + }, + ); const receipt: ContractReceipt = await tx.wait(); const result = multiCallCheckLastEventEmitted(receipt); - expect(result[0]).toEqual("SGInitialized"); + expect(result[0]).toEqual("StargateInitialized"); expect(result[1]).toEqual(MAINNET_STARGATE_ROUTER_ADDRESS); - expect(result[2]).toEqual(ETH_CHAIN_ID); + expect(result[2]).toEqual(MAINNET_STARGATE_ETH_ROUTER_ADDRESS); + expect(result[3]).toEqual(BigNumber.from(ETH_CHAIN_ID)); }); }); - describe("sgBridgeTokens()", async function() { - it("should revert if starting a token bridge transaction and not enough tokens in pool to complete tx", async function() { - StargateData = { - qty: utils.parseUnits("1000", 10), - fromToken: usdc.address, - toToken: POLYGON_USDC_ADDRESS, + describe("#stargateTokenTransfer", async () => { + it("should trigger error if no amount is specified", async () => { + transferData = { + amount: ethers.utils.parseUnits("0", 6), + bridgeToken: MAINNET_USDC_ADDRESS, dstChainId: POLYGON_CHAIN_ID, + srcPoolId: 1, // USDC pool id mainnet + dstPoolId: 1, // USDC pool id polygon to: bob.address, + slippage: 300, // 3% destStargateComposed: POLYGON_STARGATE_ROUTER_ADDRESS, }; await expectRevert( - stargateFacet.connect(alice).sgBridgeTokens(StargateData, { - gasLimit: ethers.utils.hexlify(2000000), + stargateFacet.connect(alice).stargateTokenTransfer(transferData, { + value: ethers.utils.parseEther("0.01"), }), - "Stargate: not enough balance", + "Stargate:: invalid quantity", ); }); - it("should revert if starting a token bridge transaction and no amount", async function() { - StargateData = { - qty: 0, - fromToken: usdc.address, - toToken: POLYGON_USDC_ADDRESS, - dstChainId: POLYGON_CHAIN_ID, + it("should trigger error if chain id is invalid", async () => { + transferData = { + amount: TEN_USDC, + bridgeToken: MAINNET_USDC_ADDRESS, + dstChainId: 999, + srcPoolId: 1, // USDC pool id mainnet + dstPoolId: 1, // USDC pool id polygon to: bob.address, + slippage: 300, // 3% destStargateComposed: POLYGON_STARGATE_ROUTER_ADDRESS, }; await expectRevert( - stargateFacet.connect(alice).sgBridgeTokens(StargateData, { - gasLimit: ethers.utils.hexlify(2000000), + stargateFacet.connect(alice).stargateTokenTransfer(transferData, { + value: ethers.utils.parseEther("0.01"), }), - "InvalidAmount()", + "Stargate:: chain not assigned layer zero chain id", ); }); - it("should revert if starting a token bridge transaction and fromToken is address(0)", async function() { - StargateData = { - qty: AMOUNT, - fromToken: ZERO_ADDRESS, - toToken: POLYGON_USDC_ADDRESS, + it("should throw error if msg.value is not gte required layer zero fee", async () => { + transferData = { + amount: ONE_USDC, + bridgeToken: MAINNET_USDC_ADDRESS, dstChainId: POLYGON_CHAIN_ID, + srcPoolId: 1, // USDC pool id mainnet + dstPoolId: 1, // USDC pool id polygon to: bob.address, + slippage: 300, // 3% destStargateComposed: POLYGON_STARGATE_ROUTER_ADDRESS, }; - await expectRevert( - stargateFacet.connect(alice).sgBridgeTokens(StargateData, { - gasLimit: ethers.utils.hexlify(2000000), - }), - "InvalidConfig()", + const lzFeeReq = await stargateFacet.stargateFees( + transferData, + MAINNET_STARGATE_ROUTER_ADDRESS, ); - }); - - it("should revert if starting a token bridge transaction and toToken is address(0)", async function() { - StargateData = { - qty: AMOUNT, - fromToken: usdc.address, - toToken: ZERO_ADDRESS, - dstChainId: POLYGON_CHAIN_ID, - to: bob.address, - destStargateComposed: POLYGON_STARGATE_ROUTER_ADDRESS, - }; + const ltLzFee = lzFeeReq.sub(1); await expectRevert( - stargateFacet.connect(alice).sgBridgeTokens(StargateData, { - gasLimit: ethers.utils.hexlify(2000000), + stargateFacet.connect(alice).stargateTokenTransfer(transferData, { + value: ltLzFee, }), - "InvalidConfig()", + "Stargate:: msg.value not enough to pay bridging fee", ); }); - it("should revert if starting a token bridge transaction and source token is invalid", async function() { - StargateData = { - qty: AMOUNT, - fromToken: "0x6B175474E89094C44Da98b954EedeAC495271d0F", // DAI address - toToken: POLYGON_USDC_ADDRESS, + it("should throw error if an invalid pool has been selected", async () => { + transferData = { + amount: TEN_USDC, + bridgeToken: MAINNET_USDC_ADDRESS, dstChainId: POLYGON_CHAIN_ID, + srcPoolId: 1, // USDC pool id mainnet + dstPoolId: 7, // FRAX pool id polygon to: bob.address, + slippage: 300, // 3% destStargateComposed: POLYGON_STARGATE_ROUTER_ADDRESS, }; await expectRevert( - stargateFacet.connect(alice).sgBridgeTokens(StargateData, { - gasLimit: ethers.utils.hexlify(2000000), + stargateFacet.connect(alice).stargateTokenTransfer(transferData, { + value: ethers.utils.parseEther("0.01"), }), - "InvalidSourcePoolId()", + "Stargate: local chainPath does not exist", ); }); - it("should revert if starting a token bridge transaction and destination token is invalid", async function() { - StargateData = { - qty: AMOUNT, - fromToken: usdc.address, - toToken: "0x0000000000000000000000000000000000001010", // MATIC address + it("should error if valid pool selected but no valid chain path for swap", async () => { + transferData = { + amount: TEN_USDC, + bridgeToken: MAINNET_USDC_ADDRESS, dstChainId: POLYGON_CHAIN_ID, + srcPoolId: 1, // USDC pool id mainnet + dstPoolId: 3, // USDC pool id polygon to: bob.address, + slippage: 300, // 3% destStargateComposed: POLYGON_STARGATE_ROUTER_ADDRESS, }; await expectRevert( - stargateFacet.connect(alice).sgBridgeTokens(StargateData, { - gasLimit: ethers.utils.hexlify(2000000), + stargateFacet.connect(alice).stargateTokenTransfer(transferData, { + value: ethers.utils.parseEther("0.01"), }), "Stargate: local chainPath does not exist", ); }); - it("should revert if starting a token bridge transaction and receiver is address(0)", async function() { - StargateData = { - qty: AMOUNT, - fromToken: usdc.address, - toToken: POLYGON_USDC_ADDRESS, + it("should perform ERC20 token swap (MAINNET USDC => MATIC USDC)", async () => { + transferData = { + amount: TEN_USDC, + bridgeToken: MAINNET_USDC_ADDRESS, dstChainId: POLYGON_CHAIN_ID, - to: ZERO_ADDRESS, + srcPoolId: 1, // USDC pool id mainnet + dstPoolId: 1, // USDC pool id polygon + to: bob.address, + slippage: 300, // 3% destStargateComposed: POLYGON_STARGATE_ROUTER_ADDRESS, }; - await expectRevert( - stargateFacet.connect(alice).sgBridgeTokens(StargateData, { - gasLimit: ethers.utils.hexlify(2000000), - }), - "InvalidConfig()", - ); - }); + const tx = await stargateFacet + .connect(alice) + .stargateTokenTransfer(transferData, { + value: ethers.utils.parseEther("0.01"), + }); - it("should revert if starting a token bridge transaction and destStargateComposed is address(0)", async function() { - StargateData = { - qty: AMOUNT, - fromToken: usdc.address, - toToken: POLYGON_USDC_ADDRESS, - dstChainId: POLYGON_CHAIN_ID, - to: bob.address, - destStargateComposed: ZERO_ADDRESS, - }; + const receipt = await tx.wait(); + const event = receipt.events?.filter(x => { + return x.event == "StargateTokenSwap"; + }); - await expectRevert( - stargateFacet.connect(alice).sgBridgeTokens(StargateData, { - gasLimit: ethers.utils.hexlify(2000000), - }), - "InvalidConfig()", - ); + expect(event[0].args.fromToken).toEqual(MAINNET_USDC_ADDRESS); + expect(event[0].args.from).toEqual(alice.address); + expect(event[0].args.to).toEqual(bob.address); + expect(event[0].args.amount).toEqual(TEN_USDC); + expect(event[0].args.chainIdTo).toEqual(BigNumber.from(POLYGON_CHAIN_ID)); }); - it("should start a token bridge transaction on the sending chain - Polygon", async function() { - StargateData = { - qty: AMOUNT, - fromToken: usdc.address, - toToken: POLYGON_USDC_ADDRESS, + it("should perform ERC20 token swap (MAINNET USDC => MATIC USDT)", async () => { + transferData = { + amount: TEN_USDC, + bridgeToken: MAINNET_USDC_ADDRESS, dstChainId: POLYGON_CHAIN_ID, + srcPoolId: 1, // USDC pool id mainnet + dstPoolId: 2, // USDC pool id polygon to: bob.address, + slippage: 300, // 3% destStargateComposed: POLYGON_STARGATE_ROUTER_ADDRESS, }; - const tx: ContractTransaction = await stargateFacet + const tx = await stargateFacet .connect(alice) - .sgBridgeTokens(StargateData, { - gasLimit: ethers.utils.hexlify(2000000), + .stargateTokenTransfer(transferData, { + value: ethers.utils.parseEther("0.01"), }); - const receipt: ContractReceipt = await tx.wait(); - const result = multiCallCheckLastEventEmitted(receipt); - expect(result[0]).toEqual("SGTransferStarted"); - expect(result[1]).toEqual("stargate"); - expect(result[2]).toEqual(MAINNET_USDC_ADDRESS); - expect(result[3]).toEqual(POLYGON_USDC_ADDRESS); - expect(result[4]).toEqual(alice.address); - expect(result[5]).toEqual(bob.address); - expect(result[6]).toEqual(BigNumber.from(AMOUNT)); - expect(result[7]).toEqual(POLYGON_CHAIN_ID); + const receipt = await tx.wait(); + const event = receipt.events?.filter(x => { + return x.event == "StargateTokenSwap"; + }); + + expect(event[0].args.fromToken).toEqual(MAINNET_USDC_ADDRESS); + expect(event[0].args.from).toEqual(alice.address); + expect(event[0].args.to).toEqual(bob.address); + expect(event[0].args.amount).toEqual(TEN_USDC); + expect(event[0].args.chainIdTo).toEqual(BigNumber.from(POLYGON_CHAIN_ID)); }); + }); - it("should start a token bridge transaction on the sending chain - Arbitrum", async function() { - StargateData = { - qty: AMOUNT, - fromToken: usdc.address, - toToken: ARBITRUM_USDC_ADDRESS, + describe("#stargateETHTransfer", async () => { + it("should trigger error if cannot bridge ETH from this chain", async () => { + stargateFacet + .connect(owner) + .initStargate( + MAINNET_STARGATE_ROUTER_ADDRESS, + MAINNET_STARGATE_ETH_ROUTER_ADDRESS, + 56, + CHAIN_IDS_TO_LZ_CHAIN_IDS, + { + gasLimit: 500000, + }, + ); + ethTransferData = { + amount: ethers.utils.parseEther("0.01"), dstChainId: ARBITRUM_CHAIN_ID, to: bob.address, - destStargateComposed: ARBITRUM_STARGATE_ROUTER_ADDRESS, + slippage: 300, // 3% }; - const tx: ContractTransaction = await stargateFacet - .connect(alice) - .sgBridgeTokens(StargateData, { - gasLimit: ethers.utils.hexlify(2000000), - }); - - const receipt: ContractReceipt = await tx.wait(); - const result = multiCallCheckLastEventEmitted(receipt); - expect(result[0]).toEqual("SGTransferStarted"); - expect(result[1]).toEqual("stargate"); - expect(result[2]).toEqual(MAINNET_USDC_ADDRESS); - expect(result[3]).toEqual(ARBITRUM_USDC_ADDRESS); - expect(result[4]).toEqual(alice.address); - expect(result[5]).toEqual(bob.address); - expect(result[6]).toEqual(BigNumber.from(AMOUNT)); - expect(result[7]).toEqual(ARBITRUM_CHAIN_ID); + await expectRevert( + stargateFacet.connect(alice).stargateETHTransfer(ethTransferData, { + value: ethers.utils.parseEther("0.1"), + }), + "Stargate:: Cannot directly bridge ETH from this chain", + ); }); - it("should deduct users tokens from balance on successful bridge", async function() { - StargateData = { - qty: AMOUNT, - fromToken: usdc.address, - toToken: POLYGON_USDC_ADDRESS, + it("should trigger error if cannot bridge ETH to this chain", async () => { + ethTransferData = { + amount: ethers.utils.parseEther("0.01"), dstChainId: POLYGON_CHAIN_ID, to: bob.address, - destStargateComposed: POLYGON_STARGATE_ROUTER_ADDRESS, + slippage: 300, // 3% }; - const preBalance = await usdc.connect(alice).balanceOf(alice.address); - - const tx = await stargateFacet - .connect(alice) - .sgBridgeTokens(StargateData, { - gasLimit: ethers.utils.hexlify(2000000), - }); - - await tx.wait(); - - const postBalance = await usdc.connect(alice).balanceOf(alice.address); - expect(postBalance.toNumber()).toEqual(preBalance.toNumber() - 100000000); - }); - }); - - describe("sgUpdateRouter()", async function() { - it("should revert if updating stargate router address and not owner", async function() { await expectRevert( - stargateFacet.connect(bob).sgUpdateRouter(bob.address), - "LibDiamond: Must be contract owner", + stargateFacet.connect(alice).stargateETHTransfer(ethTransferData, { + value: ethers.utils.parseEther("0.1"), + }), + "Stargate:: Cannot directly bridge ETH to this chain", ); }); - it("should revert if updating stargate router address with zero address", async function() { + it("should trigger error if no msg.value amount to pay for fees", async () => { + ethTransferData = { + amount: ethers.utils.parseEther("0.01"), + dstChainId: ARBITRUM_CHAIN_ID, + to: bob.address, + slippage: 300, // 3% + }; + await expectRevert( - stargateFacet.connect(owner).sgUpdateRouter(ZERO_ADDRESS), - "StargateRouterAddressZero()", + stargateFacet.connect(alice).stargateETHTransfer(ethTransferData), + "Stargate:: msg.value required", ); }); - it("should update stargate router address", async function() { - const tx: ContractTransaction = await stargateFacet.sgUpdateRouter( - dummy.address, - ); - const receipt: ContractReceipt = await tx.wait(); - const result = checkEvent(receipt); - expect(result[0]).toEqual("SGUpdatedRouter"); - expect(result[1]).toEqual(dummy.address); - }); - }); + it("should trigger error if no amount is specified", async () => { + ethTransferData = { + amount: 0, + dstChainId: ARBITRUM_CHAIN_ID, + to: bob.address, + slippage: 300, // 3% + }; - describe("sgCalculateFees()", async function() { - it("should return calculated fee amount in wei for making swap", async function() { - const feeWei = await stargateFacet.sgCalculateFees( - POLYGON_CHAIN_ID, - bob.address, - MAINNET_STARGATE_ROUTER_ADDRESS, - { gasLimit: ethers.utils.hexlify(2000000) }, + await expectRevert( + stargateFacet.connect(alice).stargateETHTransfer(ethTransferData, { + value: ethers.utils.parseEther("0.01"), + }), + "Stargate:: invalid quantity", ); - expect(feeWei).toBeGreaterThanBN(BigNumber.from(10000000)); }); - }); - describe("sgUpdateSlippageTolerance()", async function() { - it("should revert if updating slippage tolerance amount and not owner", async function() { + it("should trigger error msg.value - amount <= 0 ", async () => { + ethTransferData = { + amount: ethers.utils.parseEther("0.01"), + dstChainId: ARBITRUM_CHAIN_ID, + to: bob.address, + slippage: 300, // 3% + }; + await expectRevert( - stargateFacet.connect(bob).sgUpdateSlippageTolerance(200), - "LibDiamond: Must be contract owner", + stargateFacet.connect(alice).stargateETHTransfer(ethTransferData, { + value: ethers.utils.parseEther("0.01"), + }), + "Stargate: no fees added for ETH transfer", ); - }); - it("should update slippage tolerance amount", async function() { - const tx: ContractTransaction = await stargateFacet.sgUpdateSlippageTolerance( - 200, + await expectRevert( + stargateFacet.connect(alice).stargateETHTransfer(ethTransferData, { + value: ethers.utils.parseEther("0.001"), + }), + "Stargate: no fees added for ETH transfer", ); - const receipt: ContractReceipt = await tx.wait(); - const result = checkEvent(receipt); - expect(result[0]).toEqual("SGUpdatedSlippageTolerance"); - expect(result[1]).toEqual(BigNumber.from(200)); }); - it("should return 0.5% of amount for default minimum slippage", async function() { - const minAmount: BigNumber = await stargateFacet.sgMinAmountOut(1000); - const expectAmountOut: number = (1000 * (10000 - 50)) / 10000; - expect(BigNumber.from(minAmount)).toEqual( - BigNumber.from(expectAmountOut), - ); - }); + it("should perform an ETH swap (MAINNET => ARBITRUM)", async () => { + ethTransferData = { + amount: ethers.utils.parseEther("0.1"), + dstChainId: ARBITRUM_CHAIN_ID, + to: bob.address, + slippage: 300, // 3% + }; - it("should return 2% of amount for minimum slippage after slippage updated", async function() { - // perform slippage calc for default 0.5% tolerance - let minAmount: BigNumber = await stargateFacet.sgMinAmountOut(1000); - let expectAmountOut: number = (1000 * (10000 - 50)) / 10000; - expect(BigNumber.from(minAmount)).toEqual( - BigNumber.from(expectAmountOut), - ); + const tx = await stargateFacet + .connect(alice) + .stargateETHTransfer(ethTransferData, { + value: ethers.utils.parseEther("0.2"), + }); - // change slippage tolerance to 2% - await stargateFacet.sgUpdateSlippageTolerance(200); + const receipt = await tx.wait(); + const event = receipt.events?.filter(x => { + return x.event == "StargateETHSwap"; + }); - // perform slippage calc for default 2% tolerance - minAmount = await stargateFacet.sgMinAmountOut(1000); - expectAmountOut = (1000 * (10000 - 200)) / 10000; - expect(BigNumber.from(minAmount)).toEqual( - BigNumber.from(expectAmountOut), + expect(event[0].args.from).toEqual(alice.address); + expect(event[0].args.to).toEqual(bob.address); + expect(event[0].args.amount).toEqual(ethers.utils.parseEther("0.1")); + expect(event[0].args.chainIdTo).toEqual( + BigNumber.from(ARBITRUM_CHAIN_ID), ); }); }); - describe("sgAddPool()", async function() { - it("should revert if adding pool to mapping and not owner", async function() { - await expectRevert( - stargateFacet.connect(bob).sgAddPool(1, MAINNET_USDC_ADDRESS, 3), - "LibDiamond: Must be contract owner", + describe("#stargateFees", async () => { + it("should get estimated layer zero fees for transaction", async () => { + transferData = { + amount: TEN_USDC, + bridgeToken: MAINNET_USDC_ADDRESS, + dstChainId: POLYGON_CHAIN_ID, + srcPoolId: 1, // USDC pool id mainnet + dstPoolId: 1, // USDC pool id polygon + to: bob.address, + slippage: 300, // 3% + destStargateComposed: POLYGON_STARGATE_ROUTER_ADDRESS, + }; + + const fees = await stargateFacet.stargateFees( + transferData, + MAINNET_STARGATE_ROUTER_ADDRESS, ); + + console.log(`FEES: ${fees}`); + expect(parseInt(fees.toString())).toBeGreaterThan(0); }); + }); - it("should add a new pool id to mapping", async function() { - await stargateFacet.connect(owner).sgAddPool(15, MAINNET_USDC_ADDRESS, 3); - const isAdded = await stargateFacet.sgCheckPoolId( - 15, - MAINNET_USDC_ADDRESS, - 3, + describe("#getLzChainId", async () => { + it("should trigger error if chain id has not been paired with layer zero chain id", async () => { + await expectRevert( + stargateFacet.getLzChainId(999), + "Stargate:: chain not assigned layer zero chain id", ); - expect(isAdded).toEqual(true); }); - it("should emit a SGAddedPool event", async function() { - const tx: ContractTransaction = await stargateFacet - .connect(owner) - .sgAddPool(15, MAINNET_USDC_ADDRESS, 3); - const receipt: ContractReceipt = await tx.wait(); - const result = checkEvent(receipt); - expect(result[0]).toEqual("SGAddedPool"); - expect(result[1]).toEqual(15); - expect(result[2]).toEqual(MAINNET_USDC_ADDRESS); - expect(result[3]).toEqual(3); + it("should return layer zero chain id for specified chain", async () => { + const lzChainId = await stargateFacet.getLzChainId(ARBITRUM_CHAIN_ID); + expect(lzChainId).toEqual(LZ_ARBITRUM_CHAIN_ID); }); }); - describe("sgCheckPoolId()", async function() { - it("should check pool exists in mapping - true", async function() { - const isValidPool = await stargateFacet.sgCheckPoolId( - ETH_CHAIN_ID, - "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", - 1, + describe("#setLzChainId", async () => { + it("should trigger error if owner is not caller", async () => { + await expectRevert( + stargateFacet.connect(bob).setLzChainId(1, 101), + "LibDiamond: Must be contract owner", ); - expect(isValidPool).toEqual(true); }); - it("should check pool exists in mapping - false", async function() { - const isValidPool = await stargateFacet.sgCheckPoolId( - 18, - "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", - 1, - ); - expect(isValidPool).toEqual(false); + it("should set/update chain id -> layer zero chain id", async () => { + await stargateFacet.connect(owner).setLzChainId(999, 13); + const lzChainId = await stargateFacet.getLzChainId(999); + expect(lzChainId).toEqual(13); }); }); - describe("sgRetrievePoolId()", async function() { - it("should retrieve pool for a valid token in mapping", async function() { - const poolId = await stargateFacet.sgRetrievePoolId( - 2, // BSC - "0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56", //BUSD address + describe("#sgReceive", async () => { + it("should trigger error if not called by StargateRouter", async () => { + await expectRevert( + stargateFacet + .connect(alice) + .sgReceive( + POLYGON_CHAIN_ID, + ZERO_ADDRESS, + 9, + usdc.address, + ethers.utils.parseEther("0.01"), + defaultAbiCoder.encode(["address"], [bob.address]), + ), + "Stargate:: only stargate router", ); - expect(poolId).toEqual(5); }); - it("should return zero if token is not in mapping", async function() { - const poolId = await stargateFacet.sgRetrievePoolId( - ETH_CHAIN_ID, - "0x6B175474E89094C44Da98b954EedeAC495271d0F", // DAI address - ); - expect(poolId).toEqual(0); - }); + // Not working due to 'FeeLibrary: not enough balance' error from Router => USDC pool => FeeLibrary contract; + // it.only("should emit event and transfer tokens after sgReceive is triggered", async () => { + // const THOUSAND = ethers.utils.parseUnits("1000", 6); + // await impersonateAccount(BINANCE_PEG_ACCOUNT); + // usdtFunder = await ethers.getSigner(BINANCE_PEG_ACCOUNT); + + // await owner.sendTransaction({ + // to: usdtFunder.address, + // value: ethers.utils.parseEther("10"), + // }); + + // usdt = new ethers.Contract(MAINNET_USDT_ADDRESS, USDT_ABI); + + // const router = await ethers.getContractAt( + // "IStargateRouter", + // MAINNET_STARGATE_ROUTER_ADDRESS, + // ); + // console.log(`before adding usdc/usdt liquidity`); + + // await usdc.connect(usdcFunder).approve(router.address, THOUSAND); + // await usdt.connect(usdtFunder).approve(router.address, THOUSAND); + + // await router + // .connect(usdcFunder) + // .addLiquidity(1, THOUSAND, usdcFunder.address); + + // await router + // .connect(usdtFunder) + // .addLiquidity(2, THOUSAND, usdtFunder.address); + + // console.log(`after adding usdc/usdt liquidity`); + + // const receiver = await deployContract("SGReceiver", [ + // MAINNET_STARGATE_ROUTER_ADDRESS, + // ]); + + // transferData = { + // amount: ethers.utils.parseUnits("10", 6), + // bridgeToken: MAINNET_USDC_ADDRESS, // mainnet USDC address + // dstChainId: 1, //mainnet => mainnet + // srcPoolId: 1, // USDC pool id mainnet + // dstPoolId: 2, // USDT pool id mainnet + // to: bob.address, + // slippage: 300, // 3% + // destStargateComposed: receiver.address, //sgReceiver implementer contract + // }; + + // const tx = await stargateFacet + // .connect(alice) + // .stargateTokenTransfer(transferData, { + // value: ethers.utils.parseEther("0.1"), + // }); + + // const receipt = await tx.wait(); + + // const event = receipt.events?.filter(x => { + // return x.event == "StargateReceivedOnDestination"; + // }); + + // console.log(event); + // //check event emitted + // //check balance changed + // }); }); }); diff --git a/test/bridges/abi/USDT_ABI.js b/test/bridges/abi/USDT_ABI.js new file mode 100644 index 00000000..01df2866 --- /dev/null +++ b/test/bridges/abi/USDT_ABI.js @@ -0,0 +1,390 @@ +module.exports = [ + { + constant: true, + inputs: [], + name: "name", + outputs: [{ name: "", type: "string" }], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [{ name: "_upgradedAddress", type: "address" }], + name: "deprecate", + outputs: [], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: false, + inputs: [ + { name: "_spender", type: "address" }, + { name: "_value", type: "uint256" }, + ], + name: "approve", + outputs: [], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: true, + inputs: [], + name: "deprecated", + outputs: [{ name: "", type: "bool" }], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [{ name: "_evilUser", type: "address" }], + name: "addBlackList", + outputs: [], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: true, + inputs: [], + name: "totalSupply", + outputs: [{ name: "", type: "uint256" }], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [ + { name: "_from", type: "address" }, + { name: "_to", type: "address" }, + { name: "_value", type: "uint256" }, + ], + name: "transferFrom", + outputs: [], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: true, + inputs: [], + name: "upgradedAddress", + outputs: [{ name: "", type: "address" }], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [{ name: "", type: "address" }], + name: "balances", + outputs: [{ name: "", type: "uint256" }], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "decimals", + outputs: [{ name: "", type: "uint256" }], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "maximumFee", + outputs: [{ name: "", type: "uint256" }], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "_totalSupply", + outputs: [{ name: "", type: "uint256" }], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [], + name: "unpause", + outputs: [], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: true, + inputs: [{ name: "_maker", type: "address" }], + name: "getBlackListStatus", + outputs: [{ name: "", type: "bool" }], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [ + { name: "", type: "address" }, + { name: "", type: "address" }, + ], + name: "allowed", + outputs: [{ name: "", type: "uint256" }], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "paused", + outputs: [{ name: "", type: "bool" }], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [{ name: "who", type: "address" }], + name: "balanceOf", + outputs: [{ name: "", type: "uint256" }], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [], + name: "pause", + outputs: [], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: true, + inputs: [], + name: "getOwner", + outputs: [{ name: "", type: "address" }], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "owner", + outputs: [{ name: "", type: "address" }], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "symbol", + outputs: [{ name: "", type: "string" }], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [ + { name: "_to", type: "address" }, + { name: "_value", type: "uint256" }, + ], + name: "transfer", + outputs: [], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: false, + inputs: [ + { name: "newBasisPoints", type: "uint256" }, + { name: "newMaxFee", type: "uint256" }, + ], + name: "setParams", + outputs: [], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: false, + inputs: [{ name: "amount", type: "uint256" }], + name: "issue", + outputs: [], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: false, + inputs: [{ name: "amount", type: "uint256" }], + name: "redeem", + outputs: [], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: true, + inputs: [ + { name: "_owner", type: "address" }, + { name: "_spender", type: "address" }, + ], + name: "allowance", + outputs: [{ name: "remaining", type: "uint256" }], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "basisPointsRate", + outputs: [{ name: "", type: "uint256" }], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [{ name: "", type: "address" }], + name: "isBlackListed", + outputs: [{ name: "", type: "bool" }], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [{ name: "_clearedUser", type: "address" }], + name: "removeBlackList", + outputs: [], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: true, + inputs: [], + name: "MAX_UINT", + outputs: [{ name: "", type: "uint256" }], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [{ name: "newOwner", type: "address" }], + name: "transferOwnership", + outputs: [], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: false, + inputs: [{ name: "_blackListedUser", type: "address" }], + name: "destroyBlackFunds", + outputs: [], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { name: "_initialSupply", type: "uint256" }, + { name: "_name", type: "string" }, + { name: "_symbol", type: "string" }, + { name: "_decimals", type: "uint256" }, + ], + payable: false, + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [{ indexed: false, name: "amount", type: "uint256" }], + name: "Issue", + type: "event", + }, + { + anonymous: false, + inputs: [{ indexed: false, name: "amount", type: "uint256" }], + name: "Redeem", + type: "event", + }, + { + anonymous: false, + inputs: [{ indexed: false, name: "newAddress", type: "address" }], + name: "Deprecate", + type: "event", + }, + { + anonymous: false, + inputs: [ + { indexed: false, name: "feeBasisPoints", type: "uint256" }, + { indexed: false, name: "maxFee", type: "uint256" }, + ], + name: "Params", + type: "event", + }, + { + anonymous: false, + inputs: [ + { indexed: false, name: "_blackListedUser", type: "address" }, + { indexed: false, name: "_balance", type: "uint256" }, + ], + name: "DestroyedBlackFunds", + type: "event", + }, + { + anonymous: false, + inputs: [{ indexed: false, name: "_user", type: "address" }], + name: "AddedBlackList", + type: "event", + }, + { + anonymous: false, + inputs: [{ indexed: false, name: "_user", type: "address" }], + name: "RemovedBlackList", + type: "event", + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: "owner", type: "address" }, + { indexed: true, name: "spender", type: "address" }, + { indexed: false, name: "value", type: "uint256" }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: "from", type: "address" }, + { indexed: true, name: "to", type: "address" }, + { indexed: false, name: "value", type: "uint256" }, + ], + name: "Transfer", + type: "event", + }, + { anonymous: false, inputs: [], name: "Pause", type: "event" }, + { anonymous: false, inputs: [], name: "Unpause", type: "event" }, +]; diff --git a/typings/Account.ts b/typings/Account.ts index 0d1ff47f..a17443a6 100644 --- a/typings/Account.ts +++ b/typings/Account.ts @@ -19,6 +19,15 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface AccountInterface extends utils.Interface { functions: { + "c_28344ffb(bytes8)": FunctionFragment; + "c_495bfa8b(bytes8)": FunctionFragment; + "c_ac4285e3(bytes8)": FunctionFragment; + "c_false28344ffb(bytes8)": FunctionFragment; + "c_false495bfa8b(bytes8)": FunctionFragment; + "c_falseac4285e3(bytes8)": FunctionFragment; + "c_true28344ffb(bytes8)": FunctionFragment; + "c_true495bfa8b(bytes8)": FunctionFragment; + "c_trueac4285e3(bytes8)": FunctionFragment; "controller()": FunctionFragment; "executeTransaction(address,uint256,bytes)": FunctionFragment; "implementation()": FunctionFragment; @@ -26,6 +35,42 @@ export interface AccountInterface extends utils.Interface { "setImplementation(address)": FunctionFragment; }; + encodeFunctionData( + functionFragment: "c_28344ffb", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_495bfa8b", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_ac4285e3", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false28344ffb", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false495bfa8b", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_falseac4285e3", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true28344ffb", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true495bfa8b", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_trueac4285e3", + values: [BytesLike] + ): string; encodeFunctionData( functionFragment: "controller", values?: undefined @@ -44,6 +89,33 @@ export interface AccountInterface extends utils.Interface { values: [string] ): string; + decodeFunctionResult(functionFragment: "c_28344ffb", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_495bfa8b", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_ac4285e3", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false28344ffb", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_false495bfa8b", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_falseac4285e3", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true28344ffb", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true495bfa8b", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_trueac4285e3", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "controller", data: BytesLike): Result; decodeFunctionResult( functionFragment: "executeTransaction", @@ -89,6 +161,51 @@ export interface Account extends BaseContract { removeListener: OnEvent; functions: { + c_28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_ac4285e3( + c__ac4285e3: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_false495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_falseac4285e3( + c__ac4285e3: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_trueac4285e3( + c__ac4285e3: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + controller(overrides?: CallOverrides): Promise<[string]>; executeTransaction( @@ -108,6 +225,42 @@ export interface Account extends BaseContract { ): Promise; }; + c_28344ffb(c__28344ffb: BytesLike, overrides?: CallOverrides): Promise; + + c_495bfa8b(c__495bfa8b: BytesLike, overrides?: CallOverrides): Promise; + + c_ac4285e3(c__ac4285e3: BytesLike, overrides?: CallOverrides): Promise; + + c_false28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falseac4285e3( + c__ac4285e3: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trueac4285e3( + c__ac4285e3: BytesLike, + overrides?: CallOverrides + ): Promise; + controller(overrides?: CallOverrides): Promise; executeTransaction( @@ -127,6 +280,51 @@ export interface Account extends BaseContract { ): Promise; callStatic: { + c_28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_ac4285e3( + c__ac4285e3: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falseac4285e3( + c__ac4285e3: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trueac4285e3( + c__ac4285e3: BytesLike, + overrides?: CallOverrides + ): Promise; + controller(overrides?: CallOverrides): Promise; executeTransaction( @@ -149,6 +347,51 @@ export interface Account extends BaseContract { filters: {}; estimateGas: { + c_28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_ac4285e3( + c__ac4285e3: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falseac4285e3( + c__ac4285e3: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trueac4285e3( + c__ac4285e3: BytesLike, + overrides?: CallOverrides + ): Promise; + controller(overrides?: CallOverrides): Promise; executeTransaction( @@ -169,6 +412,51 @@ export interface Account extends BaseContract { }; populateTransaction: { + c_28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_ac4285e3( + c__ac4285e3: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falseac4285e3( + c__ac4285e3: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trueac4285e3( + c__ac4285e3: BytesLike, + overrides?: CallOverrides + ): Promise; + controller(overrides?: CallOverrides): Promise; executeTransaction( diff --git a/typings/AccountBase.ts b/typings/AccountBase.ts index 9166d6bd..c8fab5eb 100644 --- a/typings/AccountBase.ts +++ b/typings/AccountBase.ts @@ -16,11 +16,35 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface AccountBaseInterface extends utils.Interface { functions: { + "c_28344ffb(bytes8)": FunctionFragment; + "c_false28344ffb(bytes8)": FunctionFragment; + "c_true28344ffb(bytes8)": FunctionFragment; "registry()": FunctionFragment; }; + encodeFunctionData( + functionFragment: "c_28344ffb", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false28344ffb", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true28344ffb", + values: [BytesLike] + ): string; encodeFunctionData(functionFragment: "registry", values?: undefined): string; + decodeFunctionResult(functionFragment: "c_28344ffb", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false28344ffb", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true28344ffb", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "registry", data: BytesLike): Result; events: {}; @@ -53,22 +77,94 @@ export interface AccountBase extends BaseContract { removeListener: OnEvent; functions: { + c_28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + registry(overrides?: CallOverrides): Promise<[string]>; }; + c_28344ffb(c__28344ffb: BytesLike, overrides?: CallOverrides): Promise; + + c_false28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + registry(overrides?: CallOverrides): Promise; callStatic: { + c_28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + registry(overrides?: CallOverrides): Promise; }; filters: {}; estimateGas: { + c_28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + registry(overrides?: CallOverrides): Promise; }; populateTransaction: { + c_28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + registry(overrides?: CallOverrides): Promise; }; } diff --git a/typings/AccountController.ts b/typings/AccountController.ts index 7472fafa..65d8f738 100644 --- a/typings/AccountController.ts +++ b/typings/AccountController.ts @@ -18,6 +18,9 @@ export interface AccountControllerInterface extends utils.Interface { functions: { "accountImplementation()": FunctionFragment; "accountRegistry()": FunctionFragment; + "c_bf6efb80(bytes8)": FunctionFragment; + "c_falsebf6efb80(bytes8)": FunctionFragment; + "c_truebf6efb80(bytes8)": FunctionFragment; }; encodeFunctionData( @@ -28,6 +31,18 @@ export interface AccountControllerInterface extends utils.Interface { functionFragment: "accountRegistry", values?: undefined ): string; + encodeFunctionData( + functionFragment: "c_bf6efb80", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_falsebf6efb80", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_truebf6efb80", + values: [BytesLike] + ): string; decodeFunctionResult( functionFragment: "accountImplementation", @@ -37,6 +52,15 @@ export interface AccountControllerInterface extends utils.Interface { functionFragment: "accountRegistry", data: BytesLike ): Result; + decodeFunctionResult(functionFragment: "c_bf6efb80", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_falsebf6efb80", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_truebf6efb80", + data: BytesLike + ): Result; events: { "AccountDeployed(address,address)": EventFragment; @@ -129,16 +153,58 @@ export interface AccountController extends BaseContract { accountImplementation(overrides?: CallOverrides): Promise<[string]>; accountRegistry(overrides?: CallOverrides): Promise<[string]>; + + c_bf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_falsebf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_truebf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; }; accountImplementation(overrides?: CallOverrides): Promise; accountRegistry(overrides?: CallOverrides): Promise; + c_bf6efb80(c__bf6efb80: BytesLike, overrides?: CallOverrides): Promise; + + c_falsebf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truebf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise; + callStatic: { accountImplementation(overrides?: CallOverrides): Promise; accountRegistry(overrides?: CallOverrides): Promise; + + c_bf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsebf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truebf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise; }; filters: { @@ -194,6 +260,21 @@ export interface AccountController extends BaseContract { accountImplementation(overrides?: CallOverrides): Promise; accountRegistry(overrides?: CallOverrides): Promise; + + c_bf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsebf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truebf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise; }; populateTransaction: { @@ -202,5 +283,20 @@ export interface AccountController extends BaseContract { ): Promise; accountRegistry(overrides?: CallOverrides): Promise; + + c_bf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsebf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truebf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise; }; } diff --git a/typings/AccountControllerMock.ts b/typings/AccountControllerMock.ts index 26af4089..ae12fd81 100644 --- a/typings/AccountControllerMock.ts +++ b/typings/AccountControllerMock.ts @@ -21,6 +21,12 @@ export interface AccountControllerMockInterface extends utils.Interface { functions: { "accountImplementation()": FunctionFragment; "accountRegistry()": FunctionFragment; + "c_8758a88a(bytes8)": FunctionFragment; + "c_bf6efb80(bytes8)": FunctionFragment; + "c_false8758a88a(bytes8)": FunctionFragment; + "c_falsebf6efb80(bytes8)": FunctionFragment; + "c_true8758a88a(bytes8)": FunctionFragment; + "c_truebf6efb80(bytes8)": FunctionFragment; "computeAccountAddress(bytes32)": FunctionFragment; "deployAccount(bytes32)": FunctionFragment; "executeAccountTransaction(address,address,uint256,bytes)": FunctionFragment; @@ -37,6 +43,30 @@ export interface AccountControllerMockInterface extends utils.Interface { functionFragment: "accountRegistry", values?: undefined ): string; + encodeFunctionData( + functionFragment: "c_8758a88a", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_bf6efb80", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false8758a88a", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_falsebf6efb80", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true8758a88a", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_truebf6efb80", + values: [BytesLike] + ): string; encodeFunctionData( functionFragment: "computeAccountAddress", values: [BytesLike] @@ -70,6 +100,24 @@ export interface AccountControllerMockInterface extends utils.Interface { functionFragment: "accountRegistry", data: BytesLike ): Result; + decodeFunctionResult(functionFragment: "c_8758a88a", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_bf6efb80", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false8758a88a", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_falsebf6efb80", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true8758a88a", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_truebf6efb80", + data: BytesLike + ): Result; decodeFunctionResult( functionFragment: "computeAccountAddress", data: BytesLike @@ -187,6 +235,36 @@ export interface AccountControllerMock extends BaseContract { accountRegistry(overrides?: CallOverrides): Promise<[string]>; + c_8758a88a( + c__8758a88a: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_bf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false8758a88a( + c__8758a88a: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_falsebf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true8758a88a( + c__8758a88a: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_truebf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + computeAccountAddress( salt: BytesLike, overrides?: CallOverrides @@ -225,6 +303,30 @@ export interface AccountControllerMock extends BaseContract { accountRegistry(overrides?: CallOverrides): Promise; + c_8758a88a(c__8758a88a: BytesLike, overrides?: CallOverrides): Promise; + + c_bf6efb80(c__bf6efb80: BytesLike, overrides?: CallOverrides): Promise; + + c_false8758a88a( + c__8758a88a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsebf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true8758a88a( + c__8758a88a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truebf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise; + computeAccountAddress( salt: BytesLike, overrides?: CallOverrides @@ -263,6 +365,36 @@ export interface AccountControllerMock extends BaseContract { accountRegistry(overrides?: CallOverrides): Promise; + c_8758a88a( + c__8758a88a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_bf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false8758a88a( + c__8758a88a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsebf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true8758a88a( + c__8758a88a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truebf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise; + computeAccountAddress( salt: BytesLike, overrides?: CallOverrides @@ -345,6 +477,36 @@ export interface AccountControllerMock extends BaseContract { accountRegistry(overrides?: CallOverrides): Promise; + c_8758a88a( + c__8758a88a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_bf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false8758a88a( + c__8758a88a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsebf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true8758a88a( + c__8758a88a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truebf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise; + computeAccountAddress( salt: BytesLike, overrides?: CallOverrides @@ -386,6 +548,36 @@ export interface AccountControllerMock extends BaseContract { accountRegistry(overrides?: CallOverrides): Promise; + c_8758a88a( + c__8758a88a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_bf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false8758a88a( + c__8758a88a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsebf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true8758a88a( + c__8758a88a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truebf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise; + computeAccountAddress( salt: BytesLike, overrides?: CallOverrides diff --git a/typings/AccountImplementationV1.ts b/typings/AccountImplementationV1.ts index 2326a4fb..308c1c53 100644 --- a/typings/AccountImplementationV1.ts +++ b/typings/AccountImplementationV1.ts @@ -19,6 +19,15 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface AccountImplementationV1Interface extends utils.Interface { functions: { + "c_098c0657(bytes8)": FunctionFragment; + "c_28344ffb(bytes8)": FunctionFragment; + "c_2860b96a(bytes8)": FunctionFragment; + "c_false098c0657(bytes8)": FunctionFragment; + "c_false28344ffb(bytes8)": FunctionFragment; + "c_false2860b96a(bytes8)": FunctionFragment; + "c_true098c0657(bytes8)": FunctionFragment; + "c_true28344ffb(bytes8)": FunctionFragment; + "c_true2860b96a(bytes8)": FunctionFragment; "canImplementInterfaceForAddress(bytes32,address)": FunctionFragment; "initialize(address)": FunctionFragment; "isInitialized()": FunctionFragment; @@ -29,6 +38,42 @@ export interface AccountImplementationV1Interface extends utils.Interface { "tokensReceived(address,address,address,uint256,bytes,bytes)": FunctionFragment; }; + encodeFunctionData( + functionFragment: "c_098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_28344ffb", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_2860b96a", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false28344ffb", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false2860b96a", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true28344ffb", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true2860b96a", + values: [BytesLike] + ): string; encodeFunctionData( functionFragment: "canImplementInterfaceForAddress", values: [BytesLike, string] @@ -56,6 +101,33 @@ export interface AccountImplementationV1Interface extends utils.Interface { values: [string, string, string, BigNumberish, BytesLike, BytesLike] ): string; + decodeFunctionResult(functionFragment: "c_098c0657", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_28344ffb", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_2860b96a", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false098c0657", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_false28344ffb", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_false2860b96a", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true098c0657", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true28344ffb", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true2860b96a", + data: BytesLike + ): Result; decodeFunctionResult( functionFragment: "canImplementInterfaceForAddress", data: BytesLike @@ -121,6 +193,51 @@ export interface AccountImplementationV1 extends BaseContract { removeListener: OnEvent; functions: { + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_false28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_false2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + canImplementInterfaceForAddress( interfaceHash: BytesLike, addr: string, @@ -176,6 +293,42 @@ export interface AccountImplementationV1 extends BaseContract { ): Promise<[void]>; }; + c_098c0657(c__098c0657: BytesLike, overrides?: CallOverrides): Promise; + + c_28344ffb(c__28344ffb: BytesLike, overrides?: CallOverrides): Promise; + + c_2860b96a(c__2860b96a: BytesLike, overrides?: CallOverrides): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise; + canImplementInterfaceForAddress( interfaceHash: BytesLike, addr: string, @@ -231,6 +384,51 @@ export interface AccountImplementationV1 extends BaseContract { ): Promise; callStatic: { + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise; + canImplementInterfaceForAddress( interfaceHash: BytesLike, addr: string, @@ -289,6 +487,51 @@ export interface AccountImplementationV1 extends BaseContract { }; estimateGas: { + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise; + canImplementInterfaceForAddress( interfaceHash: BytesLike, addr: string, @@ -345,6 +588,51 @@ export interface AccountImplementationV1 extends BaseContract { }; populateTransaction: { + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise; + canImplementInterfaceForAddress( interfaceHash: BytesLike, addr: string, diff --git a/typings/AccountImplementationV1Mock.ts b/typings/AccountImplementationV1Mock.ts index fbc72491..f7be11f8 100644 --- a/typings/AccountImplementationV1Mock.ts +++ b/typings/AccountImplementationV1Mock.ts @@ -19,6 +19,18 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface AccountImplementationV1MockInterface extends utils.Interface { functions: { + "c_098c0657(bytes8)": FunctionFragment; + "c_28344ffb(bytes8)": FunctionFragment; + "c_2860b96a(bytes8)": FunctionFragment; + "c_3fd0a446(bytes8)": FunctionFragment; + "c_false098c0657(bytes8)": FunctionFragment; + "c_false28344ffb(bytes8)": FunctionFragment; + "c_false2860b96a(bytes8)": FunctionFragment; + "c_false3fd0a446(bytes8)": FunctionFragment; + "c_true098c0657(bytes8)": FunctionFragment; + "c_true28344ffb(bytes8)": FunctionFragment; + "c_true2860b96a(bytes8)": FunctionFragment; + "c_true3fd0a446(bytes8)": FunctionFragment; "canImplementInterfaceForAddress(bytes32,address)": FunctionFragment; "initialize(address)": FunctionFragment; "isInitialized()": FunctionFragment; @@ -29,6 +41,54 @@ export interface AccountImplementationV1MockInterface extends utils.Interface { "tokensReceived(address,address,address,uint256,bytes,bytes)": FunctionFragment; }; + encodeFunctionData( + functionFragment: "c_098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_28344ffb", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_2860b96a", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_3fd0a446", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false28344ffb", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false2860b96a", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false3fd0a446", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true28344ffb", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true2860b96a", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true3fd0a446", + values: [BytesLike] + ): string; encodeFunctionData( functionFragment: "canImplementInterfaceForAddress", values: [BytesLike, string] @@ -56,6 +116,42 @@ export interface AccountImplementationV1MockInterface extends utils.Interface { values: [string, string, string, BigNumberish, BytesLike, BytesLike] ): string; + decodeFunctionResult(functionFragment: "c_098c0657", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_28344ffb", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_2860b96a", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_3fd0a446", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false098c0657", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_false28344ffb", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_false2860b96a", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_false3fd0a446", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true098c0657", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true28344ffb", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true2860b96a", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true3fd0a446", + data: BytesLike + ): Result; decodeFunctionResult( functionFragment: "canImplementInterfaceForAddress", data: BytesLike @@ -121,6 +217,66 @@ export interface AccountImplementationV1Mock extends BaseContract { removeListener: OnEvent; functions: { + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_3fd0a446( + c__3fd0a446: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_false28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_false2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_false3fd0a446( + c__3fd0a446: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true3fd0a446( + c__3fd0a446: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + canImplementInterfaceForAddress( interfaceHash: BytesLike, addr: string, @@ -176,6 +332,54 @@ export interface AccountImplementationV1Mock extends BaseContract { ): Promise<[void]>; }; + c_098c0657(c__098c0657: BytesLike, overrides?: CallOverrides): Promise; + + c_28344ffb(c__28344ffb: BytesLike, overrides?: CallOverrides): Promise; + + c_2860b96a(c__2860b96a: BytesLike, overrides?: CallOverrides): Promise; + + c_3fd0a446(c__3fd0a446: BytesLike, overrides?: CallOverrides): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false3fd0a446( + c__3fd0a446: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true3fd0a446( + c__3fd0a446: BytesLike, + overrides?: CallOverrides + ): Promise; + canImplementInterfaceForAddress( interfaceHash: BytesLike, addr: string, @@ -231,6 +435,66 @@ export interface AccountImplementationV1Mock extends BaseContract { ): Promise; callStatic: { + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_3fd0a446( + c__3fd0a446: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false3fd0a446( + c__3fd0a446: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true3fd0a446( + c__3fd0a446: BytesLike, + overrides?: CallOverrides + ): Promise; + canImplementInterfaceForAddress( interfaceHash: BytesLike, addr: string, @@ -289,6 +553,66 @@ export interface AccountImplementationV1Mock extends BaseContract { }; estimateGas: { + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_3fd0a446( + c__3fd0a446: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false3fd0a446( + c__3fd0a446: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true3fd0a446( + c__3fd0a446: BytesLike, + overrides?: CallOverrides + ): Promise; + canImplementInterfaceForAddress( interfaceHash: BytesLike, addr: string, @@ -345,6 +669,66 @@ export interface AccountImplementationV1Mock extends BaseContract { }; populateTransaction: { + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_3fd0a446( + c__3fd0a446: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false3fd0a446( + c__3fd0a446: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true3fd0a446( + c__3fd0a446: BytesLike, + overrides?: CallOverrides + ): Promise; + canImplementInterfaceForAddress( interfaceHash: BytesLike, addr: string, diff --git a/typings/AccountRegistry.ts b/typings/AccountRegistry.ts index 1159df76..94e80b99 100644 --- a/typings/AccountRegistry.ts +++ b/typings/AccountRegistry.ts @@ -16,14 +16,38 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface AccountRegistryInterface extends utils.Interface { functions: { + "c_9649d652(bytes8)": FunctionFragment; + "c_false9649d652(bytes8)": FunctionFragment; + "c_true9649d652(bytes8)": FunctionFragment; "isValidAccountSignature(address,bytes,bytes)": FunctionFragment; }; + encodeFunctionData( + functionFragment: "c_9649d652", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false9649d652", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true9649d652", + values: [BytesLike] + ): string; encodeFunctionData( functionFragment: "isValidAccountSignature", values: [string, BytesLike, BytesLike] ): string; + decodeFunctionResult(functionFragment: "c_9649d652", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false9649d652", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true9649d652", + data: BytesLike + ): Result; decodeFunctionResult( functionFragment: "isValidAccountSignature", data: BytesLike @@ -59,6 +83,21 @@ export interface AccountRegistry extends BaseContract { removeListener: OnEvent; functions: { + c_9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + "isValidAccountSignature(address,bytes,bytes)"( account: string, message: BytesLike, @@ -74,6 +113,18 @@ export interface AccountRegistry extends BaseContract { ): Promise<[boolean]>; }; + c_9649d652(c__9649d652: BytesLike, overrides?: CallOverrides): Promise; + + c_false9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise; + "isValidAccountSignature(address,bytes,bytes)"( account: string, message: BytesLike, @@ -89,6 +140,21 @@ export interface AccountRegistry extends BaseContract { ): Promise; callStatic: { + c_9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise; + "isValidAccountSignature(address,bytes,bytes)"( account: string, message: BytesLike, @@ -107,6 +173,21 @@ export interface AccountRegistry extends BaseContract { filters: {}; estimateGas: { + c_9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise; + "isValidAccountSignature(address,bytes,bytes)"( account: string, message: BytesLike, @@ -123,6 +204,21 @@ export interface AccountRegistry extends BaseContract { }; populateTransaction: { + c_9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise; + "isValidAccountSignature(address,bytes,bytes)"( account: string, message: BytesLike, diff --git a/typings/AccountRegistryMock.ts b/typings/AccountRegistryMock.ts index fddb5aaa..ee152850 100644 --- a/typings/AccountRegistryMock.ts +++ b/typings/AccountRegistryMock.ts @@ -18,10 +18,40 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface AccountRegistryMockInterface extends utils.Interface { functions: { + "c_9649d652(bytes8)": FunctionFragment; + "c_false9649d652(bytes8)": FunctionFragment; + "c_falsefbab7e5c(bytes8)": FunctionFragment; + "c_fbab7e5c(bytes8)": FunctionFragment; + "c_true9649d652(bytes8)": FunctionFragment; + "c_truefbab7e5c(bytes8)": FunctionFragment; "isValidAccountSignature(address,bytes,bytes)": FunctionFragment; "mockAccountOwners(address,address[])": FunctionFragment; }; + encodeFunctionData( + functionFragment: "c_9649d652", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false9649d652", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_falsefbab7e5c", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_fbab7e5c", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true9649d652", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_truefbab7e5c", + values: [BytesLike] + ): string; encodeFunctionData( functionFragment: "isValidAccountSignature", values: [string, BytesLike, BytesLike] @@ -31,6 +61,24 @@ export interface AccountRegistryMockInterface extends utils.Interface { values: [string, string[]] ): string; + decodeFunctionResult(functionFragment: "c_9649d652", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false9649d652", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_falsefbab7e5c", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "c_fbab7e5c", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_true9649d652", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_truefbab7e5c", + data: BytesLike + ): Result; decodeFunctionResult( functionFragment: "isValidAccountSignature", data: BytesLike @@ -70,6 +118,36 @@ export interface AccountRegistryMock extends BaseContract { removeListener: OnEvent; functions: { + c_9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_falsefbab7e5c( + c__fbab7e5c: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_fbab7e5c( + c__fbab7e5c: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_true9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_truefbab7e5c( + c__fbab7e5c: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + "isValidAccountSignature(address,bytes,bytes)"( account: string, message: BytesLike, @@ -91,6 +169,30 @@ export interface AccountRegistryMock extends BaseContract { ): Promise; }; + c_9649d652(c__9649d652: BytesLike, overrides?: CallOverrides): Promise; + + c_false9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsefbab7e5c( + c__fbab7e5c: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_fbab7e5c(c__fbab7e5c: BytesLike, overrides?: CallOverrides): Promise; + + c_true9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truefbab7e5c( + c__fbab7e5c: BytesLike, + overrides?: CallOverrides + ): Promise; + "isValidAccountSignature(address,bytes,bytes)"( account: string, message: BytesLike, @@ -112,6 +214,36 @@ export interface AccountRegistryMock extends BaseContract { ): Promise; callStatic: { + c_9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsefbab7e5c( + c__fbab7e5c: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_fbab7e5c( + c__fbab7e5c: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truefbab7e5c( + c__fbab7e5c: BytesLike, + overrides?: CallOverrides + ): Promise; + "isValidAccountSignature(address,bytes,bytes)"( account: string, message: BytesLike, @@ -136,6 +268,36 @@ export interface AccountRegistryMock extends BaseContract { filters: {}; estimateGas: { + c_9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsefbab7e5c( + c__fbab7e5c: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_fbab7e5c( + c__fbab7e5c: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truefbab7e5c( + c__fbab7e5c: BytesLike, + overrides?: CallOverrides + ): Promise; + "isValidAccountSignature(address,bytes,bytes)"( account: string, message: BytesLike, @@ -158,6 +320,36 @@ export interface AccountRegistryMock extends BaseContract { }; populateTransaction: { + c_9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsefbab7e5c( + c__fbab7e5c: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_fbab7e5c( + c__fbab7e5c: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truefbab7e5c( + c__fbab7e5c: BytesLike, + overrides?: CallOverrides + ): Promise; + "isValidAccountSignature(address,bytes,bytes)"( account: string, message: BytesLike, diff --git a/typings/AddressLib.ts b/typings/AddressLib.ts index 1d4c91b4..4f0a57df 100644 --- a/typings/AddressLib.ts +++ b/typings/AddressLib.ts @@ -16,31 +16,31 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface AddressLibInterface extends utils.Interface { functions: { - "c_6866fc56(bytes8)": FunctionFragment; - "c_false6866fc56(bytes8)": FunctionFragment; - "c_true6866fc56(bytes8)": FunctionFragment; + "c_c8dd6f34(bytes8)": FunctionFragment; + "c_falsec8dd6f34(bytes8)": FunctionFragment; + "c_truec8dd6f34(bytes8)": FunctionFragment; }; encodeFunctionData( - functionFragment: "c_6866fc56", + functionFragment: "c_c8dd6f34", values: [BytesLike] ): string; encodeFunctionData( - functionFragment: "c_false6866fc56", + functionFragment: "c_falsec8dd6f34", values: [BytesLike] ): string; encodeFunctionData( - functionFragment: "c_true6866fc56", + functionFragment: "c_truec8dd6f34", values: [BytesLike] ): string; - decodeFunctionResult(functionFragment: "c_6866fc56", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_c8dd6f34", data: BytesLike): Result; decodeFunctionResult( - functionFragment: "c_false6866fc56", + functionFragment: "c_falsec8dd6f34", data: BytesLike ): Result; decodeFunctionResult( - functionFragment: "c_true6866fc56", + functionFragment: "c_truec8dd6f34", data: BytesLike ): Result; @@ -74,47 +74,47 @@ export interface AddressLib extends BaseContract { removeListener: OnEvent; functions: { - c_6866fc56( - c__6866fc56: BytesLike, + c_c8dd6f34( + c__c8dd6f34: BytesLike, overrides?: CallOverrides ): Promise<[void]>; - c_false6866fc56( - c__6866fc56: BytesLike, + c_falsec8dd6f34( + c__c8dd6f34: BytesLike, overrides?: CallOverrides ): Promise<[boolean]>; - c_true6866fc56( - c__6866fc56: BytesLike, + c_truec8dd6f34( + c__c8dd6f34: BytesLike, overrides?: CallOverrides ): Promise<[boolean]>; }; - c_6866fc56(c__6866fc56: BytesLike, overrides?: CallOverrides): Promise; + c_c8dd6f34(c__c8dd6f34: BytesLike, overrides?: CallOverrides): Promise; - c_false6866fc56( - c__6866fc56: BytesLike, + c_falsec8dd6f34( + c__c8dd6f34: BytesLike, overrides?: CallOverrides ): Promise; - c_true6866fc56( - c__6866fc56: BytesLike, + c_truec8dd6f34( + c__c8dd6f34: BytesLike, overrides?: CallOverrides ): Promise; callStatic: { - c_6866fc56( - c__6866fc56: BytesLike, + c_c8dd6f34( + c__c8dd6f34: BytesLike, overrides?: CallOverrides ): Promise; - c_false6866fc56( - c__6866fc56: BytesLike, + c_falsec8dd6f34( + c__c8dd6f34: BytesLike, overrides?: CallOverrides ): Promise; - c_true6866fc56( - c__6866fc56: BytesLike, + c_truec8dd6f34( + c__c8dd6f34: BytesLike, overrides?: CallOverrides ): Promise; }; @@ -122,35 +122,35 @@ export interface AddressLib extends BaseContract { filters: {}; estimateGas: { - c_6866fc56( - c__6866fc56: BytesLike, + c_c8dd6f34( + c__c8dd6f34: BytesLike, overrides?: CallOverrides ): Promise; - c_false6866fc56( - c__6866fc56: BytesLike, + c_falsec8dd6f34( + c__c8dd6f34: BytesLike, overrides?: CallOverrides ): Promise; - c_true6866fc56( - c__6866fc56: BytesLike, + c_truec8dd6f34( + c__c8dd6f34: BytesLike, overrides?: CallOverrides ): Promise; }; populateTransaction: { - c_6866fc56( - c__6866fc56: BytesLike, + c_c8dd6f34( + c__c8dd6f34: BytesLike, overrides?: CallOverrides ): Promise; - c_false6866fc56( - c__6866fc56: BytesLike, + c_falsec8dd6f34( + c__c8dd6f34: BytesLike, overrides?: CallOverrides ): Promise; - c_true6866fc56( - c__6866fc56: BytesLike, + c_truec8dd6f34( + c__c8dd6f34: BytesLike, overrides?: CallOverrides ): Promise; }; diff --git a/typings/AmplificationUtils.ts b/typings/AmplificationUtils.ts deleted file mode 100644 index 2aee1ce1..00000000 --- a/typings/AmplificationUtils.ts +++ /dev/null @@ -1,94 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { BaseContract, BigNumber, Signer, utils } from "ethers"; -import { EventFragment } from "@ethersproject/abi"; -import { Listener, Provider } from "@ethersproject/providers"; -import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; - -export interface AmplificationUtilsInterface extends utils.Interface { - functions: {}; - - events: { - "RampA(uint256,uint256,uint256,uint256)": EventFragment; - "StopRampA(uint256,uint256)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "RampA"): EventFragment; - getEvent(nameOrSignatureOrTopic: "StopRampA"): EventFragment; -} - -export type RampAEvent = TypedEvent< - [BigNumber, BigNumber, BigNumber, BigNumber], - { - oldA: BigNumber; - newA: BigNumber; - initialTime: BigNumber; - futureTime: BigNumber; - } ->; - -export type RampAEventFilter = TypedEventFilter; - -export type StopRampAEvent = TypedEvent< - [BigNumber, BigNumber], - { currentA: BigNumber; time: BigNumber } ->; - -export type StopRampAEventFilter = TypedEventFilter; - -export interface AmplificationUtils extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: AmplificationUtilsInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: {}; - - callStatic: {}; - - filters: { - "RampA(uint256,uint256,uint256,uint256)"( - oldA?: null, - newA?: null, - initialTime?: null, - futureTime?: null - ): RampAEventFilter; - RampA( - oldA?: null, - newA?: null, - initialTime?: null, - futureTime?: null - ): RampAEventFilter; - - "StopRampA(uint256,uint256)"( - currentA?: null, - time?: null - ): StopRampAEventFilter; - StopRampA(currentA?: null, time?: null): StopRampAEventFilter; - }; - - estimateGas: {}; - - populateTransaction: {}; -} diff --git a/typings/AssetLogic.ts b/typings/AssetLogic.ts deleted file mode 100644 index c9bcff3f..00000000 --- a/typings/AssetLogic.ts +++ /dev/null @@ -1,50 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { BaseContract, Signer, utils } from "ethers"; - -import { Listener, Provider } from "@ethersproject/providers"; -import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; - -export interface AssetLogicInterface extends utils.Interface { - functions: {}; - - events: {}; -} - -export interface AssetLogic extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: AssetLogicInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: {}; - - callStatic: {}; - - filters: {}; - - estimateGas: {}; - - populateTransaction: {}; -} diff --git a/typings/BalancesHelper.ts b/typings/BalancesHelper.ts index 61a5b131..2e2940c1 100644 --- a/typings/BalancesHelper.ts +++ b/typings/BalancesHelper.ts @@ -16,14 +16,38 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface BalancesHelperInterface extends utils.Interface { functions: { + "c_7989c7ce(bytes8)": FunctionFragment; + "c_false7989c7ce(bytes8)": FunctionFragment; + "c_true7989c7ce(bytes8)": FunctionFragment; "getBalances(address[],address[])": FunctionFragment; }; + encodeFunctionData( + functionFragment: "c_7989c7ce", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false7989c7ce", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true7989c7ce", + values: [BytesLike] + ): string; encodeFunctionData( functionFragment: "getBalances", values: [string[], string[]] ): string; + decodeFunctionResult(functionFragment: "c_7989c7ce", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false7989c7ce", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true7989c7ce", + data: BytesLike + ): Result; decodeFunctionResult( functionFragment: "getBalances", data: BytesLike @@ -59,6 +83,21 @@ export interface BalancesHelper extends BaseContract { removeListener: OnEvent; functions: { + c_7989c7ce( + c__7989c7ce: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false7989c7ce( + c__7989c7ce: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true7989c7ce( + c__7989c7ce: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + getBalances( accounts: string[], tokens: string[], @@ -66,6 +105,18 @@ export interface BalancesHelper extends BaseContract { ): Promise<[BigNumber[]]>; }; + c_7989c7ce(c__7989c7ce: BytesLike, overrides?: CallOverrides): Promise; + + c_false7989c7ce( + c__7989c7ce: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true7989c7ce( + c__7989c7ce: BytesLike, + overrides?: CallOverrides + ): Promise; + getBalances( accounts: string[], tokens: string[], @@ -73,6 +124,21 @@ export interface BalancesHelper extends BaseContract { ): Promise; callStatic: { + c_7989c7ce( + c__7989c7ce: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false7989c7ce( + c__7989c7ce: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true7989c7ce( + c__7989c7ce: BytesLike, + overrides?: CallOverrides + ): Promise; + getBalances( accounts: string[], tokens: string[], @@ -83,6 +149,21 @@ export interface BalancesHelper extends BaseContract { filters: {}; estimateGas: { + c_7989c7ce( + c__7989c7ce: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false7989c7ce( + c__7989c7ce: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true7989c7ce( + c__7989c7ce: BytesLike, + overrides?: CallOverrides + ): Promise; + getBalances( accounts: string[], tokens: string[], @@ -91,6 +172,21 @@ export interface BalancesHelper extends BaseContract { }; populateTransaction: { + c_7989c7ce( + c__7989c7ce: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false7989c7ce( + c__7989c7ce: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true7989c7ce( + c__7989c7ce: BytesLike, + overrides?: CallOverrides + ): Promise; + getBalances( accounts: string[], tokens: string[], diff --git a/typings/BalancesHelperV2.ts b/typings/BalancesHelperV2.ts index f0d8a2d4..6348a19f 100644 --- a/typings/BalancesHelperV2.ts +++ b/typings/BalancesHelperV2.ts @@ -16,10 +16,25 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface BalancesHelperV2Interface extends utils.Interface { functions: { + "c_158c7976(bytes8)": FunctionFragment; + "c_false158c7976(bytes8)": FunctionFragment; + "c_true158c7976(bytes8)": FunctionFragment; "getBalances(address[],address[])": FunctionFragment; "getSuperfluidWrappedTokenBalances(address[],address[])": FunctionFragment; }; + encodeFunctionData( + functionFragment: "c_158c7976", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false158c7976", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true158c7976", + values: [BytesLike] + ): string; encodeFunctionData( functionFragment: "getBalances", values: [string[], string[]] @@ -29,6 +44,15 @@ export interface BalancesHelperV2Interface extends utils.Interface { values: [string[], string[]] ): string; + decodeFunctionResult(functionFragment: "c_158c7976", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false158c7976", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true158c7976", + data: BytesLike + ): Result; decodeFunctionResult( functionFragment: "getBalances", data: BytesLike @@ -68,6 +92,21 @@ export interface BalancesHelperV2 extends BaseContract { removeListener: OnEvent; functions: { + c_158c7976( + c__158c7976: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false158c7976( + c__158c7976: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true158c7976( + c__158c7976: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + getBalances( accounts: string[], tokens: string[], @@ -81,6 +120,18 @@ export interface BalancesHelperV2 extends BaseContract { ): Promise<[BigNumber[]]>; }; + c_158c7976(c__158c7976: BytesLike, overrides?: CallOverrides): Promise; + + c_false158c7976( + c__158c7976: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true158c7976( + c__158c7976: BytesLike, + overrides?: CallOverrides + ): Promise; + getBalances( accounts: string[], tokens: string[], @@ -94,6 +145,21 @@ export interface BalancesHelperV2 extends BaseContract { ): Promise; callStatic: { + c_158c7976( + c__158c7976: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false158c7976( + c__158c7976: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true158c7976( + c__158c7976: BytesLike, + overrides?: CallOverrides + ): Promise; + getBalances( accounts: string[], tokens: string[], @@ -110,6 +176,21 @@ export interface BalancesHelperV2 extends BaseContract { filters: {}; estimateGas: { + c_158c7976( + c__158c7976: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false158c7976( + c__158c7976: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true158c7976( + c__158c7976: BytesLike, + overrides?: CallOverrides + ): Promise; + getBalances( accounts: string[], tokens: string[], @@ -124,6 +205,21 @@ export interface BalancesHelperV2 extends BaseContract { }; populateTransaction: { + c_158c7976( + c__158c7976: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false158c7976( + c__158c7976: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true158c7976( + c__158c7976: BytesLike, + overrides?: CallOverrides + ): Promise; + getBalances( accounts: string[], tokens: string[], diff --git a/typings/BlockLib.ts b/typings/BlockLib.ts index 88d44417..1ec58335 100644 --- a/typings/BlockLib.ts +++ b/typings/BlockLib.ts @@ -16,31 +16,31 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface BlockLibInterface extends utils.Interface { functions: { - "c_f0eb5f6b(bytes8)": FunctionFragment; - "c_falsef0eb5f6b(bytes8)": FunctionFragment; - "c_truef0eb5f6b(bytes8)": FunctionFragment; + "c_078794b3(bytes8)": FunctionFragment; + "c_false078794b3(bytes8)": FunctionFragment; + "c_true078794b3(bytes8)": FunctionFragment; }; encodeFunctionData( - functionFragment: "c_f0eb5f6b", + functionFragment: "c_078794b3", values: [BytesLike] ): string; encodeFunctionData( - functionFragment: "c_falsef0eb5f6b", + functionFragment: "c_false078794b3", values: [BytesLike] ): string; encodeFunctionData( - functionFragment: "c_truef0eb5f6b", + functionFragment: "c_true078794b3", values: [BytesLike] ): string; - decodeFunctionResult(functionFragment: "c_f0eb5f6b", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_078794b3", data: BytesLike): Result; decodeFunctionResult( - functionFragment: "c_falsef0eb5f6b", + functionFragment: "c_false078794b3", data: BytesLike ): Result; decodeFunctionResult( - functionFragment: "c_truef0eb5f6b", + functionFragment: "c_true078794b3", data: BytesLike ): Result; @@ -74,47 +74,47 @@ export interface BlockLib extends BaseContract { removeListener: OnEvent; functions: { - c_f0eb5f6b( - c__f0eb5f6b: BytesLike, + c_078794b3( + c__078794b3: BytesLike, overrides?: CallOverrides ): Promise<[void]>; - c_falsef0eb5f6b( - c__f0eb5f6b: BytesLike, + c_false078794b3( + c__078794b3: BytesLike, overrides?: CallOverrides ): Promise<[boolean]>; - c_truef0eb5f6b( - c__f0eb5f6b: BytesLike, + c_true078794b3( + c__078794b3: BytesLike, overrides?: CallOverrides ): Promise<[boolean]>; }; - c_f0eb5f6b(c__f0eb5f6b: BytesLike, overrides?: CallOverrides): Promise; + c_078794b3(c__078794b3: BytesLike, overrides?: CallOverrides): Promise; - c_falsef0eb5f6b( - c__f0eb5f6b: BytesLike, + c_false078794b3( + c__078794b3: BytesLike, overrides?: CallOverrides ): Promise; - c_truef0eb5f6b( - c__f0eb5f6b: BytesLike, + c_true078794b3( + c__078794b3: BytesLike, overrides?: CallOverrides ): Promise; callStatic: { - c_f0eb5f6b( - c__f0eb5f6b: BytesLike, + c_078794b3( + c__078794b3: BytesLike, overrides?: CallOverrides ): Promise; - c_falsef0eb5f6b( - c__f0eb5f6b: BytesLike, + c_false078794b3( + c__078794b3: BytesLike, overrides?: CallOverrides ): Promise; - c_truef0eb5f6b( - c__f0eb5f6b: BytesLike, + c_true078794b3( + c__078794b3: BytesLike, overrides?: CallOverrides ): Promise; }; @@ -122,35 +122,35 @@ export interface BlockLib extends BaseContract { filters: {}; estimateGas: { - c_f0eb5f6b( - c__f0eb5f6b: BytesLike, + c_078794b3( + c__078794b3: BytesLike, overrides?: CallOverrides ): Promise; - c_falsef0eb5f6b( - c__f0eb5f6b: BytesLike, + c_false078794b3( + c__078794b3: BytesLike, overrides?: CallOverrides ): Promise; - c_truef0eb5f6b( - c__f0eb5f6b: BytesLike, + c_true078794b3( + c__078794b3: BytesLike, overrides?: CallOverrides ): Promise; }; populateTransaction: { - c_f0eb5f6b( - c__f0eb5f6b: BytesLike, + c_078794b3( + c__078794b3: BytesLike, overrides?: CallOverrides ): Promise; - c_falsef0eb5f6b( - c__f0eb5f6b: BytesLike, + c_false078794b3( + c__078794b3: BytesLike, overrides?: CallOverrides ): Promise; - c_truef0eb5f6b( - c__f0eb5f6b: BytesLike, + c_true078794b3( + c__078794b3: BytesLike, overrides?: CallOverrides ): Promise; }; diff --git a/typings/BytesLib.ts b/typings/BytesLib.ts index 5a16fe39..0b0a7304 100644 --- a/typings/BytesLib.ts +++ b/typings/BytesLib.ts @@ -16,31 +16,31 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface BytesLibInterface extends utils.Interface { functions: { - "c_cf01c64c(bytes8)": FunctionFragment; - "c_falsecf01c64c(bytes8)": FunctionFragment; - "c_truecf01c64c(bytes8)": FunctionFragment; + "c_2ad25a5a(bytes8)": FunctionFragment; + "c_false2ad25a5a(bytes8)": FunctionFragment; + "c_true2ad25a5a(bytes8)": FunctionFragment; }; encodeFunctionData( - functionFragment: "c_cf01c64c", + functionFragment: "c_2ad25a5a", values: [BytesLike] ): string; encodeFunctionData( - functionFragment: "c_falsecf01c64c", + functionFragment: "c_false2ad25a5a", values: [BytesLike] ): string; encodeFunctionData( - functionFragment: "c_truecf01c64c", + functionFragment: "c_true2ad25a5a", values: [BytesLike] ): string; - decodeFunctionResult(functionFragment: "c_cf01c64c", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_2ad25a5a", data: BytesLike): Result; decodeFunctionResult( - functionFragment: "c_falsecf01c64c", + functionFragment: "c_false2ad25a5a", data: BytesLike ): Result; decodeFunctionResult( - functionFragment: "c_truecf01c64c", + functionFragment: "c_true2ad25a5a", data: BytesLike ): Result; @@ -74,47 +74,47 @@ export interface BytesLib extends BaseContract { removeListener: OnEvent; functions: { - c_cf01c64c( - c__cf01c64c: BytesLike, + c_2ad25a5a( + c__2ad25a5a: BytesLike, overrides?: CallOverrides ): Promise<[void]>; - c_falsecf01c64c( - c__cf01c64c: BytesLike, + c_false2ad25a5a( + c__2ad25a5a: BytesLike, overrides?: CallOverrides ): Promise<[boolean]>; - c_truecf01c64c( - c__cf01c64c: BytesLike, + c_true2ad25a5a( + c__2ad25a5a: BytesLike, overrides?: CallOverrides ): Promise<[boolean]>; }; - c_cf01c64c(c__cf01c64c: BytesLike, overrides?: CallOverrides): Promise; + c_2ad25a5a(c__2ad25a5a: BytesLike, overrides?: CallOverrides): Promise; - c_falsecf01c64c( - c__cf01c64c: BytesLike, + c_false2ad25a5a( + c__2ad25a5a: BytesLike, overrides?: CallOverrides ): Promise; - c_truecf01c64c( - c__cf01c64c: BytesLike, + c_true2ad25a5a( + c__2ad25a5a: BytesLike, overrides?: CallOverrides ): Promise; callStatic: { - c_cf01c64c( - c__cf01c64c: BytesLike, + c_2ad25a5a( + c__2ad25a5a: BytesLike, overrides?: CallOverrides ): Promise; - c_falsecf01c64c( - c__cf01c64c: BytesLike, + c_false2ad25a5a( + c__2ad25a5a: BytesLike, overrides?: CallOverrides ): Promise; - c_truecf01c64c( - c__cf01c64c: BytesLike, + c_true2ad25a5a( + c__2ad25a5a: BytesLike, overrides?: CallOverrides ): Promise; }; @@ -122,35 +122,35 @@ export interface BytesLib extends BaseContract { filters: {}; estimateGas: { - c_cf01c64c( - c__cf01c64c: BytesLike, + c_2ad25a5a( + c__2ad25a5a: BytesLike, overrides?: CallOverrides ): Promise; - c_falsecf01c64c( - c__cf01c64c: BytesLike, + c_false2ad25a5a( + c__2ad25a5a: BytesLike, overrides?: CallOverrides ): Promise; - c_truecf01c64c( - c__cf01c64c: BytesLike, + c_true2ad25a5a( + c__2ad25a5a: BytesLike, overrides?: CallOverrides ): Promise; }; populateTransaction: { - c_cf01c64c( - c__cf01c64c: BytesLike, + c_2ad25a5a( + c__2ad25a5a: BytesLike, overrides?: CallOverrides ): Promise; - c_falsecf01c64c( - c__cf01c64c: BytesLike, + c_false2ad25a5a( + c__2ad25a5a: BytesLike, overrides?: CallOverrides ): Promise; - c_truecf01c64c( - c__cf01c64c: BytesLike, + c_true2ad25a5a( + c__2ad25a5a: BytesLike, overrides?: CallOverrides ): Promise; }; diff --git a/typings/CBridgeFacet.ts b/typings/CBridgeFacet.ts index d32b17ca..0d72c586 100644 --- a/typings/CBridgeFacet.ts +++ b/typings/CBridgeFacet.ts @@ -42,12 +42,42 @@ export type CBridgeDataStructOutput = [ export interface CBridgeFacetInterface extends utils.Interface { functions: { + "c_82a0834b(bytes8)": FunctionFragment; + "c_9296fc39(bytes8)": FunctionFragment; + "c_false82a0834b(bytes8)": FunctionFragment; + "c_false9296fc39(bytes8)": FunctionFragment; + "c_true82a0834b(bytes8)": FunctionFragment; + "c_true9296fc39(bytes8)": FunctionFragment; "cbBridgeTokens((uint64,uint64,uint256,address,address))": FunctionFragment; "cbInitialize(address)": FunctionFragment; "cbUpdateBridge(address)": FunctionFragment; "cbUpdateSlippageTolerance(uint32)": FunctionFragment; }; + encodeFunctionData( + functionFragment: "c_82a0834b", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_9296fc39", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false82a0834b", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false9296fc39", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true82a0834b", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true9296fc39", + values: [BytesLike] + ): string; encodeFunctionData( functionFragment: "cbBridgeTokens", values: [CBridgeDataStruct] @@ -65,6 +95,24 @@ export interface CBridgeFacetInterface extends utils.Interface { values: [BigNumberish] ): string; + decodeFunctionResult(functionFragment: "c_82a0834b", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_9296fc39", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false82a0834b", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_false9296fc39", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true82a0834b", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true9296fc39", + data: BytesLike + ): Result; decodeFunctionResult( functionFragment: "cbBridgeTokens", data: BytesLike @@ -156,6 +204,36 @@ export interface CBridgeFacet extends BaseContract { removeListener: OnEvent; functions: { + c_82a0834b( + c__82a0834b: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false82a0834b( + c__82a0834b: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_false9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true82a0834b( + c__82a0834b: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + cbBridgeTokens( _cbData: CBridgeDataStruct, overrides?: PayableOverrides & { from?: string | Promise } @@ -177,6 +255,30 @@ export interface CBridgeFacet extends BaseContract { ): Promise; }; + c_82a0834b(c__82a0834b: BytesLike, overrides?: CallOverrides): Promise; + + c_9296fc39(c__9296fc39: BytesLike, overrides?: CallOverrides): Promise; + + c_false82a0834b( + c__82a0834b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true82a0834b( + c__82a0834b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + cbBridgeTokens( _cbData: CBridgeDataStruct, overrides?: PayableOverrides & { from?: string | Promise } @@ -198,6 +300,36 @@ export interface CBridgeFacet extends BaseContract { ): Promise; callStatic: { + c_82a0834b( + c__82a0834b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false82a0834b( + c__82a0834b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true82a0834b( + c__82a0834b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + cbBridgeTokens( _cbData: CBridgeDataStruct, overrides?: CallOverrides @@ -252,6 +384,36 @@ export interface CBridgeFacet extends BaseContract { }; estimateGas: { + c_82a0834b( + c__82a0834b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false82a0834b( + c__82a0834b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true82a0834b( + c__82a0834b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + cbBridgeTokens( _cbData: CBridgeDataStruct, overrides?: PayableOverrides & { from?: string | Promise } @@ -274,6 +436,36 @@ export interface CBridgeFacet extends BaseContract { }; populateTransaction: { + c_82a0834b( + c__82a0834b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false82a0834b( + c__82a0834b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true82a0834b( + c__82a0834b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + cbBridgeTokens( _cbData: CBridgeDataStruct, overrides?: PayableOverrides & { from?: string | Promise } diff --git a/typings/ConnextFacet.ts b/typings/ConnextFacet.ts index a98dc022..32604b8e 100644 --- a/typings/ConnextFacet.ts +++ b/typings/ConnextFacet.ts @@ -20,11 +20,26 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface ConnextFacetInterface extends utils.Interface { functions: { + "c_4f0a9270(bytes8)": FunctionFragment; + "c_false4f0a9270(bytes8)": FunctionFragment; + "c_true4f0a9270(bytes8)": FunctionFragment; "connextEthTransfer(address,uint256,address,uint32,uint256,uint256)": FunctionFragment; "connextTokenTransfer(address,uint256,address,uint32,uint256,uint256)": FunctionFragment; "initConnext(address,uint32,address)": FunctionFragment; }; + encodeFunctionData( + functionFragment: "c_4f0a9270", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false4f0a9270", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true4f0a9270", + values: [BytesLike] + ): string; encodeFunctionData( functionFragment: "connextEthTransfer", values: [ @@ -52,6 +67,15 @@ export interface ConnextFacetInterface extends utils.Interface { values: [string, BigNumberish, string] ): string; + decodeFunctionResult(functionFragment: "c_4f0a9270", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false4f0a9270", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true4f0a9270", + data: BytesLike + ): Result; decodeFunctionResult( functionFragment: "connextEthTransfer", data: BytesLike @@ -139,6 +163,21 @@ export interface ConnextFacet extends BaseContract { removeListener: OnEvent; functions: { + c_4f0a9270( + c__4f0a9270: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false4f0a9270( + c__4f0a9270: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true4f0a9270( + c__4f0a9270: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + connextEthTransfer( _destinationUnwrapper: string, _amount: BigNumberish, @@ -167,6 +206,18 @@ export interface ConnextFacet extends BaseContract { ): Promise; }; + c_4f0a9270(c__4f0a9270: BytesLike, overrides?: CallOverrides): Promise; + + c_false4f0a9270( + c__4f0a9270: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true4f0a9270( + c__4f0a9270: BytesLike, + overrides?: CallOverrides + ): Promise; + connextEthTransfer( _destinationUnwrapper: string, _amount: BigNumberish, @@ -195,6 +246,21 @@ export interface ConnextFacet extends BaseContract { ): Promise; callStatic: { + c_4f0a9270( + c__4f0a9270: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false4f0a9270( + c__4f0a9270: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true4f0a9270( + c__4f0a9270: BytesLike, + overrides?: CallOverrides + ): Promise; + connextEthTransfer( _destinationUnwrapper: string, _amount: BigNumberish, @@ -269,6 +335,21 @@ export interface ConnextFacet extends BaseContract { }; estimateGas: { + c_4f0a9270( + c__4f0a9270: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false4f0a9270( + c__4f0a9270: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true4f0a9270( + c__4f0a9270: BytesLike, + overrides?: CallOverrides + ): Promise; + connextEthTransfer( _destinationUnwrapper: string, _amount: BigNumberish, @@ -298,6 +379,21 @@ export interface ConnextFacet extends BaseContract { }; populateTransaction: { + c_4f0a9270( + c__4f0a9270: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false4f0a9270( + c__4f0a9270: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true4f0a9270( + c__4f0a9270: BytesLike, + overrides?: CallOverrides + ): Promise; + connextEthTransfer( _destinationUnwrapper: string, _amount: BigNumberish, diff --git a/typings/Constants.ts b/typings/Constants.ts deleted file mode 100644 index a22efae3..00000000 --- a/typings/Constants.ts +++ /dev/null @@ -1,549 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - BaseContract, - BigNumber, - BytesLike, - CallOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import { FunctionFragment, Result } from "@ethersproject/abi"; -import { Listener, Provider } from "@ethersproject/providers"; -import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; - -export interface ConstantsInterface extends utils.Interface { - functions: { - "AAVE_REFERRAL_CODE()": FunctionFragment; - "A_PRECISION()": FunctionFragment; - "BPS_FEE_DENOMINATOR()": FunctionFragment; - "DEFAULT_COPY_BYTES()": FunctionFragment; - "DEFAULT_DEADLINE_EXTENSION()": FunctionFragment; - "DEFAULT_NORMALIZED_DECIMALS()": FunctionFragment; - "EXECUTE_CALLDATA_RESERVE_GAS()": FunctionFragment; - "FEE_DENOMINATOR()": FunctionFragment; - "FUTURE_TIME_BUFFER()": FunctionFragment; - "GOVERNANCE_DELAY()": FunctionFragment; - "INITIAL_AAVE_REFERRAL_CODE()": FunctionFragment; - "INITIAL_LIQUIDITY_FEE_NUMERATOR()": FunctionFragment; - "INITIAL_MAX_ROUTERS()": FunctionFragment; - "MAXIMUM_POOLED_TOKENS()": FunctionFragment; - "MAX_A()": FunctionFragment; - "MAX_ADMIN_FEE()": FunctionFragment; - "MAX_A_CHANGE()": FunctionFragment; - "MAX_LOOP_LIMIT()": FunctionFragment; - "MAX_SWAP_FEE()": FunctionFragment; - "MINIMUM_POOLED_TOKENS()": FunctionFragment; - "MIN_RAMP_DELAY()": FunctionFragment; - "MIN_RAMP_TIME()": FunctionFragment; - "ORACLE_VALID_PERIOD()": FunctionFragment; - "POOL_PRECISION_DECIMALS()": FunctionFragment; - }; - - encodeFunctionData( - functionFragment: "AAVE_REFERRAL_CODE", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "A_PRECISION", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "BPS_FEE_DENOMINATOR", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "DEFAULT_COPY_BYTES", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "DEFAULT_DEADLINE_EXTENSION", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "DEFAULT_NORMALIZED_DECIMALS", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "EXECUTE_CALLDATA_RESERVE_GAS", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "FEE_DENOMINATOR", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "FUTURE_TIME_BUFFER", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "GOVERNANCE_DELAY", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "INITIAL_AAVE_REFERRAL_CODE", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "INITIAL_LIQUIDITY_FEE_NUMERATOR", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "INITIAL_MAX_ROUTERS", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "MAXIMUM_POOLED_TOKENS", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "MAX_A", values?: undefined): string; - encodeFunctionData( - functionFragment: "MAX_ADMIN_FEE", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "MAX_A_CHANGE", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "MAX_LOOP_LIMIT", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "MAX_SWAP_FEE", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "MINIMUM_POOLED_TOKENS", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "MIN_RAMP_DELAY", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "MIN_RAMP_TIME", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "ORACLE_VALID_PERIOD", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "POOL_PRECISION_DECIMALS", - values?: undefined - ): string; - - decodeFunctionResult( - functionFragment: "AAVE_REFERRAL_CODE", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "A_PRECISION", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "BPS_FEE_DENOMINATOR", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "DEFAULT_COPY_BYTES", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "DEFAULT_DEADLINE_EXTENSION", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "DEFAULT_NORMALIZED_DECIMALS", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "EXECUTE_CALLDATA_RESERVE_GAS", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "FEE_DENOMINATOR", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "FUTURE_TIME_BUFFER", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "GOVERNANCE_DELAY", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "INITIAL_AAVE_REFERRAL_CODE", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "INITIAL_LIQUIDITY_FEE_NUMERATOR", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "INITIAL_MAX_ROUTERS", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "MAXIMUM_POOLED_TOKENS", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "MAX_A", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "MAX_ADMIN_FEE", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "MAX_A_CHANGE", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "MAX_LOOP_LIMIT", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "MAX_SWAP_FEE", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "MINIMUM_POOLED_TOKENS", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "MIN_RAMP_DELAY", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "MIN_RAMP_TIME", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "ORACLE_VALID_PERIOD", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "POOL_PRECISION_DECIMALS", - data: BytesLike - ): Result; - - events: {}; -} - -export interface Constants extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: ConstantsInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - AAVE_REFERRAL_CODE(overrides?: CallOverrides): Promise<[number]>; - - A_PRECISION(overrides?: CallOverrides): Promise<[BigNumber]>; - - BPS_FEE_DENOMINATOR(overrides?: CallOverrides): Promise<[BigNumber]>; - - DEFAULT_COPY_BYTES(overrides?: CallOverrides): Promise<[number]>; - - DEFAULT_DEADLINE_EXTENSION(overrides?: CallOverrides): Promise<[BigNumber]>; - - DEFAULT_NORMALIZED_DECIMALS(overrides?: CallOverrides): Promise<[number]>; - - EXECUTE_CALLDATA_RESERVE_GAS( - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - FEE_DENOMINATOR(overrides?: CallOverrides): Promise<[BigNumber]>; - - FUTURE_TIME_BUFFER(overrides?: CallOverrides): Promise<[BigNumber]>; - - GOVERNANCE_DELAY(overrides?: CallOverrides): Promise<[BigNumber]>; - - INITIAL_AAVE_REFERRAL_CODE(overrides?: CallOverrides): Promise<[number]>; - - INITIAL_LIQUIDITY_FEE_NUMERATOR( - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - INITIAL_MAX_ROUTERS(overrides?: CallOverrides): Promise<[BigNumber]>; - - MAXIMUM_POOLED_TOKENS(overrides?: CallOverrides): Promise<[BigNumber]>; - - MAX_A(overrides?: CallOverrides): Promise<[BigNumber]>; - - MAX_ADMIN_FEE(overrides?: CallOverrides): Promise<[BigNumber]>; - - MAX_A_CHANGE(overrides?: CallOverrides): Promise<[BigNumber]>; - - MAX_LOOP_LIMIT(overrides?: CallOverrides): Promise<[BigNumber]>; - - MAX_SWAP_FEE(overrides?: CallOverrides): Promise<[BigNumber]>; - - MINIMUM_POOLED_TOKENS(overrides?: CallOverrides): Promise<[BigNumber]>; - - MIN_RAMP_DELAY(overrides?: CallOverrides): Promise<[BigNumber]>; - - MIN_RAMP_TIME(overrides?: CallOverrides): Promise<[BigNumber]>; - - ORACLE_VALID_PERIOD(overrides?: CallOverrides): Promise<[BigNumber]>; - - POOL_PRECISION_DECIMALS(overrides?: CallOverrides): Promise<[number]>; - }; - - AAVE_REFERRAL_CODE(overrides?: CallOverrides): Promise; - - A_PRECISION(overrides?: CallOverrides): Promise; - - BPS_FEE_DENOMINATOR(overrides?: CallOverrides): Promise; - - DEFAULT_COPY_BYTES(overrides?: CallOverrides): Promise; - - DEFAULT_DEADLINE_EXTENSION(overrides?: CallOverrides): Promise; - - DEFAULT_NORMALIZED_DECIMALS(overrides?: CallOverrides): Promise; - - EXECUTE_CALLDATA_RESERVE_GAS(overrides?: CallOverrides): Promise; - - FEE_DENOMINATOR(overrides?: CallOverrides): Promise; - - FUTURE_TIME_BUFFER(overrides?: CallOverrides): Promise; - - GOVERNANCE_DELAY(overrides?: CallOverrides): Promise; - - INITIAL_AAVE_REFERRAL_CODE(overrides?: CallOverrides): Promise; - - INITIAL_LIQUIDITY_FEE_NUMERATOR( - overrides?: CallOverrides - ): Promise; - - INITIAL_MAX_ROUTERS(overrides?: CallOverrides): Promise; - - MAXIMUM_POOLED_TOKENS(overrides?: CallOverrides): Promise; - - MAX_A(overrides?: CallOverrides): Promise; - - MAX_ADMIN_FEE(overrides?: CallOverrides): Promise; - - MAX_A_CHANGE(overrides?: CallOverrides): Promise; - - MAX_LOOP_LIMIT(overrides?: CallOverrides): Promise; - - MAX_SWAP_FEE(overrides?: CallOverrides): Promise; - - MINIMUM_POOLED_TOKENS(overrides?: CallOverrides): Promise; - - MIN_RAMP_DELAY(overrides?: CallOverrides): Promise; - - MIN_RAMP_TIME(overrides?: CallOverrides): Promise; - - ORACLE_VALID_PERIOD(overrides?: CallOverrides): Promise; - - POOL_PRECISION_DECIMALS(overrides?: CallOverrides): Promise; - - callStatic: { - AAVE_REFERRAL_CODE(overrides?: CallOverrides): Promise; - - A_PRECISION(overrides?: CallOverrides): Promise; - - BPS_FEE_DENOMINATOR(overrides?: CallOverrides): Promise; - - DEFAULT_COPY_BYTES(overrides?: CallOverrides): Promise; - - DEFAULT_DEADLINE_EXTENSION(overrides?: CallOverrides): Promise; - - DEFAULT_NORMALIZED_DECIMALS(overrides?: CallOverrides): Promise; - - EXECUTE_CALLDATA_RESERVE_GAS(overrides?: CallOverrides): Promise; - - FEE_DENOMINATOR(overrides?: CallOverrides): Promise; - - FUTURE_TIME_BUFFER(overrides?: CallOverrides): Promise; - - GOVERNANCE_DELAY(overrides?: CallOverrides): Promise; - - INITIAL_AAVE_REFERRAL_CODE(overrides?: CallOverrides): Promise; - - INITIAL_LIQUIDITY_FEE_NUMERATOR( - overrides?: CallOverrides - ): Promise; - - INITIAL_MAX_ROUTERS(overrides?: CallOverrides): Promise; - - MAXIMUM_POOLED_TOKENS(overrides?: CallOverrides): Promise; - - MAX_A(overrides?: CallOverrides): Promise; - - MAX_ADMIN_FEE(overrides?: CallOverrides): Promise; - - MAX_A_CHANGE(overrides?: CallOverrides): Promise; - - MAX_LOOP_LIMIT(overrides?: CallOverrides): Promise; - - MAX_SWAP_FEE(overrides?: CallOverrides): Promise; - - MINIMUM_POOLED_TOKENS(overrides?: CallOverrides): Promise; - - MIN_RAMP_DELAY(overrides?: CallOverrides): Promise; - - MIN_RAMP_TIME(overrides?: CallOverrides): Promise; - - ORACLE_VALID_PERIOD(overrides?: CallOverrides): Promise; - - POOL_PRECISION_DECIMALS(overrides?: CallOverrides): Promise; - }; - - filters: {}; - - estimateGas: { - AAVE_REFERRAL_CODE(overrides?: CallOverrides): Promise; - - A_PRECISION(overrides?: CallOverrides): Promise; - - BPS_FEE_DENOMINATOR(overrides?: CallOverrides): Promise; - - DEFAULT_COPY_BYTES(overrides?: CallOverrides): Promise; - - DEFAULT_DEADLINE_EXTENSION(overrides?: CallOverrides): Promise; - - DEFAULT_NORMALIZED_DECIMALS(overrides?: CallOverrides): Promise; - - EXECUTE_CALLDATA_RESERVE_GAS(overrides?: CallOverrides): Promise; - - FEE_DENOMINATOR(overrides?: CallOverrides): Promise; - - FUTURE_TIME_BUFFER(overrides?: CallOverrides): Promise; - - GOVERNANCE_DELAY(overrides?: CallOverrides): Promise; - - INITIAL_AAVE_REFERRAL_CODE(overrides?: CallOverrides): Promise; - - INITIAL_LIQUIDITY_FEE_NUMERATOR( - overrides?: CallOverrides - ): Promise; - - INITIAL_MAX_ROUTERS(overrides?: CallOverrides): Promise; - - MAXIMUM_POOLED_TOKENS(overrides?: CallOverrides): Promise; - - MAX_A(overrides?: CallOverrides): Promise; - - MAX_ADMIN_FEE(overrides?: CallOverrides): Promise; - - MAX_A_CHANGE(overrides?: CallOverrides): Promise; - - MAX_LOOP_LIMIT(overrides?: CallOverrides): Promise; - - MAX_SWAP_FEE(overrides?: CallOverrides): Promise; - - MINIMUM_POOLED_TOKENS(overrides?: CallOverrides): Promise; - - MIN_RAMP_DELAY(overrides?: CallOverrides): Promise; - - MIN_RAMP_TIME(overrides?: CallOverrides): Promise; - - ORACLE_VALID_PERIOD(overrides?: CallOverrides): Promise; - - POOL_PRECISION_DECIMALS(overrides?: CallOverrides): Promise; - }; - - populateTransaction: { - AAVE_REFERRAL_CODE( - overrides?: CallOverrides - ): Promise; - - A_PRECISION(overrides?: CallOverrides): Promise; - - BPS_FEE_DENOMINATOR( - overrides?: CallOverrides - ): Promise; - - DEFAULT_COPY_BYTES( - overrides?: CallOverrides - ): Promise; - - DEFAULT_DEADLINE_EXTENSION( - overrides?: CallOverrides - ): Promise; - - DEFAULT_NORMALIZED_DECIMALS( - overrides?: CallOverrides - ): Promise; - - EXECUTE_CALLDATA_RESERVE_GAS( - overrides?: CallOverrides - ): Promise; - - FEE_DENOMINATOR(overrides?: CallOverrides): Promise; - - FUTURE_TIME_BUFFER( - overrides?: CallOverrides - ): Promise; - - GOVERNANCE_DELAY(overrides?: CallOverrides): Promise; - - INITIAL_AAVE_REFERRAL_CODE( - overrides?: CallOverrides - ): Promise; - - INITIAL_LIQUIDITY_FEE_NUMERATOR( - overrides?: CallOverrides - ): Promise; - - INITIAL_MAX_ROUTERS( - overrides?: CallOverrides - ): Promise; - - MAXIMUM_POOLED_TOKENS( - overrides?: CallOverrides - ): Promise; - - MAX_A(overrides?: CallOverrides): Promise; - - MAX_ADMIN_FEE(overrides?: CallOverrides): Promise; - - MAX_A_CHANGE(overrides?: CallOverrides): Promise; - - MAX_LOOP_LIMIT(overrides?: CallOverrides): Promise; - - MAX_SWAP_FEE(overrides?: CallOverrides): Promise; - - MINIMUM_POOLED_TOKENS( - overrides?: CallOverrides - ): Promise; - - MIN_RAMP_DELAY(overrides?: CallOverrides): Promise; - - MIN_RAMP_TIME(overrides?: CallOverrides): Promise; - - ORACLE_VALID_PERIOD( - overrides?: CallOverrides - ): Promise; - - POOL_PRECISION_DECIMALS( - overrides?: CallOverrides - ): Promise; - }; -} diff --git a/typings/ContextUpgradeable.ts b/typings/ContextUpgradeable.ts deleted file mode 100644 index 3cb79b3b..00000000 --- a/typings/ContextUpgradeable.ts +++ /dev/null @@ -1,61 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { BaseContract, Signer, utils } from "ethers"; -import { EventFragment } from "@ethersproject/abi"; -import { Listener, Provider } from "@ethersproject/providers"; -import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; - -export interface ContextUpgradeableInterface extends utils.Interface { - functions: {}; - - events: { - "Initialized(uint8)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; -} - -export type InitializedEvent = TypedEvent<[number], { version: number }>; - -export type InitializedEventFilter = TypedEventFilter; - -export interface ContextUpgradeable extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: ContextUpgradeableInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: {}; - - callStatic: {}; - - filters: { - "Initialized(uint8)"(version?: null): InitializedEventFilter; - Initialized(version?: null): InitializedEventFilter; - }; - - estimateGas: {}; - - populateTransaction: {}; -} diff --git a/typings/Controlled.ts b/typings/Controlled.ts index 5b53b60e..308a837d 100644 --- a/typings/Controlled.ts +++ b/typings/Controlled.ts @@ -16,14 +16,38 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface ControlledInterface extends utils.Interface { functions: { + "c_495bfa8b(bytes8)": FunctionFragment; + "c_false495bfa8b(bytes8)": FunctionFragment; + "c_true495bfa8b(bytes8)": FunctionFragment; "controller()": FunctionFragment; }; + encodeFunctionData( + functionFragment: "c_495bfa8b", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false495bfa8b", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true495bfa8b", + values: [BytesLike] + ): string; encodeFunctionData( functionFragment: "controller", values?: undefined ): string; + decodeFunctionResult(functionFragment: "c_495bfa8b", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false495bfa8b", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true495bfa8b", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "controller", data: BytesLike): Result; events: {}; @@ -56,22 +80,94 @@ export interface Controlled extends BaseContract { removeListener: OnEvent; functions: { + c_495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + controller(overrides?: CallOverrides): Promise<[string]>; }; + c_495bfa8b(c__495bfa8b: BytesLike, overrides?: CallOverrides): Promise; + + c_false495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise; + controller(overrides?: CallOverrides): Promise; callStatic: { + c_495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise; + controller(overrides?: CallOverrides): Promise; }; filters: {}; estimateGas: { + c_495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise; + controller(overrides?: CallOverrides): Promise; }; populateTransaction: { + c_495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise; + controller(overrides?: CallOverrides): Promise; }; } diff --git a/typings/Diamond.ts b/typings/Diamond.ts index cf73be69..6ac949ad 100644 --- a/typings/Diamond.ts +++ b/typings/Diamond.ts @@ -1,13 +1,48 @@ /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ -import { BaseContract, Signer, utils } from "ethers"; - +import { + BaseContract, + BigNumber, + BytesLike, + CallOverrides, + PopulatedTransaction, + Signer, + utils, +} from "ethers"; +import { FunctionFragment, Result } from "@ethersproject/abi"; import { Listener, Provider } from "@ethersproject/providers"; import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface DiamondInterface extends utils.Interface { - functions: {}; + functions: { + "c_e3a4c27e(bytes8)": FunctionFragment; + "c_falsee3a4c27e(bytes8)": FunctionFragment; + "c_truee3a4c27e(bytes8)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "c_e3a4c27e", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_falsee3a4c27e", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_truee3a4c27e", + values: [BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "c_e3a4c27e", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_falsee3a4c27e", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_truee3a4c27e", + data: BytesLike + ): Result; events: {}; } @@ -38,13 +73,85 @@ export interface Diamond extends BaseContract { once: OnEvent; removeListener: OnEvent; - functions: {}; + functions: { + c_e3a4c27e( + c__e3a4c27e: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_falsee3a4c27e( + c__e3a4c27e: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_truee3a4c27e( + c__e3a4c27e: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + }; + + c_e3a4c27e(c__e3a4c27e: BytesLike, overrides?: CallOverrides): Promise; + + c_falsee3a4c27e( + c__e3a4c27e: BytesLike, + overrides?: CallOverrides + ): Promise; - callStatic: {}; + c_truee3a4c27e( + c__e3a4c27e: BytesLike, + overrides?: CallOverrides + ): Promise; + + callStatic: { + c_e3a4c27e( + c__e3a4c27e: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsee3a4c27e( + c__e3a4c27e: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truee3a4c27e( + c__e3a4c27e: BytesLike, + overrides?: CallOverrides + ): Promise; + }; filters: {}; - estimateGas: {}; + estimateGas: { + c_e3a4c27e( + c__e3a4c27e: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsee3a4c27e( + c__e3a4c27e: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truee3a4c27e( + c__e3a4c27e: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + c_e3a4c27e( + c__e3a4c27e: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsee3a4c27e( + c__e3a4c27e: BytesLike, + overrides?: CallOverrides + ): Promise; - populateTransaction: {}; + c_truee3a4c27e( + c__e3a4c27e: BytesLike, + overrides?: CallOverrides + ): Promise; + }; } diff --git a/typings/DiamondCutFacet.ts b/typings/DiamondCutFacet.ts index 4535a609..9021e960 100644 --- a/typings/DiamondCutFacet.ts +++ b/typings/DiamondCutFacet.ts @@ -31,14 +31,38 @@ export type FacetCutStructOutput = [string, number, string[]] & { export interface DiamondCutFacetInterface extends utils.Interface { functions: { + "c_e238b7d9(bytes8)": FunctionFragment; + "c_falsee238b7d9(bytes8)": FunctionFragment; + "c_truee238b7d9(bytes8)": FunctionFragment; "diamondCut((address,uint8,bytes4[])[],address,bytes)": FunctionFragment; }; + encodeFunctionData( + functionFragment: "c_e238b7d9", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_falsee238b7d9", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_truee238b7d9", + values: [BytesLike] + ): string; encodeFunctionData( functionFragment: "diamondCut", values: [FacetCutStruct[], string, BytesLike] ): string; + decodeFunctionResult(functionFragment: "c_e238b7d9", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_falsee238b7d9", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_truee238b7d9", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "diamondCut", data: BytesLike): Result; events: { @@ -82,6 +106,21 @@ export interface DiamondCutFacet extends BaseContract { removeListener: OnEvent; functions: { + c_e238b7d9( + c__e238b7d9: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_falsee238b7d9( + c__e238b7d9: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_truee238b7d9( + c__e238b7d9: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + diamondCut( _diamondCut: FacetCutStruct[], _init: string, @@ -90,6 +129,18 @@ export interface DiamondCutFacet extends BaseContract { ): Promise; }; + c_e238b7d9(c__e238b7d9: BytesLike, overrides?: CallOverrides): Promise; + + c_falsee238b7d9( + c__e238b7d9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truee238b7d9( + c__e238b7d9: BytesLike, + overrides?: CallOverrides + ): Promise; + diamondCut( _diamondCut: FacetCutStruct[], _init: string, @@ -98,6 +149,21 @@ export interface DiamondCutFacet extends BaseContract { ): Promise; callStatic: { + c_e238b7d9( + c__e238b7d9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsee238b7d9( + c__e238b7d9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truee238b7d9( + c__e238b7d9: BytesLike, + overrides?: CallOverrides + ): Promise; + diamondCut( _diamondCut: FacetCutStruct[], _init: string, @@ -120,6 +186,21 @@ export interface DiamondCutFacet extends BaseContract { }; estimateGas: { + c_e238b7d9( + c__e238b7d9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsee238b7d9( + c__e238b7d9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truee238b7d9( + c__e238b7d9: BytesLike, + overrides?: CallOverrides + ): Promise; + diamondCut( _diamondCut: FacetCutStruct[], _init: string, @@ -129,6 +210,21 @@ export interface DiamondCutFacet extends BaseContract { }; populateTransaction: { + c_e238b7d9( + c__e238b7d9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsee238b7d9( + c__e238b7d9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truee238b7d9( + c__e238b7d9: BytesLike, + overrides?: CallOverrides + ): Promise; + diamondCut( _diamondCut: FacetCutStruct[], _init: string, diff --git a/typings/DiamondLoupeFacet.ts b/typings/DiamondLoupeFacet.ts index d41fe343..7021c62e 100644 --- a/typings/DiamondLoupeFacet.ts +++ b/typings/DiamondLoupeFacet.ts @@ -26,6 +26,9 @@ export type FacetStructOutput = [string, string[]] & { export interface DiamondLoupeFacetInterface extends utils.Interface { functions: { + "c_cb71d28d(bytes8)": FunctionFragment; + "c_falsecb71d28d(bytes8)": FunctionFragment; + "c_truecb71d28d(bytes8)": FunctionFragment; "facetAddress(bytes4)": FunctionFragment; "facetAddresses()": FunctionFragment; "facetFunctionSelectors(address)": FunctionFragment; @@ -33,6 +36,18 @@ export interface DiamondLoupeFacetInterface extends utils.Interface { "supportsInterface(bytes4)": FunctionFragment; }; + encodeFunctionData( + functionFragment: "c_cb71d28d", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_falsecb71d28d", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_truecb71d28d", + values: [BytesLike] + ): string; encodeFunctionData( functionFragment: "facetAddress", values: [BytesLike] @@ -51,6 +66,15 @@ export interface DiamondLoupeFacetInterface extends utils.Interface { values: [BytesLike] ): string; + decodeFunctionResult(functionFragment: "c_cb71d28d", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_falsecb71d28d", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_truecb71d28d", + data: BytesLike + ): Result; decodeFunctionResult( functionFragment: "facetAddress", data: BytesLike @@ -99,6 +123,21 @@ export interface DiamondLoupeFacet extends BaseContract { removeListener: OnEvent; functions: { + c_cb71d28d( + c__cb71d28d: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_falsecb71d28d( + c__cb71d28d: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_truecb71d28d( + c__cb71d28d: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + facetAddress( _functionSelector: BytesLike, overrides?: CallOverrides @@ -123,6 +162,18 @@ export interface DiamondLoupeFacet extends BaseContract { ): Promise<[boolean]>; }; + c_cb71d28d(c__cb71d28d: BytesLike, overrides?: CallOverrides): Promise; + + c_falsecb71d28d( + c__cb71d28d: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truecb71d28d( + c__cb71d28d: BytesLike, + overrides?: CallOverrides + ): Promise; + facetAddress( _functionSelector: BytesLike, overrides?: CallOverrides @@ -143,6 +194,21 @@ export interface DiamondLoupeFacet extends BaseContract { ): Promise; callStatic: { + c_cb71d28d( + c__cb71d28d: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsecb71d28d( + c__cb71d28d: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truecb71d28d( + c__cb71d28d: BytesLike, + overrides?: CallOverrides + ): Promise; + facetAddress( _functionSelector: BytesLike, overrides?: CallOverrides @@ -166,6 +232,21 @@ export interface DiamondLoupeFacet extends BaseContract { filters: {}; estimateGas: { + c_cb71d28d( + c__cb71d28d: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsecb71d28d( + c__cb71d28d: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truecb71d28d( + c__cb71d28d: BytesLike, + overrides?: CallOverrides + ): Promise; + facetAddress( _functionSelector: BytesLike, overrides?: CallOverrides @@ -187,6 +268,21 @@ export interface DiamondLoupeFacet extends BaseContract { }; populateTransaction: { + c_cb71d28d( + c__cb71d28d: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsecb71d28d( + c__cb71d28d: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truecb71d28d( + c__cb71d28d: BytesLike, + overrides?: CallOverrides + ): Promise; + facetAddress( _functionSelector: BytesLike, overrides?: CallOverrides diff --git a/typings/ECDSAExtendedLib.ts b/typings/ECDSAExtendedLib.ts index 78628162..633531a3 100644 --- a/typings/ECDSAExtendedLib.ts +++ b/typings/ECDSAExtendedLib.ts @@ -16,31 +16,31 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface ECDSAExtendedLibInterface extends utils.Interface { functions: { - "c_29f5519d(bytes8)": FunctionFragment; - "c_false29f5519d(bytes8)": FunctionFragment; - "c_true29f5519d(bytes8)": FunctionFragment; + "c_edf8bcf6(bytes8)": FunctionFragment; + "c_falseedf8bcf6(bytes8)": FunctionFragment; + "c_trueedf8bcf6(bytes8)": FunctionFragment; }; encodeFunctionData( - functionFragment: "c_29f5519d", + functionFragment: "c_edf8bcf6", values: [BytesLike] ): string; encodeFunctionData( - functionFragment: "c_false29f5519d", + functionFragment: "c_falseedf8bcf6", values: [BytesLike] ): string; encodeFunctionData( - functionFragment: "c_true29f5519d", + functionFragment: "c_trueedf8bcf6", values: [BytesLike] ): string; - decodeFunctionResult(functionFragment: "c_29f5519d", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_edf8bcf6", data: BytesLike): Result; decodeFunctionResult( - functionFragment: "c_false29f5519d", + functionFragment: "c_falseedf8bcf6", data: BytesLike ): Result; decodeFunctionResult( - functionFragment: "c_true29f5519d", + functionFragment: "c_trueedf8bcf6", data: BytesLike ): Result; @@ -74,47 +74,47 @@ export interface ECDSAExtendedLib extends BaseContract { removeListener: OnEvent; functions: { - c_29f5519d( - c__29f5519d: BytesLike, + c_edf8bcf6( + c__edf8bcf6: BytesLike, overrides?: CallOverrides ): Promise<[void]>; - c_false29f5519d( - c__29f5519d: BytesLike, + c_falseedf8bcf6( + c__edf8bcf6: BytesLike, overrides?: CallOverrides ): Promise<[boolean]>; - c_true29f5519d( - c__29f5519d: BytesLike, + c_trueedf8bcf6( + c__edf8bcf6: BytesLike, overrides?: CallOverrides ): Promise<[boolean]>; }; - c_29f5519d(c__29f5519d: BytesLike, overrides?: CallOverrides): Promise; + c_edf8bcf6(c__edf8bcf6: BytesLike, overrides?: CallOverrides): Promise; - c_false29f5519d( - c__29f5519d: BytesLike, + c_falseedf8bcf6( + c__edf8bcf6: BytesLike, overrides?: CallOverrides ): Promise; - c_true29f5519d( - c__29f5519d: BytesLike, + c_trueedf8bcf6( + c__edf8bcf6: BytesLike, overrides?: CallOverrides ): Promise; callStatic: { - c_29f5519d( - c__29f5519d: BytesLike, + c_edf8bcf6( + c__edf8bcf6: BytesLike, overrides?: CallOverrides ): Promise; - c_false29f5519d( - c__29f5519d: BytesLike, + c_falseedf8bcf6( + c__edf8bcf6: BytesLike, overrides?: CallOverrides ): Promise; - c_true29f5519d( - c__29f5519d: BytesLike, + c_trueedf8bcf6( + c__edf8bcf6: BytesLike, overrides?: CallOverrides ): Promise; }; @@ -122,35 +122,35 @@ export interface ECDSAExtendedLib extends BaseContract { filters: {}; estimateGas: { - c_29f5519d( - c__29f5519d: BytesLike, + c_edf8bcf6( + c__edf8bcf6: BytesLike, overrides?: CallOverrides ): Promise; - c_false29f5519d( - c__29f5519d: BytesLike, + c_falseedf8bcf6( + c__edf8bcf6: BytesLike, overrides?: CallOverrides ): Promise; - c_true29f5519d( - c__29f5519d: BytesLike, + c_trueedf8bcf6( + c__edf8bcf6: BytesLike, overrides?: CallOverrides ): Promise; }; populateTransaction: { - c_29f5519d( - c__29f5519d: BytesLike, + c_edf8bcf6( + c__edf8bcf6: BytesLike, overrides?: CallOverrides ): Promise; - c_false29f5519d( - c__29f5519d: BytesLike, + c_falseedf8bcf6( + c__edf8bcf6: BytesLike, overrides?: CallOverrides ): Promise; - c_true29f5519d( - c__29f5519d: BytesLike, + c_trueedf8bcf6( + c__edf8bcf6: BytesLike, overrides?: CallOverrides ): Promise; }; diff --git a/typings/ECDSALib.ts b/typings/ECDSALib.ts index bde751df..d045ea61 100644 --- a/typings/ECDSALib.ts +++ b/typings/ECDSALib.ts @@ -16,31 +16,31 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface ECDSALibInterface extends utils.Interface { functions: { - "c_099dd06c(bytes8)": FunctionFragment; - "c_false099dd06c(bytes8)": FunctionFragment; - "c_true099dd06c(bytes8)": FunctionFragment; + "c_02f9a6b3(bytes8)": FunctionFragment; + "c_false02f9a6b3(bytes8)": FunctionFragment; + "c_true02f9a6b3(bytes8)": FunctionFragment; }; encodeFunctionData( - functionFragment: "c_099dd06c", + functionFragment: "c_02f9a6b3", values: [BytesLike] ): string; encodeFunctionData( - functionFragment: "c_false099dd06c", + functionFragment: "c_false02f9a6b3", values: [BytesLike] ): string; encodeFunctionData( - functionFragment: "c_true099dd06c", + functionFragment: "c_true02f9a6b3", values: [BytesLike] ): string; - decodeFunctionResult(functionFragment: "c_099dd06c", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_02f9a6b3", data: BytesLike): Result; decodeFunctionResult( - functionFragment: "c_false099dd06c", + functionFragment: "c_false02f9a6b3", data: BytesLike ): Result; decodeFunctionResult( - functionFragment: "c_true099dd06c", + functionFragment: "c_true02f9a6b3", data: BytesLike ): Result; @@ -74,47 +74,47 @@ export interface ECDSALib extends BaseContract { removeListener: OnEvent; functions: { - c_099dd06c( - c__099dd06c: BytesLike, + c_02f9a6b3( + c__02f9a6b3: BytesLike, overrides?: CallOverrides ): Promise<[void]>; - c_false099dd06c( - c__099dd06c: BytesLike, + c_false02f9a6b3( + c__02f9a6b3: BytesLike, overrides?: CallOverrides ): Promise<[boolean]>; - c_true099dd06c( - c__099dd06c: BytesLike, + c_true02f9a6b3( + c__02f9a6b3: BytesLike, overrides?: CallOverrides ): Promise<[boolean]>; }; - c_099dd06c(c__099dd06c: BytesLike, overrides?: CallOverrides): Promise; + c_02f9a6b3(c__02f9a6b3: BytesLike, overrides?: CallOverrides): Promise; - c_false099dd06c( - c__099dd06c: BytesLike, + c_false02f9a6b3( + c__02f9a6b3: BytesLike, overrides?: CallOverrides ): Promise; - c_true099dd06c( - c__099dd06c: BytesLike, + c_true02f9a6b3( + c__02f9a6b3: BytesLike, overrides?: CallOverrides ): Promise; callStatic: { - c_099dd06c( - c__099dd06c: BytesLike, + c_02f9a6b3( + c__02f9a6b3: BytesLike, overrides?: CallOverrides ): Promise; - c_false099dd06c( - c__099dd06c: BytesLike, + c_false02f9a6b3( + c__02f9a6b3: BytesLike, overrides?: CallOverrides ): Promise; - c_true099dd06c( - c__099dd06c: BytesLike, + c_true02f9a6b3( + c__02f9a6b3: BytesLike, overrides?: CallOverrides ): Promise; }; @@ -122,35 +122,35 @@ export interface ECDSALib extends BaseContract { filters: {}; estimateGas: { - c_099dd06c( - c__099dd06c: BytesLike, + c_02f9a6b3( + c__02f9a6b3: BytesLike, overrides?: CallOverrides ): Promise; - c_false099dd06c( - c__099dd06c: BytesLike, + c_false02f9a6b3( + c__02f9a6b3: BytesLike, overrides?: CallOverrides ): Promise; - c_true099dd06c( - c__099dd06c: BytesLike, + c_true02f9a6b3( + c__02f9a6b3: BytesLike, overrides?: CallOverrides ): Promise; }; populateTransaction: { - c_099dd06c( - c__099dd06c: BytesLike, + c_02f9a6b3( + c__02f9a6b3: BytesLike, overrides?: CallOverrides ): Promise; - c_false099dd06c( - c__099dd06c: BytesLike, + c_false02f9a6b3( + c__02f9a6b3: BytesLike, overrides?: CallOverrides ): Promise; - c_true099dd06c( - c__099dd06c: BytesLike, + c_true02f9a6b3( + c__02f9a6b3: BytesLike, overrides?: CallOverrides ): Promise; }; diff --git a/typings/ENSAbstractResolver.ts b/typings/ENSAbstractResolver.ts index 53dcab4f..7f22ee6a 100644 --- a/typings/ENSAbstractResolver.ts +++ b/typings/ENSAbstractResolver.ts @@ -16,31 +16,31 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface ENSAbstractResolverInterface extends utils.Interface { functions: { - "c_8e2129aa(bytes8)": FunctionFragment; - "c_false8e2129aa(bytes8)": FunctionFragment; - "c_true8e2129aa(bytes8)": FunctionFragment; + "c_f395fef5(bytes8)": FunctionFragment; + "c_falsef395fef5(bytes8)": FunctionFragment; + "c_truef395fef5(bytes8)": FunctionFragment; }; encodeFunctionData( - functionFragment: "c_8e2129aa", + functionFragment: "c_f395fef5", values: [BytesLike] ): string; encodeFunctionData( - functionFragment: "c_false8e2129aa", + functionFragment: "c_falsef395fef5", values: [BytesLike] ): string; encodeFunctionData( - functionFragment: "c_true8e2129aa", + functionFragment: "c_truef395fef5", values: [BytesLike] ): string; - decodeFunctionResult(functionFragment: "c_8e2129aa", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_f395fef5", data: BytesLike): Result; decodeFunctionResult( - functionFragment: "c_false8e2129aa", + functionFragment: "c_falsef395fef5", data: BytesLike ): Result; decodeFunctionResult( - functionFragment: "c_true8e2129aa", + functionFragment: "c_truef395fef5", data: BytesLike ): Result; @@ -74,47 +74,47 @@ export interface ENSAbstractResolver extends BaseContract { removeListener: OnEvent; functions: { - c_8e2129aa( - c__8e2129aa: BytesLike, + c_f395fef5( + c__f395fef5: BytesLike, overrides?: CallOverrides ): Promise<[void]>; - c_false8e2129aa( - c__8e2129aa: BytesLike, + c_falsef395fef5( + c__f395fef5: BytesLike, overrides?: CallOverrides ): Promise<[boolean]>; - c_true8e2129aa( - c__8e2129aa: BytesLike, + c_truef395fef5( + c__f395fef5: BytesLike, overrides?: CallOverrides ): Promise<[boolean]>; }; - c_8e2129aa(c__8e2129aa: BytesLike, overrides?: CallOverrides): Promise; + c_f395fef5(c__f395fef5: BytesLike, overrides?: CallOverrides): Promise; - c_false8e2129aa( - c__8e2129aa: BytesLike, + c_falsef395fef5( + c__f395fef5: BytesLike, overrides?: CallOverrides ): Promise; - c_true8e2129aa( - c__8e2129aa: BytesLike, + c_truef395fef5( + c__f395fef5: BytesLike, overrides?: CallOverrides ): Promise; callStatic: { - c_8e2129aa( - c__8e2129aa: BytesLike, + c_f395fef5( + c__f395fef5: BytesLike, overrides?: CallOverrides ): Promise; - c_false8e2129aa( - c__8e2129aa: BytesLike, + c_falsef395fef5( + c__f395fef5: BytesLike, overrides?: CallOverrides ): Promise; - c_true8e2129aa( - c__8e2129aa: BytesLike, + c_truef395fef5( + c__f395fef5: BytesLike, overrides?: CallOverrides ): Promise; }; @@ -122,35 +122,35 @@ export interface ENSAbstractResolver extends BaseContract { filters: {}; estimateGas: { - c_8e2129aa( - c__8e2129aa: BytesLike, + c_f395fef5( + c__f395fef5: BytesLike, overrides?: CallOverrides ): Promise; - c_false8e2129aa( - c__8e2129aa: BytesLike, + c_falsef395fef5( + c__f395fef5: BytesLike, overrides?: CallOverrides ): Promise; - c_true8e2129aa( - c__8e2129aa: BytesLike, + c_truef395fef5( + c__f395fef5: BytesLike, overrides?: CallOverrides ): Promise; }; populateTransaction: { - c_8e2129aa( - c__8e2129aa: BytesLike, + c_f395fef5( + c__f395fef5: BytesLike, overrides?: CallOverrides ): Promise; - c_false8e2129aa( - c__8e2129aa: BytesLike, + c_falsef395fef5( + c__f395fef5: BytesLike, overrides?: CallOverrides ): Promise; - c_true8e2129aa( - c__8e2129aa: BytesLike, + c_truef395fef5( + c__f395fef5: BytesLike, overrides?: CallOverrides ): Promise; }; diff --git a/typings/ENSAddressResolver.ts b/typings/ENSAddressResolver.ts index 0a129202..64507c62 100644 --- a/typings/ENSAddressResolver.ts +++ b/typings/ENSAddressResolver.ts @@ -20,16 +20,64 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface ENSAddressResolverInterface extends utils.Interface { functions: { "addr(bytes32)": FunctionFragment; + "c_3f206a34(bytes8)": FunctionFragment; + "c_f395fef5(bytes8)": FunctionFragment; + "c_false3f206a34(bytes8)": FunctionFragment; + "c_falsef395fef5(bytes8)": FunctionFragment; + "c_true3f206a34(bytes8)": FunctionFragment; + "c_truef395fef5(bytes8)": FunctionFragment; "setAddr(bytes32,uint256,bytes)": FunctionFragment; }; encodeFunctionData(functionFragment: "addr", values: [BytesLike]): string; + encodeFunctionData( + functionFragment: "c_3f206a34", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_f395fef5", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false3f206a34", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_falsef395fef5", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true3f206a34", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_truef395fef5", + values: [BytesLike] + ): string; encodeFunctionData( functionFragment: "setAddr", values: [BytesLike, BigNumberish, BytesLike] ): string; decodeFunctionResult(functionFragment: "addr", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_3f206a34", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_f395fef5", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false3f206a34", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_falsef395fef5", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true3f206a34", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_truef395fef5", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "setAddr", data: BytesLike): Result; events: { @@ -93,6 +141,36 @@ export interface ENSAddressResolver extends BaseContract { overrides?: CallOverrides ): Promise<[string]>; + c_3f206a34( + c__3f206a34: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_f395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false3f206a34( + c__3f206a34: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_falsef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true3f206a34( + c__3f206a34: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_truef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + "setAddr(bytes32,uint256,bytes)"( node: BytesLike, coinType: BigNumberish, @@ -115,6 +193,30 @@ export interface ENSAddressResolver extends BaseContract { overrides?: CallOverrides ): Promise; + c_3f206a34(c__3f206a34: BytesLike, overrides?: CallOverrides): Promise; + + c_f395fef5(c__f395fef5: BytesLike, overrides?: CallOverrides): Promise; + + c_false3f206a34( + c__3f206a34: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true3f206a34( + c__3f206a34: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + "setAddr(bytes32,uint256,bytes)"( node: BytesLike, coinType: BigNumberish, @@ -140,6 +242,36 @@ export interface ENSAddressResolver extends BaseContract { overrides?: CallOverrides ): Promise; + c_3f206a34( + c__3f206a34: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_f395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false3f206a34( + c__3f206a34: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true3f206a34( + c__3f206a34: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + "setAddr(bytes32,uint256,bytes)"( node: BytesLike, coinType: BigNumberish, @@ -185,6 +317,36 @@ export interface ENSAddressResolver extends BaseContract { overrides?: CallOverrides ): Promise; + c_3f206a34( + c__3f206a34: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_f395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false3f206a34( + c__3f206a34: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true3f206a34( + c__3f206a34: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + "setAddr(bytes32,uint256,bytes)"( node: BytesLike, coinType: BigNumberish, @@ -211,6 +373,36 @@ export interface ENSAddressResolver extends BaseContract { overrides?: CallOverrides ): Promise; + c_3f206a34( + c__3f206a34: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_f395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false3f206a34( + c__3f206a34: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true3f206a34( + c__3f206a34: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + "setAddr(bytes32,uint256,bytes)"( node: BytesLike, coinType: BigNumberish, diff --git a/typings/ENSController.ts b/typings/ENSController.ts index f846d824..14859a88 100644 --- a/typings/ENSController.ts +++ b/typings/ENSController.ts @@ -33,6 +33,36 @@ export interface ENSControllerInterface extends utils.Interface { functions: { "addGuardian(address)": FunctionFragment; "addr(bytes32)": FunctionFragment; + "c_098c0657(bytes8)": FunctionFragment; + "c_0b6945c4(bytes8)": FunctionFragment; + "c_3f206a34(bytes8)": FunctionFragment; + "c_52615ca8(bytes8)": FunctionFragment; + "c_633abef9(bytes8)": FunctionFragment; + "c_6f06df17(bytes8)": FunctionFragment; + "c_7ffc1d72(bytes8)": FunctionFragment; + "c_8aa9670c(bytes8)": FunctionFragment; + "c_d18be0f9(bytes8)": FunctionFragment; + "c_f395fef5(bytes8)": FunctionFragment; + "c_false098c0657(bytes8)": FunctionFragment; + "c_false0b6945c4(bytes8)": FunctionFragment; + "c_false3f206a34(bytes8)": FunctionFragment; + "c_false52615ca8(bytes8)": FunctionFragment; + "c_false633abef9(bytes8)": FunctionFragment; + "c_false6f06df17(bytes8)": FunctionFragment; + "c_false7ffc1d72(bytes8)": FunctionFragment; + "c_false8aa9670c(bytes8)": FunctionFragment; + "c_falsed18be0f9(bytes8)": FunctionFragment; + "c_falsef395fef5(bytes8)": FunctionFragment; + "c_true098c0657(bytes8)": FunctionFragment; + "c_true0b6945c4(bytes8)": FunctionFragment; + "c_true3f206a34(bytes8)": FunctionFragment; + "c_true52615ca8(bytes8)": FunctionFragment; + "c_true633abef9(bytes8)": FunctionFragment; + "c_true6f06df17(bytes8)": FunctionFragment; + "c_true7ffc1d72(bytes8)": FunctionFragment; + "c_true8aa9670c(bytes8)": FunctionFragment; + "c_trued18be0f9(bytes8)": FunctionFragment; + "c_truef395fef5(bytes8)": FunctionFragment; "chainId()": FunctionFragment; "gateway()": FunctionFragment; "hashSubNodeRegistration((address,bytes32,bytes32))": FunctionFragment; @@ -61,6 +91,126 @@ export interface ENSControllerInterface extends utils.Interface { encodeFunctionData(functionFragment: "addGuardian", values: [string]): string; encodeFunctionData(functionFragment: "addr", values: [BytesLike]): string; + encodeFunctionData( + functionFragment: "c_098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_0b6945c4", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_3f206a34", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_52615ca8", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_633abef9", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_6f06df17", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_7ffc1d72", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_8aa9670c", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_d18be0f9", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_f395fef5", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false0b6945c4", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false3f206a34", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false52615ca8", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false633abef9", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false6f06df17", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false7ffc1d72", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false8aa9670c", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_falsed18be0f9", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_falsef395fef5", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true0b6945c4", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true3f206a34", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true52615ca8", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true633abef9", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true6f06df17", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true7ffc1d72", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true8aa9670c", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_trued18be0f9", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_truef395fef5", + values: [BytesLike] + ): string; encodeFunctionData(functionFragment: "chainId", values?: undefined): string; encodeFunctionData(functionFragment: "gateway", values?: undefined): string; encodeFunctionData( @@ -139,6 +289,96 @@ export interface ENSControllerInterface extends utils.Interface { data: BytesLike ): Result; decodeFunctionResult(functionFragment: "addr", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_098c0657", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_0b6945c4", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_3f206a34", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_52615ca8", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_633abef9", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_6f06df17", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_7ffc1d72", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_8aa9670c", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_d18be0f9", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_f395fef5", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false098c0657", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_false0b6945c4", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_false3f206a34", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_false52615ca8", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_false633abef9", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_false6f06df17", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_false7ffc1d72", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_false8aa9670c", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_falsed18be0f9", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_falsef395fef5", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true098c0657", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true0b6945c4", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true3f206a34", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true52615ca8", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true633abef9", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true6f06df17", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true7ffc1d72", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true8aa9670c", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_trued18be0f9", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_truef395fef5", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "chainId", data: BytesLike): Result; decodeFunctionResult(functionFragment: "gateway", data: BytesLike): Result; decodeFunctionResult( @@ -335,6 +575,156 @@ export interface ENSController extends BaseContract { overrides?: CallOverrides ): Promise<[string]>; + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_3f206a34( + c__3f206a34: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_633abef9( + c__633abef9: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_6f06df17( + c__6f06df17: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_7ffc1d72( + c__7ffc1d72: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_8aa9670c( + c__8aa9670c: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_d18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_f395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_false0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_false3f206a34( + c__3f206a34: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_false52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_false633abef9( + c__633abef9: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_false6f06df17( + c__6f06df17: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_false7ffc1d72( + c__7ffc1d72: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_false8aa9670c( + c__8aa9670c: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_falsed18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_falsef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true3f206a34( + c__3f206a34: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true633abef9( + c__633abef9: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true6f06df17( + c__6f06df17: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true7ffc1d72( + c__7ffc1d72: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true8aa9670c( + c__8aa9670c: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_trued18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_truef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + chainId(overrides?: CallOverrides): Promise<[BigNumber]>; gateway(overrides?: CallOverrides): Promise<[string]>; @@ -467,41 +857,161 @@ export interface ENSController extends BaseContract { overrides?: CallOverrides ): Promise; - chainId(overrides?: CallOverrides): Promise; + c_098c0657(c__098c0657: BytesLike, overrides?: CallOverrides): Promise; - gateway(overrides?: CallOverrides): Promise; + c_0b6945c4(c__0b6945c4: BytesLike, overrides?: CallOverrides): Promise; - hashSubNodeRegistration( - subNodeRegistration: SubNodeRegistrationStruct, - overrides?: CallOverrides - ): Promise; + c_3f206a34(c__3f206a34: BytesLike, overrides?: CallOverrides): Promise; - initialize( - registry_: string, - guardians_: string[], - gateway_: string, - overrides?: Overrides & { from?: string | Promise } - ): Promise; + c_52615ca8(c__52615ca8: BytesLike, overrides?: CallOverrides): Promise; - isGuardian(guardian: string, overrides?: CallOverrides): Promise; + c_633abef9(c__633abef9: BytesLike, overrides?: CallOverrides): Promise; - isInitialized(overrides?: CallOverrides): Promise; + c_6f06df17(c__6f06df17: BytesLike, overrides?: CallOverrides): Promise; - name(node: BytesLike, overrides?: CallOverrides): Promise; + c_7ffc1d72(c__7ffc1d72: BytesLike, overrides?: CallOverrides): Promise; - nodeOwners(arg0: BytesLike, overrides?: CallOverrides): Promise; + c_8aa9670c(c__8aa9670c: BytesLike, overrides?: CallOverrides): Promise; - pubkey( - node: BytesLike, - overrides?: CallOverrides - ): Promise<[string, string] & { x: string; y: string }>; + c_d18be0f9(c__d18be0f9: BytesLike, overrides?: CallOverrides): Promise; - registerSubNode( - node: BytesLike, - label: BytesLike, - guardianSignature: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; + c_f395fef5(c__f395fef5: BytesLike, overrides?: CallOverrides): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false3f206a34( + c__3f206a34: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false633abef9( + c__633abef9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false6f06df17( + c__6f06df17: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false7ffc1d72( + c__7ffc1d72: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false8aa9670c( + c__8aa9670c: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsed18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true3f206a34( + c__3f206a34: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true633abef9( + c__633abef9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true6f06df17( + c__6f06df17: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true7ffc1d72( + c__7ffc1d72: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true8aa9670c( + c__8aa9670c: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trued18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + chainId(overrides?: CallOverrides): Promise; + + gateway(overrides?: CallOverrides): Promise; + + hashSubNodeRegistration( + subNodeRegistration: SubNodeRegistrationStruct, + overrides?: CallOverrides + ): Promise; + + initialize( + registry_: string, + guardians_: string[], + gateway_: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + isGuardian(guardian: string, overrides?: CallOverrides): Promise; + + isInitialized(overrides?: CallOverrides): Promise; + + name(node: BytesLike, overrides?: CallOverrides): Promise; + + nodeOwners(arg0: BytesLike, overrides?: CallOverrides): Promise; + + pubkey( + node: BytesLike, + overrides?: CallOverrides + ): Promise<[string, string] & { x: string; y: string }>; + + registerSubNode( + node: BytesLike, + label: BytesLike, + guardianSignature: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; registry(overrides?: CallOverrides): Promise; @@ -599,6 +1109,156 @@ export interface ENSController extends BaseContract { overrides?: CallOverrides ): Promise; + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_3f206a34( + c__3f206a34: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_633abef9( + c__633abef9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_6f06df17( + c__6f06df17: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_7ffc1d72( + c__7ffc1d72: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_8aa9670c( + c__8aa9670c: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_d18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_f395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false3f206a34( + c__3f206a34: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false633abef9( + c__633abef9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false6f06df17( + c__6f06df17: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false7ffc1d72( + c__7ffc1d72: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false8aa9670c( + c__8aa9670c: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsed18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true3f206a34( + c__3f206a34: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true633abef9( + c__633abef9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true6f06df17( + c__6f06df17: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true7ffc1d72( + c__7ffc1d72: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true8aa9670c( + c__8aa9670c: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trued18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + chainId(overrides?: CallOverrides): Promise; gateway(overrides?: CallOverrides): Promise; @@ -797,6 +1457,156 @@ export interface ENSController extends BaseContract { overrides?: CallOverrides ): Promise; + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_3f206a34( + c__3f206a34: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_633abef9( + c__633abef9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_6f06df17( + c__6f06df17: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_7ffc1d72( + c__7ffc1d72: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_8aa9670c( + c__8aa9670c: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_d18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_f395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false3f206a34( + c__3f206a34: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false633abef9( + c__633abef9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false6f06df17( + c__6f06df17: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false7ffc1d72( + c__7ffc1d72: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false8aa9670c( + c__8aa9670c: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsed18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true3f206a34( + c__3f206a34: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true633abef9( + c__633abef9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true6f06df17( + c__6f06df17: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true7ffc1d72( + c__7ffc1d72: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true8aa9670c( + c__8aa9670c: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trued18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + chainId(overrides?: CallOverrides): Promise; gateway(overrides?: CallOverrides): Promise; @@ -930,6 +1740,156 @@ export interface ENSController extends BaseContract { overrides?: CallOverrides ): Promise; + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_3f206a34( + c__3f206a34: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_633abef9( + c__633abef9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_6f06df17( + c__6f06df17: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_7ffc1d72( + c__7ffc1d72: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_8aa9670c( + c__8aa9670c: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_d18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_f395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false3f206a34( + c__3f206a34: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false633abef9( + c__633abef9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false6f06df17( + c__6f06df17: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false7ffc1d72( + c__7ffc1d72: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false8aa9670c( + c__8aa9670c: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsed18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true3f206a34( + c__3f206a34: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true633abef9( + c__633abef9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true6f06df17( + c__6f06df17: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true7ffc1d72( + c__7ffc1d72: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true8aa9670c( + c__8aa9670c: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trued18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + chainId(overrides?: CallOverrides): Promise; gateway(overrides?: CallOverrides): Promise; diff --git a/typings/ENSHelper.ts b/typings/ENSHelper.ts index 54a41fae..8a8618de 100644 --- a/typings/ENSHelper.ts +++ b/typings/ENSHelper.ts @@ -18,6 +18,12 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface ENSHelperInterface extends utils.Interface { functions: { + "c_098c0657(bytes8)": FunctionFragment; + "c_5c42e10b(bytes8)": FunctionFragment; + "c_false098c0657(bytes8)": FunctionFragment; + "c_false5c42e10b(bytes8)": FunctionFragment; + "c_true098c0657(bytes8)": FunctionFragment; + "c_true5c42e10b(bytes8)": FunctionFragment; "getAddresses(bytes32[])": FunctionFragment; "getNames(bytes32[])": FunctionFragment; "initialize(address)": FunctionFragment; @@ -25,6 +31,30 @@ export interface ENSHelperInterface extends utils.Interface { "registry()": FunctionFragment; }; + encodeFunctionData( + functionFragment: "c_098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_5c42e10b", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false5c42e10b", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true5c42e10b", + values: [BytesLike] + ): string; encodeFunctionData( functionFragment: "getAddresses", values: [BytesLike[]] @@ -40,6 +70,24 @@ export interface ENSHelperInterface extends utils.Interface { ): string; encodeFunctionData(functionFragment: "registry", values?: undefined): string; + decodeFunctionResult(functionFragment: "c_098c0657", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_5c42e10b", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false098c0657", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_false5c42e10b", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true098c0657", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true5c42e10b", + data: BytesLike + ): Result; decodeFunctionResult( functionFragment: "getAddresses", data: BytesLike @@ -90,6 +138,36 @@ export interface ENSHelper extends BaseContract { removeListener: OnEvent; functions: { + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_5c42e10b( + c__5c42e10b: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_false5c42e10b( + c__5c42e10b: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true5c42e10b( + c__5c42e10b: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + getAddresses( nodes: BytesLike[], overrides?: CallOverrides @@ -110,6 +188,30 @@ export interface ENSHelper extends BaseContract { registry(overrides?: CallOverrides): Promise<[string]>; }; + c_098c0657(c__098c0657: BytesLike, overrides?: CallOverrides): Promise; + + c_5c42e10b(c__5c42e10b: BytesLike, overrides?: CallOverrides): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false5c42e10b( + c__5c42e10b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true5c42e10b( + c__5c42e10b: BytesLike, + overrides?: CallOverrides + ): Promise; + getAddresses( nodes: BytesLike[], overrides?: CallOverrides @@ -127,6 +229,36 @@ export interface ENSHelper extends BaseContract { registry(overrides?: CallOverrides): Promise; callStatic: { + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_5c42e10b( + c__5c42e10b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false5c42e10b( + c__5c42e10b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true5c42e10b( + c__5c42e10b: BytesLike, + overrides?: CallOverrides + ): Promise; + getAddresses( nodes: BytesLike[], overrides?: CallOverrides @@ -147,6 +279,36 @@ export interface ENSHelper extends BaseContract { }; estimateGas: { + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_5c42e10b( + c__5c42e10b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false5c42e10b( + c__5c42e10b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true5c42e10b( + c__5c42e10b: BytesLike, + overrides?: CallOverrides + ): Promise; + getAddresses( nodes: BytesLike[], overrides?: CallOverrides @@ -165,6 +327,36 @@ export interface ENSHelper extends BaseContract { }; populateTransaction: { + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_5c42e10b( + c__5c42e10b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false5c42e10b( + c__5c42e10b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true5c42e10b( + c__5c42e10b: BytesLike, + overrides?: CallOverrides + ): Promise; + getAddresses( nodes: BytesLike[], overrides?: CallOverrides diff --git a/typings/ENSNameResolver.ts b/typings/ENSNameResolver.ts index 8681ea09..348aed22 100644 --- a/typings/ENSNameResolver.ts +++ b/typings/ENSNameResolver.ts @@ -18,16 +18,64 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface ENSNameResolverInterface extends utils.Interface { functions: { + "c_6f06df17(bytes8)": FunctionFragment; + "c_f395fef5(bytes8)": FunctionFragment; + "c_false6f06df17(bytes8)": FunctionFragment; + "c_falsef395fef5(bytes8)": FunctionFragment; + "c_true6f06df17(bytes8)": FunctionFragment; + "c_truef395fef5(bytes8)": FunctionFragment; "name(bytes32)": FunctionFragment; "setName(bytes32,string)": FunctionFragment; }; + encodeFunctionData( + functionFragment: "c_6f06df17", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_f395fef5", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false6f06df17", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_falsef395fef5", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true6f06df17", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_truef395fef5", + values: [BytesLike] + ): string; encodeFunctionData(functionFragment: "name", values: [BytesLike]): string; encodeFunctionData( functionFragment: "setName", values: [BytesLike, string] ): string; + decodeFunctionResult(functionFragment: "c_6f06df17", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_f395fef5", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false6f06df17", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_falsef395fef5", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true6f06df17", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_truef395fef5", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setName", data: BytesLike): Result; @@ -72,6 +120,36 @@ export interface ENSNameResolver extends BaseContract { removeListener: OnEvent; functions: { + c_6f06df17( + c__6f06df17: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_f395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false6f06df17( + c__6f06df17: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_falsef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true6f06df17( + c__6f06df17: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_truef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + name(node: BytesLike, overrides?: CallOverrides): Promise<[string]>; setName( @@ -81,6 +159,30 @@ export interface ENSNameResolver extends BaseContract { ): Promise; }; + c_6f06df17(c__6f06df17: BytesLike, overrides?: CallOverrides): Promise; + + c_f395fef5(c__f395fef5: BytesLike, overrides?: CallOverrides): Promise; + + c_false6f06df17( + c__6f06df17: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true6f06df17( + c__6f06df17: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + name(node: BytesLike, overrides?: CallOverrides): Promise; setName( @@ -90,6 +192,36 @@ export interface ENSNameResolver extends BaseContract { ): Promise; callStatic: { + c_6f06df17( + c__6f06df17: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_f395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false6f06df17( + c__6f06df17: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true6f06df17( + c__6f06df17: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + name(node: BytesLike, overrides?: CallOverrides): Promise; setName( @@ -108,6 +240,36 @@ export interface ENSNameResolver extends BaseContract { }; estimateGas: { + c_6f06df17( + c__6f06df17: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_f395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false6f06df17( + c__6f06df17: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true6f06df17( + c__6f06df17: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + name(node: BytesLike, overrides?: CallOverrides): Promise; setName( @@ -118,6 +280,36 @@ export interface ENSNameResolver extends BaseContract { }; populateTransaction: { + c_6f06df17( + c__6f06df17: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_f395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false6f06df17( + c__6f06df17: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true6f06df17( + c__6f06df17: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + name( node: BytesLike, overrides?: CallOverrides diff --git a/typings/ENSPubKeyResolver.ts b/typings/ENSPubKeyResolver.ts index 717fedc4..4b0ff7ac 100644 --- a/typings/ENSPubKeyResolver.ts +++ b/typings/ENSPubKeyResolver.ts @@ -18,16 +18,64 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface ENSPubKeyResolverInterface extends utils.Interface { functions: { + "c_633abef9(bytes8)": FunctionFragment; + "c_f395fef5(bytes8)": FunctionFragment; + "c_false633abef9(bytes8)": FunctionFragment; + "c_falsef395fef5(bytes8)": FunctionFragment; + "c_true633abef9(bytes8)": FunctionFragment; + "c_truef395fef5(bytes8)": FunctionFragment; "pubkey(bytes32)": FunctionFragment; "setPubkey(bytes32,bytes32,bytes32)": FunctionFragment; }; + encodeFunctionData( + functionFragment: "c_633abef9", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_f395fef5", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false633abef9", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_falsef395fef5", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true633abef9", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_truef395fef5", + values: [BytesLike] + ): string; encodeFunctionData(functionFragment: "pubkey", values: [BytesLike]): string; encodeFunctionData( functionFragment: "setPubkey", values: [BytesLike, BytesLike, BytesLike] ): string; + decodeFunctionResult(functionFragment: "c_633abef9", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_f395fef5", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false633abef9", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_falsef395fef5", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true633abef9", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_truef395fef5", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "pubkey", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setPubkey", data: BytesLike): Result; @@ -72,6 +120,36 @@ export interface ENSPubKeyResolver extends BaseContract { removeListener: OnEvent; functions: { + c_633abef9( + c__633abef9: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_f395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false633abef9( + c__633abef9: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_falsef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true633abef9( + c__633abef9: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_truef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + pubkey( node: BytesLike, overrides?: CallOverrides @@ -85,6 +163,30 @@ export interface ENSPubKeyResolver extends BaseContract { ): Promise; }; + c_633abef9(c__633abef9: BytesLike, overrides?: CallOverrides): Promise; + + c_f395fef5(c__f395fef5: BytesLike, overrides?: CallOverrides): Promise; + + c_false633abef9( + c__633abef9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true633abef9( + c__633abef9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + pubkey( node: BytesLike, overrides?: CallOverrides @@ -98,6 +200,36 @@ export interface ENSPubKeyResolver extends BaseContract { ): Promise; callStatic: { + c_633abef9( + c__633abef9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_f395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false633abef9( + c__633abef9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true633abef9( + c__633abef9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + pubkey( node: BytesLike, overrides?: CallOverrides @@ -125,6 +257,36 @@ export interface ENSPubKeyResolver extends BaseContract { }; estimateGas: { + c_633abef9( + c__633abef9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_f395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false633abef9( + c__633abef9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true633abef9( + c__633abef9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + pubkey(node: BytesLike, overrides?: CallOverrides): Promise; setPubkey( @@ -136,6 +298,36 @@ export interface ENSPubKeyResolver extends BaseContract { }; populateTransaction: { + c_633abef9( + c__633abef9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_f395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false633abef9( + c__633abef9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true633abef9( + c__633abef9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + pubkey( node: BytesLike, overrides?: CallOverrides diff --git a/typings/ENSRegistry.ts b/typings/ENSRegistry.ts index a70a9878..2f84422e 100644 --- a/typings/ENSRegistry.ts +++ b/typings/ENSRegistry.ts @@ -19,6 +19,9 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface ENSRegistryInterface extends utils.Interface { functions: { + "c_d1f32b86(bytes8)": FunctionFragment; + "c_falsed1f32b86(bytes8)": FunctionFragment; + "c_trued1f32b86(bytes8)": FunctionFragment; "isApprovedForAll(address,address)": FunctionFragment; "owner(bytes32)": FunctionFragment; "recordExists(bytes32)": FunctionFragment; @@ -33,6 +36,18 @@ export interface ENSRegistryInterface extends utils.Interface { "ttl(bytes32)": FunctionFragment; }; + encodeFunctionData( + functionFragment: "c_d1f32b86", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_falsed1f32b86", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_trued1f32b86", + values: [BytesLike] + ): string; encodeFunctionData( functionFragment: "isApprovedForAll", values: [string, string] @@ -73,6 +88,15 @@ export interface ENSRegistryInterface extends utils.Interface { ): string; encodeFunctionData(functionFragment: "ttl", values: [BytesLike]): string; + decodeFunctionResult(functionFragment: "c_d1f32b86", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_falsed1f32b86", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_trued1f32b86", + data: BytesLike + ): Result; decodeFunctionResult( functionFragment: "isApprovedForAll", data: BytesLike @@ -181,6 +205,21 @@ export interface ENSRegistry extends BaseContract { removeListener: OnEvent; functions: { + c_d1f32b86( + c__d1f32b86: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_falsed1f32b86( + c__d1f32b86: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_trued1f32b86( + c__d1f32b86: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + isApprovedForAll( owner_: string, operator: string, @@ -247,6 +286,18 @@ export interface ENSRegistry extends BaseContract { ttl(node: BytesLike, overrides?: CallOverrides): Promise<[BigNumber]>; }; + c_d1f32b86(c__d1f32b86: BytesLike, overrides?: CallOverrides): Promise; + + c_falsed1f32b86( + c__d1f32b86: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trued1f32b86( + c__d1f32b86: BytesLike, + overrides?: CallOverrides + ): Promise; + isApprovedForAll( owner_: string, operator: string, @@ -310,6 +361,21 @@ export interface ENSRegistry extends BaseContract { ttl(node: BytesLike, overrides?: CallOverrides): Promise; callStatic: { + c_d1f32b86( + c__d1f32b86: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsed1f32b86( + c__d1f32b86: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trued1f32b86( + c__d1f32b86: BytesLike, + overrides?: CallOverrides + ): Promise; + isApprovedForAll( owner_: string, operator: string, @@ -419,6 +485,21 @@ export interface ENSRegistry extends BaseContract { }; estimateGas: { + c_d1f32b86( + c__d1f32b86: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsed1f32b86( + c__d1f32b86: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trued1f32b86( + c__d1f32b86: BytesLike, + overrides?: CallOverrides + ): Promise; + isApprovedForAll( owner_: string, operator: string, @@ -486,6 +567,21 @@ export interface ENSRegistry extends BaseContract { }; populateTransaction: { + c_d1f32b86( + c__d1f32b86: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsed1f32b86( + c__d1f32b86: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trued1f32b86( + c__d1f32b86: BytesLike, + overrides?: CallOverrides + ): Promise; + isApprovedForAll( owner_: string, operator: string, diff --git a/typings/ENSReverseRegistrar.ts b/typings/ENSReverseRegistrar.ts index 22952c8a..264f9fd4 100644 --- a/typings/ENSReverseRegistrar.ts +++ b/typings/ENSReverseRegistrar.ts @@ -19,6 +19,12 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface ENSReverseRegistrarInterface extends utils.Interface { functions: { "ADDR_REVERSE_NODE()": FunctionFragment; + "c_098c0657(bytes8)": FunctionFragment; + "c_c9f97d2d(bytes8)": FunctionFragment; + "c_false098c0657(bytes8)": FunctionFragment; + "c_falsec9f97d2d(bytes8)": FunctionFragment; + "c_true098c0657(bytes8)": FunctionFragment; + "c_truec9f97d2d(bytes8)": FunctionFragment; "claim(address)": FunctionFragment; "claimWithResolver(address,address)": FunctionFragment; "initialize(address,address)": FunctionFragment; @@ -33,6 +39,30 @@ export interface ENSReverseRegistrarInterface extends utils.Interface { functionFragment: "ADDR_REVERSE_NODE", values?: undefined ): string; + encodeFunctionData( + functionFragment: "c_098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_c9f97d2d", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_falsec9f97d2d", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_truec9f97d2d", + values: [BytesLike] + ): string; encodeFunctionData(functionFragment: "claim", values: [string]): string; encodeFunctionData( functionFragment: "claimWithResolver", @@ -55,6 +85,24 @@ export interface ENSReverseRegistrarInterface extends utils.Interface { functionFragment: "ADDR_REVERSE_NODE", data: BytesLike ): Result; + decodeFunctionResult(functionFragment: "c_098c0657", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_c9f97d2d", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false098c0657", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_falsec9f97d2d", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true098c0657", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_truec9f97d2d", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "claim", data: BytesLike): Result; decodeFunctionResult( functionFragment: "claimWithResolver", @@ -110,6 +158,36 @@ export interface ENSReverseRegistrar extends BaseContract { functions: { ADDR_REVERSE_NODE(overrides?: CallOverrides): Promise<[string]>; + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_c9f97d2d( + c__c9f97d2d: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_falsec9f97d2d( + c__c9f97d2d: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_truec9f97d2d( + c__c9f97d2d: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + claim( owner: string, overrides?: Overrides & { from?: string | Promise } @@ -143,6 +221,30 @@ export interface ENSReverseRegistrar extends BaseContract { ADDR_REVERSE_NODE(overrides?: CallOverrides): Promise; + c_098c0657(c__098c0657: BytesLike, overrides?: CallOverrides): Promise; + + c_c9f97d2d(c__c9f97d2d: BytesLike, overrides?: CallOverrides): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsec9f97d2d( + c__c9f97d2d: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truec9f97d2d( + c__c9f97d2d: BytesLike, + overrides?: CallOverrides + ): Promise; + claim( owner: string, overrides?: Overrides & { from?: string | Promise } @@ -176,6 +278,36 @@ export interface ENSReverseRegistrar extends BaseContract { callStatic: { ADDR_REVERSE_NODE(overrides?: CallOverrides): Promise; + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_c9f97d2d( + c__c9f97d2d: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsec9f97d2d( + c__c9f97d2d: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truec9f97d2d( + c__c9f97d2d: BytesLike, + overrides?: CallOverrides + ): Promise; + claim(owner: string, overrides?: CallOverrides): Promise; claimWithResolver( @@ -209,6 +341,36 @@ export interface ENSReverseRegistrar extends BaseContract { estimateGas: { ADDR_REVERSE_NODE(overrides?: CallOverrides): Promise; + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_c9f97d2d( + c__c9f97d2d: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsec9f97d2d( + c__c9f97d2d: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truec9f97d2d( + c__c9f97d2d: BytesLike, + overrides?: CallOverrides + ): Promise; + claim( owner: string, overrides?: Overrides & { from?: string | Promise } @@ -243,6 +405,36 @@ export interface ENSReverseRegistrar extends BaseContract { populateTransaction: { ADDR_REVERSE_NODE(overrides?: CallOverrides): Promise; + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_c9f97d2d( + c__c9f97d2d: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsec9f97d2d( + c__c9f97d2d: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truec9f97d2d( + c__c9f97d2d: BytesLike, + overrides?: CallOverrides + ): Promise; + claim( owner: string, overrides?: Overrides & { from?: string | Promise } diff --git a/typings/ENSTextResolver.ts b/typings/ENSTextResolver.ts index abd26e04..51258a0f 100644 --- a/typings/ENSTextResolver.ts +++ b/typings/ENSTextResolver.ts @@ -18,10 +18,40 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface ENSTextResolverInterface extends utils.Interface { functions: { + "c_7ffc1d72(bytes8)": FunctionFragment; + "c_f395fef5(bytes8)": FunctionFragment; + "c_false7ffc1d72(bytes8)": FunctionFragment; + "c_falsef395fef5(bytes8)": FunctionFragment; + "c_true7ffc1d72(bytes8)": FunctionFragment; + "c_truef395fef5(bytes8)": FunctionFragment; "setText(bytes32,string,string)": FunctionFragment; "text(bytes32,string)": FunctionFragment; }; + encodeFunctionData( + functionFragment: "c_7ffc1d72", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_f395fef5", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false7ffc1d72", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_falsef395fef5", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true7ffc1d72", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_truef395fef5", + values: [BytesLike] + ): string; encodeFunctionData( functionFragment: "setText", values: [BytesLike, string, string] @@ -31,6 +61,24 @@ export interface ENSTextResolverInterface extends utils.Interface { values: [BytesLike, string] ): string; + decodeFunctionResult(functionFragment: "c_7ffc1d72", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_f395fef5", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false7ffc1d72", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_falsef395fef5", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true7ffc1d72", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_truef395fef5", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "setText", data: BytesLike): Result; decodeFunctionResult(functionFragment: "text", data: BytesLike): Result; @@ -75,6 +123,36 @@ export interface ENSTextResolver extends BaseContract { removeListener: OnEvent; functions: { + c_7ffc1d72( + c__7ffc1d72: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_f395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false7ffc1d72( + c__7ffc1d72: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_falsef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true7ffc1d72( + c__7ffc1d72: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_truef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + setText( node: BytesLike, key: string, @@ -89,6 +167,30 @@ export interface ENSTextResolver extends BaseContract { ): Promise<[string]>; }; + c_7ffc1d72(c__7ffc1d72: BytesLike, overrides?: CallOverrides): Promise; + + c_f395fef5(c__f395fef5: BytesLike, overrides?: CallOverrides): Promise; + + c_false7ffc1d72( + c__7ffc1d72: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true7ffc1d72( + c__7ffc1d72: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + setText( node: BytesLike, key: string, @@ -103,6 +205,36 @@ export interface ENSTextResolver extends BaseContract { ): Promise; callStatic: { + c_7ffc1d72( + c__7ffc1d72: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_f395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false7ffc1d72( + c__7ffc1d72: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true7ffc1d72( + c__7ffc1d72: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + setText( node: BytesLike, key: string, @@ -131,6 +263,36 @@ export interface ENSTextResolver extends BaseContract { }; estimateGas: { + c_7ffc1d72( + c__7ffc1d72: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_f395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false7ffc1d72( + c__7ffc1d72: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true7ffc1d72( + c__7ffc1d72: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + setText( node: BytesLike, key: string, @@ -146,6 +308,36 @@ export interface ENSTextResolver extends BaseContract { }; populateTransaction: { + c_7ffc1d72( + c__7ffc1d72: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_f395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false7ffc1d72( + c__7ffc1d72: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true7ffc1d72( + c__7ffc1d72: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truef395fef5( + c__f395fef5: BytesLike, + overrides?: CallOverrides + ): Promise; + setText( node: BytesLike, key: string, diff --git a/typings/ERC20BurnableUpgradeable.ts b/typings/ERC20BurnableUpgradeable.ts deleted file mode 100644 index 45642592..00000000 --- a/typings/ERC20BurnableUpgradeable.ts +++ /dev/null @@ -1,480 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import { FunctionFragment, Result, EventFragment } from "@ethersproject/abi"; -import { Listener, Provider } from "@ethersproject/providers"; -import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; - -export interface ERC20BurnableUpgradeableInterface extends utils.Interface { - functions: { - "allowance(address,address)": FunctionFragment; - "approve(address,uint256)": FunctionFragment; - "balanceOf(address)": FunctionFragment; - "burn(uint256)": FunctionFragment; - "burnFrom(address,uint256)": FunctionFragment; - "decimals()": FunctionFragment; - "decreaseAllowance(address,uint256)": FunctionFragment; - "increaseAllowance(address,uint256)": FunctionFragment; - "name()": FunctionFragment; - "symbol()": FunctionFragment; - "totalSupply()": FunctionFragment; - "transfer(address,uint256)": FunctionFragment; - "transferFrom(address,address,uint256)": FunctionFragment; - }; - - encodeFunctionData( - functionFragment: "allowance", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [string, BigNumberish] - ): string; - encodeFunctionData(functionFragment: "balanceOf", values: [string]): string; - encodeFunctionData(functionFragment: "burn", values: [BigNumberish]): string; - encodeFunctionData( - functionFragment: "burnFrom", - values: [string, BigNumberish] - ): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData( - functionFragment: "decreaseAllowance", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "increaseAllowance", - values: [string, BigNumberish] - ): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [string, string, BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "burnFrom", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "decreaseAllowance", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "increaseAllowance", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; - - events: { - "Approval(address,address,uint256)": EventFragment; - "Initialized(uint8)": EventFragment; - "Transfer(address,address,uint256)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; -} - -export type ApprovalEvent = TypedEvent< - [string, string, BigNumber], - { owner: string; spender: string; value: BigNumber } ->; - -export type ApprovalEventFilter = TypedEventFilter; - -export type InitializedEvent = TypedEvent<[number], { version: number }>; - -export type InitializedEventFilter = TypedEventFilter; - -export type TransferEvent = TypedEvent< - [string, string, BigNumber], - { from: string; to: string; value: BigNumber } ->; - -export type TransferEventFilter = TypedEventFilter; - -export interface ERC20BurnableUpgradeable extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: ERC20BurnableUpgradeableInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - allowance( - owner: string, - spender: string, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - approve( - spender: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - balanceOf(account: string, overrides?: CallOverrides): Promise<[BigNumber]>; - - burn( - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - burnFrom( - account: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - decimals(overrides?: CallOverrides): Promise<[number]>; - - decreaseAllowance( - spender: string, - subtractedValue: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - increaseAllowance( - spender: string, - addedValue: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - name(overrides?: CallOverrides): Promise<[string]>; - - symbol(overrides?: CallOverrides): Promise<[string]>; - - totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; - - transfer( - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - transferFrom( - from: string, - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - }; - - allowance( - owner: string, - spender: string, - overrides?: CallOverrides - ): Promise; - - approve( - spender: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - balanceOf(account: string, overrides?: CallOverrides): Promise; - - burn( - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - burnFrom( - account: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - decreaseAllowance( - spender: string, - subtractedValue: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - increaseAllowance( - spender: string, - addedValue: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - transferFrom( - from: string, - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - callStatic: { - allowance( - owner: string, - spender: string, - overrides?: CallOverrides - ): Promise; - - approve( - spender: string, - amount: BigNumberish, - overrides?: CallOverrides - ): Promise; - - balanceOf(account: string, overrides?: CallOverrides): Promise; - - burn(amount: BigNumberish, overrides?: CallOverrides): Promise; - - burnFrom( - account: string, - amount: BigNumberish, - overrides?: CallOverrides - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - decreaseAllowance( - spender: string, - subtractedValue: BigNumberish, - overrides?: CallOverrides - ): Promise; - - increaseAllowance( - spender: string, - addedValue: BigNumberish, - overrides?: CallOverrides - ): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: string, - amount: BigNumberish, - overrides?: CallOverrides - ): Promise; - - transferFrom( - from: string, - to: string, - amount: BigNumberish, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "Approval(address,address,uint256)"( - owner?: string | null, - spender?: string | null, - value?: null - ): ApprovalEventFilter; - Approval( - owner?: string | null, - spender?: string | null, - value?: null - ): ApprovalEventFilter; - - "Initialized(uint8)"(version?: null): InitializedEventFilter; - Initialized(version?: null): InitializedEventFilter; - - "Transfer(address,address,uint256)"( - from?: string | null, - to?: string | null, - value?: null - ): TransferEventFilter; - Transfer( - from?: string | null, - to?: string | null, - value?: null - ): TransferEventFilter; - }; - - estimateGas: { - allowance( - owner: string, - spender: string, - overrides?: CallOverrides - ): Promise; - - approve( - spender: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - balanceOf(account: string, overrides?: CallOverrides): Promise; - - burn( - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - burnFrom( - account: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - decreaseAllowance( - spender: string, - subtractedValue: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - increaseAllowance( - spender: string, - addedValue: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - transferFrom( - from: string, - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - }; - - populateTransaction: { - allowance( - owner: string, - spender: string, - overrides?: CallOverrides - ): Promise; - - approve( - spender: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - balanceOf( - account: string, - overrides?: CallOverrides - ): Promise; - - burn( - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - burnFrom( - account: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - decreaseAllowance( - spender: string, - subtractedValue: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - increaseAllowance( - spender: string, - addedValue: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - transferFrom( - from: string, - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - }; -} diff --git a/typings/ERC20Token.ts b/typings/ERC20Token.ts index 4aa9e010..68e1124f 100644 --- a/typings/ERC20Token.ts +++ b/typings/ERC20Token.ts @@ -22,6 +22,9 @@ export interface ERC20TokenInterface extends utils.Interface { "allowance(address,address)": FunctionFragment; "approve(address,uint256)": FunctionFragment; "balanceOf(address)": FunctionFragment; + "c_99a47378(bytes8)": FunctionFragment; + "c_false99a47378(bytes8)": FunctionFragment; + "c_true99a47378(bytes8)": FunctionFragment; "decimals()": FunctionFragment; "name()": FunctionFragment; "symbol()": FunctionFragment; @@ -39,6 +42,18 @@ export interface ERC20TokenInterface extends utils.Interface { values: [string, BigNumberish] ): string; encodeFunctionData(functionFragment: "balanceOf", values: [string]): string; + encodeFunctionData( + functionFragment: "c_99a47378", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false99a47378", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true99a47378", + values: [BytesLike] + ): string; encodeFunctionData(functionFragment: "decimals", values?: undefined): string; encodeFunctionData(functionFragment: "name", values?: undefined): string; encodeFunctionData(functionFragment: "symbol", values?: undefined): string; @@ -58,6 +73,15 @@ export interface ERC20TokenInterface extends utils.Interface { decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_99a47378", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false99a47378", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true99a47378", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; @@ -135,6 +159,21 @@ export interface ERC20Token extends BaseContract { balanceOf(owner: string, overrides?: CallOverrides): Promise<[BigNumber]>; + c_99a47378( + c__99a47378: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false99a47378( + c__99a47378: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true99a47378( + c__99a47378: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + decimals(overrides?: CallOverrides): Promise<[number]>; name(overrides?: CallOverrides): Promise<[string]>; @@ -171,6 +210,18 @@ export interface ERC20Token extends BaseContract { balanceOf(owner: string, overrides?: CallOverrides): Promise; + c_99a47378(c__99a47378: BytesLike, overrides?: CallOverrides): Promise; + + c_false99a47378( + c__99a47378: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true99a47378( + c__99a47378: BytesLike, + overrides?: CallOverrides + ): Promise; + decimals(overrides?: CallOverrides): Promise; name(overrides?: CallOverrides): Promise; @@ -207,6 +258,21 @@ export interface ERC20Token extends BaseContract { balanceOf(owner: string, overrides?: CallOverrides): Promise; + c_99a47378( + c__99a47378: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false99a47378( + c__99a47378: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true99a47378( + c__99a47378: BytesLike, + overrides?: CallOverrides + ): Promise; + decimals(overrides?: CallOverrides): Promise; name(overrides?: CallOverrides): Promise; @@ -268,6 +334,21 @@ export interface ERC20Token extends BaseContract { balanceOf(owner: string, overrides?: CallOverrides): Promise; + c_99a47378( + c__99a47378: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false99a47378( + c__99a47378: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true99a47378( + c__99a47378: BytesLike, + overrides?: CallOverrides + ): Promise; + decimals(overrides?: CallOverrides): Promise; name(overrides?: CallOverrides): Promise; @@ -308,6 +389,21 @@ export interface ERC20Token extends BaseContract { overrides?: CallOverrides ): Promise; + c_99a47378( + c__99a47378: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false99a47378( + c__99a47378: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true99a47378( + c__99a47378: BytesLike, + overrides?: CallOverrides + ): Promise; + decimals(overrides?: CallOverrides): Promise; name(overrides?: CallOverrides): Promise; diff --git a/typings/ERC20Upgradeable.ts b/typings/ERC20Upgradeable.ts deleted file mode 100644 index f85f6eeb..00000000 --- a/typings/ERC20Upgradeable.ts +++ /dev/null @@ -1,419 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import { FunctionFragment, Result, EventFragment } from "@ethersproject/abi"; -import { Listener, Provider } from "@ethersproject/providers"; -import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; - -export interface ERC20UpgradeableInterface extends utils.Interface { - functions: { - "allowance(address,address)": FunctionFragment; - "approve(address,uint256)": FunctionFragment; - "balanceOf(address)": FunctionFragment; - "decimals()": FunctionFragment; - "decreaseAllowance(address,uint256)": FunctionFragment; - "increaseAllowance(address,uint256)": FunctionFragment; - "name()": FunctionFragment; - "symbol()": FunctionFragment; - "totalSupply()": FunctionFragment; - "transfer(address,uint256)": FunctionFragment; - "transferFrom(address,address,uint256)": FunctionFragment; - }; - - encodeFunctionData( - functionFragment: "allowance", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [string, BigNumberish] - ): string; - encodeFunctionData(functionFragment: "balanceOf", values: [string]): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData( - functionFragment: "decreaseAllowance", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "increaseAllowance", - values: [string, BigNumberish] - ): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [string, string, BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "decreaseAllowance", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "increaseAllowance", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; - - events: { - "Approval(address,address,uint256)": EventFragment; - "Initialized(uint8)": EventFragment; - "Transfer(address,address,uint256)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; -} - -export type ApprovalEvent = TypedEvent< - [string, string, BigNumber], - { owner: string; spender: string; value: BigNumber } ->; - -export type ApprovalEventFilter = TypedEventFilter; - -export type InitializedEvent = TypedEvent<[number], { version: number }>; - -export type InitializedEventFilter = TypedEventFilter; - -export type TransferEvent = TypedEvent< - [string, string, BigNumber], - { from: string; to: string; value: BigNumber } ->; - -export type TransferEventFilter = TypedEventFilter; - -export interface ERC20Upgradeable extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: ERC20UpgradeableInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - allowance( - owner: string, - spender: string, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - approve( - spender: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - balanceOf(account: string, overrides?: CallOverrides): Promise<[BigNumber]>; - - decimals(overrides?: CallOverrides): Promise<[number]>; - - decreaseAllowance( - spender: string, - subtractedValue: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - increaseAllowance( - spender: string, - addedValue: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - name(overrides?: CallOverrides): Promise<[string]>; - - symbol(overrides?: CallOverrides): Promise<[string]>; - - totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; - - transfer( - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - transferFrom( - from: string, - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - }; - - allowance( - owner: string, - spender: string, - overrides?: CallOverrides - ): Promise; - - approve( - spender: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - balanceOf(account: string, overrides?: CallOverrides): Promise; - - decimals(overrides?: CallOverrides): Promise; - - decreaseAllowance( - spender: string, - subtractedValue: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - increaseAllowance( - spender: string, - addedValue: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - transferFrom( - from: string, - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - callStatic: { - allowance( - owner: string, - spender: string, - overrides?: CallOverrides - ): Promise; - - approve( - spender: string, - amount: BigNumberish, - overrides?: CallOverrides - ): Promise; - - balanceOf(account: string, overrides?: CallOverrides): Promise; - - decimals(overrides?: CallOverrides): Promise; - - decreaseAllowance( - spender: string, - subtractedValue: BigNumberish, - overrides?: CallOverrides - ): Promise; - - increaseAllowance( - spender: string, - addedValue: BigNumberish, - overrides?: CallOverrides - ): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: string, - amount: BigNumberish, - overrides?: CallOverrides - ): Promise; - - transferFrom( - from: string, - to: string, - amount: BigNumberish, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "Approval(address,address,uint256)"( - owner?: string | null, - spender?: string | null, - value?: null - ): ApprovalEventFilter; - Approval( - owner?: string | null, - spender?: string | null, - value?: null - ): ApprovalEventFilter; - - "Initialized(uint8)"(version?: null): InitializedEventFilter; - Initialized(version?: null): InitializedEventFilter; - - "Transfer(address,address,uint256)"( - from?: string | null, - to?: string | null, - value?: null - ): TransferEventFilter; - Transfer( - from?: string | null, - to?: string | null, - value?: null - ): TransferEventFilter; - }; - - estimateGas: { - allowance( - owner: string, - spender: string, - overrides?: CallOverrides - ): Promise; - - approve( - spender: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - balanceOf(account: string, overrides?: CallOverrides): Promise; - - decimals(overrides?: CallOverrides): Promise; - - decreaseAllowance( - spender: string, - subtractedValue: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - increaseAllowance( - spender: string, - addedValue: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - transferFrom( - from: string, - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - }; - - populateTransaction: { - allowance( - owner: string, - spender: string, - overrides?: CallOverrides - ): Promise; - - approve( - spender: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - balanceOf( - account: string, - overrides?: CallOverrides - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - decreaseAllowance( - spender: string, - subtractedValue: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - increaseAllowance( - spender: string, - addedValue: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - transferFrom( - from: string, - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - }; -} diff --git a/typings/ExternalAccountRegistry.ts b/typings/ExternalAccountRegistry.ts index 56e0af46..287f311a 100644 --- a/typings/ExternalAccountRegistry.ts +++ b/typings/ExternalAccountRegistry.ts @@ -21,6 +21,9 @@ export interface ExternalAccountRegistryInterface extends utils.Interface { functions: { "addAccountOwner(address)": FunctionFragment; "addAccountProof(bytes32)": FunctionFragment; + "c_9570ce98(bytes8)": FunctionFragment; + "c_false9570ce98(bytes8)": FunctionFragment; + "c_true9570ce98(bytes8)": FunctionFragment; "removeAccountOwner(address)": FunctionFragment; "removeAccountProof(bytes32)": FunctionFragment; "verifyAccountOwner(address,address)": FunctionFragment; @@ -37,6 +40,18 @@ export interface ExternalAccountRegistryInterface extends utils.Interface { functionFragment: "addAccountProof", values: [BytesLike] ): string; + encodeFunctionData( + functionFragment: "c_9570ce98", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false9570ce98", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true9570ce98", + values: [BytesLike] + ): string; encodeFunctionData( functionFragment: "removeAccountOwner", values: [string] @@ -70,6 +85,15 @@ export interface ExternalAccountRegistryInterface extends utils.Interface { functionFragment: "addAccountProof", data: BytesLike ): Result; + decodeFunctionResult(functionFragment: "c_9570ce98", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false9570ce98", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true9570ce98", + data: BytesLike + ): Result; decodeFunctionResult( functionFragment: "removeAccountOwner", data: BytesLike @@ -177,6 +201,21 @@ export interface ExternalAccountRegistry extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; + c_9570ce98( + c__9570ce98: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false9570ce98( + c__9570ce98: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true9570ce98( + c__9570ce98: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + removeAccountOwner( owner: string, overrides?: Overrides & { from?: string | Promise } @@ -224,6 +263,18 @@ export interface ExternalAccountRegistry extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; + c_9570ce98(c__9570ce98: BytesLike, overrides?: CallOverrides): Promise; + + c_false9570ce98( + c__9570ce98: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true9570ce98( + c__9570ce98: BytesLike, + overrides?: CallOverrides + ): Promise; + removeAccountOwner( owner: string, overrides?: Overrides & { from?: string | Promise } @@ -265,6 +316,21 @@ export interface ExternalAccountRegistry extends BaseContract { addAccountProof(hash: BytesLike, overrides?: CallOverrides): Promise; + c_9570ce98( + c__9570ce98: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false9570ce98( + c__9570ce98: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true9570ce98( + c__9570ce98: BytesLike, + overrides?: CallOverrides + ): Promise; + removeAccountOwner(owner: string, overrides?: CallOverrides): Promise; removeAccountProof( @@ -348,6 +414,21 @@ export interface ExternalAccountRegistry extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; + c_9570ce98( + c__9570ce98: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false9570ce98( + c__9570ce98: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true9570ce98( + c__9570ce98: BytesLike, + overrides?: CallOverrides + ): Promise; + removeAccountOwner( owner: string, overrides?: Overrides & { from?: string | Promise } @@ -396,6 +477,21 @@ export interface ExternalAccountRegistry extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; + c_9570ce98( + c__9570ce98: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false9570ce98( + c__9570ce98: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true9570ce98( + c__9570ce98: BytesLike, + overrides?: CallOverrides + ): Promise; + removeAccountOwner( owner: string, overrides?: Overrides & { from?: string | Promise } diff --git a/typings/Gateway.ts b/typings/Gateway.ts index b25ecedf..de8ebe0e 100644 --- a/typings/Gateway.ts +++ b/typings/Gateway.ts @@ -55,6 +55,15 @@ export type DelegatedBatchWithGasPriceStructOutput = [ export interface GatewayInterface extends utils.Interface { functions: { + "c_098c0657(bytes8)": FunctionFragment; + "c_4b81551d(bytes8)": FunctionFragment; + "c_52615ca8(bytes8)": FunctionFragment; + "c_false098c0657(bytes8)": FunctionFragment; + "c_false4b81551d(bytes8)": FunctionFragment; + "c_false52615ca8(bytes8)": FunctionFragment; + "c_true098c0657(bytes8)": FunctionFragment; + "c_true4b81551d(bytes8)": FunctionFragment; + "c_true52615ca8(bytes8)": FunctionFragment; "chainId()": FunctionFragment; "delegateBatch(address,uint256,address[],bytes[],bytes)": FunctionFragment; "delegateBatchWithGasPrice(address,uint256,address[],bytes[],bytes)": FunctionFragment; @@ -70,6 +79,42 @@ export interface GatewayInterface extends utils.Interface { "sendBatchFromAccount(address,address[],bytes[])": FunctionFragment; }; + encodeFunctionData( + functionFragment: "c_098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_4b81551d", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_52615ca8", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false4b81551d", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false52615ca8", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true4b81551d", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true52615ca8", + values: [BytesLike] + ): string; encodeFunctionData(functionFragment: "chainId", values?: undefined): string; encodeFunctionData( functionFragment: "delegateBatch", @@ -120,6 +165,33 @@ export interface GatewayInterface extends utils.Interface { values: [string, string[], BytesLike[]] ): string; + decodeFunctionResult(functionFragment: "c_098c0657", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_4b81551d", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_52615ca8", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false098c0657", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_false4b81551d", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_false52615ca8", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true098c0657", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true4b81551d", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true52615ca8", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "chainId", data: BytesLike): Result; decodeFunctionResult( functionFragment: "delegateBatch", @@ -211,6 +283,51 @@ export interface Gateway extends BaseContract { removeListener: OnEvent; functions: { + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_4b81551d( + c__4b81551d: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_false4b81551d( + c__4b81551d: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_false52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true4b81551d( + c__4b81551d: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + chainId(overrides?: CallOverrides): Promise<[BigNumber]>; delegateBatch( @@ -278,6 +395,42 @@ export interface Gateway extends BaseContract { ): Promise; }; + c_098c0657(c__098c0657: BytesLike, overrides?: CallOverrides): Promise; + + c_4b81551d(c__4b81551d: BytesLike, overrides?: CallOverrides): Promise; + + c_52615ca8(c__52615ca8: BytesLike, overrides?: CallOverrides): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false4b81551d( + c__4b81551d: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true4b81551d( + c__4b81551d: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + chainId(overrides?: CallOverrides): Promise; delegateBatch( @@ -345,6 +498,51 @@ export interface Gateway extends BaseContract { ): Promise; callStatic: { + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_4b81551d( + c__4b81551d: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false4b81551d( + c__4b81551d: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true4b81551d( + c__4b81551d: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + chainId(overrides?: CallOverrides): Promise; delegateBatch( @@ -429,6 +627,51 @@ export interface Gateway extends BaseContract { }; estimateGas: { + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_4b81551d( + c__4b81551d: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false4b81551d( + c__4b81551d: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true4b81551d( + c__4b81551d: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + chainId(overrides?: CallOverrides): Promise; delegateBatch( @@ -497,6 +740,51 @@ export interface Gateway extends BaseContract { }; populateTransaction: { + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_4b81551d( + c__4b81551d: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false4b81551d( + c__4b81551d: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true4b81551d( + c__4b81551d: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + chainId(overrides?: CallOverrides): Promise; delegateBatch( diff --git a/typings/GatewayRecipient.ts b/typings/GatewayRecipient.ts index bb2c4726..00a66c02 100644 --- a/typings/GatewayRecipient.ts +++ b/typings/GatewayRecipient.ts @@ -16,11 +16,35 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface GatewayRecipientInterface extends utils.Interface { functions: { + "c_d18be0f9(bytes8)": FunctionFragment; + "c_falsed18be0f9(bytes8)": FunctionFragment; + "c_trued18be0f9(bytes8)": FunctionFragment; "gateway()": FunctionFragment; }; + encodeFunctionData( + functionFragment: "c_d18be0f9", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_falsed18be0f9", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_trued18be0f9", + values: [BytesLike] + ): string; encodeFunctionData(functionFragment: "gateway", values?: undefined): string; + decodeFunctionResult(functionFragment: "c_d18be0f9", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_falsed18be0f9", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_trued18be0f9", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "gateway", data: BytesLike): Result; events: {}; @@ -53,22 +77,94 @@ export interface GatewayRecipient extends BaseContract { removeListener: OnEvent; functions: { + c_d18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_falsed18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_trued18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + gateway(overrides?: CallOverrides): Promise<[string]>; }; + c_d18be0f9(c__d18be0f9: BytesLike, overrides?: CallOverrides): Promise; + + c_falsed18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trued18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + gateway(overrides?: CallOverrides): Promise; callStatic: { + c_d18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsed18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trued18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + gateway(overrides?: CallOverrides): Promise; }; filters: {}; estimateGas: { + c_d18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsed18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trued18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + gateway(overrides?: CallOverrides): Promise; }; populateTransaction: { + c_d18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsed18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trued18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + gateway(overrides?: CallOverrides): Promise; }; } diff --git a/typings/GatewayRecipientMock.ts b/typings/GatewayRecipientMock.ts index f0187156..da60d29d 100644 --- a/typings/GatewayRecipientMock.ts +++ b/typings/GatewayRecipientMock.ts @@ -18,16 +18,64 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface GatewayRecipientMockInterface extends utils.Interface { functions: { + "c_d18be0f9(bytes8)": FunctionFragment; + "c_e67bae8c(bytes8)": FunctionFragment; + "c_falsed18be0f9(bytes8)": FunctionFragment; + "c_falsee67bae8c(bytes8)": FunctionFragment; + "c_trued18be0f9(bytes8)": FunctionFragment; + "c_truee67bae8c(bytes8)": FunctionFragment; "emitContext()": FunctionFragment; "gateway()": FunctionFragment; }; + encodeFunctionData( + functionFragment: "c_d18be0f9", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_e67bae8c", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_falsed18be0f9", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_falsee67bae8c", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_trued18be0f9", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_truee67bae8c", + values: [BytesLike] + ): string; encodeFunctionData( functionFragment: "emitContext", values?: undefined ): string; encodeFunctionData(functionFragment: "gateway", values?: undefined): string; + decodeFunctionResult(functionFragment: "c_d18be0f9", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_e67bae8c", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_falsed18be0f9", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_falsee67bae8c", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_trued18be0f9", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_truee67bae8c", + data: BytesLike + ): Result; decodeFunctionResult( functionFragment: "emitContext", data: BytesLike @@ -75,6 +123,36 @@ export interface GatewayRecipientMock extends BaseContract { removeListener: OnEvent; functions: { + c_d18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_e67bae8c( + c__e67bae8c: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_falsed18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_falsee67bae8c( + c__e67bae8c: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_trued18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_truee67bae8c( + c__e67bae8c: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + emitContext( overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -82,6 +160,30 @@ export interface GatewayRecipientMock extends BaseContract { gateway(overrides?: CallOverrides): Promise<[string]>; }; + c_d18be0f9(c__d18be0f9: BytesLike, overrides?: CallOverrides): Promise; + + c_e67bae8c(c__e67bae8c: BytesLike, overrides?: CallOverrides): Promise; + + c_falsed18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsee67bae8c( + c__e67bae8c: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trued18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truee67bae8c( + c__e67bae8c: BytesLike, + overrides?: CallOverrides + ): Promise; + emitContext( overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -89,6 +191,36 @@ export interface GatewayRecipientMock extends BaseContract { gateway(overrides?: CallOverrides): Promise; callStatic: { + c_d18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_e67bae8c( + c__e67bae8c: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsed18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsee67bae8c( + c__e67bae8c: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trued18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truee67bae8c( + c__e67bae8c: BytesLike, + overrides?: CallOverrides + ): Promise; + emitContext(overrides?: CallOverrides): Promise; gateway(overrides?: CallOverrides): Promise; @@ -104,6 +236,36 @@ export interface GatewayRecipientMock extends BaseContract { }; estimateGas: { + c_d18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_e67bae8c( + c__e67bae8c: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsed18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsee67bae8c( + c__e67bae8c: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trued18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truee67bae8c( + c__e67bae8c: BytesLike, + overrides?: CallOverrides + ): Promise; + emitContext( overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -112,6 +274,36 @@ export interface GatewayRecipientMock extends BaseContract { }; populateTransaction: { + c_d18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_e67bae8c( + c__e67bae8c: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsed18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsee67bae8c( + c__e67bae8c: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trued18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truee67bae8c( + c__e67bae8c: BytesLike, + overrides?: CallOverrides + ): Promise; + emitContext( overrides?: Overrides & { from?: string | Promise } ): Promise; diff --git a/typings/GatewayV2.ts b/typings/GatewayV2.ts index 4fcc47c8..029590eb 100644 --- a/typings/GatewayV2.ts +++ b/typings/GatewayV2.ts @@ -56,6 +56,18 @@ export type DelegatedBatchWithGasPriceStructOutput = [ export interface GatewayV2Interface extends utils.Interface { functions: { "addGuardian(address)": FunctionFragment; + "c_098c0657(bytes8)": FunctionFragment; + "c_0b6945c4(bytes8)": FunctionFragment; + "c_33f6a84f(bytes8)": FunctionFragment; + "c_52615ca8(bytes8)": FunctionFragment; + "c_false098c0657(bytes8)": FunctionFragment; + "c_false0b6945c4(bytes8)": FunctionFragment; + "c_false33f6a84f(bytes8)": FunctionFragment; + "c_false52615ca8(bytes8)": FunctionFragment; + "c_true098c0657(bytes8)": FunctionFragment; + "c_true0b6945c4(bytes8)": FunctionFragment; + "c_true33f6a84f(bytes8)": FunctionFragment; + "c_true52615ca8(bytes8)": FunctionFragment; "chainId()": FunctionFragment; "delegateBatch(address,uint256,address[],bytes[],bytes)": FunctionFragment; "delegateBatchGuarded(address,uint256,address[],bytes[],bytes)": FunctionFragment; @@ -80,6 +92,54 @@ export interface GatewayV2Interface extends utils.Interface { }; encodeFunctionData(functionFragment: "addGuardian", values: [string]): string; + encodeFunctionData( + functionFragment: "c_098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_0b6945c4", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_33f6a84f", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_52615ca8", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false0b6945c4", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false33f6a84f", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false52615ca8", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true0b6945c4", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true33f6a84f", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true52615ca8", + values: [BytesLike] + ): string; encodeFunctionData(functionFragment: "chainId", values?: undefined): string; encodeFunctionData( functionFragment: "delegateBatch", @@ -163,6 +223,42 @@ export interface GatewayV2Interface extends utils.Interface { functionFragment: "addGuardian", data: BytesLike ): Result; + decodeFunctionResult(functionFragment: "c_098c0657", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_0b6945c4", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_33f6a84f", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_52615ca8", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false098c0657", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_false0b6945c4", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_false33f6a84f", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_false52615ca8", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true098c0657", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true0b6945c4", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true33f6a84f", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true52615ca8", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "chainId", data: BytesLike): Result; decodeFunctionResult( functionFragment: "delegateBatch", @@ -306,6 +402,66 @@ export interface GatewayV2 extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_33f6a84f( + c__33f6a84f: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_false0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_false33f6a84f( + c__33f6a84f: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_false52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true33f6a84f( + c__33f6a84f: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + chainId(overrides?: CallOverrides): Promise<[BigNumber]>; delegateBatch( @@ -428,6 +584,54 @@ export interface GatewayV2 extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; + c_098c0657(c__098c0657: BytesLike, overrides?: CallOverrides): Promise; + + c_0b6945c4(c__0b6945c4: BytesLike, overrides?: CallOverrides): Promise; + + c_33f6a84f(c__33f6a84f: BytesLike, overrides?: CallOverrides): Promise; + + c_52615ca8(c__52615ca8: BytesLike, overrides?: CallOverrides): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false33f6a84f( + c__33f6a84f: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true33f6a84f( + c__33f6a84f: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + chainId(overrides?: CallOverrides): Promise; delegateBatch( @@ -547,6 +751,66 @@ export interface GatewayV2 extends BaseContract { callStatic: { addGuardian(guardian: string, overrides?: CallOverrides): Promise; + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_33f6a84f( + c__33f6a84f: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false33f6a84f( + c__33f6a84f: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true33f6a84f( + c__33f6a84f: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + chainId(overrides?: CallOverrides): Promise; delegateBatch( @@ -695,6 +959,66 @@ export interface GatewayV2 extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_33f6a84f( + c__33f6a84f: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false33f6a84f( + c__33f6a84f: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true33f6a84f( + c__33f6a84f: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + chainId(overrides?: CallOverrides): Promise; delegateBatch( @@ -818,6 +1142,66 @@ export interface GatewayV2 extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_33f6a84f( + c__33f6a84f: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false33f6a84f( + c__33f6a84f: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true33f6a84f( + c__33f6a84f: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + chainId(overrides?: CallOverrides): Promise; delegateBatch( diff --git a/typings/Guarded.ts b/typings/Guarded.ts index 18edd801..60f49cc9 100644 --- a/typings/Guarded.ts +++ b/typings/Guarded.ts @@ -19,12 +19,27 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface GuardedInterface extends utils.Interface { functions: { "addGuardian(address)": FunctionFragment; + "c_0b6945c4(bytes8)": FunctionFragment; + "c_false0b6945c4(bytes8)": FunctionFragment; + "c_true0b6945c4(bytes8)": FunctionFragment; "isGuardian(address)": FunctionFragment; "removeGuardian(address)": FunctionFragment; "verifyGuardianSignature(bytes32,bytes)": FunctionFragment; }; encodeFunctionData(functionFragment: "addGuardian", values: [string]): string; + encodeFunctionData( + functionFragment: "c_0b6945c4", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false0b6945c4", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true0b6945c4", + values: [BytesLike] + ): string; encodeFunctionData(functionFragment: "isGuardian", values: [string]): string; encodeFunctionData( functionFragment: "removeGuardian", @@ -39,6 +54,15 @@ export interface GuardedInterface extends utils.Interface { functionFragment: "addGuardian", data: BytesLike ): Result; + decodeFunctionResult(functionFragment: "c_0b6945c4", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false0b6945c4", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true0b6945c4", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "isGuardian", data: BytesLike): Result; decodeFunctionResult( functionFragment: "removeGuardian", @@ -104,6 +128,21 @@ export interface Guarded extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; + c_0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + isGuardian(guardian: string, overrides?: CallOverrides): Promise<[boolean]>; removeGuardian( @@ -123,6 +162,18 @@ export interface Guarded extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; + c_0b6945c4(c__0b6945c4: BytesLike, overrides?: CallOverrides): Promise; + + c_false0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + isGuardian(guardian: string, overrides?: CallOverrides): Promise; removeGuardian( @@ -139,6 +190,21 @@ export interface Guarded extends BaseContract { callStatic: { addGuardian(guardian: string, overrides?: CallOverrides): Promise; + c_0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + isGuardian(guardian: string, overrides?: CallOverrides): Promise; removeGuardian(guardian: string, overrides?: CallOverrides): Promise; @@ -170,6 +236,21 @@ export interface Guarded extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; + c_0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + isGuardian(guardian: string, overrides?: CallOverrides): Promise; removeGuardian( @@ -190,6 +271,21 @@ export interface Guarded extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; + c_0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + isGuardian( guardian: string, overrides?: CallOverrides diff --git a/typings/GuardedMock.ts b/typings/GuardedMock.ts index 0f46f665..546d18b8 100644 --- a/typings/GuardedMock.ts +++ b/typings/GuardedMock.ts @@ -19,12 +19,42 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface GuardedMockInterface extends utils.Interface { functions: { "addGuardian(address)": FunctionFragment; + "c_0b6945c4(bytes8)": FunctionFragment; + "c_d64e18df(bytes8)": FunctionFragment; + "c_false0b6945c4(bytes8)": FunctionFragment; + "c_falsed64e18df(bytes8)": FunctionFragment; + "c_true0b6945c4(bytes8)": FunctionFragment; + "c_trued64e18df(bytes8)": FunctionFragment; "isGuardian(address)": FunctionFragment; "removeGuardian(address)": FunctionFragment; "verifyGuardianSignature(bytes32,bytes)": FunctionFragment; }; encodeFunctionData(functionFragment: "addGuardian", values: [string]): string; + encodeFunctionData( + functionFragment: "c_0b6945c4", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_d64e18df", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false0b6945c4", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_falsed64e18df", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true0b6945c4", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_trued64e18df", + values: [BytesLike] + ): string; encodeFunctionData(functionFragment: "isGuardian", values: [string]): string; encodeFunctionData( functionFragment: "removeGuardian", @@ -39,6 +69,24 @@ export interface GuardedMockInterface extends utils.Interface { functionFragment: "addGuardian", data: BytesLike ): Result; + decodeFunctionResult(functionFragment: "c_0b6945c4", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_d64e18df", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false0b6945c4", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_falsed64e18df", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true0b6945c4", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_trued64e18df", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "isGuardian", data: BytesLike): Result; decodeFunctionResult( functionFragment: "removeGuardian", @@ -104,6 +152,36 @@ export interface GuardedMock extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; + c_0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_d64e18df( + c__d64e18df: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_falsed64e18df( + c__d64e18df: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_trued64e18df( + c__d64e18df: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + isGuardian(guardian: string, overrides?: CallOverrides): Promise<[boolean]>; removeGuardian( @@ -123,6 +201,30 @@ export interface GuardedMock extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; + c_0b6945c4(c__0b6945c4: BytesLike, overrides?: CallOverrides): Promise; + + c_d64e18df(c__d64e18df: BytesLike, overrides?: CallOverrides): Promise; + + c_false0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsed64e18df( + c__d64e18df: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trued64e18df( + c__d64e18df: BytesLike, + overrides?: CallOverrides + ): Promise; + isGuardian(guardian: string, overrides?: CallOverrides): Promise; removeGuardian( @@ -139,6 +241,36 @@ export interface GuardedMock extends BaseContract { callStatic: { addGuardian(guardian: string, overrides?: CallOverrides): Promise; + c_0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_d64e18df( + c__d64e18df: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsed64e18df( + c__d64e18df: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trued64e18df( + c__d64e18df: BytesLike, + overrides?: CallOverrides + ): Promise; + isGuardian(guardian: string, overrides?: CallOverrides): Promise; removeGuardian(guardian: string, overrides?: CallOverrides): Promise; @@ -170,6 +302,36 @@ export interface GuardedMock extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; + c_0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_d64e18df( + c__d64e18df: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsed64e18df( + c__d64e18df: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trued64e18df( + c__d64e18df: BytesLike, + overrides?: CallOverrides + ): Promise; + isGuardian(guardian: string, overrides?: CallOverrides): Promise; removeGuardian( @@ -190,6 +352,36 @@ export interface GuardedMock extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; + c_0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_d64e18df( + c__d64e18df: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsed64e18df( + c__d64e18df: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trued64e18df( + c__d64e18df: BytesLike, + overrides?: CallOverrides + ): Promise; + isGuardian( guardian: string, overrides?: CallOverrides diff --git a/typings/HopFacet.ts b/typings/HopFacet.ts index 2287fe21..7767be22 100644 --- a/typings/HopFacet.ts +++ b/typings/HopFacet.ts @@ -60,10 +60,40 @@ export type HopDataStructOutput = [ export interface HopFacetInterface extends utils.Interface { functions: { + "c_9296fc39(bytes8)": FunctionFragment; + "c_99127806(bytes8)": FunctionFragment; + "c_false9296fc39(bytes8)": FunctionFragment; + "c_false99127806(bytes8)": FunctionFragment; + "c_true9296fc39(bytes8)": FunctionFragment; + "c_true99127806(bytes8)": FunctionFragment; "hopTokenTransfer((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,uint256))": FunctionFragment; "initHop(uint256)": FunctionFragment; }; + encodeFunctionData( + functionFragment: "c_9296fc39", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_99127806", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false9296fc39", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false99127806", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true9296fc39", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true99127806", + values: [BytesLike] + ): string; encodeFunctionData( functionFragment: "hopTokenTransfer", values: [HopDataStruct] @@ -73,6 +103,24 @@ export interface HopFacetInterface extends utils.Interface { values: [BigNumberish] ): string; + decodeFunctionResult(functionFragment: "c_9296fc39", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_99127806", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false9296fc39", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_false99127806", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true9296fc39", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true99127806", + data: BytesLike + ): Result; decodeFunctionResult( functionFragment: "hopTokenTransfer", data: BytesLike @@ -153,6 +201,36 @@ export interface HopFacet extends BaseContract { removeListener: OnEvent; functions: { + c_9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_99127806( + c__99127806: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_false99127806( + c__99127806: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true99127806( + c__99127806: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + hopTokenTransfer( _hopData: HopDataStruct, overrides?: PayableOverrides & { from?: string | Promise } @@ -164,6 +242,30 @@ export interface HopFacet extends BaseContract { ): Promise; }; + c_9296fc39(c__9296fc39: BytesLike, overrides?: CallOverrides): Promise; + + c_99127806(c__99127806: BytesLike, overrides?: CallOverrides): Promise; + + c_false9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false99127806( + c__99127806: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true99127806( + c__99127806: BytesLike, + overrides?: CallOverrides + ): Promise; + hopTokenTransfer( _hopData: HopDataStruct, overrides?: PayableOverrides & { from?: string | Promise } @@ -175,6 +277,36 @@ export interface HopFacet extends BaseContract { ): Promise; callStatic: { + c_9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_99127806( + c__99127806: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false99127806( + c__99127806: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true99127806( + c__99127806: BytesLike, + overrides?: CallOverrides + ): Promise; + hopTokenTransfer( _hopData: HopDataStruct, overrides?: CallOverrides @@ -225,6 +357,36 @@ export interface HopFacet extends BaseContract { }; estimateGas: { + c_9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_99127806( + c__99127806: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false99127806( + c__99127806: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true99127806( + c__99127806: BytesLike, + overrides?: CallOverrides + ): Promise; + hopTokenTransfer( _hopData: HopDataStruct, overrides?: PayableOverrides & { from?: string | Promise } @@ -237,6 +399,36 @@ export interface HopFacet extends BaseContract { }; populateTransaction: { + c_9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_99127806( + c__99127806: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false99127806( + c__99127806: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true99127806( + c__99127806: BytesLike, + overrides?: CallOverrides + ): Promise; + hopTokenTransfer( _hopData: HopDataStruct, overrides?: PayableOverrides & { from?: string | Promise } diff --git a/typings/IConnectorManager.ts b/typings/IConnectorManager.ts deleted file mode 100644 index 46b4beba..00000000 --- a/typings/IConnectorManager.ts +++ /dev/null @@ -1,121 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - BaseContract, - BigNumber, - BytesLike, - CallOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import { FunctionFragment, Result } from "@ethersproject/abi"; -import { Listener, Provider } from "@ethersproject/providers"; -import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; - -export interface IConnectorManagerInterface extends utils.Interface { - functions: { - "home()": FunctionFragment; - "isReplica(address)": FunctionFragment; - "localDomain()": FunctionFragment; - }; - - encodeFunctionData(functionFragment: "home", values?: undefined): string; - encodeFunctionData(functionFragment: "isReplica", values: [string]): string; - encodeFunctionData( - functionFragment: "localDomain", - values?: undefined - ): string; - - decodeFunctionResult(functionFragment: "home", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "isReplica", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "localDomain", - data: BytesLike - ): Result; - - events: {}; -} - -export interface IConnectorManager extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: IConnectorManagerInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - home(overrides?: CallOverrides): Promise<[string]>; - - isReplica( - _potentialReplica: string, - overrides?: CallOverrides - ): Promise<[boolean]>; - - localDomain(overrides?: CallOverrides): Promise<[number]>; - }; - - home(overrides?: CallOverrides): Promise; - - isReplica( - _potentialReplica: string, - overrides?: CallOverrides - ): Promise; - - localDomain(overrides?: CallOverrides): Promise; - - callStatic: { - home(overrides?: CallOverrides): Promise; - - isReplica( - _potentialReplica: string, - overrides?: CallOverrides - ): Promise; - - localDomain(overrides?: CallOverrides): Promise; - }; - - filters: {}; - - estimateGas: { - home(overrides?: CallOverrides): Promise; - - isReplica( - _potentialReplica: string, - overrides?: CallOverrides - ): Promise; - - localDomain(overrides?: CallOverrides): Promise; - }; - - populateTransaction: { - home(overrides?: CallOverrides): Promise; - - isReplica( - _potentialReplica: string, - overrides?: CallOverrides - ): Promise; - - localDomain(overrides?: CallOverrides): Promise; - }; -} diff --git a/typings/IERC20Metadata.ts b/typings/IERC20Metadata.ts deleted file mode 100644 index 51726f17..00000000 --- a/typings/IERC20Metadata.ts +++ /dev/null @@ -1,332 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import { FunctionFragment, Result, EventFragment } from "@ethersproject/abi"; -import { Listener, Provider } from "@ethersproject/providers"; -import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; - -export interface IERC20MetadataInterface extends utils.Interface { - functions: { - "allowance(address,address)": FunctionFragment; - "approve(address,uint256)": FunctionFragment; - "balanceOf(address)": FunctionFragment; - "decimals()": FunctionFragment; - "name()": FunctionFragment; - "symbol()": FunctionFragment; - "totalSupply()": FunctionFragment; - "transfer(address,uint256)": FunctionFragment; - "transferFrom(address,address,uint256)": FunctionFragment; - }; - - encodeFunctionData( - functionFragment: "allowance", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [string, BigNumberish] - ): string; - encodeFunctionData(functionFragment: "balanceOf", values: [string]): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [string, string, BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; - - events: { - "Approval(address,address,uint256)": EventFragment; - "Transfer(address,address,uint256)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; -} - -export type ApprovalEvent = TypedEvent< - [string, string, BigNumber], - { owner: string; spender: string; value: BigNumber } ->; - -export type ApprovalEventFilter = TypedEventFilter; - -export type TransferEvent = TypedEvent< - [string, string, BigNumber], - { from: string; to: string; value: BigNumber } ->; - -export type TransferEventFilter = TypedEventFilter; - -export interface IERC20Metadata extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: IERC20MetadataInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - allowance( - owner: string, - spender: string, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - approve( - spender: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - balanceOf(account: string, overrides?: CallOverrides): Promise<[BigNumber]>; - - decimals(overrides?: CallOverrides): Promise<[number]>; - - name(overrides?: CallOverrides): Promise<[string]>; - - symbol(overrides?: CallOverrides): Promise<[string]>; - - totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; - - transfer( - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - transferFrom( - from: string, - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - }; - - allowance( - owner: string, - spender: string, - overrides?: CallOverrides - ): Promise; - - approve( - spender: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - balanceOf(account: string, overrides?: CallOverrides): Promise; - - decimals(overrides?: CallOverrides): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - transferFrom( - from: string, - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - callStatic: { - allowance( - owner: string, - spender: string, - overrides?: CallOverrides - ): Promise; - - approve( - spender: string, - amount: BigNumberish, - overrides?: CallOverrides - ): Promise; - - balanceOf(account: string, overrides?: CallOverrides): Promise; - - decimals(overrides?: CallOverrides): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: string, - amount: BigNumberish, - overrides?: CallOverrides - ): Promise; - - transferFrom( - from: string, - to: string, - amount: BigNumberish, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "Approval(address,address,uint256)"( - owner?: string | null, - spender?: string | null, - value?: null - ): ApprovalEventFilter; - Approval( - owner?: string | null, - spender?: string | null, - value?: null - ): ApprovalEventFilter; - - "Transfer(address,address,uint256)"( - from?: string | null, - to?: string | null, - value?: null - ): TransferEventFilter; - Transfer( - from?: string | null, - to?: string | null, - value?: null - ): TransferEventFilter; - }; - - estimateGas: { - allowance( - owner: string, - spender: string, - overrides?: CallOverrides - ): Promise; - - approve( - spender: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - balanceOf(account: string, overrides?: CallOverrides): Promise; - - decimals(overrides?: CallOverrides): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - transferFrom( - from: string, - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - }; - - populateTransaction: { - allowance( - owner: string, - spender: string, - overrides?: CallOverrides - ): Promise; - - approve( - spender: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - balanceOf( - account: string, - overrides?: CallOverrides - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - transferFrom( - from: string, - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - }; -} diff --git a/typings/IERC20MetadataUpgradeable.ts b/typings/IERC20MetadataUpgradeable.ts deleted file mode 100644 index fadf4a82..00000000 --- a/typings/IERC20MetadataUpgradeable.ts +++ /dev/null @@ -1,332 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import { FunctionFragment, Result, EventFragment } from "@ethersproject/abi"; -import { Listener, Provider } from "@ethersproject/providers"; -import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; - -export interface IERC20MetadataUpgradeableInterface extends utils.Interface { - functions: { - "allowance(address,address)": FunctionFragment; - "approve(address,uint256)": FunctionFragment; - "balanceOf(address)": FunctionFragment; - "decimals()": FunctionFragment; - "name()": FunctionFragment; - "symbol()": FunctionFragment; - "totalSupply()": FunctionFragment; - "transfer(address,uint256)": FunctionFragment; - "transferFrom(address,address,uint256)": FunctionFragment; - }; - - encodeFunctionData( - functionFragment: "allowance", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [string, BigNumberish] - ): string; - encodeFunctionData(functionFragment: "balanceOf", values: [string]): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [string, string, BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; - - events: { - "Approval(address,address,uint256)": EventFragment; - "Transfer(address,address,uint256)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; -} - -export type ApprovalEvent = TypedEvent< - [string, string, BigNumber], - { owner: string; spender: string; value: BigNumber } ->; - -export type ApprovalEventFilter = TypedEventFilter; - -export type TransferEvent = TypedEvent< - [string, string, BigNumber], - { from: string; to: string; value: BigNumber } ->; - -export type TransferEventFilter = TypedEventFilter; - -export interface IERC20MetadataUpgradeable extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: IERC20MetadataUpgradeableInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - allowance( - owner: string, - spender: string, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - approve( - spender: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - balanceOf(account: string, overrides?: CallOverrides): Promise<[BigNumber]>; - - decimals(overrides?: CallOverrides): Promise<[number]>; - - name(overrides?: CallOverrides): Promise<[string]>; - - symbol(overrides?: CallOverrides): Promise<[string]>; - - totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; - - transfer( - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - transferFrom( - from: string, - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - }; - - allowance( - owner: string, - spender: string, - overrides?: CallOverrides - ): Promise; - - approve( - spender: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - balanceOf(account: string, overrides?: CallOverrides): Promise; - - decimals(overrides?: CallOverrides): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - transferFrom( - from: string, - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - callStatic: { - allowance( - owner: string, - spender: string, - overrides?: CallOverrides - ): Promise; - - approve( - spender: string, - amount: BigNumberish, - overrides?: CallOverrides - ): Promise; - - balanceOf(account: string, overrides?: CallOverrides): Promise; - - decimals(overrides?: CallOverrides): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: string, - amount: BigNumberish, - overrides?: CallOverrides - ): Promise; - - transferFrom( - from: string, - to: string, - amount: BigNumberish, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "Approval(address,address,uint256)"( - owner?: string | null, - spender?: string | null, - value?: null - ): ApprovalEventFilter; - Approval( - owner?: string | null, - spender?: string | null, - value?: null - ): ApprovalEventFilter; - - "Transfer(address,address,uint256)"( - from?: string | null, - to?: string | null, - value?: null - ): TransferEventFilter; - Transfer( - from?: string | null, - to?: string | null, - value?: null - ): TransferEventFilter; - }; - - estimateGas: { - allowance( - owner: string, - spender: string, - overrides?: CallOverrides - ): Promise; - - approve( - spender: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - balanceOf(account: string, overrides?: CallOverrides): Promise; - - decimals(overrides?: CallOverrides): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - transferFrom( - from: string, - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - }; - - populateTransaction: { - allowance( - owner: string, - spender: string, - overrides?: CallOverrides - ): Promise; - - approve( - spender: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - balanceOf( - account: string, - overrides?: CallOverrides - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - transferFrom( - from: string, - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - }; -} diff --git a/typings/IERC20Upgradeable.ts b/typings/IERC20Upgradeable.ts deleted file mode 100644 index 35fb7eed..00000000 --- a/typings/IERC20Upgradeable.ts +++ /dev/null @@ -1,293 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import { FunctionFragment, Result, EventFragment } from "@ethersproject/abi"; -import { Listener, Provider } from "@ethersproject/providers"; -import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; - -export interface IERC20UpgradeableInterface extends utils.Interface { - functions: { - "allowance(address,address)": FunctionFragment; - "approve(address,uint256)": FunctionFragment; - "balanceOf(address)": FunctionFragment; - "totalSupply()": FunctionFragment; - "transfer(address,uint256)": FunctionFragment; - "transferFrom(address,address,uint256)": FunctionFragment; - }; - - encodeFunctionData( - functionFragment: "allowance", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [string, BigNumberish] - ): string; - encodeFunctionData(functionFragment: "balanceOf", values: [string]): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [string, string, BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; - - events: { - "Approval(address,address,uint256)": EventFragment; - "Transfer(address,address,uint256)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; -} - -export type ApprovalEvent = TypedEvent< - [string, string, BigNumber], - { owner: string; spender: string; value: BigNumber } ->; - -export type ApprovalEventFilter = TypedEventFilter; - -export type TransferEvent = TypedEvent< - [string, string, BigNumber], - { from: string; to: string; value: BigNumber } ->; - -export type TransferEventFilter = TypedEventFilter; - -export interface IERC20Upgradeable extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: IERC20UpgradeableInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - allowance( - owner: string, - spender: string, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - approve( - spender: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - balanceOf(account: string, overrides?: CallOverrides): Promise<[BigNumber]>; - - totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; - - transfer( - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - transferFrom( - from: string, - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - }; - - allowance( - owner: string, - spender: string, - overrides?: CallOverrides - ): Promise; - - approve( - spender: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - balanceOf(account: string, overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - transferFrom( - from: string, - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - callStatic: { - allowance( - owner: string, - spender: string, - overrides?: CallOverrides - ): Promise; - - approve( - spender: string, - amount: BigNumberish, - overrides?: CallOverrides - ): Promise; - - balanceOf(account: string, overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: string, - amount: BigNumberish, - overrides?: CallOverrides - ): Promise; - - transferFrom( - from: string, - to: string, - amount: BigNumberish, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "Approval(address,address,uint256)"( - owner?: string | null, - spender?: string | null, - value?: null - ): ApprovalEventFilter; - Approval( - owner?: string | null, - spender?: string | null, - value?: null - ): ApprovalEventFilter; - - "Transfer(address,address,uint256)"( - from?: string | null, - to?: string | null, - value?: null - ): TransferEventFilter; - Transfer( - from?: string | null, - to?: string | null, - value?: null - ): TransferEventFilter; - }; - - estimateGas: { - allowance( - owner: string, - spender: string, - overrides?: CallOverrides - ): Promise; - - approve( - spender: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - balanceOf(account: string, overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - transferFrom( - from: string, - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - }; - - populateTransaction: { - allowance( - owner: string, - spender: string, - overrides?: CallOverrides - ): Promise; - - approve( - spender: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - balanceOf( - account: string, - overrides?: CallOverrides - ): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - transferFrom( - from: string, - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - }; -} diff --git a/typings/IOutbox.ts b/typings/IOutbox.ts deleted file mode 100644 index ec3d1d79..00000000 --- a/typings/IOutbox.ts +++ /dev/null @@ -1,137 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import { FunctionFragment, Result, EventFragment } from "@ethersproject/abi"; -import { Listener, Provider } from "@ethersproject/providers"; -import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; - -export interface IOutboxInterface extends utils.Interface { - functions: { - "dispatch(uint32,bytes32,bytes)": FunctionFragment; - }; - - encodeFunctionData( - functionFragment: "dispatch", - values: [BigNumberish, BytesLike, BytesLike] - ): string; - - decodeFunctionResult(functionFragment: "dispatch", data: BytesLike): Result; - - events: { - "Dispatch(bytes32,uint256,uint64,bytes32,bytes)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Dispatch"): EventFragment; -} - -export type DispatchEvent = TypedEvent< - [string, BigNumber, BigNumber, string, string], - { - messageHash: string; - leafIndex: BigNumber; - destinationAndNonce: BigNumber; - committedRoot: string; - message: string; - } ->; - -export type DispatchEventFilter = TypedEventFilter; - -export interface IOutbox extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: IOutboxInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - dispatch( - _destinationDomain: BigNumberish, - _recipientAddress: BytesLike, - _messageBody: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - }; - - dispatch( - _destinationDomain: BigNumberish, - _recipientAddress: BytesLike, - _messageBody: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - callStatic: { - dispatch( - _destinationDomain: BigNumberish, - _recipientAddress: BytesLike, - _messageBody: BytesLike, - overrides?: CallOverrides - ): Promise<[string, string]>; - }; - - filters: { - "Dispatch(bytes32,uint256,uint64,bytes32,bytes)"( - messageHash?: BytesLike | null, - leafIndex?: BigNumberish | null, - destinationAndNonce?: BigNumberish | null, - committedRoot?: null, - message?: null - ): DispatchEventFilter; - Dispatch( - messageHash?: BytesLike | null, - leafIndex?: BigNumberish | null, - destinationAndNonce?: BigNumberish | null, - committedRoot?: null, - message?: null - ): DispatchEventFilter; - }; - - estimateGas: { - dispatch( - _destinationDomain: BigNumberish, - _recipientAddress: BytesLike, - _messageBody: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - }; - - populateTransaction: { - dispatch( - _destinationDomain: BigNumberish, - _recipientAddress: BytesLike, - _messageBody: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - }; -} diff --git a/typings/IStableSwap.ts b/typings/IStableSwap.ts deleted file mode 100644 index a937c928..00000000 --- a/typings/IStableSwap.ts +++ /dev/null @@ -1,1115 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PayableOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import { FunctionFragment, Result, EventFragment } from "@ethersproject/abi"; -import { Listener, Provider } from "@ethersproject/providers"; -import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; - -export interface IStableSwapInterface extends utils.Interface { - functions: { - "addLiquidity(uint256[],uint256,uint256)": FunctionFragment; - "calculateRemoveLiquidity(uint256)": FunctionFragment; - "calculateRemoveLiquidityOneToken(uint256,uint8)": FunctionFragment; - "calculateSwap(uint8,uint8,uint256)": FunctionFragment; - "calculateSwapFromAddress(address,address,uint256)": FunctionFragment; - "calculateSwapOut(uint8,uint8,uint256)": FunctionFragment; - "calculateSwapOutFromAddress(address,address,uint256)": FunctionFragment; - "calculateTokenAmount(uint256[],bool)": FunctionFragment; - "getA()": FunctionFragment; - "getToken(uint8)": FunctionFragment; - "getTokenBalance(uint8)": FunctionFragment; - "getTokenIndex(address)": FunctionFragment; - "getVirtualPrice()": FunctionFragment; - "initialize(address[],uint8[],string,string,uint256,uint256,uint256,address)": FunctionFragment; - "removeLiquidity(uint256,uint256[],uint256)": FunctionFragment; - "removeLiquidityImbalance(uint256[],uint256,uint256)": FunctionFragment; - "removeLiquidityOneToken(uint256,uint8,uint256,uint256)": FunctionFragment; - "swap(uint8,uint8,uint256,uint256,uint256)": FunctionFragment; - "swapExact(uint256,address,address,uint256,uint256)": FunctionFragment; - "swapExactOut(uint256,address,address,uint256,uint256)": FunctionFragment; - }; - - encodeFunctionData( - functionFragment: "addLiquidity", - values: [BigNumberish[], BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "calculateRemoveLiquidity", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "calculateRemoveLiquidityOneToken", - values: [BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "calculateSwap", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "calculateSwapFromAddress", - values: [string, string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "calculateSwapOut", - values: [BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "calculateSwapOutFromAddress", - values: [string, string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "calculateTokenAmount", - values: [BigNumberish[], boolean] - ): string; - encodeFunctionData(functionFragment: "getA", values?: undefined): string; - encodeFunctionData( - functionFragment: "getToken", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "getTokenBalance", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "getTokenIndex", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "getVirtualPrice", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "initialize", - values: [ - string[], - BigNumberish[], - string, - string, - BigNumberish, - BigNumberish, - BigNumberish, - string - ] - ): string; - encodeFunctionData( - functionFragment: "removeLiquidity", - values: [BigNumberish, BigNumberish[], BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "removeLiquidityImbalance", - values: [BigNumberish[], BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "removeLiquidityOneToken", - values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "swap", - values: [ - BigNumberish, - BigNumberish, - BigNumberish, - BigNumberish, - BigNumberish - ] - ): string; - encodeFunctionData( - functionFragment: "swapExact", - values: [BigNumberish, string, string, BigNumberish, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "swapExactOut", - values: [BigNumberish, string, string, BigNumberish, BigNumberish] - ): string; - - decodeFunctionResult( - functionFragment: "addLiquidity", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "calculateRemoveLiquidity", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "calculateRemoveLiquidityOneToken", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "calculateSwap", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "calculateSwapFromAddress", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "calculateSwapOut", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "calculateSwapOutFromAddress", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "calculateTokenAmount", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "getA", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "getToken", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "getTokenBalance", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getTokenIndex", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getVirtualPrice", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "removeLiquidity", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "removeLiquidityImbalance", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "removeLiquidityOneToken", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "swap", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "swapExact", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "swapExactOut", - data: BytesLike - ): Result; - - events: { - "AddLiquidity(address,uint256[],uint256[],uint256,uint256)": EventFragment; - "NewAdminFee(uint256)": EventFragment; - "NewSwapFee(uint256)": EventFragment; - "NewWithdrawFee(uint256)": EventFragment; - "RampA(uint256,uint256,uint256,uint256)": EventFragment; - "RemoveLiquidity(address,uint256[],uint256)": EventFragment; - "RemoveLiquidityImbalance(address,uint256[],uint256[],uint256,uint256)": EventFragment; - "RemoveLiquidityOne(address,uint256,uint256,uint256,uint256)": EventFragment; - "StopRampA(uint256,uint256)": EventFragment; - "TokenSwap(address,uint256,uint256,uint128,uint128)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "AddLiquidity"): EventFragment; - getEvent(nameOrSignatureOrTopic: "NewAdminFee"): EventFragment; - getEvent(nameOrSignatureOrTopic: "NewSwapFee"): EventFragment; - getEvent(nameOrSignatureOrTopic: "NewWithdrawFee"): EventFragment; - getEvent(nameOrSignatureOrTopic: "RampA"): EventFragment; - getEvent(nameOrSignatureOrTopic: "RemoveLiquidity"): EventFragment; - getEvent(nameOrSignatureOrTopic: "RemoveLiquidityImbalance"): EventFragment; - getEvent(nameOrSignatureOrTopic: "RemoveLiquidityOne"): EventFragment; - getEvent(nameOrSignatureOrTopic: "StopRampA"): EventFragment; - getEvent(nameOrSignatureOrTopic: "TokenSwap"): EventFragment; -} - -export type AddLiquidityEvent = TypedEvent< - [string, BigNumber[], BigNumber[], BigNumber, BigNumber], - { - provider: string; - tokenAmounts: BigNumber[]; - fees: BigNumber[]; - invariant: BigNumber; - lpTokenSupply: BigNumber; - } ->; - -export type AddLiquidityEventFilter = TypedEventFilter; - -export type NewAdminFeeEvent = TypedEvent< - [BigNumber], - { newAdminFee: BigNumber } ->; - -export type NewAdminFeeEventFilter = TypedEventFilter; - -export type NewSwapFeeEvent = TypedEvent< - [BigNumber], - { newSwapFee: BigNumber } ->; - -export type NewSwapFeeEventFilter = TypedEventFilter; - -export type NewWithdrawFeeEvent = TypedEvent< - [BigNumber], - { newWithdrawFee: BigNumber } ->; - -export type NewWithdrawFeeEventFilter = TypedEventFilter; - -export type RampAEvent = TypedEvent< - [BigNumber, BigNumber, BigNumber, BigNumber], - { - oldA: BigNumber; - newA: BigNumber; - initialTime: BigNumber; - futureTime: BigNumber; - } ->; - -export type RampAEventFilter = TypedEventFilter; - -export type RemoveLiquidityEvent = TypedEvent< - [string, BigNumber[], BigNumber], - { provider: string; tokenAmounts: BigNumber[]; lpTokenSupply: BigNumber } ->; - -export type RemoveLiquidityEventFilter = TypedEventFilter; - -export type RemoveLiquidityImbalanceEvent = TypedEvent< - [string, BigNumber[], BigNumber[], BigNumber, BigNumber], - { - provider: string; - tokenAmounts: BigNumber[]; - fees: BigNumber[]; - invariant: BigNumber; - lpTokenSupply: BigNumber; - } ->; - -export type RemoveLiquidityImbalanceEventFilter = - TypedEventFilter; - -export type RemoveLiquidityOneEvent = TypedEvent< - [string, BigNumber, BigNumber, BigNumber, BigNumber], - { - provider: string; - lpTokenAmount: BigNumber; - lpTokenSupply: BigNumber; - boughtId: BigNumber; - tokensBought: BigNumber; - } ->; - -export type RemoveLiquidityOneEventFilter = - TypedEventFilter; - -export type StopRampAEvent = TypedEvent< - [BigNumber, BigNumber], - { currentA: BigNumber; time: BigNumber } ->; - -export type StopRampAEventFilter = TypedEventFilter; - -export type TokenSwapEvent = TypedEvent< - [string, BigNumber, BigNumber, BigNumber, BigNumber], - { - buyer: string; - tokensSold: BigNumber; - tokensBought: BigNumber; - soldId: BigNumber; - boughtId: BigNumber; - } ->; - -export type TokenSwapEventFilter = TypedEventFilter; - -export interface IStableSwap extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: IStableSwapInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - addLiquidity( - amounts: BigNumberish[], - minToMint: BigNumberish, - deadline: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - calculateRemoveLiquidity( - amount: BigNumberish, - overrides?: CallOverrides - ): Promise<[BigNumber[]]>; - - calculateRemoveLiquidityOneToken( - tokenAmount: BigNumberish, - tokenIndex: BigNumberish, - overrides?: CallOverrides - ): Promise<[BigNumber] & { availableTokenAmount: BigNumber }>; - - calculateSwap( - tokenIndexFrom: BigNumberish, - tokenIndexTo: BigNumberish, - dx: BigNumberish, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - calculateSwapFromAddress( - assetIn: string, - assetOut: string, - amountIn: BigNumberish, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - calculateSwapOut( - tokenIndexFrom: BigNumberish, - tokenIndexTo: BigNumberish, - dy: BigNumberish, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - calculateSwapOutFromAddress( - assetIn: string, - assetOut: string, - amountOut: BigNumberish, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - calculateTokenAmount( - amounts: BigNumberish[], - deposit: boolean, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - getA(overrides?: CallOverrides): Promise<[BigNumber]>; - - getToken(index: BigNumberish, overrides?: CallOverrides): Promise<[string]>; - - getTokenBalance( - index: BigNumberish, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - getTokenIndex( - tokenAddress: string, - overrides?: CallOverrides - ): Promise<[number]>; - - getVirtualPrice(overrides?: CallOverrides): Promise<[BigNumber]>; - - initialize( - pooledTokens: string[], - decimals: BigNumberish[], - lpTokenName: string, - lpTokenSymbol: string, - a: BigNumberish, - fee: BigNumberish, - adminFee: BigNumberish, - lpTokenTargetAddress: string, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - removeLiquidity( - amount: BigNumberish, - minAmounts: BigNumberish[], - deadline: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - removeLiquidityImbalance( - amounts: BigNumberish[], - maxBurnAmount: BigNumberish, - deadline: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - removeLiquidityOneToken( - tokenAmount: BigNumberish, - tokenIndex: BigNumberish, - minAmount: BigNumberish, - deadline: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - swap( - tokenIndexFrom: BigNumberish, - tokenIndexTo: BigNumberish, - dx: BigNumberish, - minDy: BigNumberish, - deadline: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - swapExact( - amountIn: BigNumberish, - assetIn: string, - assetOut: string, - minAmountOut: BigNumberish, - deadline: BigNumberish, - overrides?: PayableOverrides & { from?: string | Promise } - ): Promise; - - swapExactOut( - amountOut: BigNumberish, - assetIn: string, - assetOut: string, - maxAmountIn: BigNumberish, - deadline: BigNumberish, - overrides?: PayableOverrides & { from?: string | Promise } - ): Promise; - }; - - addLiquidity( - amounts: BigNumberish[], - minToMint: BigNumberish, - deadline: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - calculateRemoveLiquidity( - amount: BigNumberish, - overrides?: CallOverrides - ): Promise; - - calculateRemoveLiquidityOneToken( - tokenAmount: BigNumberish, - tokenIndex: BigNumberish, - overrides?: CallOverrides - ): Promise; - - calculateSwap( - tokenIndexFrom: BigNumberish, - tokenIndexTo: BigNumberish, - dx: BigNumberish, - overrides?: CallOverrides - ): Promise; - - calculateSwapFromAddress( - assetIn: string, - assetOut: string, - amountIn: BigNumberish, - overrides?: CallOverrides - ): Promise; - - calculateSwapOut( - tokenIndexFrom: BigNumberish, - tokenIndexTo: BigNumberish, - dy: BigNumberish, - overrides?: CallOverrides - ): Promise; - - calculateSwapOutFromAddress( - assetIn: string, - assetOut: string, - amountOut: BigNumberish, - overrides?: CallOverrides - ): Promise; - - calculateTokenAmount( - amounts: BigNumberish[], - deposit: boolean, - overrides?: CallOverrides - ): Promise; - - getA(overrides?: CallOverrides): Promise; - - getToken(index: BigNumberish, overrides?: CallOverrides): Promise; - - getTokenBalance( - index: BigNumberish, - overrides?: CallOverrides - ): Promise; - - getTokenIndex( - tokenAddress: string, - overrides?: CallOverrides - ): Promise; - - getVirtualPrice(overrides?: CallOverrides): Promise; - - initialize( - pooledTokens: string[], - decimals: BigNumberish[], - lpTokenName: string, - lpTokenSymbol: string, - a: BigNumberish, - fee: BigNumberish, - adminFee: BigNumberish, - lpTokenTargetAddress: string, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - removeLiquidity( - amount: BigNumberish, - minAmounts: BigNumberish[], - deadline: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - removeLiquidityImbalance( - amounts: BigNumberish[], - maxBurnAmount: BigNumberish, - deadline: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - removeLiquidityOneToken( - tokenAmount: BigNumberish, - tokenIndex: BigNumberish, - minAmount: BigNumberish, - deadline: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - swap( - tokenIndexFrom: BigNumberish, - tokenIndexTo: BigNumberish, - dx: BigNumberish, - minDy: BigNumberish, - deadline: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - swapExact( - amountIn: BigNumberish, - assetIn: string, - assetOut: string, - minAmountOut: BigNumberish, - deadline: BigNumberish, - overrides?: PayableOverrides & { from?: string | Promise } - ): Promise; - - swapExactOut( - amountOut: BigNumberish, - assetIn: string, - assetOut: string, - maxAmountIn: BigNumberish, - deadline: BigNumberish, - overrides?: PayableOverrides & { from?: string | Promise } - ): Promise; - - callStatic: { - addLiquidity( - amounts: BigNumberish[], - minToMint: BigNumberish, - deadline: BigNumberish, - overrides?: CallOverrides - ): Promise; - - calculateRemoveLiquidity( - amount: BigNumberish, - overrides?: CallOverrides - ): Promise; - - calculateRemoveLiquidityOneToken( - tokenAmount: BigNumberish, - tokenIndex: BigNumberish, - overrides?: CallOverrides - ): Promise; - - calculateSwap( - tokenIndexFrom: BigNumberish, - tokenIndexTo: BigNumberish, - dx: BigNumberish, - overrides?: CallOverrides - ): Promise; - - calculateSwapFromAddress( - assetIn: string, - assetOut: string, - amountIn: BigNumberish, - overrides?: CallOverrides - ): Promise; - - calculateSwapOut( - tokenIndexFrom: BigNumberish, - tokenIndexTo: BigNumberish, - dy: BigNumberish, - overrides?: CallOverrides - ): Promise; - - calculateSwapOutFromAddress( - assetIn: string, - assetOut: string, - amountOut: BigNumberish, - overrides?: CallOverrides - ): Promise; - - calculateTokenAmount( - amounts: BigNumberish[], - deposit: boolean, - overrides?: CallOverrides - ): Promise; - - getA(overrides?: CallOverrides): Promise; - - getToken(index: BigNumberish, overrides?: CallOverrides): Promise; - - getTokenBalance( - index: BigNumberish, - overrides?: CallOverrides - ): Promise; - - getTokenIndex( - tokenAddress: string, - overrides?: CallOverrides - ): Promise; - - getVirtualPrice(overrides?: CallOverrides): Promise; - - initialize( - pooledTokens: string[], - decimals: BigNumberish[], - lpTokenName: string, - lpTokenSymbol: string, - a: BigNumberish, - fee: BigNumberish, - adminFee: BigNumberish, - lpTokenTargetAddress: string, - overrides?: CallOverrides - ): Promise; - - removeLiquidity( - amount: BigNumberish, - minAmounts: BigNumberish[], - deadline: BigNumberish, - overrides?: CallOverrides - ): Promise; - - removeLiquidityImbalance( - amounts: BigNumberish[], - maxBurnAmount: BigNumberish, - deadline: BigNumberish, - overrides?: CallOverrides - ): Promise; - - removeLiquidityOneToken( - tokenAmount: BigNumberish, - tokenIndex: BigNumberish, - minAmount: BigNumberish, - deadline: BigNumberish, - overrides?: CallOverrides - ): Promise; - - swap( - tokenIndexFrom: BigNumberish, - tokenIndexTo: BigNumberish, - dx: BigNumberish, - minDy: BigNumberish, - deadline: BigNumberish, - overrides?: CallOverrides - ): Promise; - - swapExact( - amountIn: BigNumberish, - assetIn: string, - assetOut: string, - minAmountOut: BigNumberish, - deadline: BigNumberish, - overrides?: CallOverrides - ): Promise; - - swapExactOut( - amountOut: BigNumberish, - assetIn: string, - assetOut: string, - maxAmountIn: BigNumberish, - deadline: BigNumberish, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "AddLiquidity(address,uint256[],uint256[],uint256,uint256)"( - provider?: string | null, - tokenAmounts?: null, - fees?: null, - invariant?: null, - lpTokenSupply?: null - ): AddLiquidityEventFilter; - AddLiquidity( - provider?: string | null, - tokenAmounts?: null, - fees?: null, - invariant?: null, - lpTokenSupply?: null - ): AddLiquidityEventFilter; - - "NewAdminFee(uint256)"(newAdminFee?: null): NewAdminFeeEventFilter; - NewAdminFee(newAdminFee?: null): NewAdminFeeEventFilter; - - "NewSwapFee(uint256)"(newSwapFee?: null): NewSwapFeeEventFilter; - NewSwapFee(newSwapFee?: null): NewSwapFeeEventFilter; - - "NewWithdrawFee(uint256)"(newWithdrawFee?: null): NewWithdrawFeeEventFilter; - NewWithdrawFee(newWithdrawFee?: null): NewWithdrawFeeEventFilter; - - "RampA(uint256,uint256,uint256,uint256)"( - oldA?: null, - newA?: null, - initialTime?: null, - futureTime?: null - ): RampAEventFilter; - RampA( - oldA?: null, - newA?: null, - initialTime?: null, - futureTime?: null - ): RampAEventFilter; - - "RemoveLiquidity(address,uint256[],uint256)"( - provider?: string | null, - tokenAmounts?: null, - lpTokenSupply?: null - ): RemoveLiquidityEventFilter; - RemoveLiquidity( - provider?: string | null, - tokenAmounts?: null, - lpTokenSupply?: null - ): RemoveLiquidityEventFilter; - - "RemoveLiquidityImbalance(address,uint256[],uint256[],uint256,uint256)"( - provider?: string | null, - tokenAmounts?: null, - fees?: null, - invariant?: null, - lpTokenSupply?: null - ): RemoveLiquidityImbalanceEventFilter; - RemoveLiquidityImbalance( - provider?: string | null, - tokenAmounts?: null, - fees?: null, - invariant?: null, - lpTokenSupply?: null - ): RemoveLiquidityImbalanceEventFilter; - - "RemoveLiquidityOne(address,uint256,uint256,uint256,uint256)"( - provider?: string | null, - lpTokenAmount?: null, - lpTokenSupply?: null, - boughtId?: null, - tokensBought?: null - ): RemoveLiquidityOneEventFilter; - RemoveLiquidityOne( - provider?: string | null, - lpTokenAmount?: null, - lpTokenSupply?: null, - boughtId?: null, - tokensBought?: null - ): RemoveLiquidityOneEventFilter; - - "StopRampA(uint256,uint256)"( - currentA?: null, - time?: null - ): StopRampAEventFilter; - StopRampA(currentA?: null, time?: null): StopRampAEventFilter; - - "TokenSwap(address,uint256,uint256,uint128,uint128)"( - buyer?: string | null, - tokensSold?: null, - tokensBought?: null, - soldId?: null, - boughtId?: null - ): TokenSwapEventFilter; - TokenSwap( - buyer?: string | null, - tokensSold?: null, - tokensBought?: null, - soldId?: null, - boughtId?: null - ): TokenSwapEventFilter; - }; - - estimateGas: { - addLiquidity( - amounts: BigNumberish[], - minToMint: BigNumberish, - deadline: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - calculateRemoveLiquidity( - amount: BigNumberish, - overrides?: CallOverrides - ): Promise; - - calculateRemoveLiquidityOneToken( - tokenAmount: BigNumberish, - tokenIndex: BigNumberish, - overrides?: CallOverrides - ): Promise; - - calculateSwap( - tokenIndexFrom: BigNumberish, - tokenIndexTo: BigNumberish, - dx: BigNumberish, - overrides?: CallOverrides - ): Promise; - - calculateSwapFromAddress( - assetIn: string, - assetOut: string, - amountIn: BigNumberish, - overrides?: CallOverrides - ): Promise; - - calculateSwapOut( - tokenIndexFrom: BigNumberish, - tokenIndexTo: BigNumberish, - dy: BigNumberish, - overrides?: CallOverrides - ): Promise; - - calculateSwapOutFromAddress( - assetIn: string, - assetOut: string, - amountOut: BigNumberish, - overrides?: CallOverrides - ): Promise; - - calculateTokenAmount( - amounts: BigNumberish[], - deposit: boolean, - overrides?: CallOverrides - ): Promise; - - getA(overrides?: CallOverrides): Promise; - - getToken( - index: BigNumberish, - overrides?: CallOverrides - ): Promise; - - getTokenBalance( - index: BigNumberish, - overrides?: CallOverrides - ): Promise; - - getTokenIndex( - tokenAddress: string, - overrides?: CallOverrides - ): Promise; - - getVirtualPrice(overrides?: CallOverrides): Promise; - - initialize( - pooledTokens: string[], - decimals: BigNumberish[], - lpTokenName: string, - lpTokenSymbol: string, - a: BigNumberish, - fee: BigNumberish, - adminFee: BigNumberish, - lpTokenTargetAddress: string, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - removeLiquidity( - amount: BigNumberish, - minAmounts: BigNumberish[], - deadline: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - removeLiquidityImbalance( - amounts: BigNumberish[], - maxBurnAmount: BigNumberish, - deadline: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - removeLiquidityOneToken( - tokenAmount: BigNumberish, - tokenIndex: BigNumberish, - minAmount: BigNumberish, - deadline: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - swap( - tokenIndexFrom: BigNumberish, - tokenIndexTo: BigNumberish, - dx: BigNumberish, - minDy: BigNumberish, - deadline: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - swapExact( - amountIn: BigNumberish, - assetIn: string, - assetOut: string, - minAmountOut: BigNumberish, - deadline: BigNumberish, - overrides?: PayableOverrides & { from?: string | Promise } - ): Promise; - - swapExactOut( - amountOut: BigNumberish, - assetIn: string, - assetOut: string, - maxAmountIn: BigNumberish, - deadline: BigNumberish, - overrides?: PayableOverrides & { from?: string | Promise } - ): Promise; - }; - - populateTransaction: { - addLiquidity( - amounts: BigNumberish[], - minToMint: BigNumberish, - deadline: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - calculateRemoveLiquidity( - amount: BigNumberish, - overrides?: CallOverrides - ): Promise; - - calculateRemoveLiquidityOneToken( - tokenAmount: BigNumberish, - tokenIndex: BigNumberish, - overrides?: CallOverrides - ): Promise; - - calculateSwap( - tokenIndexFrom: BigNumberish, - tokenIndexTo: BigNumberish, - dx: BigNumberish, - overrides?: CallOverrides - ): Promise; - - calculateSwapFromAddress( - assetIn: string, - assetOut: string, - amountIn: BigNumberish, - overrides?: CallOverrides - ): Promise; - - calculateSwapOut( - tokenIndexFrom: BigNumberish, - tokenIndexTo: BigNumberish, - dy: BigNumberish, - overrides?: CallOverrides - ): Promise; - - calculateSwapOutFromAddress( - assetIn: string, - assetOut: string, - amountOut: BigNumberish, - overrides?: CallOverrides - ): Promise; - - calculateTokenAmount( - amounts: BigNumberish[], - deposit: boolean, - overrides?: CallOverrides - ): Promise; - - getA(overrides?: CallOverrides): Promise; - - getToken( - index: BigNumberish, - overrides?: CallOverrides - ): Promise; - - getTokenBalance( - index: BigNumberish, - overrides?: CallOverrides - ): Promise; - - getTokenIndex( - tokenAddress: string, - overrides?: CallOverrides - ): Promise; - - getVirtualPrice(overrides?: CallOverrides): Promise; - - initialize( - pooledTokens: string[], - decimals: BigNumberish[], - lpTokenName: string, - lpTokenSymbol: string, - a: BigNumberish, - fee: BigNumberish, - adminFee: BigNumberish, - lpTokenTargetAddress: string, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - removeLiquidity( - amount: BigNumberish, - minAmounts: BigNumberish[], - deadline: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - removeLiquidityImbalance( - amounts: BigNumberish[], - maxBurnAmount: BigNumberish, - deadline: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - removeLiquidityOneToken( - tokenAmount: BigNumberish, - tokenIndex: BigNumberish, - minAmount: BigNumberish, - deadline: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - swap( - tokenIndexFrom: BigNumberish, - tokenIndexTo: BigNumberish, - dx: BigNumberish, - minDy: BigNumberish, - deadline: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - swapExact( - amountIn: BigNumberish, - assetIn: string, - assetOut: string, - minAmountOut: BigNumberish, - deadline: BigNumberish, - overrides?: PayableOverrides & { from?: string | Promise } - ): Promise; - - swapExactOut( - amountOut: BigNumberish, - assetIn: string, - assetOut: string, - maxAmountIn: BigNumberish, - deadline: BigNumberish, - overrides?: PayableOverrides & { from?: string | Promise } - ): Promise; - }; -} diff --git a/typings/IStargateReceiver.ts b/typings/IStargateReceiver.ts index 85f06880..b3e12aa0 100644 --- a/typings/IStargateReceiver.ts +++ b/typings/IStargateReceiver.ts @@ -67,7 +67,7 @@ export interface IStargateReceiver extends BaseContract { functions: { sgReceive( - _srcChainId: BigNumberish, + _chainId: BigNumberish, _srcAddress: BytesLike, _nonce: BigNumberish, _token: string, @@ -78,7 +78,7 @@ export interface IStargateReceiver extends BaseContract { }; sgReceive( - _srcChainId: BigNumberish, + _chainId: BigNumberish, _srcAddress: BytesLike, _nonce: BigNumberish, _token: string, @@ -89,7 +89,7 @@ export interface IStargateReceiver extends BaseContract { callStatic: { sgReceive( - _srcChainId: BigNumberish, + _chainId: BigNumberish, _srcAddress: BytesLike, _nonce: BigNumberish, _token: string, @@ -103,7 +103,7 @@ export interface IStargateReceiver extends BaseContract { estimateGas: { sgReceive( - _srcChainId: BigNumberish, + _chainId: BigNumberish, _srcAddress: BytesLike, _nonce: BigNumberish, _token: string, @@ -115,7 +115,7 @@ export interface IStargateReceiver extends BaseContract { populateTransaction: { sgReceive( - _srcChainId: BigNumberish, + _chainId: BigNumberish, _srcAddress: BytesLike, _nonce: BigNumberish, _token: string, diff --git a/typings/IStargateRouterETH.ts b/typings/IStargateRouterETH.ts new file mode 100644 index 00000000..e9a38bb3 --- /dev/null +++ b/typings/IStargateRouterETH.ts @@ -0,0 +1,142 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + BaseContract, + BigNumber, + BigNumberish, + BytesLike, + CallOverrides, + ContractTransaction, + PayableOverrides, + PopulatedTransaction, + Signer, + utils, +} from "ethers"; +import { FunctionFragment, Result } from "@ethersproject/abi"; +import { Listener, Provider } from "@ethersproject/providers"; +import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; + +export interface IStargateRouterETHInterface extends utils.Interface { + functions: { + "addLiquidityETH()": FunctionFragment; + "swapETH(uint16,address,bytes,uint256,uint256)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "addLiquidityETH", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "swapETH", + values: [BigNumberish, string, BytesLike, BigNumberish, BigNumberish] + ): string; + + decodeFunctionResult( + functionFragment: "addLiquidityETH", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "swapETH", data: BytesLike): Result; + + events: {}; +} + +export interface IStargateRouterETH extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + interface: IStargateRouterETHInterface; + + queryFilter( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>; + + listeners( + eventFilter?: TypedEventFilter + ): Array>; + listeners(eventName?: string): Array; + removeAllListeners( + eventFilter: TypedEventFilter + ): this; + removeAllListeners(eventName?: string): this; + off: OnEvent; + on: OnEvent; + once: OnEvent; + removeListener: OnEvent; + + functions: { + addLiquidityETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapETH( + dstChainId: BigNumberish, + refundAddress: string, + to: BytesLike, + amountLD: BigNumberish, + minAmountLD: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + addLiquidityETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapETH( + dstChainId: BigNumberish, + refundAddress: string, + to: BytesLike, + amountLD: BigNumberish, + minAmountLD: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + callStatic: { + addLiquidityETH(overrides?: CallOverrides): Promise; + + swapETH( + dstChainId: BigNumberish, + refundAddress: string, + to: BytesLike, + amountLD: BigNumberish, + minAmountLD: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + addLiquidityETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapETH( + dstChainId: BigNumberish, + refundAddress: string, + to: BytesLike, + amountLD: BigNumberish, + minAmountLD: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + addLiquidityETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapETH( + dstChainId: BigNumberish, + refundAddress: string, + to: BytesLike, + amountLD: BigNumberish, + minAmountLD: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/typings/Initializable.ts b/typings/Initializable.ts index 6ba62acb..38856f57 100644 --- a/typings/Initializable.ts +++ b/typings/Initializable.ts @@ -16,14 +16,38 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface InitializableInterface extends utils.Interface { functions: { + "c_098c0657(bytes8)": FunctionFragment; + "c_false098c0657(bytes8)": FunctionFragment; + "c_true098c0657(bytes8)": FunctionFragment; "isInitialized()": FunctionFragment; }; + encodeFunctionData( + functionFragment: "c_098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true098c0657", + values: [BytesLike] + ): string; encodeFunctionData( functionFragment: "isInitialized", values?: undefined ): string; + decodeFunctionResult(functionFragment: "c_098c0657", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false098c0657", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true098c0657", + data: BytesLike + ): Result; decodeFunctionResult( functionFragment: "isInitialized", data: BytesLike @@ -67,12 +91,54 @@ export interface Initializable extends BaseContract { removeListener: OnEvent; functions: { + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + isInitialized(overrides?: CallOverrides): Promise<[boolean]>; }; + c_098c0657(c__098c0657: BytesLike, overrides?: CallOverrides): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + isInitialized(overrides?: CallOverrides): Promise; callStatic: { + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + isInitialized(overrides?: CallOverrides): Promise; }; @@ -82,10 +148,40 @@ export interface Initializable extends BaseContract { }; estimateGas: { + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + isInitialized(overrides?: CallOverrides): Promise; }; populateTransaction: { + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + isInitialized(overrides?: CallOverrides): Promise; }; } diff --git a/typings/LPToken.ts b/typings/LPToken.ts deleted file mode 100644 index aa7b1694..00000000 --- a/typings/LPToken.ts +++ /dev/null @@ -1,620 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import { FunctionFragment, Result, EventFragment } from "@ethersproject/abi"; -import { Listener, Provider } from "@ethersproject/providers"; -import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; - -export interface LPTokenInterface extends utils.Interface { - functions: { - "allowance(address,address)": FunctionFragment; - "approve(address,uint256)": FunctionFragment; - "balanceOf(address)": FunctionFragment; - "burnFrom(address,uint256)": FunctionFragment; - "decimals()": FunctionFragment; - "decreaseAllowance(address,uint256)": FunctionFragment; - "increaseAllowance(address,uint256)": FunctionFragment; - "initialize(string,string)": FunctionFragment; - "mint(address,uint256)": FunctionFragment; - "name()": FunctionFragment; - "owner()": FunctionFragment; - "renounceOwnership()": FunctionFragment; - "symbol()": FunctionFragment; - "totalSupply()": FunctionFragment; - "transfer(address,uint256)": FunctionFragment; - "transferFrom(address,address,uint256)": FunctionFragment; - "transferOwnership(address)": FunctionFragment; - }; - - encodeFunctionData( - functionFragment: "allowance", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [string, BigNumberish] - ): string; - encodeFunctionData(functionFragment: "balanceOf", values: [string]): string; - encodeFunctionData( - functionFragment: "burnFrom", - values: [string, BigNumberish] - ): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData( - functionFragment: "decreaseAllowance", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "increaseAllowance", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "initialize", - values: [string, string] - ): string; - encodeFunctionData( - functionFragment: "mint", - values: [string, BigNumberish] - ): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "owner", values?: undefined): string; - encodeFunctionData( - functionFragment: "renounceOwnership", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [string, string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferOwnership", - values: [string] - ): string; - - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "burnFrom", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "decreaseAllowance", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "increaseAllowance", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "renounceOwnership", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "transferOwnership", - data: BytesLike - ): Result; - - events: { - "Approval(address,address,uint256)": EventFragment; - "Initialized(uint8)": EventFragment; - "OwnershipTransferred(address,address)": EventFragment; - "Transfer(address,address,uint256)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; - getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; -} - -export type ApprovalEvent = TypedEvent< - [string, string, BigNumber], - { owner: string; spender: string; value: BigNumber } ->; - -export type ApprovalEventFilter = TypedEventFilter; - -export type InitializedEvent = TypedEvent<[number], { version: number }>; - -export type InitializedEventFilter = TypedEventFilter; - -export type OwnershipTransferredEvent = TypedEvent< - [string, string], - { previousOwner: string; newOwner: string } ->; - -export type OwnershipTransferredEventFilter = - TypedEventFilter; - -export type TransferEvent = TypedEvent< - [string, string, BigNumber], - { from: string; to: string; value: BigNumber } ->; - -export type TransferEventFilter = TypedEventFilter; - -export interface LPToken extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: LPTokenInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - allowance( - owner: string, - spender: string, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - approve( - spender: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - balanceOf(account: string, overrides?: CallOverrides): Promise<[BigNumber]>; - - burnFrom( - account: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - decimals(overrides?: CallOverrides): Promise<[number]>; - - decreaseAllowance( - spender: string, - subtractedValue: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - increaseAllowance( - spender: string, - addedValue: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - initialize( - name: string, - symbol: string, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - mint( - recipient: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - name(overrides?: CallOverrides): Promise<[string]>; - - owner(overrides?: CallOverrides): Promise<[string]>; - - renounceOwnership( - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - symbol(overrides?: CallOverrides): Promise<[string]>; - - totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; - - transfer( - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - transferFrom( - from: string, - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - transferOwnership( - newOwner: string, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - }; - - allowance( - owner: string, - spender: string, - overrides?: CallOverrides - ): Promise; - - approve( - spender: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - balanceOf(account: string, overrides?: CallOverrides): Promise; - - burnFrom( - account: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - decreaseAllowance( - spender: string, - subtractedValue: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - increaseAllowance( - spender: string, - addedValue: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - initialize( - name: string, - symbol: string, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - mint( - recipient: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - name(overrides?: CallOverrides): Promise; - - owner(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - transferFrom( - from: string, - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - transferOwnership( - newOwner: string, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - callStatic: { - allowance( - owner: string, - spender: string, - overrides?: CallOverrides - ): Promise; - - approve( - spender: string, - amount: BigNumberish, - overrides?: CallOverrides - ): Promise; - - balanceOf(account: string, overrides?: CallOverrides): Promise; - - burnFrom( - account: string, - amount: BigNumberish, - overrides?: CallOverrides - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - decreaseAllowance( - spender: string, - subtractedValue: BigNumberish, - overrides?: CallOverrides - ): Promise; - - increaseAllowance( - spender: string, - addedValue: BigNumberish, - overrides?: CallOverrides - ): Promise; - - initialize( - name: string, - symbol: string, - overrides?: CallOverrides - ): Promise; - - mint( - recipient: string, - amount: BigNumberish, - overrides?: CallOverrides - ): Promise; - - name(overrides?: CallOverrides): Promise; - - owner(overrides?: CallOverrides): Promise; - - renounceOwnership(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: string, - amount: BigNumberish, - overrides?: CallOverrides - ): Promise; - - transferFrom( - from: string, - to: string, - amount: BigNumberish, - overrides?: CallOverrides - ): Promise; - - transferOwnership( - newOwner: string, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "Approval(address,address,uint256)"( - owner?: string | null, - spender?: string | null, - value?: null - ): ApprovalEventFilter; - Approval( - owner?: string | null, - spender?: string | null, - value?: null - ): ApprovalEventFilter; - - "Initialized(uint8)"(version?: null): InitializedEventFilter; - Initialized(version?: null): InitializedEventFilter; - - "OwnershipTransferred(address,address)"( - previousOwner?: string | null, - newOwner?: string | null - ): OwnershipTransferredEventFilter; - OwnershipTransferred( - previousOwner?: string | null, - newOwner?: string | null - ): OwnershipTransferredEventFilter; - - "Transfer(address,address,uint256)"( - from?: string | null, - to?: string | null, - value?: null - ): TransferEventFilter; - Transfer( - from?: string | null, - to?: string | null, - value?: null - ): TransferEventFilter; - }; - - estimateGas: { - allowance( - owner: string, - spender: string, - overrides?: CallOverrides - ): Promise; - - approve( - spender: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - balanceOf(account: string, overrides?: CallOverrides): Promise; - - burnFrom( - account: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - decreaseAllowance( - spender: string, - subtractedValue: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - increaseAllowance( - spender: string, - addedValue: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - initialize( - name: string, - symbol: string, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - mint( - recipient: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - name(overrides?: CallOverrides): Promise; - - owner(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - transferFrom( - from: string, - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - transferOwnership( - newOwner: string, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - }; - - populateTransaction: { - allowance( - owner: string, - spender: string, - overrides?: CallOverrides - ): Promise; - - approve( - spender: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - balanceOf( - account: string, - overrides?: CallOverrides - ): Promise; - - burnFrom( - account: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - decreaseAllowance( - spender: string, - subtractedValue: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - increaseAllowance( - spender: string, - addedValue: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - initialize( - name: string, - symbol: string, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - mint( - recipient: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - name(overrides?: CallOverrides): Promise; - - owner(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - transferFrom( - from: string, - to: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - transferOwnership( - newOwner: string, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - }; -} diff --git a/typings/LibAsset.ts b/typings/LibAsset.ts index 86d58559..aee6ca79 100644 --- a/typings/LibAsset.ts +++ b/typings/LibAsset.ts @@ -16,31 +16,31 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface LibAssetInterface extends utils.Interface { functions: { - "c_4e3cd818(bytes8)": FunctionFragment; - "c_false4e3cd818(bytes8)": FunctionFragment; - "c_true4e3cd818(bytes8)": FunctionFragment; + "c_724619c6(bytes8)": FunctionFragment; + "c_false724619c6(bytes8)": FunctionFragment; + "c_true724619c6(bytes8)": FunctionFragment; }; encodeFunctionData( - functionFragment: "c_4e3cd818", + functionFragment: "c_724619c6", values: [BytesLike] ): string; encodeFunctionData( - functionFragment: "c_false4e3cd818", + functionFragment: "c_false724619c6", values: [BytesLike] ): string; encodeFunctionData( - functionFragment: "c_true4e3cd818", + functionFragment: "c_true724619c6", values: [BytesLike] ): string; - decodeFunctionResult(functionFragment: "c_4e3cd818", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_724619c6", data: BytesLike): Result; decodeFunctionResult( - functionFragment: "c_false4e3cd818", + functionFragment: "c_false724619c6", data: BytesLike ): Result; decodeFunctionResult( - functionFragment: "c_true4e3cd818", + functionFragment: "c_true724619c6", data: BytesLike ): Result; @@ -74,47 +74,47 @@ export interface LibAsset extends BaseContract { removeListener: OnEvent; functions: { - c_4e3cd818( - c__4e3cd818: BytesLike, + c_724619c6( + c__724619c6: BytesLike, overrides?: CallOverrides ): Promise<[void]>; - c_false4e3cd818( - c__4e3cd818: BytesLike, + c_false724619c6( + c__724619c6: BytesLike, overrides?: CallOverrides ): Promise<[boolean]>; - c_true4e3cd818( - c__4e3cd818: BytesLike, + c_true724619c6( + c__724619c6: BytesLike, overrides?: CallOverrides ): Promise<[boolean]>; }; - c_4e3cd818(c__4e3cd818: BytesLike, overrides?: CallOverrides): Promise; + c_724619c6(c__724619c6: BytesLike, overrides?: CallOverrides): Promise; - c_false4e3cd818( - c__4e3cd818: BytesLike, + c_false724619c6( + c__724619c6: BytesLike, overrides?: CallOverrides ): Promise; - c_true4e3cd818( - c__4e3cd818: BytesLike, + c_true724619c6( + c__724619c6: BytesLike, overrides?: CallOverrides ): Promise; callStatic: { - c_4e3cd818( - c__4e3cd818: BytesLike, + c_724619c6( + c__724619c6: BytesLike, overrides?: CallOverrides ): Promise; - c_false4e3cd818( - c__4e3cd818: BytesLike, + c_false724619c6( + c__724619c6: BytesLike, overrides?: CallOverrides ): Promise; - c_true4e3cd818( - c__4e3cd818: BytesLike, + c_true724619c6( + c__724619c6: BytesLike, overrides?: CallOverrides ): Promise; }; @@ -122,35 +122,35 @@ export interface LibAsset extends BaseContract { filters: {}; estimateGas: { - c_4e3cd818( - c__4e3cd818: BytesLike, + c_724619c6( + c__724619c6: BytesLike, overrides?: CallOverrides ): Promise; - c_false4e3cd818( - c__4e3cd818: BytesLike, + c_false724619c6( + c__724619c6: BytesLike, overrides?: CallOverrides ): Promise; - c_true4e3cd818( - c__4e3cd818: BytesLike, + c_true724619c6( + c__724619c6: BytesLike, overrides?: CallOverrides ): Promise; }; populateTransaction: { - c_4e3cd818( - c__4e3cd818: BytesLike, + c_724619c6( + c__724619c6: BytesLike, overrides?: CallOverrides ): Promise; - c_false4e3cd818( - c__4e3cd818: BytesLike, + c_false724619c6( + c__724619c6: BytesLike, overrides?: CallOverrides ): Promise; - c_true4e3cd818( - c__4e3cd818: BytesLike, + c_true724619c6( + c__724619c6: BytesLike, overrides?: CallOverrides ): Promise; }; diff --git a/typings/LibDiamond.ts b/typings/LibDiamond.ts index 6a96e32d..245fba9f 100644 --- a/typings/LibDiamond.ts +++ b/typings/LibDiamond.ts @@ -1,8 +1,17 @@ /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ -import { BaseContract, BigNumberish, BytesLike, Signer, utils } from "ethers"; -import { EventFragment } from "@ethersproject/abi"; +import { + BaseContract, + BigNumber, + BigNumberish, + BytesLike, + CallOverrides, + PopulatedTransaction, + Signer, + utils, +} from "ethers"; +import { FunctionFragment, Result, EventFragment } from "@ethersproject/abi"; import { Listener, Provider } from "@ethersproject/providers"; import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; @@ -19,7 +28,34 @@ export type FacetCutStructOutput = [string, number, string[]] & { }; export interface LibDiamondInterface extends utils.Interface { - functions: {}; + functions: { + "c_f9a76502(bytes8)": FunctionFragment; + "c_falsef9a76502(bytes8)": FunctionFragment; + "c_truef9a76502(bytes8)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "c_f9a76502", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_falsef9a76502", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_truef9a76502", + values: [BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "c_f9a76502", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_falsef9a76502", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_truef9a76502", + data: BytesLike + ): Result; events: { "DiamondCut(tuple[],address,bytes)": EventFragment; @@ -71,9 +107,51 @@ export interface LibDiamond extends BaseContract { once: OnEvent; removeListener: OnEvent; - functions: {}; + functions: { + c_f9a76502( + c__f9a76502: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_falsef9a76502( + c__f9a76502: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_truef9a76502( + c__f9a76502: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + }; - callStatic: {}; + c_f9a76502(c__f9a76502: BytesLike, overrides?: CallOverrides): Promise; + + c_falsef9a76502( + c__f9a76502: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truef9a76502( + c__f9a76502: BytesLike, + overrides?: CallOverrides + ): Promise; + + callStatic: { + c_f9a76502( + c__f9a76502: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsef9a76502( + c__f9a76502: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truef9a76502( + c__f9a76502: BytesLike, + overrides?: CallOverrides + ): Promise; + }; filters: { "DiamondCut(tuple[],address,bytes)"( @@ -97,7 +175,37 @@ export interface LibDiamond extends BaseContract { ): OwnershipTransferredEventFilter; }; - estimateGas: {}; + estimateGas: { + c_f9a76502( + c__f9a76502: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsef9a76502( + c__f9a76502: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truef9a76502( + c__f9a76502: BytesLike, + overrides?: CallOverrides + ): Promise; + }; - populateTransaction: {}; + populateTransaction: { + c_f9a76502( + c__f9a76502: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsef9a76502( + c__f9a76502: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truef9a76502( + c__f9a76502: BytesLike, + overrides?: CallOverrides + ): Promise; + }; } diff --git a/typings/OwnableUpgradeable.ts b/typings/OwnableUpgradeable.ts deleted file mode 100644 index a703651b..00000000 --- a/typings/OwnableUpgradeable.ts +++ /dev/null @@ -1,167 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - BaseContract, - BigNumber, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import { FunctionFragment, Result, EventFragment } from "@ethersproject/abi"; -import { Listener, Provider } from "@ethersproject/providers"; -import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; - -export interface OwnableUpgradeableInterface extends utils.Interface { - functions: { - "owner()": FunctionFragment; - "renounceOwnership()": FunctionFragment; - "transferOwnership(address)": FunctionFragment; - }; - - encodeFunctionData(functionFragment: "owner", values?: undefined): string; - encodeFunctionData( - functionFragment: "renounceOwnership", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transferOwnership", - values: [string] - ): string; - - decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "renounceOwnership", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "transferOwnership", - data: BytesLike - ): Result; - - events: { - "Initialized(uint8)": EventFragment; - "OwnershipTransferred(address,address)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; - getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; -} - -export type InitializedEvent = TypedEvent<[number], { version: number }>; - -export type InitializedEventFilter = TypedEventFilter; - -export type OwnershipTransferredEvent = TypedEvent< - [string, string], - { previousOwner: string; newOwner: string } ->; - -export type OwnershipTransferredEventFilter = - TypedEventFilter; - -export interface OwnableUpgradeable extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: OwnableUpgradeableInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - owner(overrides?: CallOverrides): Promise<[string]>; - - renounceOwnership( - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - transferOwnership( - newOwner: string, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - }; - - owner(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - transferOwnership( - newOwner: string, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - callStatic: { - owner(overrides?: CallOverrides): Promise; - - renounceOwnership(overrides?: CallOverrides): Promise; - - transferOwnership( - newOwner: string, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "Initialized(uint8)"(version?: null): InitializedEventFilter; - Initialized(version?: null): InitializedEventFilter; - - "OwnershipTransferred(address,address)"( - previousOwner?: string | null, - newOwner?: string | null - ): OwnershipTransferredEventFilter; - OwnershipTransferred( - previousOwner?: string | null, - newOwner?: string | null - ): OwnershipTransferredEventFilter; - }; - - estimateGas: { - owner(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - transferOwnership( - newOwner: string, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - }; - - populateTransaction: { - owner(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - transferOwnership( - newOwner: string, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - }; -} diff --git a/typings/OwnershipFacet.ts b/typings/OwnershipFacet.ts index 0920c0f4..1893f462 100644 --- a/typings/OwnershipFacet.ts +++ b/typings/OwnershipFacet.ts @@ -18,16 +18,40 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface OwnershipFacetInterface extends utils.Interface { functions: { + "c_2f222e9f(bytes8)": FunctionFragment; + "c_false2f222e9f(bytes8)": FunctionFragment; + "c_true2f222e9f(bytes8)": FunctionFragment; "owner()": FunctionFragment; "transferOwnership(address)": FunctionFragment; }; + encodeFunctionData( + functionFragment: "c_2f222e9f", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false2f222e9f", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true2f222e9f", + values: [BytesLike] + ): string; encodeFunctionData(functionFragment: "owner", values?: undefined): string; encodeFunctionData( functionFragment: "transferOwnership", values: [string] ): string; + decodeFunctionResult(functionFragment: "c_2f222e9f", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false2f222e9f", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true2f222e9f", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; decodeFunctionResult( functionFragment: "transferOwnership", @@ -64,6 +88,21 @@ export interface OwnershipFacet extends BaseContract { removeListener: OnEvent; functions: { + c_2f222e9f( + c__2f222e9f: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false2f222e9f( + c__2f222e9f: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true2f222e9f( + c__2f222e9f: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + owner(overrides?: CallOverrides): Promise<[string] & { owner_: string }>; transferOwnership( @@ -72,6 +111,18 @@ export interface OwnershipFacet extends BaseContract { ): Promise; }; + c_2f222e9f(c__2f222e9f: BytesLike, overrides?: CallOverrides): Promise; + + c_false2f222e9f( + c__2f222e9f: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true2f222e9f( + c__2f222e9f: BytesLike, + overrides?: CallOverrides + ): Promise; + owner(overrides?: CallOverrides): Promise; transferOwnership( @@ -80,6 +131,21 @@ export interface OwnershipFacet extends BaseContract { ): Promise; callStatic: { + c_2f222e9f( + c__2f222e9f: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false2f222e9f( + c__2f222e9f: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true2f222e9f( + c__2f222e9f: BytesLike, + overrides?: CallOverrides + ): Promise; + owner(overrides?: CallOverrides): Promise; transferOwnership( @@ -91,6 +157,21 @@ export interface OwnershipFacet extends BaseContract { filters: {}; estimateGas: { + c_2f222e9f( + c__2f222e9f: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false2f222e9f( + c__2f222e9f: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true2f222e9f( + c__2f222e9f: BytesLike, + overrides?: CallOverrides + ): Promise; + owner(overrides?: CallOverrides): Promise; transferOwnership( @@ -100,6 +181,21 @@ export interface OwnershipFacet extends BaseContract { }; populateTransaction: { + c_2f222e9f( + c__2f222e9f: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false2f222e9f( + c__2f222e9f: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true2f222e9f( + c__2f222e9f: BytesLike, + overrides?: CallOverrides + ): Promise; + owner(overrides?: CallOverrides): Promise; transferOwnership( diff --git a/typings/PaymentDepositAccount.ts b/typings/PaymentDepositAccount.ts index 4b7a64db..3f14e33c 100644 --- a/typings/PaymentDepositAccount.ts +++ b/typings/PaymentDepositAccount.ts @@ -19,10 +19,40 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface PaymentDepositAccountInterface extends utils.Interface { functions: { + "c_495bfa8b(bytes8)": FunctionFragment; + "c_90f8af33(bytes8)": FunctionFragment; + "c_false495bfa8b(bytes8)": FunctionFragment; + "c_false90f8af33(bytes8)": FunctionFragment; + "c_true495bfa8b(bytes8)": FunctionFragment; + "c_true90f8af33(bytes8)": FunctionFragment; "controller()": FunctionFragment; "executeTransaction(address,uint256,bytes)": FunctionFragment; }; + encodeFunctionData( + functionFragment: "c_495bfa8b", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_90f8af33", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false495bfa8b", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false90f8af33", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true495bfa8b", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true90f8af33", + values: [BytesLike] + ): string; encodeFunctionData( functionFragment: "controller", values?: undefined @@ -32,6 +62,24 @@ export interface PaymentDepositAccountInterface extends utils.Interface { values: [string, BigNumberish, BytesLike] ): string; + decodeFunctionResult(functionFragment: "c_495bfa8b", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_90f8af33", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false495bfa8b", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_false90f8af33", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true495bfa8b", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true90f8af33", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "controller", data: BytesLike): Result; decodeFunctionResult( functionFragment: "executeTransaction", @@ -68,6 +116,36 @@ export interface PaymentDepositAccount extends BaseContract { removeListener: OnEvent; functions: { + c_495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_90f8af33( + c__90f8af33: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_false90f8af33( + c__90f8af33: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true90f8af33( + c__90f8af33: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + controller(overrides?: CallOverrides): Promise<[string]>; executeTransaction( @@ -78,6 +156,30 @@ export interface PaymentDepositAccount extends BaseContract { ): Promise; }; + c_495bfa8b(c__495bfa8b: BytesLike, overrides?: CallOverrides): Promise; + + c_90f8af33(c__90f8af33: BytesLike, overrides?: CallOverrides): Promise; + + c_false495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false90f8af33( + c__90f8af33: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true90f8af33( + c__90f8af33: BytesLike, + overrides?: CallOverrides + ): Promise; + controller(overrides?: CallOverrides): Promise; executeTransaction( @@ -88,6 +190,36 @@ export interface PaymentDepositAccount extends BaseContract { ): Promise; callStatic: { + c_495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_90f8af33( + c__90f8af33: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false90f8af33( + c__90f8af33: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true90f8af33( + c__90f8af33: BytesLike, + overrides?: CallOverrides + ): Promise; + controller(overrides?: CallOverrides): Promise; executeTransaction( @@ -101,6 +233,36 @@ export interface PaymentDepositAccount extends BaseContract { filters: {}; estimateGas: { + c_495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_90f8af33( + c__90f8af33: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false90f8af33( + c__90f8af33: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true90f8af33( + c__90f8af33: BytesLike, + overrides?: CallOverrides + ): Promise; + controller(overrides?: CallOverrides): Promise; executeTransaction( @@ -112,6 +274,36 @@ export interface PaymentDepositAccount extends BaseContract { }; populateTransaction: { + c_495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_90f8af33( + c__90f8af33: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false90f8af33( + c__90f8af33: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true495bfa8b( + c__495bfa8b: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true90f8af33( + c__90f8af33: BytesLike, + overrides?: CallOverrides + ): Promise; + controller(overrides?: CallOverrides): Promise; executeTransaction( diff --git a/typings/PaymentRegistry.ts b/typings/PaymentRegistry.ts index 01bc8fda..174876cd 100644 --- a/typings/PaymentRegistry.ts +++ b/typings/PaymentRegistry.ts @@ -57,6 +57,21 @@ export type PaymentChannelCommitStructOutput = [ export interface PaymentRegistryInterface extends utils.Interface { functions: { "addGuardian(address)": FunctionFragment; + "c_098c0657(bytes8)": FunctionFragment; + "c_0b6945c4(bytes8)": FunctionFragment; + "c_52615ca8(bytes8)": FunctionFragment; + "c_d18be0f9(bytes8)": FunctionFragment; + "c_e6f7a58d(bytes8)": FunctionFragment; + "c_false098c0657(bytes8)": FunctionFragment; + "c_false0b6945c4(bytes8)": FunctionFragment; + "c_false52615ca8(bytes8)": FunctionFragment; + "c_falsed18be0f9(bytes8)": FunctionFragment; + "c_falsee6f7a58d(bytes8)": FunctionFragment; + "c_true098c0657(bytes8)": FunctionFragment; + "c_true0b6945c4(bytes8)": FunctionFragment; + "c_true52615ca8(bytes8)": FunctionFragment; + "c_trued18be0f9(bytes8)": FunctionFragment; + "c_truee6f7a58d(bytes8)": FunctionFragment; "chainId()": FunctionFragment; "commitPaymentChannelAndDeposit(address,address,bytes32,uint256,uint256,bytes,bytes)": FunctionFragment; "commitPaymentChannelAndSplit(address,address,bytes32,uint256,uint256,uint256,bytes,bytes)": FunctionFragment; @@ -85,6 +100,66 @@ export interface PaymentRegistryInterface extends utils.Interface { }; encodeFunctionData(functionFragment: "addGuardian", values: [string]): string; + encodeFunctionData( + functionFragment: "c_098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_0b6945c4", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_52615ca8", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_d18be0f9", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_e6f7a58d", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false0b6945c4", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false52615ca8", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_falsed18be0f9", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_falsee6f7a58d", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true0b6945c4", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true52615ca8", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_trued18be0f9", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_truee6f7a58d", + values: [BytesLike] + ): string; encodeFunctionData(functionFragment: "chainId", values?: undefined): string; encodeFunctionData( functionFragment: "commitPaymentChannelAndDeposit", @@ -206,6 +281,51 @@ export interface PaymentRegistryInterface extends utils.Interface { functionFragment: "addGuardian", data: BytesLike ): Result; + decodeFunctionResult(functionFragment: "c_098c0657", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_0b6945c4", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_52615ca8", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_d18be0f9", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_e6f7a58d", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false098c0657", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_false0b6945c4", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_false52615ca8", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_falsed18be0f9", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_falsee6f7a58d", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true098c0657", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true0b6945c4", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true52615ca8", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_trued18be0f9", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_truee6f7a58d", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "chainId", data: BytesLike): Result; decodeFunctionResult( functionFragment: "commitPaymentChannelAndDeposit", @@ -457,6 +577,81 @@ export interface PaymentRegistry extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_d18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_e6f7a58d( + c__e6f7a58d: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_false0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_false52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_falsed18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_falsee6f7a58d( + c__e6f7a58d: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_trued18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_truee6f7a58d( + c__e6f7a58d: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + chainId(overrides?: CallOverrides): Promise<[BigNumber]>; commitPaymentChannelAndDeposit( @@ -598,6 +793,66 @@ export interface PaymentRegistry extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; + c_098c0657(c__098c0657: BytesLike, overrides?: CallOverrides): Promise; + + c_0b6945c4(c__0b6945c4: BytesLike, overrides?: CallOverrides): Promise; + + c_52615ca8(c__52615ca8: BytesLike, overrides?: CallOverrides): Promise; + + c_d18be0f9(c__d18be0f9: BytesLike, overrides?: CallOverrides): Promise; + + c_e6f7a58d(c__e6f7a58d: BytesLike, overrides?: CallOverrides): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsed18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsee6f7a58d( + c__e6f7a58d: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trued18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truee6f7a58d( + c__e6f7a58d: BytesLike, + overrides?: CallOverrides + ): Promise; + chainId(overrides?: CallOverrides): Promise; commitPaymentChannelAndDeposit( @@ -736,6 +991,81 @@ export interface PaymentRegistry extends BaseContract { callStatic: { addGuardian(guardian: string, overrides?: CallOverrides): Promise; + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_d18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_e6f7a58d( + c__e6f7a58d: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsed18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsee6f7a58d( + c__e6f7a58d: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trued18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truee6f7a58d( + c__e6f7a58d: BytesLike, + overrides?: CallOverrides + ): Promise; + chainId(overrides?: CallOverrides): Promise; commitPaymentChannelAndDeposit( @@ -991,6 +1321,81 @@ export interface PaymentRegistry extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_d18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_e6f7a58d( + c__e6f7a58d: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsed18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsee6f7a58d( + c__e6f7a58d: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trued18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truee6f7a58d( + c__e6f7a58d: BytesLike, + overrides?: CallOverrides + ): Promise; + chainId(overrides?: CallOverrides): Promise; commitPaymentChannelAndDeposit( @@ -1133,6 +1538,81 @@ export interface PaymentRegistry extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_d18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_e6f7a58d( + c__e6f7a58d: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsed18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsee6f7a58d( + c__e6f7a58d: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trued18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truee6f7a58d( + c__e6f7a58d: BytesLike, + overrides?: CallOverrides + ): Promise; + chainId(overrides?: CallOverrides): Promise; commitPaymentChannelAndDeposit( diff --git a/typings/PersonalAccountImplementationV1.ts b/typings/PersonalAccountImplementationV1.ts index f72cf449..5fcb76ed 100644 --- a/typings/PersonalAccountImplementationV1.ts +++ b/typings/PersonalAccountImplementationV1.ts @@ -20,6 +20,18 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface PersonalAccountImplementationV1Interface extends utils.Interface { functions: { + "c_098c0657(bytes8)": FunctionFragment; + "c_28344ffb(bytes8)": FunctionFragment; + "c_2860b96a(bytes8)": FunctionFragment; + "c_4467154e(bytes8)": FunctionFragment; + "c_false098c0657(bytes8)": FunctionFragment; + "c_false28344ffb(bytes8)": FunctionFragment; + "c_false2860b96a(bytes8)": FunctionFragment; + "c_false4467154e(bytes8)": FunctionFragment; + "c_true098c0657(bytes8)": FunctionFragment; + "c_true28344ffb(bytes8)": FunctionFragment; + "c_true2860b96a(bytes8)": FunctionFragment; + "c_true4467154e(bytes8)": FunctionFragment; "canImplementInterfaceForAddress(bytes32,address)": FunctionFragment; "initialize(address)": FunctionFragment; "isInitialized()": FunctionFragment; @@ -30,6 +42,54 @@ export interface PersonalAccountImplementationV1Interface "tokensReceived(address,address,address,uint256,bytes,bytes)": FunctionFragment; }; + encodeFunctionData( + functionFragment: "c_098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_28344ffb", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_2860b96a", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_4467154e", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false28344ffb", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false2860b96a", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false4467154e", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true28344ffb", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true2860b96a", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true4467154e", + values: [BytesLike] + ): string; encodeFunctionData( functionFragment: "canImplementInterfaceForAddress", values: [BytesLike, string] @@ -57,6 +117,42 @@ export interface PersonalAccountImplementationV1Interface values: [string, string, string, BigNumberish, BytesLike, BytesLike] ): string; + decodeFunctionResult(functionFragment: "c_098c0657", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_28344ffb", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_2860b96a", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_4467154e", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false098c0657", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_false28344ffb", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_false2860b96a", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_false4467154e", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true098c0657", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true28344ffb", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true2860b96a", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true4467154e", + data: BytesLike + ): Result; decodeFunctionResult( functionFragment: "canImplementInterfaceForAddress", data: BytesLike @@ -122,6 +218,66 @@ export interface PersonalAccountImplementationV1 extends BaseContract { removeListener: OnEvent; functions: { + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_4467154e( + c__4467154e: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_false28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_false2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_false4467154e( + c__4467154e: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true4467154e( + c__4467154e: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + canImplementInterfaceForAddress( interfaceHash: BytesLike, addr: string, @@ -177,6 +333,54 @@ export interface PersonalAccountImplementationV1 extends BaseContract { ): Promise<[void]>; }; + c_098c0657(c__098c0657: BytesLike, overrides?: CallOverrides): Promise; + + c_28344ffb(c__28344ffb: BytesLike, overrides?: CallOverrides): Promise; + + c_2860b96a(c__2860b96a: BytesLike, overrides?: CallOverrides): Promise; + + c_4467154e(c__4467154e: BytesLike, overrides?: CallOverrides): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false4467154e( + c__4467154e: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true4467154e( + c__4467154e: BytesLike, + overrides?: CallOverrides + ): Promise; + canImplementInterfaceForAddress( interfaceHash: BytesLike, addr: string, @@ -232,6 +436,66 @@ export interface PersonalAccountImplementationV1 extends BaseContract { ): Promise; callStatic: { + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_4467154e( + c__4467154e: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false4467154e( + c__4467154e: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true4467154e( + c__4467154e: BytesLike, + overrides?: CallOverrides + ): Promise; + canImplementInterfaceForAddress( interfaceHash: BytesLike, addr: string, @@ -290,6 +554,66 @@ export interface PersonalAccountImplementationV1 extends BaseContract { }; estimateGas: { + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_4467154e( + c__4467154e: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false4467154e( + c__4467154e: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true4467154e( + c__4467154e: BytesLike, + overrides?: CallOverrides + ): Promise; + canImplementInterfaceForAddress( interfaceHash: BytesLike, addr: string, @@ -346,6 +670,66 @@ export interface PersonalAccountImplementationV1 extends BaseContract { }; populateTransaction: { + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_4467154e( + c__4467154e: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false4467154e( + c__4467154e: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true28344ffb( + c__28344ffb: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true2860b96a( + c__2860b96a: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true4467154e( + c__4467154e: BytesLike, + overrides?: CallOverrides + ): Promise; + canImplementInterfaceForAddress( interfaceHash: BytesLike, addr: string, diff --git a/typings/PersonalAccountRegistry.ts b/typings/PersonalAccountRegistry.ts index 3052ea7c..332140bb 100644 --- a/typings/PersonalAccountRegistry.ts +++ b/typings/PersonalAccountRegistry.ts @@ -23,6 +23,24 @@ export interface PersonalAccountRegistryInterface extends utils.Interface { "accountRegistry()": FunctionFragment; "addAccountOwner(address,address)": FunctionFragment; "addGuardian(address)": FunctionFragment; + "c_098c0657(bytes8)": FunctionFragment; + "c_0b6945c4(bytes8)": FunctionFragment; + "c_279b00a1(bytes8)": FunctionFragment; + "c_9649d652(bytes8)": FunctionFragment; + "c_bf6efb80(bytes8)": FunctionFragment; + "c_d18be0f9(bytes8)": FunctionFragment; + "c_false098c0657(bytes8)": FunctionFragment; + "c_false0b6945c4(bytes8)": FunctionFragment; + "c_false279b00a1(bytes8)": FunctionFragment; + "c_false9649d652(bytes8)": FunctionFragment; + "c_falsebf6efb80(bytes8)": FunctionFragment; + "c_falsed18be0f9(bytes8)": FunctionFragment; + "c_true098c0657(bytes8)": FunctionFragment; + "c_true0b6945c4(bytes8)": FunctionFragment; + "c_true279b00a1(bytes8)": FunctionFragment; + "c_true9649d652(bytes8)": FunctionFragment; + "c_truebf6efb80(bytes8)": FunctionFragment; + "c_trued18be0f9(bytes8)": FunctionFragment; "computeAccountAddress(address)": FunctionFragment; "deployAccount(address)": FunctionFragment; "executeAccountTransaction(address,address,uint256,bytes)": FunctionFragment; @@ -55,6 +73,78 @@ export interface PersonalAccountRegistryInterface extends utils.Interface { values: [string, string] ): string; encodeFunctionData(functionFragment: "addGuardian", values: [string]): string; + encodeFunctionData( + functionFragment: "c_098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_0b6945c4", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_279b00a1", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_9649d652", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_bf6efb80", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_d18be0f9", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false0b6945c4", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false279b00a1", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false9649d652", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_falsebf6efb80", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_falsed18be0f9", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true0b6945c4", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true279b00a1", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true9649d652", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_truebf6efb80", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_trued18be0f9", + values: [BytesLike] + ): string; encodeFunctionData( functionFragment: "computeAccountAddress", values: [string] @@ -131,6 +221,60 @@ export interface PersonalAccountRegistryInterface extends utils.Interface { functionFragment: "addGuardian", data: BytesLike ): Result; + decodeFunctionResult(functionFragment: "c_098c0657", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_0b6945c4", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_279b00a1", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_9649d652", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_bf6efb80", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_d18be0f9", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false098c0657", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_false0b6945c4", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_false279b00a1", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_false9649d652", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_falsebf6efb80", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_falsed18be0f9", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true098c0657", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true0b6945c4", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true279b00a1", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true9649d652", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_truebf6efb80", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_trued18be0f9", + data: BytesLike + ): Result; decodeFunctionResult( functionFragment: "computeAccountAddress", data: BytesLike @@ -345,6 +489,96 @@ export interface PersonalAccountRegistry extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_279b00a1( + c__279b00a1: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_bf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_d18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_false0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_false279b00a1( + c__279b00a1: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_false9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_falsebf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_falsed18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true279b00a1( + c__279b00a1: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_truebf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_trued18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + computeAccountAddress( saltOwner: string, overrides?: CallOverrides @@ -458,6 +692,78 @@ export interface PersonalAccountRegistry extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; + c_098c0657(c__098c0657: BytesLike, overrides?: CallOverrides): Promise; + + c_0b6945c4(c__0b6945c4: BytesLike, overrides?: CallOverrides): Promise; + + c_279b00a1(c__279b00a1: BytesLike, overrides?: CallOverrides): Promise; + + c_9649d652(c__9649d652: BytesLike, overrides?: CallOverrides): Promise; + + c_bf6efb80(c__bf6efb80: BytesLike, overrides?: CallOverrides): Promise; + + c_d18be0f9(c__d18be0f9: BytesLike, overrides?: CallOverrides): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false279b00a1( + c__279b00a1: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsebf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsed18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true279b00a1( + c__279b00a1: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truebf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trued18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + computeAccountAddress( saltOwner: string, overrides?: CallOverrides @@ -568,6 +874,96 @@ export interface PersonalAccountRegistry extends BaseContract { addGuardian(guardian: string, overrides?: CallOverrides): Promise; + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_279b00a1( + c__279b00a1: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_bf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_d18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false279b00a1( + c__279b00a1: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsebf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsed18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true279b00a1( + c__279b00a1: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truebf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trued18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + computeAccountAddress( saltOwner: string, overrides?: CallOverrides @@ -768,6 +1164,96 @@ export interface PersonalAccountRegistry extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_279b00a1( + c__279b00a1: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_bf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_d18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false279b00a1( + c__279b00a1: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsebf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsed18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true279b00a1( + c__279b00a1: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truebf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trued18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + computeAccountAddress( saltOwner: string, overrides?: CallOverrides @@ -884,6 +1370,96 @@ export interface PersonalAccountRegistry extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_279b00a1( + c__279b00a1: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_bf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_d18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false279b00a1( + c__279b00a1: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsebf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsed18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true0b6945c4( + c__0b6945c4: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true279b00a1( + c__279b00a1: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true9649d652( + c__9649d652: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_truebf6efb80( + c__bf6efb80: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trued18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + computeAccountAddress( saltOwner: string, overrides?: CallOverrides diff --git a/typings/ReentrancyGuard.ts b/typings/ReentrancyGuard.ts index 9215887f..c1d77f51 100644 --- a/typings/ReentrancyGuard.ts +++ b/typings/ReentrancyGuard.ts @@ -1,13 +1,48 @@ /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ -import { BaseContract, Signer, utils } from "ethers"; - +import { + BaseContract, + BigNumber, + BytesLike, + CallOverrides, + PopulatedTransaction, + Signer, + utils, +} from "ethers"; +import { FunctionFragment, Result } from "@ethersproject/abi"; import { Listener, Provider } from "@ethersproject/providers"; import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface ReentrancyGuardInterface extends utils.Interface { - functions: {}; + functions: { + "c_9296fc39(bytes8)": FunctionFragment; + "c_false9296fc39(bytes8)": FunctionFragment; + "c_true9296fc39(bytes8)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "c_9296fc39", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false9296fc39", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true9296fc39", + values: [BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "c_9296fc39", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false9296fc39", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true9296fc39", + data: BytesLike + ): Result; events: {}; } @@ -38,13 +73,85 @@ export interface ReentrancyGuard extends BaseContract { once: OnEvent; removeListener: OnEvent; - functions: {}; + functions: { + c_9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + }; + + c_9296fc39(c__9296fc39: BytesLike, overrides?: CallOverrides): Promise; + + c_false9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; - callStatic: {}; + c_true9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + + callStatic: { + c_9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + }; filters: {}; - estimateGas: {}; + estimateGas: { + c_9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + c_9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; - populateTransaction: {}; + c_true9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + }; } diff --git a/typings/SGReceiver.ts b/typings/SGReceiver.ts new file mode 100644 index 00000000..c67bf760 --- /dev/null +++ b/typings/SGReceiver.ts @@ -0,0 +1,150 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + BaseContract, + BigNumber, + BigNumberish, + BytesLike, + CallOverrides, + ContractTransaction, + Overrides, + PopulatedTransaction, + Signer, + utils, +} from "ethers"; +import { FunctionFragment, Result, EventFragment } from "@ethersproject/abi"; +import { Listener, Provider } from "@ethersproject/providers"; +import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; + +export interface SGReceiverInterface extends utils.Interface { + functions: { + "sgReceive(uint16,bytes,uint256,address,uint256,bytes)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "sgReceive", + values: [ + BigNumberish, + BytesLike, + BigNumberish, + string, + BigNumberish, + BytesLike + ] + ): string; + + decodeFunctionResult(functionFragment: "sgReceive", data: BytesLike): Result; + + events: { + "StargateReceivedOnDestination(address,uint256)": EventFragment; + }; + + getEvent( + nameOrSignatureOrTopic: "StargateReceivedOnDestination" + ): EventFragment; +} + +export type StargateReceivedOnDestinationEvent = TypedEvent< + [string, BigNumber], + { token: string; amount: BigNumber } +>; + +export type StargateReceivedOnDestinationEventFilter = + TypedEventFilter; + +export interface SGReceiver extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + interface: SGReceiverInterface; + + queryFilter( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>; + + listeners( + eventFilter?: TypedEventFilter + ): Array>; + listeners(eventName?: string): Array; + removeAllListeners( + eventFilter: TypedEventFilter + ): this; + removeAllListeners(eventName?: string): this; + off: OnEvent; + on: OnEvent; + once: OnEvent; + removeListener: OnEvent; + + functions: { + sgReceive( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BigNumberish, + _token: string, + _amountLD: BigNumberish, + _payload: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + sgReceive( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BigNumberish, + _token: string, + _amountLD: BigNumberish, + _payload: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + sgReceive( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BigNumberish, + _token: string, + _amountLD: BigNumberish, + _payload: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + "StargateReceivedOnDestination(address,uint256)"( + token?: null, + amount?: null + ): StargateReceivedOnDestinationEventFilter; + StargateReceivedOnDestination( + token?: null, + amount?: null + ): StargateReceivedOnDestinationEventFilter; + }; + + estimateGas: { + sgReceive( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BigNumberish, + _token: string, + _amountLD: BigNumberish, + _payload: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + sgReceive( + arg0: BigNumberish, + arg1: BytesLike, + arg2: BigNumberish, + _token: string, + _amountLD: BigNumberish, + _payload: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/typings/SafeMathLib.ts b/typings/SafeMathLib.ts index 894df08a..8e80dd44 100644 --- a/typings/SafeMathLib.ts +++ b/typings/SafeMathLib.ts @@ -16,31 +16,31 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface SafeMathLibInterface extends utils.Interface { functions: { - "c_329dc82e(bytes8)": FunctionFragment; - "c_false329dc82e(bytes8)": FunctionFragment; - "c_true329dc82e(bytes8)": FunctionFragment; + "c_da111b5b(bytes8)": FunctionFragment; + "c_falseda111b5b(bytes8)": FunctionFragment; + "c_trueda111b5b(bytes8)": FunctionFragment; }; encodeFunctionData( - functionFragment: "c_329dc82e", + functionFragment: "c_da111b5b", values: [BytesLike] ): string; encodeFunctionData( - functionFragment: "c_false329dc82e", + functionFragment: "c_falseda111b5b", values: [BytesLike] ): string; encodeFunctionData( - functionFragment: "c_true329dc82e", + functionFragment: "c_trueda111b5b", values: [BytesLike] ): string; - decodeFunctionResult(functionFragment: "c_329dc82e", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_da111b5b", data: BytesLike): Result; decodeFunctionResult( - functionFragment: "c_false329dc82e", + functionFragment: "c_falseda111b5b", data: BytesLike ): Result; decodeFunctionResult( - functionFragment: "c_true329dc82e", + functionFragment: "c_trueda111b5b", data: BytesLike ): Result; @@ -74,47 +74,47 @@ export interface SafeMathLib extends BaseContract { removeListener: OnEvent; functions: { - c_329dc82e( - c__329dc82e: BytesLike, + c_da111b5b( + c__da111b5b: BytesLike, overrides?: CallOverrides ): Promise<[void]>; - c_false329dc82e( - c__329dc82e: BytesLike, + c_falseda111b5b( + c__da111b5b: BytesLike, overrides?: CallOverrides ): Promise<[boolean]>; - c_true329dc82e( - c__329dc82e: BytesLike, + c_trueda111b5b( + c__da111b5b: BytesLike, overrides?: CallOverrides ): Promise<[boolean]>; }; - c_329dc82e(c__329dc82e: BytesLike, overrides?: CallOverrides): Promise; + c_da111b5b(c__da111b5b: BytesLike, overrides?: CallOverrides): Promise; - c_false329dc82e( - c__329dc82e: BytesLike, + c_falseda111b5b( + c__da111b5b: BytesLike, overrides?: CallOverrides ): Promise; - c_true329dc82e( - c__329dc82e: BytesLike, + c_trueda111b5b( + c__da111b5b: BytesLike, overrides?: CallOverrides ): Promise; callStatic: { - c_329dc82e( - c__329dc82e: BytesLike, + c_da111b5b( + c__da111b5b: BytesLike, overrides?: CallOverrides ): Promise; - c_false329dc82e( - c__329dc82e: BytesLike, + c_falseda111b5b( + c__da111b5b: BytesLike, overrides?: CallOverrides ): Promise; - c_true329dc82e( - c__329dc82e: BytesLike, + c_trueda111b5b( + c__da111b5b: BytesLike, overrides?: CallOverrides ): Promise; }; @@ -122,35 +122,35 @@ export interface SafeMathLib extends BaseContract { filters: {}; estimateGas: { - c_329dc82e( - c__329dc82e: BytesLike, + c_da111b5b( + c__da111b5b: BytesLike, overrides?: CallOverrides ): Promise; - c_false329dc82e( - c__329dc82e: BytesLike, + c_falseda111b5b( + c__da111b5b: BytesLike, overrides?: CallOverrides ): Promise; - c_true329dc82e( - c__329dc82e: BytesLike, + c_trueda111b5b( + c__da111b5b: BytesLike, overrides?: CallOverrides ): Promise; }; populateTransaction: { - c_329dc82e( - c__329dc82e: BytesLike, + c_da111b5b( + c__da111b5b: BytesLike, overrides?: CallOverrides ): Promise; - c_false329dc82e( - c__329dc82e: BytesLike, + c_falseda111b5b( + c__da111b5b: BytesLike, overrides?: CallOverrides ): Promise; - c_true329dc82e( - c__329dc82e: BytesLike, + c_trueda111b5b( + c__da111b5b: BytesLike, overrides?: CallOverrides ): Promise; }; diff --git a/typings/SignatureValidator.ts b/typings/SignatureValidator.ts index 2a565492..236d6b4c 100644 --- a/typings/SignatureValidator.ts +++ b/typings/SignatureValidator.ts @@ -16,11 +16,35 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface SignatureValidatorInterface extends utils.Interface { functions: { + "c_52615ca8(bytes8)": FunctionFragment; + "c_false52615ca8(bytes8)": FunctionFragment; + "c_true52615ca8(bytes8)": FunctionFragment; "chainId()": FunctionFragment; }; + encodeFunctionData( + functionFragment: "c_52615ca8", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false52615ca8", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true52615ca8", + values: [BytesLike] + ): string; encodeFunctionData(functionFragment: "chainId", values?: undefined): string; + decodeFunctionResult(functionFragment: "c_52615ca8", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false52615ca8", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true52615ca8", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "chainId", data: BytesLike): Result; events: {}; @@ -53,22 +77,94 @@ export interface SignatureValidator extends BaseContract { removeListener: OnEvent; functions: { + c_52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + chainId(overrides?: CallOverrides): Promise<[BigNumber]>; }; + c_52615ca8(c__52615ca8: BytesLike, overrides?: CallOverrides): Promise; + + c_false52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + chainId(overrides?: CallOverrides): Promise; callStatic: { + c_52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + chainId(overrides?: CallOverrides): Promise; }; filters: {}; estimateGas: { + c_52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + chainId(overrides?: CallOverrides): Promise; }; populateTransaction: { + c_52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true52615ca8( + c__52615ca8: BytesLike, + overrides?: CallOverrides + ): Promise; + chainId(overrides?: CallOverrides): Promise; }; } diff --git a/typings/StargateFacet.ts b/typings/StargateFacet.ts index 275d38ca..e3822722 100644 --- a/typings/StargateFacet.ts +++ b/typings/StargateFacet.ts @@ -18,69 +18,114 @@ import { FunctionFragment, Result, EventFragment } from "@ethersproject/abi"; import { Listener, Provider } from "@ethersproject/providers"; import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; +export type ChainIdConfigStruct = { + chainId: BigNumberish; + layerZeroChainId: BigNumberish; +}; + +export type ChainIdConfigStructOutput = [BigNumber, number] & { + chainId: BigNumber; + layerZeroChainId: number; +}; + +export type StargateETHDataStruct = { + amount: BigNumberish; + dstChainId: BigNumberish; + to: string; + slippage: BigNumberish; +}; + +export type StargateETHDataStructOutput = [ + BigNumber, + BigNumber, + string, + number +] & { amount: BigNumber; dstChainId: BigNumber; to: string; slippage: number }; + export type StargateDataStruct = { - qty: BigNumberish; - fromToken: string; - toToken: string; + amount: BigNumberish; + bridgeToken: string; dstChainId: BigNumberish; + srcPoolId: BigNumberish; + dstPoolId: BigNumberish; to: string; + slippage: BigNumberish; destStargateComposed: string; }; export type StargateDataStructOutput = [ BigNumber, string, - string, + BigNumber, + number, number, string, + number, string ] & { - qty: BigNumber; - fromToken: string; - toToken: string; - dstChainId: number; + amount: BigNumber; + bridgeToken: string; + dstChainId: BigNumber; + srcPoolId: number; + dstPoolId: number; to: string; + slippage: number; destStargateComposed: string; }; export interface StargateFacetInterface extends utils.Interface { functions: { - "sgAddPool(uint16,address,uint16)": FunctionFragment; - "sgBridgeTokens((uint256,address,address,uint16,address,address))": FunctionFragment; - "sgCalculateFees(uint16,address,address)": FunctionFragment; - "sgCheckPoolId(uint16,address,uint16)": FunctionFragment; - "sgInitialize(address,uint16)": FunctionFragment; - "sgMinAmountOut(uint256)": FunctionFragment; + "c_8de507f8(bytes8)": FunctionFragment; + "c_9296fc39(bytes8)": FunctionFragment; + "c_false8de507f8(bytes8)": FunctionFragment; + "c_false9296fc39(bytes8)": FunctionFragment; + "c_true8de507f8(bytes8)": FunctionFragment; + "c_true9296fc39(bytes8)": FunctionFragment; + "getLzChainId(uint256)": FunctionFragment; + "initStargate(address,address,uint256,(uint256,uint16)[])": FunctionFragment; + "setLzChainId(uint256,uint16)": FunctionFragment; "sgReceive(uint16,bytes,uint256,address,uint256,bytes)": FunctionFragment; - "sgRetrievePoolId(uint16,address)": FunctionFragment; - "sgUpdateRouter(address)": FunctionFragment; - "sgUpdateSlippageTolerance(uint256)": FunctionFragment; + "stargateETHTransfer((uint256,uint256,address,uint16))": FunctionFragment; + "stargateFees((uint256,address,uint256,uint16,uint16,address,uint16,address),address)": FunctionFragment; + "stargateTokenTransfer((uint256,address,uint256,uint16,uint16,address,uint16,address))": FunctionFragment; }; encodeFunctionData( - functionFragment: "sgAddPool", - values: [BigNumberish, string, BigNumberish] + functionFragment: "c_8de507f8", + values: [BytesLike] ): string; encodeFunctionData( - functionFragment: "sgBridgeTokens", - values: [StargateDataStruct] + functionFragment: "c_9296fc39", + values: [BytesLike] ): string; encodeFunctionData( - functionFragment: "sgCalculateFees", - values: [BigNumberish, string, string] + functionFragment: "c_false8de507f8", + values: [BytesLike] ): string; encodeFunctionData( - functionFragment: "sgCheckPoolId", - values: [BigNumberish, string, BigNumberish] + functionFragment: "c_false9296fc39", + values: [BytesLike] ): string; encodeFunctionData( - functionFragment: "sgInitialize", - values: [string, BigNumberish] + functionFragment: "c_true8de507f8", + values: [BytesLike] ): string; encodeFunctionData( - functionFragment: "sgMinAmountOut", + functionFragment: "c_true9296fc39", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "getLzChainId", values: [BigNumberish] ): string; + encodeFunctionData( + functionFragment: "initStargate", + values: [string, string, BigNumberish, ChainIdConfigStruct[]] + ): string; + encodeFunctionData( + functionFragment: "setLzChainId", + values: [BigNumberish, BigNumberish] + ): string; encodeFunctionData( functionFragment: "sgReceive", values: [ @@ -93,119 +138,122 @@ export interface StargateFacetInterface extends utils.Interface { ] ): string; encodeFunctionData( - functionFragment: "sgRetrievePoolId", - values: [BigNumberish, string] + functionFragment: "stargateETHTransfer", + values: [StargateETHDataStruct] ): string; encodeFunctionData( - functionFragment: "sgUpdateRouter", - values: [string] + functionFragment: "stargateFees", + values: [StargateDataStruct, string] ): string; encodeFunctionData( - functionFragment: "sgUpdateSlippageTolerance", - values: [BigNumberish] + functionFragment: "stargateTokenTransfer", + values: [StargateDataStruct] ): string; - decodeFunctionResult(functionFragment: "sgAddPool", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_8de507f8", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_9296fc39", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false8de507f8", + data: BytesLike + ): Result; decodeFunctionResult( - functionFragment: "sgBridgeTokens", + functionFragment: "c_false9296fc39", data: BytesLike ): Result; decodeFunctionResult( - functionFragment: "sgCalculateFees", + functionFragment: "c_true8de507f8", data: BytesLike ): Result; decodeFunctionResult( - functionFragment: "sgCheckPoolId", + functionFragment: "c_true9296fc39", data: BytesLike ): Result; decodeFunctionResult( - functionFragment: "sgInitialize", + functionFragment: "getLzChainId", data: BytesLike ): Result; decodeFunctionResult( - functionFragment: "sgMinAmountOut", + functionFragment: "initStargate", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setLzChainId", data: BytesLike ): Result; decodeFunctionResult(functionFragment: "sgReceive", data: BytesLike): Result; decodeFunctionResult( - functionFragment: "sgRetrievePoolId", + functionFragment: "stargateETHTransfer", data: BytesLike ): Result; decodeFunctionResult( - functionFragment: "sgUpdateRouter", + functionFragment: "stargateFees", data: BytesLike ): Result; decodeFunctionResult( - functionFragment: "sgUpdateSlippageTolerance", + functionFragment: "stargateTokenTransfer", data: BytesLike ): Result; events: { - "SGAddedPool(uint16,address,uint16)": EventFragment; - "SGInitialized(address,uint16)": EventFragment; - "SGReceivedOnDestination(address,uint256)": EventFragment; - "SGTransferStarted(string,address,address,address,address,uint256,uint16)": EventFragment; - "SGUpdatedRouter(address)": EventFragment; - "SGUpdatedSlippageTolerance(uint256)": EventFragment; + "LzChainIdSet(uint256,uint16)": EventFragment; + "StargateETHSwap(address,address,uint256,uint256)": EventFragment; + "StargateInitialized(address,address,uint256)": EventFragment; + "StargateReceivedOnDestination(address,uint256)": EventFragment; + "StargateTokenSwap(address,address,address,uint256,uint256)": EventFragment; }; - getEvent(nameOrSignatureOrTopic: "SGAddedPool"): EventFragment; - getEvent(nameOrSignatureOrTopic: "SGInitialized"): EventFragment; - getEvent(nameOrSignatureOrTopic: "SGReceivedOnDestination"): EventFragment; - getEvent(nameOrSignatureOrTopic: "SGTransferStarted"): EventFragment; - getEvent(nameOrSignatureOrTopic: "SGUpdatedRouter"): EventFragment; - getEvent(nameOrSignatureOrTopic: "SGUpdatedSlippageTolerance"): EventFragment; + getEvent(nameOrSignatureOrTopic: "LzChainIdSet"): EventFragment; + getEvent(nameOrSignatureOrTopic: "StargateETHSwap"): EventFragment; + getEvent(nameOrSignatureOrTopic: "StargateInitialized"): EventFragment; + getEvent( + nameOrSignatureOrTopic: "StargateReceivedOnDestination" + ): EventFragment; + getEvent(nameOrSignatureOrTopic: "StargateTokenSwap"): EventFragment; } -export type SGAddedPoolEvent = TypedEvent< - [number, string, number], - { chainId: number; token: string; poolId: number } +export type LzChainIdSetEvent = TypedEvent< + [BigNumber, number], + { chainId: BigNumber; lzChainId: number } >; -export type SGAddedPoolEventFilter = TypedEventFilter; +export type LzChainIdSetEventFilter = TypedEventFilter; -export type SGInitializedEvent = TypedEvent< - [string, number], - { stargate: string; chainId: number } +export type StargateETHSwapEvent = TypedEvent< + [string, string, BigNumber, BigNumber], + { from: string; to: string; amount: BigNumber; chainIdTo: BigNumber } >; -export type SGInitializedEventFilter = TypedEventFilter; +export type StargateETHSwapEventFilter = TypedEventFilter; -export type SGReceivedOnDestinationEvent = TypedEvent< +export type StargateInitializedEvent = TypedEvent< + [string, string, BigNumber], + { stargateRouter: string; stargateETHRouter: string; chainId: BigNumber } +>; + +export type StargateInitializedEventFilter = + TypedEventFilter; + +export type StargateReceivedOnDestinationEvent = TypedEvent< [string, BigNumber], { token: string; amount: BigNumber } >; -export type SGReceivedOnDestinationEventFilter = - TypedEventFilter; +export type StargateReceivedOnDestinationEventFilter = + TypedEventFilter; -export type SGTransferStartedEvent = TypedEvent< - [string, string, string, string, string, BigNumber, number], +export type StargateTokenSwapEvent = TypedEvent< + [string, string, string, BigNumber, BigNumber], { - bridgeUsed: string; fromToken: string; - toToken: string; from: string; to: string; amount: BigNumber; - chainIdTo: number; + chainIdTo: BigNumber; } >; -export type SGTransferStartedEventFilter = - TypedEventFilter; - -export type SGUpdatedRouterEvent = TypedEvent<[string], { newAddress: string }>; - -export type SGUpdatedRouterEventFilter = TypedEventFilter; - -export type SGUpdatedSlippageToleranceEvent = TypedEvent< - [BigNumber], - { newSlippage: BigNumber } ->; - -export type SGUpdatedSlippageToleranceEventFilter = - TypedEventFilter; +export type StargateTokenSwapEventFilter = + TypedEventFilter; export interface StargateFacet extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; @@ -234,382 +282,435 @@ export interface StargateFacet extends BaseContract { removeListener: OnEvent; functions: { - sgAddPool( - _chainId: BigNumberish, - _token: string, - _poolId: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; + c_8de507f8( + c__8de507f8: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; - sgBridgeTokens( - _sgData: StargateDataStruct, - overrides?: PayableOverrides & { from?: string | Promise } - ): Promise; + c_9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; - sgCalculateFees( - _destChain: BigNumberish, - _receiver: string, - _router: string, + c_false8de507f8( + c__8de507f8: BytesLike, overrides?: CallOverrides - ): Promise<[BigNumber]>; + ): Promise<[boolean]>; - sgCheckPoolId( - _chainId: BigNumberish, - _token: string, - _poolId: BigNumberish, + c_false9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true8de507f8( + c__8de507f8: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true9296fc39( + c__9296fc39: BytesLike, overrides?: CallOverrides ): Promise<[boolean]>; - sgInitialize( + getLzChainId( + _chainId: BigNumberish, + overrides?: CallOverrides + ): Promise<[number]>; + + initStargate( _stargateRouter: string, + _stargateEthRouter: string, _chainId: BigNumberish, + _chainIdConfigs: ChainIdConfigStruct[], overrides?: Overrides & { from?: string | Promise } ): Promise; - sgMinAmountOut( - _amount: BigNumberish, - overrides?: CallOverrides - ): Promise<[BigNumber]>; + setLzChainId( + _chainId: BigNumberish, + _lzChainId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; sgReceive( - _chainId: BigNumberish, - _srcAddress: BytesLike, - _nonce: BigNumberish, + arg0: BigNumberish, + arg1: BytesLike, + arg2: BigNumberish, _token: string, - amountLD: BigNumberish, + _amountLD: BigNumberish, _payload: BytesLike, overrides?: Overrides & { from?: string | Promise } ): Promise; - sgRetrievePoolId( - _chainId: BigNumberish, - _token: string, - overrides?: CallOverrides - ): Promise<[number]>; - - sgUpdateRouter( - _newAddress: string, - overrides?: Overrides & { from?: string | Promise } + stargateETHTransfer( + _data: StargateETHDataStruct, + overrides?: PayableOverrides & { from?: string | Promise } ): Promise; - sgUpdateSlippageTolerance( - _newSlippage: BigNumberish, - overrides?: Overrides & { from?: string | Promise } + stargateFees( + _data: StargateDataStruct, + _router: string, + overrides?: CallOverrides + ): Promise<[BigNumber]>; + + stargateTokenTransfer( + _data: StargateDataStruct, + overrides?: PayableOverrides & { from?: string | Promise } ): Promise; }; - sgAddPool( - _chainId: BigNumberish, - _token: string, - _poolId: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; + c_8de507f8(c__8de507f8: BytesLike, overrides?: CallOverrides): Promise; - sgBridgeTokens( - _sgData: StargateDataStruct, - overrides?: PayableOverrides & { from?: string | Promise } - ): Promise; + c_9296fc39(c__9296fc39: BytesLike, overrides?: CallOverrides): Promise; - sgCalculateFees( - _destChain: BigNumberish, - _receiver: string, - _router: string, + c_false8de507f8( + c__8de507f8: BytesLike, overrides?: CallOverrides - ): Promise; + ): Promise; - sgCheckPoolId( - _chainId: BigNumberish, - _token: string, - _poolId: BigNumberish, + c_false9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true8de507f8( + c__8de507f8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true9296fc39( + c__9296fc39: BytesLike, overrides?: CallOverrides ): Promise; - sgInitialize( + getLzChainId( + _chainId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + initStargate( _stargateRouter: string, + _stargateEthRouter: string, _chainId: BigNumberish, + _chainIdConfigs: ChainIdConfigStruct[], overrides?: Overrides & { from?: string | Promise } ): Promise; - sgMinAmountOut( - _amount: BigNumberish, - overrides?: CallOverrides - ): Promise; + setLzChainId( + _chainId: BigNumberish, + _lzChainId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; sgReceive( - _chainId: BigNumberish, - _srcAddress: BytesLike, - _nonce: BigNumberish, + arg0: BigNumberish, + arg1: BytesLike, + arg2: BigNumberish, _token: string, - amountLD: BigNumberish, + _amountLD: BigNumberish, _payload: BytesLike, overrides?: Overrides & { from?: string | Promise } ): Promise; - sgRetrievePoolId( - _chainId: BigNumberish, - _token: string, - overrides?: CallOverrides - ): Promise; - - sgUpdateRouter( - _newAddress: string, - overrides?: Overrides & { from?: string | Promise } + stargateETHTransfer( + _data: StargateETHDataStruct, + overrides?: PayableOverrides & { from?: string | Promise } ): Promise; - sgUpdateSlippageTolerance( - _newSlippage: BigNumberish, - overrides?: Overrides & { from?: string | Promise } + stargateFees( + _data: StargateDataStruct, + _router: string, + overrides?: CallOverrides + ): Promise; + + stargateTokenTransfer( + _data: StargateDataStruct, + overrides?: PayableOverrides & { from?: string | Promise } ): Promise; callStatic: { - sgAddPool( - _chainId: BigNumberish, - _token: string, - _poolId: BigNumberish, + c_8de507f8( + c__8de507f8: BytesLike, overrides?: CallOverrides ): Promise; - sgBridgeTokens( - _sgData: StargateDataStruct, + c_9296fc39( + c__9296fc39: BytesLike, overrides?: CallOverrides ): Promise; - sgCalculateFees( - _destChain: BigNumberish, - _receiver: string, - _router: string, + c_false8de507f8( + c__8de507f8: BytesLike, overrides?: CallOverrides - ): Promise; + ): Promise; - sgCheckPoolId( - _chainId: BigNumberish, - _token: string, - _poolId: BigNumberish, + c_false9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true8de507f8( + c__8de507f8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true9296fc39( + c__9296fc39: BytesLike, overrides?: CallOverrides ): Promise; - sgInitialize( + getLzChainId( + _chainId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + initStargate( _stargateRouter: string, + _stargateEthRouter: string, _chainId: BigNumberish, + _chainIdConfigs: ChainIdConfigStruct[], overrides?: CallOverrides ): Promise; - sgMinAmountOut( - _amount: BigNumberish, + setLzChainId( + _chainId: BigNumberish, + _lzChainId: BigNumberish, overrides?: CallOverrides - ): Promise; + ): Promise; sgReceive( - _chainId: BigNumberish, - _srcAddress: BytesLike, - _nonce: BigNumberish, + arg0: BigNumberish, + arg1: BytesLike, + arg2: BigNumberish, _token: string, - amountLD: BigNumberish, + _amountLD: BigNumberish, _payload: BytesLike, overrides?: CallOverrides ): Promise; - sgRetrievePoolId( - _chainId: BigNumberish, - _token: string, + stargateETHTransfer( + _data: StargateETHDataStruct, overrides?: CallOverrides - ): Promise; + ): Promise; - sgUpdateRouter( - _newAddress: string, + stargateFees( + _data: StargateDataStruct, + _router: string, overrides?: CallOverrides - ): Promise; + ): Promise; - sgUpdateSlippageTolerance( - _newSlippage: BigNumberish, + stargateTokenTransfer( + _data: StargateDataStruct, overrides?: CallOverrides ): Promise; }; filters: { - "SGAddedPool(uint16,address,uint16)"( - chainId?: null, - token?: null, - poolId?: null - ): SGAddedPoolEventFilter; - SGAddedPool( + "LzChainIdSet(uint256,uint16)"( chainId?: null, - token?: null, - poolId?: null - ): SGAddedPoolEventFilter; + lzChainId?: null + ): LzChainIdSetEventFilter; + LzChainIdSet(chainId?: null, lzChainId?: null): LzChainIdSetEventFilter; + + "StargateETHSwap(address,address,uint256,uint256)"( + from?: null, + to?: null, + amount?: null, + chainIdTo?: null + ): StargateETHSwapEventFilter; + StargateETHSwap( + from?: null, + to?: null, + amount?: null, + chainIdTo?: null + ): StargateETHSwapEventFilter; - "SGInitialized(address,uint16)"( - stargate?: null, + "StargateInitialized(address,address,uint256)"( + stargateRouter?: null, + stargateETHRouter?: null, chainId?: null - ): SGInitializedEventFilter; - SGInitialized(stargate?: null, chainId?: null): SGInitializedEventFilter; + ): StargateInitializedEventFilter; + StargateInitialized( + stargateRouter?: null, + stargateETHRouter?: null, + chainId?: null + ): StargateInitializedEventFilter; - "SGReceivedOnDestination(address,uint256)"( + "StargateReceivedOnDestination(address,uint256)"( token?: null, amount?: null - ): SGReceivedOnDestinationEventFilter; - SGReceivedOnDestination( + ): StargateReceivedOnDestinationEventFilter; + StargateReceivedOnDestination( token?: null, amount?: null - ): SGReceivedOnDestinationEventFilter; + ): StargateReceivedOnDestinationEventFilter; - "SGTransferStarted(string,address,address,address,address,uint256,uint16)"( - bridgeUsed?: null, + "StargateTokenSwap(address,address,address,uint256,uint256)"( fromToken?: null, - toToken?: null, from?: null, to?: null, amount?: null, chainIdTo?: null - ): SGTransferStartedEventFilter; - SGTransferStarted( - bridgeUsed?: null, + ): StargateTokenSwapEventFilter; + StargateTokenSwap( fromToken?: null, - toToken?: null, from?: null, to?: null, amount?: null, chainIdTo?: null - ): SGTransferStartedEventFilter; - - "SGUpdatedRouter(address)"(newAddress?: null): SGUpdatedRouterEventFilter; - SGUpdatedRouter(newAddress?: null): SGUpdatedRouterEventFilter; - - "SGUpdatedSlippageTolerance(uint256)"( - newSlippage?: null - ): SGUpdatedSlippageToleranceEventFilter; - SGUpdatedSlippageTolerance( - newSlippage?: null - ): SGUpdatedSlippageToleranceEventFilter; + ): StargateTokenSwapEventFilter; }; estimateGas: { - sgAddPool( - _chainId: BigNumberish, - _token: string, - _poolId: BigNumberish, - overrides?: Overrides & { from?: string | Promise } + c_8de507f8( + c__8de507f8: BytesLike, + overrides?: CallOverrides ): Promise; - sgBridgeTokens( - _sgData: StargateDataStruct, - overrides?: PayableOverrides & { from?: string | Promise } + c_9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides ): Promise; - sgCalculateFees( - _destChain: BigNumberish, - _receiver: string, - _router: string, + c_false8de507f8( + c__8de507f8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true8de507f8( + c__8de507f8: BytesLike, overrides?: CallOverrides ): Promise; - sgCheckPoolId( + c_true9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + + getLzChainId( _chainId: BigNumberish, - _token: string, - _poolId: BigNumberish, overrides?: CallOverrides ): Promise; - sgInitialize( + initStargate( _stargateRouter: string, + _stargateEthRouter: string, _chainId: BigNumberish, + _chainIdConfigs: ChainIdConfigStruct[], overrides?: Overrides & { from?: string | Promise } ): Promise; - sgMinAmountOut( - _amount: BigNumberish, - overrides?: CallOverrides + setLzChainId( + _chainId: BigNumberish, + _lzChainId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } ): Promise; sgReceive( - _chainId: BigNumberish, - _srcAddress: BytesLike, - _nonce: BigNumberish, + arg0: BigNumberish, + arg1: BytesLike, + arg2: BigNumberish, _token: string, - amountLD: BigNumberish, + _amountLD: BigNumberish, _payload: BytesLike, overrides?: Overrides & { from?: string | Promise } ): Promise; - sgRetrievePoolId( - _chainId: BigNumberish, - _token: string, - overrides?: CallOverrides + stargateETHTransfer( + _data: StargateETHDataStruct, + overrides?: PayableOverrides & { from?: string | Promise } ): Promise; - sgUpdateRouter( - _newAddress: string, - overrides?: Overrides & { from?: string | Promise } + stargateFees( + _data: StargateDataStruct, + _router: string, + overrides?: CallOverrides ): Promise; - sgUpdateSlippageTolerance( - _newSlippage: BigNumberish, - overrides?: Overrides & { from?: string | Promise } + stargateTokenTransfer( + _data: StargateDataStruct, + overrides?: PayableOverrides & { from?: string | Promise } ): Promise; }; populateTransaction: { - sgAddPool( - _chainId: BigNumberish, - _token: string, - _poolId: BigNumberish, - overrides?: Overrides & { from?: string | Promise } + c_8de507f8( + c__8de507f8: BytesLike, + overrides?: CallOverrides ): Promise; - sgBridgeTokens( - _sgData: StargateDataStruct, - overrides?: PayableOverrides & { from?: string | Promise } + c_9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides ): Promise; - sgCalculateFees( - _destChain: BigNumberish, - _receiver: string, - _router: string, + c_false8de507f8( + c__8de507f8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false9296fc39( + c__9296fc39: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true8de507f8( + c__8de507f8: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true9296fc39( + c__9296fc39: BytesLike, overrides?: CallOverrides ): Promise; - sgCheckPoolId( + getLzChainId( _chainId: BigNumberish, - _token: string, - _poolId: BigNumberish, overrides?: CallOverrides ): Promise; - sgInitialize( + initStargate( _stargateRouter: string, + _stargateEthRouter: string, _chainId: BigNumberish, + _chainIdConfigs: ChainIdConfigStruct[], overrides?: Overrides & { from?: string | Promise } ): Promise; - sgMinAmountOut( - _amount: BigNumberish, - overrides?: CallOverrides + setLzChainId( + _chainId: BigNumberish, + _lzChainId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } ): Promise; sgReceive( - _chainId: BigNumberish, - _srcAddress: BytesLike, - _nonce: BigNumberish, + arg0: BigNumberish, + arg1: BytesLike, + arg2: BigNumberish, _token: string, - amountLD: BigNumberish, + _amountLD: BigNumberish, _payload: BytesLike, overrides?: Overrides & { from?: string | Promise } ): Promise; - sgRetrievePoolId( - _chainId: BigNumberish, - _token: string, - overrides?: CallOverrides + stargateETHTransfer( + _data: StargateETHDataStruct, + overrides?: PayableOverrides & { from?: string | Promise } ): Promise; - sgUpdateRouter( - _newAddress: string, - overrides?: Overrides & { from?: string | Promise } + stargateFees( + _data: StargateDataStruct, + _router: string, + overrides?: CallOverrides ): Promise; - sgUpdateSlippageTolerance( - _newSlippage: BigNumberish, - overrides?: Overrides & { from?: string | Promise } + stargateTokenTransfer( + _data: StargateDataStruct, + overrides?: PayableOverrides & { from?: string | Promise } ): Promise; }; } diff --git a/typings/StringsLib.ts b/typings/StringsLib.ts index 19e85078..e37a928b 100644 --- a/typings/StringsLib.ts +++ b/typings/StringsLib.ts @@ -16,31 +16,31 @@ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface StringsLibInterface extends utils.Interface { functions: { - "c_1044b449(bytes8)": FunctionFragment; - "c_false1044b449(bytes8)": FunctionFragment; - "c_true1044b449(bytes8)": FunctionFragment; + "c_2404d709(bytes8)": FunctionFragment; + "c_false2404d709(bytes8)": FunctionFragment; + "c_true2404d709(bytes8)": FunctionFragment; }; encodeFunctionData( - functionFragment: "c_1044b449", + functionFragment: "c_2404d709", values: [BytesLike] ): string; encodeFunctionData( - functionFragment: "c_false1044b449", + functionFragment: "c_false2404d709", values: [BytesLike] ): string; encodeFunctionData( - functionFragment: "c_true1044b449", + functionFragment: "c_true2404d709", values: [BytesLike] ): string; - decodeFunctionResult(functionFragment: "c_1044b449", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_2404d709", data: BytesLike): Result; decodeFunctionResult( - functionFragment: "c_false1044b449", + functionFragment: "c_false2404d709", data: BytesLike ): Result; decodeFunctionResult( - functionFragment: "c_true1044b449", + functionFragment: "c_true2404d709", data: BytesLike ): Result; @@ -74,47 +74,47 @@ export interface StringsLib extends BaseContract { removeListener: OnEvent; functions: { - c_1044b449( - c__1044b449: BytesLike, + c_2404d709( + c__2404d709: BytesLike, overrides?: CallOverrides ): Promise<[void]>; - c_false1044b449( - c__1044b449: BytesLike, + c_false2404d709( + c__2404d709: BytesLike, overrides?: CallOverrides ): Promise<[boolean]>; - c_true1044b449( - c__1044b449: BytesLike, + c_true2404d709( + c__2404d709: BytesLike, overrides?: CallOverrides ): Promise<[boolean]>; }; - c_1044b449(c__1044b449: BytesLike, overrides?: CallOverrides): Promise; + c_2404d709(c__2404d709: BytesLike, overrides?: CallOverrides): Promise; - c_false1044b449( - c__1044b449: BytesLike, + c_false2404d709( + c__2404d709: BytesLike, overrides?: CallOverrides ): Promise; - c_true1044b449( - c__1044b449: BytesLike, + c_true2404d709( + c__2404d709: BytesLike, overrides?: CallOverrides ): Promise; callStatic: { - c_1044b449( - c__1044b449: BytesLike, + c_2404d709( + c__2404d709: BytesLike, overrides?: CallOverrides ): Promise; - c_false1044b449( - c__1044b449: BytesLike, + c_false2404d709( + c__2404d709: BytesLike, overrides?: CallOverrides ): Promise; - c_true1044b449( - c__1044b449: BytesLike, + c_true2404d709( + c__2404d709: BytesLike, overrides?: CallOverrides ): Promise; }; @@ -122,35 +122,35 @@ export interface StringsLib extends BaseContract { filters: {}; estimateGas: { - c_1044b449( - c__1044b449: BytesLike, + c_2404d709( + c__2404d709: BytesLike, overrides?: CallOverrides ): Promise; - c_false1044b449( - c__1044b449: BytesLike, + c_false2404d709( + c__2404d709: BytesLike, overrides?: CallOverrides ): Promise; - c_true1044b449( - c__1044b449: BytesLike, + c_true2404d709( + c__2404d709: BytesLike, overrides?: CallOverrides ): Promise; }; populateTransaction: { - c_1044b449( - c__1044b449: BytesLike, + c_2404d709( + c__2404d709: BytesLike, overrides?: CallOverrides ): Promise; - c_false1044b449( - c__1044b449: BytesLike, + c_false2404d709( + c__2404d709: BytesLike, overrides?: CallOverrides ): Promise; - c_true1044b449( - c__1044b449: BytesLike, + c_true2404d709( + c__2404d709: BytesLike, overrides?: CallOverrides ): Promise; }; diff --git a/typings/SwapUtils.ts b/typings/SwapUtils.ts deleted file mode 100644 index df462f25..00000000 --- a/typings/SwapUtils.ts +++ /dev/null @@ -1,249 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { BaseContract, BigNumber, BytesLike, Signer, utils } from "ethers"; -import { EventFragment } from "@ethersproject/abi"; -import { Listener, Provider } from "@ethersproject/providers"; -import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; - -export interface SwapUtilsInterface extends utils.Interface { - functions: {}; - - events: { - "AddLiquidity(bytes32,address,uint256[],uint256[],uint256,uint256)": EventFragment; - "NewAdminFee(bytes32,uint256)": EventFragment; - "NewSwapFee(bytes32,uint256)": EventFragment; - "RemoveLiquidity(bytes32,address,uint256[],uint256)": EventFragment; - "RemoveLiquidityImbalance(bytes32,address,uint256[],uint256[],uint256,uint256)": EventFragment; - "RemoveLiquidityOne(bytes32,address,uint256,uint256,uint256,uint256)": EventFragment; - "TokenSwap(bytes32,address,uint256,uint256,uint128,uint128)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "AddLiquidity"): EventFragment; - getEvent(nameOrSignatureOrTopic: "NewAdminFee"): EventFragment; - getEvent(nameOrSignatureOrTopic: "NewSwapFee"): EventFragment; - getEvent(nameOrSignatureOrTopic: "RemoveLiquidity"): EventFragment; - getEvent(nameOrSignatureOrTopic: "RemoveLiquidityImbalance"): EventFragment; - getEvent(nameOrSignatureOrTopic: "RemoveLiquidityOne"): EventFragment; - getEvent(nameOrSignatureOrTopic: "TokenSwap"): EventFragment; -} - -export type AddLiquidityEvent = TypedEvent< - [string, string, BigNumber[], BigNumber[], BigNumber, BigNumber], - { - key: string; - provider: string; - tokenAmounts: BigNumber[]; - fees: BigNumber[]; - invariant: BigNumber; - lpTokenSupply: BigNumber; - } ->; - -export type AddLiquidityEventFilter = TypedEventFilter; - -export type NewAdminFeeEvent = TypedEvent< - [string, BigNumber], - { key: string; newAdminFee: BigNumber } ->; - -export type NewAdminFeeEventFilter = TypedEventFilter; - -export type NewSwapFeeEvent = TypedEvent< - [string, BigNumber], - { key: string; newSwapFee: BigNumber } ->; - -export type NewSwapFeeEventFilter = TypedEventFilter; - -export type RemoveLiquidityEvent = TypedEvent< - [string, string, BigNumber[], BigNumber], - { - key: string; - provider: string; - tokenAmounts: BigNumber[]; - lpTokenSupply: BigNumber; - } ->; - -export type RemoveLiquidityEventFilter = TypedEventFilter; - -export type RemoveLiquidityImbalanceEvent = TypedEvent< - [string, string, BigNumber[], BigNumber[], BigNumber, BigNumber], - { - key: string; - provider: string; - tokenAmounts: BigNumber[]; - fees: BigNumber[]; - invariant: BigNumber; - lpTokenSupply: BigNumber; - } ->; - -export type RemoveLiquidityImbalanceEventFilter = - TypedEventFilter; - -export type RemoveLiquidityOneEvent = TypedEvent< - [string, string, BigNumber, BigNumber, BigNumber, BigNumber], - { - key: string; - provider: string; - lpTokenAmount: BigNumber; - lpTokenSupply: BigNumber; - boughtId: BigNumber; - tokensBought: BigNumber; - } ->; - -export type RemoveLiquidityOneEventFilter = - TypedEventFilter; - -export type TokenSwapEvent = TypedEvent< - [string, string, BigNumber, BigNumber, BigNumber, BigNumber], - { - key: string; - buyer: string; - tokensSold: BigNumber; - tokensBought: BigNumber; - soldId: BigNumber; - boughtId: BigNumber; - } ->; - -export type TokenSwapEventFilter = TypedEventFilter; - -export interface SwapUtils extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: SwapUtilsInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: {}; - - callStatic: {}; - - filters: { - "AddLiquidity(bytes32,address,uint256[],uint256[],uint256,uint256)"( - key?: BytesLike | null, - provider?: string | null, - tokenAmounts?: null, - fees?: null, - invariant?: null, - lpTokenSupply?: null - ): AddLiquidityEventFilter; - AddLiquidity( - key?: BytesLike | null, - provider?: string | null, - tokenAmounts?: null, - fees?: null, - invariant?: null, - lpTokenSupply?: null - ): AddLiquidityEventFilter; - - "NewAdminFee(bytes32,uint256)"( - key?: BytesLike | null, - newAdminFee?: null - ): NewAdminFeeEventFilter; - NewAdminFee( - key?: BytesLike | null, - newAdminFee?: null - ): NewAdminFeeEventFilter; - - "NewSwapFee(bytes32,uint256)"( - key?: BytesLike | null, - newSwapFee?: null - ): NewSwapFeeEventFilter; - NewSwapFee( - key?: BytesLike | null, - newSwapFee?: null - ): NewSwapFeeEventFilter; - - "RemoveLiquidity(bytes32,address,uint256[],uint256)"( - key?: BytesLike | null, - provider?: string | null, - tokenAmounts?: null, - lpTokenSupply?: null - ): RemoveLiquidityEventFilter; - RemoveLiquidity( - key?: BytesLike | null, - provider?: string | null, - tokenAmounts?: null, - lpTokenSupply?: null - ): RemoveLiquidityEventFilter; - - "RemoveLiquidityImbalance(bytes32,address,uint256[],uint256[],uint256,uint256)"( - key?: BytesLike | null, - provider?: string | null, - tokenAmounts?: null, - fees?: null, - invariant?: null, - lpTokenSupply?: null - ): RemoveLiquidityImbalanceEventFilter; - RemoveLiquidityImbalance( - key?: BytesLike | null, - provider?: string | null, - tokenAmounts?: null, - fees?: null, - invariant?: null, - lpTokenSupply?: null - ): RemoveLiquidityImbalanceEventFilter; - - "RemoveLiquidityOne(bytes32,address,uint256,uint256,uint256,uint256)"( - key?: BytesLike | null, - provider?: string | null, - lpTokenAmount?: null, - lpTokenSupply?: null, - boughtId?: null, - tokensBought?: null - ): RemoveLiquidityOneEventFilter; - RemoveLiquidityOne( - key?: BytesLike | null, - provider?: string | null, - lpTokenAmount?: null, - lpTokenSupply?: null, - boughtId?: null, - tokensBought?: null - ): RemoveLiquidityOneEventFilter; - - "TokenSwap(bytes32,address,uint256,uint256,uint128,uint128)"( - key?: BytesLike | null, - buyer?: string | null, - tokensSold?: null, - tokensBought?: null, - soldId?: null, - boughtId?: null - ): TokenSwapEventFilter; - TokenSwap( - key?: BytesLike | null, - buyer?: string | null, - tokensSold?: null, - tokensBought?: null, - soldId?: null, - boughtId?: null - ): TokenSwapEventFilter; - }; - - estimateGas: {}; - - populateTransaction: {}; -} diff --git a/typings/TypedMemView.ts b/typings/TypedMemView.ts deleted file mode 100644 index c12ccf25..00000000 --- a/typings/TypedMemView.ts +++ /dev/null @@ -1,74 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - BaseContract, - BigNumber, - BytesLike, - CallOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import { FunctionFragment, Result } from "@ethersproject/abi"; -import { Listener, Provider } from "@ethersproject/providers"; -import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; - -export interface TypedMemViewInterface extends utils.Interface { - functions: { - "NULL()": FunctionFragment; - }; - - encodeFunctionData(functionFragment: "NULL", values?: undefined): string; - - decodeFunctionResult(functionFragment: "NULL", data: BytesLike): Result; - - events: {}; -} - -export interface TypedMemView extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: TypedMemViewInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - NULL(overrides?: CallOverrides): Promise<[string]>; - }; - - NULL(overrides?: CallOverrides): Promise; - - callStatic: { - NULL(overrides?: CallOverrides): Promise; - }; - - filters: {}; - - estimateGas: { - NULL(overrides?: CallOverrides): Promise; - }; - - populateTransaction: { - NULL(overrides?: CallOverrides): Promise; - }; -} diff --git a/typings/WrappedWeiToken.ts b/typings/WrappedWeiToken.ts index 8f317f77..18f5a36c 100644 --- a/typings/WrappedWeiToken.ts +++ b/typings/WrappedWeiToken.ts @@ -23,6 +23,18 @@ export interface WrappedWeiTokenInterface extends utils.Interface { "allowance(address,address)": FunctionFragment; "approve(address,uint256)": FunctionFragment; "balanceOf(address)": FunctionFragment; + "c_098c0657(bytes8)": FunctionFragment; + "c_42d24766(bytes8)": FunctionFragment; + "c_99a47378(bytes8)": FunctionFragment; + "c_d18be0f9(bytes8)": FunctionFragment; + "c_false098c0657(bytes8)": FunctionFragment; + "c_false42d24766(bytes8)": FunctionFragment; + "c_false99a47378(bytes8)": FunctionFragment; + "c_falsed18be0f9(bytes8)": FunctionFragment; + "c_true098c0657(bytes8)": FunctionFragment; + "c_true42d24766(bytes8)": FunctionFragment; + "c_true99a47378(bytes8)": FunctionFragment; + "c_trued18be0f9(bytes8)": FunctionFragment; "decimals()": FunctionFragment; "depositTo(address)": FunctionFragment; "gateway()": FunctionFragment; @@ -51,6 +63,54 @@ export interface WrappedWeiTokenInterface extends utils.Interface { values: [string, BigNumberish] ): string; encodeFunctionData(functionFragment: "balanceOf", values: [string]): string; + encodeFunctionData( + functionFragment: "c_098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_42d24766", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_99a47378", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_d18be0f9", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false42d24766", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_false99a47378", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_falsed18be0f9", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true098c0657", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true42d24766", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_true99a47378", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "c_trued18be0f9", + values: [BytesLike] + ): string; encodeFunctionData(functionFragment: "decimals", values?: undefined): string; encodeFunctionData(functionFragment: "depositTo", values: [string]): string; encodeFunctionData(functionFragment: "gateway", values?: undefined): string; @@ -105,6 +165,42 @@ export interface WrappedWeiTokenInterface extends utils.Interface { decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_098c0657", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_42d24766", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_99a47378", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "c_d18be0f9", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "c_false098c0657", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_false42d24766", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_false99a47378", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_falsed18be0f9", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true098c0657", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true42d24766", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_true99a47378", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "c_trued18be0f9", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; decodeFunctionResult(functionFragment: "depositTo", data: BytesLike): Result; decodeFunctionResult(functionFragment: "gateway", data: BytesLike): Result; @@ -226,6 +322,66 @@ export interface WrappedWeiToken extends BaseContract { balanceOf(owner: string, overrides?: CallOverrides): Promise<[BigNumber]>; + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_42d24766( + c__42d24766: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_99a47378( + c__99a47378: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_d18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_false42d24766( + c__42d24766: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_false99a47378( + c__99a47378: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_falsed18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true42d24766( + c__42d24766: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_true99a47378( + c__99a47378: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + c_trued18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + decimals(overrides?: CallOverrides): Promise<[number]>; depositTo( @@ -307,6 +463,54 @@ export interface WrappedWeiToken extends BaseContract { balanceOf(owner: string, overrides?: CallOverrides): Promise; + c_098c0657(c__098c0657: BytesLike, overrides?: CallOverrides): Promise; + + c_42d24766(c__42d24766: BytesLike, overrides?: CallOverrides): Promise; + + c_99a47378(c__99a47378: BytesLike, overrides?: CallOverrides): Promise; + + c_d18be0f9(c__d18be0f9: BytesLike, overrides?: CallOverrides): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false42d24766( + c__42d24766: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false99a47378( + c__99a47378: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsed18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true42d24766( + c__42d24766: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true99a47378( + c__99a47378: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trued18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + decimals(overrides?: CallOverrides): Promise; depositTo( @@ -388,6 +592,66 @@ export interface WrappedWeiToken extends BaseContract { balanceOf(owner: string, overrides?: CallOverrides): Promise; + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_42d24766( + c__42d24766: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_99a47378( + c__99a47378: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_d18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false42d24766( + c__42d24766: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false99a47378( + c__99a47378: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsed18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true42d24766( + c__42d24766: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true99a47378( + c__99a47378: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trued18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + decimals(overrides?: CallOverrides): Promise; depositTo(to: string, overrides?: CallOverrides): Promise; @@ -488,6 +752,66 @@ export interface WrappedWeiToken extends BaseContract { balanceOf(owner: string, overrides?: CallOverrides): Promise; + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_42d24766( + c__42d24766: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_99a47378( + c__99a47378: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_d18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false42d24766( + c__42d24766: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false99a47378( + c__99a47378: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsed18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true42d24766( + c__42d24766: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true99a47378( + c__99a47378: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trued18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + decimals(overrides?: CallOverrides): Promise; depositTo( @@ -573,6 +897,66 @@ export interface WrappedWeiToken extends BaseContract { overrides?: CallOverrides ): Promise; + c_098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_42d24766( + c__42d24766: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_99a47378( + c__99a47378: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_d18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false42d24766( + c__42d24766: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_false99a47378( + c__99a47378: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_falsed18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true098c0657( + c__098c0657: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true42d24766( + c__42d24766: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_true99a47378( + c__99a47378: BytesLike, + overrides?: CallOverrides + ): Promise; + + c_trued18be0f9( + c__d18be0f9: BytesLike, + overrides?: CallOverrides + ): Promise; + decimals(overrides?: CallOverrides): Promise; depositTo( diff --git a/typings/factories/AccountBase__factory.ts b/typings/factories/AccountBase__factory.ts index 4dab1ca5..0efdc5b2 100644 --- a/typings/factories/AccountBase__factory.ts +++ b/typings/factories/AccountBase__factory.ts @@ -6,6 +6,57 @@ import { Provider, TransactionRequest } from "@ethersproject/providers"; import type { AccountBase, AccountBaseInterface } from "../AccountBase"; const _abi = [ + { + inputs: [ + { + internalType: "bytes8", + name: "c__28344ffb", + type: "bytes8", + }, + ], + name: "c_28344ffb", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__28344ffb", + type: "bytes8", + }, + ], + name: "c_false28344ffb", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__28344ffb", + type: "bytes8", + }, + ], + name: "c_true28344ffb", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [], name: "registry", @@ -22,7 +73,7 @@ const _abi = [ ]; const _bytecode = - "0x6080604052348015600f57600080fd5b5060908061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80637b10399914602d575b600080fd5b6033605f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fea164736f6c634300060c000a"; + "0x608060405234801561001057600080fd5b506101d2806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063221523e51461005157806344f9c9ec146100b05780637b1039991461010f578063a42ea70814610143575b600080fd5b6100986004803603602081101561006757600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061018c565b60405180821515815260200191505060405180910390f35b6100f7600480360360208110156100c657600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610193565b60405180821515815260200191505060405180910390f35b61011761019e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61018a6004803603602081101561015957600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506101c2565b005b6000919050565b600060019050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5056fea164736f6c634300060c000a"; type AccountBaseConstructorParams = | [signer?: Signer] diff --git a/typings/factories/AccountControllerMock__factory.ts b/typings/factories/AccountControllerMock__factory.ts index b49c8c39..83587aa3 100644 --- a/typings/factories/AccountControllerMock__factory.ts +++ b/typings/factories/AccountControllerMock__factory.ts @@ -152,6 +152,108 @@ const _abi = [ stateMutability: "view", type: "function", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__8758a88a", + type: "bytes8", + }, + ], + name: "c_8758a88a", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__bf6efb80", + type: "bytes8", + }, + ], + name: "c_bf6efb80", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__8758a88a", + type: "bytes8", + }, + ], + name: "c_false8758a88a", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__bf6efb80", + type: "bytes8", + }, + ], + name: "c_falsebf6efb80", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__8758a88a", + type: "bytes8", + }, + ], + name: "c_true8758a88a", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__bf6efb80", + type: "bytes8", + }, + ], + name: "c_truebf6efb80", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [ { @@ -254,7 +356,7 @@ const _abi = [ ]; const _bytecode = - "0x60806040523480156200001157600080fd5b5060405162001d0338038062001d03833981810160405260408110156200003757600080fd5b8101908080519060200190929190805190602001909291905050506200006482826200006c60201b60201c565b50506200031b565b6200007f8260006200009660201b60201c565b62000092816000620001d760201b60201c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200011e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603581526020018062001cce6035913960400191505060405180910390fd5b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508015620001d3577f02e3c47057b8dc27a0929d3c394c314c73aa002d46939c31c9f71d1e77e86c1060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200025f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b81526020018062001c93603b913960400191505060405180910390fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550801562000317577f70d9f5a076620216a6050e493f3ce69749de0b68fa4b839ba2518660ba8b9cf0600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5050565b611968806200032b6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80636661a51e1161005b5780636661a51e146101a1578063d01a9cae146101e5578063d089e11a14610213578063e5c7278f1461024757610088565b806309766da21461008d57806311464fbe146100d1578063264d5cb41461010557806343013c241461015d575b600080fd5b6100cf600480360360208110156100a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061034c565b005b6100d961035a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101316004803603602081101561011b57600080fd5b8101908080359060200190929190505050610380565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61019f6004803603602081101561017357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610392565b005b6101e3600480360360208110156101b757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103a0565b005b610211600480360360208110156101fb57600080fd5b81019080803590602001909291905050506103ae565b005b61021b6103bd565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61034a6004803603608081101561025d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156102c457600080fd5b8201836020820111156102d657600080fd5b803590602001918460018302840111640100000000831117156102f857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506103e1565b005b6103578160016103f6565b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061038b82610537565b9050919050565b61039d81600161072b565b50565b6103ab81600161098d565b50565b6103b9816001610acb565b5050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6103ef848484846001610c1d565b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561047c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b81526020018061184a603b913960400191505060405180910390fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508015610533577f70d9f5a076620216a6050e493f3ce69749de0b68fa4b839ba2518660ba8b9cf0600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5050565b600060606040518060200161054b906110eb565b6020820181038252601f19601f82011660405250600060a01b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600060a01b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516020018086805190602001908083835b602083106105e357805182526020820191506020810190506020830392506105c0565b6001836020036101000a0380198251168184511680821785525050505050509050018573ffffffffffffffffffffffffffffffffffffffff19168152600c018473ffffffffffffffffffffffffffffffffffffffff1660601b81526014018373ffffffffffffffffffffffffffffffffffffffff19168152600c018273ffffffffffffffffffffffffffffffffffffffff1660601b8152601401955050505050506040516020818303038152906040529050600060ff60f81b3085848051906020012060405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018473ffffffffffffffffffffffffffffffffffffffff1660601b81526014018381526020018281526020019450505050506040516020818303038152906040528051906020012090508060001c92505050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156107aa57600080fd5b505afa1580156107be573d6000803e3d6000fd5b505050506040513d60208110156107d457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff161415610852576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180611905602b913960400191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663d784d426600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156108dd57600080fd5b505af11580156108f1573d6000803e3d6000fd5b505050508015610989577feec27cdb8bd6f55c2c537deb52ab094a2437e85ef5197e6f064f90bff3ff563f82600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a13576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806118ab6035913960400191505060405180910390fd5b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508015610ac7577f02e3c47057b8dc27a0929d3c394c314c73aa002d46939c31c9f71d1e77e86c1060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5050565b6000808360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610b1f906110eb565b808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff168152602001925050508190604051809103906000f5905080158015610b7c573d6000803e3d6000fd5b5090508215610c13577f2682a218602b9036c9869f006c5405ee4a1a65267653eb7e286123e5e1afde4c81600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15b8091505092915050565b6060600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610ca5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806118e06025913960400191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610d2a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180611930602c913960400191505060405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610daf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118856026913960400191505060405180910390fd5b60608673ffffffffffffffffffffffffffffffffffffffff16633f579f428787876040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610e41578082015181840152602081019050610e26565b50505050905090810190601f168015610e6e5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610e8f57600080fd5b505af1158015610ea3573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015610ecd57600080fd5b8101908080516040519392919084640100000000821115610eed57600080fd5b83820191506020820185811115610f0357600080fd5b8251866001820283011164010000000082111715610f2057600080fd5b8083526020830192505050908051906020019080838360005b83811015610f54578082015181840152602081019050610f39565b50505050905090810190601f168015610f815780820380516001836020036101000a031916815260200191505b50604052505050905082156110de577f99eeae1fb8801e2e878e060ec5e5b3557b3c4f8106e35d88cb573f293dae4e248787878785604051808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561103857808201518184015260208101905061101d565b50505050905090810190601f1680156110655780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101561109e578082015181840152602081019050611083565b50505050905090810190601f1680156110cb5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a15b8091505095945050505050565b610751806110f98339019056fe608060405234801561001057600080fd5b506040516107513803806107518339818101604052604081101561003357600080fd5b810190808051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050610630806101216000396000f3fe60806040526004361061004e5760003560e01c80633f579f42146100be5780635c60da1b146101e75780637b10399914610228578063d784d42614610269578063f77c4791146102ba57610055565b3661005557005b34801561006157600080fd5b50600080369050146100bc576000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050368060008037600080826000855af43d806000803e81600081146100b757816000f35b816000fd5b005b3480156100ca57600080fd5b5061016c600480360360608110156100e157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561012857600080fd5b82018360208201111561013a57600080fd5b8035906020019184600183028401116401000000008311171561015c57600080fd5b90919293919293905050506102fb565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ac578082015181840152602081019050610191565b50505050905090810190601f1680156101d95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101f357600080fd5b506101fc61049f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561023457600080fd5b5061023d6104c5565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561027557600080fd5b506102b86004803603602081101561028c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104eb565b005b3480156102c657600080fd5b506102cf6105d3565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b606060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806105f8602c913960400191505060405180910390fd5b606060008673ffffffffffffffffffffffffffffffffffffffff1686868660405180838380828437808301925050509250505060006040518083038185875af1925050503d8060008114610411576040519150601f19603f3d011682016040523d82523d6000602084013e610416565b606091505b50809350819250505080610492576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4163636f756e743a207472616e73616374696f6e20726576657274656400000081525060200191505060405180910390fd5b8192505050949350505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461058f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806105f8602c913960400191505060405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fe436f6e74726f6c6c65643a206d73672e73656e646572206973206e6f742074686520636f6e74726f6c6c6572a164736f6c634300060c000a4163636f756e74436f6e74726f6c6c65723a2063616e6e6f7420736574206163636f756e7420496d706c656d656e746174696f6e20746f203078304163636f756e74436f6e74726f6c6c65723a2063616e6e6f742073656e6420746f2073656c664163636f756e74436f6e74726f6c6c65723a2063616e6e6f7420736574206163636f756e7420726567697374727920746f203078304163636f756e74436f6e74726f6c6c65723a2063616e6e6f742073656e6420746f203078304163636f756e74436f6e74726f6c6c65723a206163636f756e7420616c72656164792075706772616465644163636f756e74436f6e74726f6c6c65723a2063616e6e6f742073656e6420746f20636f6e74726f6c6c6572a164736f6c634300060c000a4163636f756e74436f6e74726f6c6c65723a2063616e6e6f7420736574206163636f756e7420496d706c656d656e746174696f6e20746f203078304163636f756e74436f6e74726f6c6c65723a2063616e6e6f7420736574206163636f756e7420726567697374727920746f20307830"; + "0x60806040523480156200001157600080fd5b506040516200340838038062003408833981810160405260408110156200003757600080fd5b8101908080519060200190929190805190602001909291905050506200006e67f9592435f5b5ea8c60c01b620000dc60201b60201c565b6200008a6797ad1bd4b63c15e160c01b620000df60201b60201c565b620000a667e81bcc617a15e39f60c01b620000df60201b60201c565b620000c26712e9fa803a5a4a4a60c01b620000df60201b60201c565b620000d48282620000e260201b60201c565b5050620006c9565b50565b50565b620000fe671af942b4819087fc60c01b620000dc60201b60201c565b6200011a670f0a44d9ed8d066760c01b620000dc60201b60201c565b6200013667af6f6ca5a19aa0c460c01b620000dc60201b60201c565b620001498260006200019860201b60201c565b6200016567dd02c4093239d2e360c01b620000dc60201b60201c565b62000181674754410ba216543b60c01b620000dc60201b60201c565b620001948160006200042f60201b60201c565b5050565b620001b46757e53bb83d0ee18c60c01b620000dc60201b60201c565b620001d0674b6db0292681de8060c01b620000dc60201b60201c565b620001ec67634dbba0de15713160c01b620000dc60201b60201c565b620002086716603faf2a4da76360c01b620000dc60201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000290576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526035815260200180620033d36035913960400191505060405180910390fd5b620002ac67fdb2085a5ff3fca060c01b620000dc60201b60201c565b620002c8677c845799041d8f7d60c01b620000dc60201b60201c565b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200032467cb55668fb6fee71c60c01b620000dc60201b60201c565b6200034067372f88a4084cef5b60c01b620000dc60201b60201c565b80156200040e5762000363671b487ad986e5d06660c01b620000dc60201b60201c565b6200037f67734c16c2ea37d8f760c01b620000dc60201b60201c565b6200039b670feaed23a94b80cf60c01b620000dc60201b60201c565b7f02e3c47057b8dc27a0929d3c394c314c73aa002d46939c31c9f71d1e77e86c1060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a16200042b565b6200042a67b56e759927012ec660c01b620000dc60201b60201c565b5b5050565b6200044b6763a6d6dd8a86352960c01b620000dc60201b60201c565b62000467678eeff62892cd112860c01b620000dc60201b60201c565b620004836781019a5110a6fd2560c01b620000dc60201b60201c565b6200049f6799570e869b77f36060c01b620000dc60201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000527576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b81526020018062003398603b913960400191505060405180910390fd5b6200054367e6730257a24a5d4d60c01b620000dc60201b60201c565b6200055f675137d05a035c900560c01b620000dc60201b60201c565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620005bc676635cb5a489007f160c01b620000dc60201b60201c565b620005d86779ff21fdd4bb44bc60c01b620000dc60201b60201c565b8015620006a857620005fb67ce1bdfd86d0ca23360c01b620000dc60201b60201c565b62000617677479b0cc253e30c560c01b620000dc60201b60201c565b6200063367a2b46e4941f5d4f860c01b620000dc60201b60201c565b7f70d9f5a076620216a6050e493f3ce69749de0b68fa4b839ba2518660ba8b9cf0600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1620006c5565b620006c46725a77b732bce9b0960c01b620000dc60201b60201c565b5b5050565b612cbf80620006d96000396000f3fe60806040523480156200001157600080fd5b5060043610620001005760003560e01c80635db3fe391162000099578063d01a9cae116200006f578063d01a9cae146200043f578063d089e11a1462000470578063d937de4314620004a6578063e5c7278f14620004f25762000100565b80635db3fe39146200034a5780636661a51e1462000396578063ad8bbdec14620003dd5762000100565b80631aa316db11620000db5780631aa316db14620001e457806320dedc001462000246578063264d5cb414620002a857806343013c2414620003035762000100565b806309766da214620001055780630f7d3bc7146200014c57806311464fbe14620001ae575b600080fd5b6200014a600480360360208110156200011d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050620005fd565b005b62000196600480360360208110156200016457600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506200064f565b60405180821515815260200191505060405180910390f35b620001b862000656565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6200022e60048036036020811015620001fc57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506200067c565b60405180821515815260200191505060405180910390f35b62000290600480360360208110156200025e57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062000687565b60405180821515815260200191505060405180910390f35b620002d760048036036020811015620002c057600080fd5b810190808035906020019092919050505062000692565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b62000348600480360360208110156200031b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050620006e8565b005b62000394600480360360208110156200036257600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506200073a565b005b620003db60048036036020811015620003ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200073d565b005b6200042760048036036020811015620003f557600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506200078f565b60405180821515815260200191505060405180910390f35b6200046e600480360360208110156200045757600080fd5b810190808035906020019092919050505062000796565b005b6200047a620007e9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b620004f060048036036020811015620004be57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506200080d565b005b620005fb600480360360808110156200050a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156200057257600080fd5b8201836020820111156200058557600080fd5b80359060200191846001830284011164010000000083111715620005a857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505062000810565b005b6200061367fd17f2f34ea89dda60c01b6200080d565b6200062967670c7ce80384dd8760c01b6200080d565b6200063f670d73251c3b32c2cf60c01b6200080d565b6200064c81600162000869565b50565b6000919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019050919050565b600060019050919050565b6000620006aa6760d6d6a33ef81ce960c01b6200080d565b620006c067700d697758cc42d560c01b6200080d565b620006d667d61c3adb52e7e99060c01b6200080d565b620006e18262000abb565b9050919050565b620006fe67dd6c0b406e90f1eb60c01b6200080d565b6200071467693ceaaa87aede7360c01b6200080d565b6200072a67d9c13fdcdf5971d860c01b6200080d565b6200073781600162000d4d565b50565b50565b6200075367cf70be1c10ca2d3e60c01b6200080d565b62000769675aca60eeb968724d60c01b6200080d565b6200077f67cc4c0e99a1f1225e60c01b6200080d565b6200078c816001620010db565b50565b6000919050565b620007ac6778a986e51e0eda1f60c01b6200080d565b620007c26735e6b2b2f03d099f60c01b6200080d565b620007d867679f876eb2f3608c60c01b6200080d565b620007e58160016200132a565b5050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b50565b62000826670a865ba881afc64060c01b6200080d565b6200083c679d65498c0f295b0b60c01b6200080d565b62000852671fbcb34b6fc8aee960c01b6200080d565b6200086284848484600162001579565b5050505050565b6200087f6763a6d6dd8a86352960c01b6200073a565b62000895678eeff62892cd112860c01b6200073a565b620008ab6781019a5110a6fd2560c01b6200073a565b620008c16799570e869b77f36060c01b6200073a565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000949576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b81526020018062002ba1603b913960400191505060405180910390fd5b6200095f67e6730257a24a5d4d60c01b6200073a565b62000975675137d05a035c900560c01b6200073a565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620009cc676635cb5a489007f160c01b6200073a565b620009e26779ff21fdd4bb44bc60c01b6200073a565b801562000aa057620009ff67ce1bdfd86d0ca23360c01b6200073a565b62000a15677479b0cc253e30c560c01b6200073a565b62000a2b67a2b46e4941f5d4f860c01b6200073a565b7f70d9f5a076620216a6050e493f3ce69749de0b68fa4b839ba2518660ba8b9cf0600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a162000ab7565b62000ab66725a77b732bce9b0960c01b6200073a565b5b5050565b600062000ad367834d7dcd68b198b060c01b6200073a565b62000ae9673ff175921f5f538960c01b6200073a565b62000aff6701ee97873b03827f60c01b6200073a565b60606040518060200162000b139062001c60565b6020820181038252601f19601f82011660405250600060a01b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600060a01b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516020018086805190602001908083835b6020831062000bad578051825260208201915060208101905060208303925062000b88565b6001836020036101000a0380198251168184511680821785525050505050509050018573ffffffffffffffffffffffffffffffffffffffff19168152600c018473ffffffffffffffffffffffffffffffffffffffff1660601b81526014018373ffffffffffffffffffffffffffffffffffffffff19168152600c018273ffffffffffffffffffffffffffffffffffffffff1660601b815260140195505050505050604051602081830303815290604052905062000c7567c5994a000b72ff9b60c01b6200073a565b62000c8b673303398cfdf0748c60c01b6200073a565b600060ff60f81b3085848051906020012060405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018473ffffffffffffffffffffffffffffffffffffffff1660601b815260140183815260200182815260200194505050505060405160208183030381529060405280519060200120905062000d2a67d5638e0e835e9fc260c01b6200073a565b62000d406765b94d8c76f4fb1960c01b6200073a565b8060001c92505050919050565b62000d63671e986652550cd6b760c01b6200073a565b62000d796712f52b022ec7e94e60c01b6200073a565b62000d8f67d13332898fe9198160c01b6200073a565b62000da5677771d5f99d0f0ea860c01b6200073a565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b815260040160206040518083038186803b15801562000e2557600080fd5b505afa15801562000e3a573d6000803e3d6000fd5b505050506040513d602081101562000e5157600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16141562000ed1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018062002c5c602b913960400191505060405180910390fd5b62000ee7671d9e65030376f52a60c01b6200073a565b62000efd67de7455456727db8960c01b6200073a565b62000f13671ad3abe77081920060c01b6200073a565b8173ffffffffffffffffffffffffffffffffffffffff1663d784d426600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801562000f9f57600080fd5b505af115801562000fb4573d6000803e3d6000fd5b5050505062000fce672dc6faf1b96e638260c01b6200073a565b62000fe4673ac280b3b6cdcef460c01b6200073a565b8015620010c05762001001674cef15a637c5d09560c01b6200073a565b6200101767a51c2a16f15f5aee60c01b6200073a565b6200102d6739bd33583f67f11d60c01b6200073a565b7feec27cdb8bd6f55c2c537deb52ab094a2437e85ef5197e6f064f90bff3ff563f82600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1620010d7565b620010d667a8db68da35e394a360c01b6200073a565b5b5050565b620010f16757e53bb83d0ee18c60c01b6200073a565b62001107674b6db0292681de8060c01b6200073a565b6200111d67634dbba0de15713160c01b6200073a565b620011336716603faf2a4da76360c01b6200073a565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620011bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603581526020018062002c026035913960400191505060405180910390fd5b620011d167fdb2085a5ff3fca060c01b6200073a565b620011e7677c845799041d8f7d60c01b6200073a565b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200123d67cb55668fb6fee71c60c01b6200073a565b6200125367372f88a4084cef5b60c01b6200073a565b80156200130f5762001270671b487ad986e5d06660c01b6200073a565b6200128667734c16c2ea37d8f760c01b6200073a565b6200129c670feaed23a94b80cf60c01b6200073a565b7f02e3c47057b8dc27a0929d3c394c314c73aa002d46939c31c9f71d1e77e86c1060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a162001326565b6200132567b56e759927012ec660c01b6200073a565b5b5050565b6000620013426769d35e844fb436a560c01b6200073a565b6200135867d05843a5b30ee56160c01b6200073a565b6200136e676a5949dc1605b72d60c01b6200073a565b60008360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051620013c39062001c60565b808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff168152602001925050508190604051809103906000f590508015801562001421573d6000803e3d6000fd5b5090506200143a671fbc5a34026c932160c01b6200073a565b620014506729f16a915d858e6660c01b6200073a565b82156200152c576200146d674ad44f27dbd7e2bf60c01b6200073a565b62001483671948a2809685e8a560c01b6200073a565b62001499674e798983ba62ea2160c01b6200073a565b7f2682a218602b9036c9869f006c5405ee4a1a65267653eb7e286123e5e1afde4c81600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a162001543565b620015426753f95733749efee660c01b6200073a565b5b620015596713228e0b40e520f960c01b6200073a565b6200156f679f460b7957fd280860c01b6200073a565b8091505092915050565b60606200159167d03cbc512208c19360c01b6200073a565b620015a767f0724c2f605051ae60c01b6200073a565b620015bd672c1f163d378fb1c760c01b6200073a565b620015d3676e332d1ea295ad6760c01b6200073a565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614156200165b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018062002c376025913960400191505060405180910390fd5b620016716734003fde0e365df960c01b6200073a565b62001687676f78eb7775d96ac060c01b6200073a565b6200169d6762ea15fa7f97e6d860c01b6200073a565b620016b367c1e60fa2c652db9260c01b6200073a565b3073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614156200173a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018062002c87602c913960400191505060405180910390fd5b6200175067c4c441efc53987a460c01b6200073a565b62001766670a4409d86344b6de60c01b6200073a565b6200177c67f30c8cf3d7c2007160c01b6200073a565b62001792677b93c54c10ec39b960c01b6200073a565b8573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141562001819576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018062002bdc6026913960400191505060405180910390fd5b6200182f67d0eadcda5ce01ef660c01b6200073a565b620018456708e5898037826a0e60c01b6200073a565b6200185b679eda6876d502675260c01b6200073a565b60608673ffffffffffffffffffffffffffffffffffffffff16633f579f428787876040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015620018ef578082015181840152602081019050620018d2565b50505050905090810190601f1680156200191d5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156200193f57600080fd5b505af115801562001954573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156200197f57600080fd5b8101908080516040519392919084640100000000821115620019a057600080fd5b83820191506020820185811115620019b757600080fd5b8251866001820283011164010000000082111715620019d557600080fd5b8083526020830192505050908051906020019080838360005b8381101562001a0b578082015181840152602081019050620019ee565b50505050905090810190601f16801562001a395780820380516001836020036101000a031916815260200191505b50604052505050905062001a586787669d68dca3195b60c01b6200073a565b62001a6e673ac670a41bf75b6a60c01b6200073a565b821562001c105762001a8b67d53a5613f66004c060c01b6200073a565b62001aa167fefbdbb940a6f1de60c01b6200073a565b62001ab7678bc5a3cf9a4cc9b860c01b6200073a565b7f99eeae1fb8801e2e878e060ec5e5b3557b3c4f8106e35d88cb573f293dae4e248787878785604051808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101562001b6157808201518184015260208101905062001b44565b50505050905090810190601f16801562001b8f5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101562001bca57808201518184015260208101905062001bad565b50505050905090810190601f16801562001bf85780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a162001c27565b62001c26674b9471e9fc68f75f60c01b6200073a565b5b62001c3d6744627d43ccecd7f160c01b6200073a565b62001c536717d248a7372779a660c01b6200073a565b8091505095945050505050565b610f328062001c6f8339019056fe608060405234801561001057600080fd5b50604051610f32380380610f328339818101604052604081101561003357600080fd5b810190808051906020019092919080519060200190929190505050610068674c05ed6aa1cd281960c01b61019960201b60201c565b610082675db0dfd7018850c360c01b61019960201b60201c565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506100dc6727cd07b305f6130f60c01b61019c60201b60201c565b6100f6673763e953c2595ed960c01b61019c60201b60201c565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610151679802ebbc23dba3ba60c01b61019c60201b60201c565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505061019f565b50565b50565b610d84806101ae6000396000f3fe6080604052600436106100e15760003560e01c80635c60da1b1161007f578063a42ea70811610059578063a42ea7081461067a578063d1c43eae146106d0578063d784d42614610726578063f77c479114610777576100e8565b80635c60da1b1461058c5780637b103999146105cd5780638f9bda6e1461060e576100e8565b80633f579f42116100bb5780633f579f421461031f57806344f9c9ec14610448578063550648ff146104b457806356c2fc6c14610520576100e8565b806310b90163146101f1578063221523e51461025d57806325afd90f146102c9576100e8565b366100e857005b3480156100f457600080fd5b5061010967d1c166158a76fd7860c01b6107b8565b61011d670a4a924f04604fe560c01b6107b8565b610131670ec1ea2f1a11078060c01b6107b8565b600080369050146101db57610150670366ed24f6d51c0d60c01b6107b8565b61016467583b5ef5a1a2fce260c01b6107b8565b61017867726acafc478ad1f860c01b6107b8565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506101b3673d8591565072bf1f60c01b6107b8565b368060008037600080826000855af43d806000803e81600081146101d657816000f35b816000fd5b6101ef67967eae13d5222be260c01b6107b8565b005b3480156101fd57600080fd5b506102456004803603602081101561021457600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107bb565b60405180821515815260200191505060405180910390f35b34801561026957600080fd5b506102b16004803603602081101561028057600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107c2565b60405180821515815260200191505060405180910390f35b3480156102d557600080fd5b5061031d600480360360208110156102ec57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107b8565b005b34801561032b57600080fd5b506103cd6004803603606081101561034257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561038957600080fd5b82018360208201111561039b57600080fd5b803590602001918460018302840111640100000000831117156103bd57600080fd5b90919293919293905050506107c9565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561040d5780820151818401526020810190506103f2565b50505050905090810190601f16801561043a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561045457600080fd5b5061049c6004803603602081101561046b57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610afd565b60405180821515815260200191505060405180910390f35b3480156104c057600080fd5b50610508600480360360208110156104d757600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b08565b60405180821515815260200191505060405180910390f35b34801561052c57600080fd5b506105746004803603602081101561054357600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b0f565b60405180821515815260200191505060405180910390f35b34801561059857600080fd5b506105a1610b1a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105d957600080fd5b506105e2610b40565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561061a57600080fd5b506106626004803603602081101561063157600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b66565b60405180821515815260200191505060405180910390f35b34801561068657600080fd5b506106ce6004803603602081101561069d57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b71565b005b3480156106dc57600080fd5b50610724600480360360208110156106f357600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b74565b005b34801561073257600080fd5b506107756004803603602081101561074957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b77565b005b34801561078357600080fd5b5061078c610d27565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b50565b6000919050565b6000919050565b60606107df6715e98a49f265557060c01b6107b8565b6107f367f6266a592c249da560c01b610b74565b6108076728279893f8537e1960c01b610b74565b61081b67d300d0a9ecbe6cac60c01b610b74565b61082f678d5c0caa285e3ec560c01b610b74565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180610d4c602c913960400191505060405180910390fd5b6108e76718b2e4dd03bc759a60c01b610b74565b6108fb67f8b65e28b897a44f60c01b610b74565b61090f67390c85347f6e2a2360c01b6107b8565b61092367d2a3446ca25e972660c01b6107b8565b61093767aca9b4091d5a9bc860c01b6107b8565b61094b67cce790cad14eb25260c01b6107b8565b606061096167b3adbec8c64c374360c01b6107b8565b6109756791d717b4dffb179d60c01b6107b8565b600061098b67310ff00dd2ac011060c01b6107b8565b8673ffffffffffffffffffffffffffffffffffffffff1686868660405180838380828437808301925050509250505060006040518083038185875af1925050503d80600081146109f7576040519150601f19603f3d011682016040523d82523d6000602084013e6109fc565b606091505b508093508192505050610a1967a450d3c3f63b6d4d60c01b6107b8565b610a2d679a3e7d330ffc414560c01b6107b8565b610a41671925c722e30d4f6d60c01b6107b8565b80610ab4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4163636f756e743a207472616e73616374696f6e20726576657274656400000081525060200191505060405180910390fd5b610ac867a7fa168288301d1c60c01b6107b8565b610adc6745320fb16320fa4a60c01b6107b8565b610af06779ce6fa2117b3f1e60c01b6107b8565b8192505050949350505050565b600060019050919050565b6000919050565b600060019050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019050919050565b50565b50565b610b8b6735cfec4d4a3972f660c01b6107b8565b610b9f67f6266a592c249da560c01b610b74565b610bb36728279893f8537e1960c01b610b74565b610bc767d300d0a9ecbe6cac60c01b610b74565b610bdb678d5c0caa285e3ec560c01b610b74565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180610d4c602c913960400191505060405180910390fd5b610c936718b2e4dd03bc759a60c01b610b74565b610ca767f8b65e28b897a44f60c01b610b74565b610cbb67dbd823a6f693c9e360c01b6107b8565b610ccf6759af4a1e64a734ae60c01b6107b8565b610ce367123d1e7dcae181d060c01b6107b8565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fe436f6e74726f6c6c65643a206d73672e73656e646572206973206e6f742074686520636f6e74726f6c6c6572a164736f6c634300060c000a4163636f756e74436f6e74726f6c6c65723a2063616e6e6f7420736574206163636f756e7420496d706c656d656e746174696f6e20746f203078304163636f756e74436f6e74726f6c6c65723a2063616e6e6f742073656e6420746f2073656c664163636f756e74436f6e74726f6c6c65723a2063616e6e6f7420736574206163636f756e7420726567697374727920746f203078304163636f756e74436f6e74726f6c6c65723a2063616e6e6f742073656e6420746f203078304163636f756e74436f6e74726f6c6c65723a206163636f756e7420616c72656164792075706772616465644163636f756e74436f6e74726f6c6c65723a2063616e6e6f742073656e6420746f20636f6e74726f6c6c6572a164736f6c634300060c000a4163636f756e74436f6e74726f6c6c65723a2063616e6e6f7420736574206163636f756e7420496d706c656d656e746174696f6e20746f203078304163636f756e74436f6e74726f6c6c65723a2063616e6e6f7420736574206163636f756e7420726567697374727920746f20307830"; type AccountControllerMockConstructorParams = | [signer?: Signer] diff --git a/typings/factories/AccountController__factory.ts b/typings/factories/AccountController__factory.ts index 414b79da..65f67c33 100644 --- a/typings/factories/AccountController__factory.ts +++ b/typings/factories/AccountController__factory.ts @@ -137,6 +137,57 @@ const _abi = [ stateMutability: "view", type: "function", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__bf6efb80", + type: "bytes8", + }, + ], + name: "c_bf6efb80", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__bf6efb80", + type: "bytes8", + }, + ], + name: "c_falsebf6efb80", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__bf6efb80", + type: "bytes8", + }, + ], + name: "c_truebf6efb80", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, ]; export class AccountController__factory { diff --git a/typings/factories/AccountImplementationV1Mock__factory.ts b/typings/factories/AccountImplementationV1Mock__factory.ts index 4d68ec03..6bf3c4a4 100644 --- a/typings/factories/AccountImplementationV1Mock__factory.ts +++ b/typings/factories/AccountImplementationV1Mock__factory.ts @@ -33,6 +33,210 @@ const _abi = [ name: "Initialized", type: "event", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_098c0657", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__28344ffb", + type: "bytes8", + }, + ], + name: "c_28344ffb", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__2860b96a", + type: "bytes8", + }, + ], + name: "c_2860b96a", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__3fd0a446", + type: "bytes8", + }, + ], + name: "c_3fd0a446", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_false098c0657", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__28344ffb", + type: "bytes8", + }, + ], + name: "c_false28344ffb", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__2860b96a", + type: "bytes8", + }, + ], + name: "c_false2860b96a", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__3fd0a446", + type: "bytes8", + }, + ], + name: "c_false3fd0a446", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_true098c0657", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__28344ffb", + type: "bytes8", + }, + ], + name: "c_true28344ffb", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__2860b96a", + type: "bytes8", + }, + ], + name: "c_true2860b96a", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__3fd0a446", + type: "bytes8", + }, + ], + name: "c_true3fd0a446", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [ { @@ -258,7 +462,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b50604051610d7f380380610d7f8339818101604052602081101561003357600080fd5b8101908080519060200190929190505050326000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610caa806100d56000396000f3fe608060405234801561001057600080fd5b50600436106100925760003560e01c8063249cb3fa11610066578063249cb3fa1461047c578063392e53cd146104de5780637b103999146104fe578063c4d66de814610532578063f23a6e611461057657610092565b806223de2914610097578063150b7a02146101cf5780631626ba7e146102c557806320c13b0b1461037b575b600080fd5b6101cd600480360360c08110156100ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561013457600080fd5b82018360208201111561014657600080fd5b8035906020019184600183028401116401000000008311171561016857600080fd5b90919293919293908035906020019064010000000081111561018957600080fd5b82018360208201111561019b57600080fd5b803590602001918460018302840111640100000000831117156101bd57600080fd5b9091929391929390505050610676565b005b610290600480360360808110156101e557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561024c57600080fd5b82018360208201111561025e57600080fd5b8035906020019184600183028401116401000000008311171561028057600080fd5b9091929391929390505050610680565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b610346600480360360408110156102db57600080fd5b81019080803590602001909291908035906020019064010000000081111561030257600080fd5b82018360208201111561031457600080fd5b8035906020019184600183028401116401000000008311171561033657600080fd5b9091929391929390505050610695565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b6104476004803603604081101561039157600080fd5b81019080803590602001906401000000008111156103ae57600080fd5b8201836020820111156103c057600080fd5b803590602001918460018302840111640100000000831117156103e257600080fd5b90919293919293908035906020019064010000000081111561040357600080fd5b82018360208201111561041557600080fd5b8035906020019184600183028401116401000000008311171561043757600080fd5b90919293919293905050506107f9565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b6104c86004803603604081101561049257600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061098a565b6040518082815260200191505060405180910390f35b6104e6610a66565b60405180821515815260200191505060405180910390f35b610506610abc565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105746004803603602081101561054857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ae2565b005b610641600480360360a081101561058c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001906401000000008111156105fd57600080fd5b82018360208201111561060f57600080fd5b8035906020019184600183028401116401000000008311171561063157600080fd5b9091929391929390505050610c58565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b5050505050505050565b600063150b7a0260e01b905095945050505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1e382ce308686866040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509550505050505060206040518083038186803b15801561075c57600080fd5b505afa158015610770573d6000803e3d6000fd5b505050506040513d602081101561078657600080fd5b81019080805190602001909291905050506107a85763ffffffff60e01b6107f0565b60405160200180807f697356616c69645369676e617475726528627974657333322c62797465732900815250601f019050604051602081830303815290604052805190602001205b90509392505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663124e9eb330878787876040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff16815260200180602001806020018381038352878782818152602001925080828437600081840152601f19601f8201169050808301925050508381038252858582818152602001925080828437600081840152601f19601f82011690508083019250505097505050505050505060206040518083038186803b1580156108ec57600080fd5b505afa158015610900573d6000803e3d6000fd5b505050506040513d602081101561091657600080fd5b81019080805190602001909291905050506109385763ffffffff60e01b610980565b60405160200180807f697356616c69645369676e61747572652862797465732c627974657329000000815250601d019050604051602081830303815290604052805190602001205b9050949350505050565b60008060405160200180807f455243373737546f6b656e73526563697069656e74000000000000000000000081525060150190506040516020818303038152906040528051906020012084148015610a0d57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610a5c5760405160200180807f455243313832305f4143434550545f4d4147494300000000000000000000000081525060140190506040516020818303038152906040528051906020012090505b8091505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614610b86576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180610c6f602f913960400191505060405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e632604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600063f23a6e6160e01b9050969550505050505056fe496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742074686520696e697469616c697a6572a164736f6c634300060c000a"; + "0x60806040523480156200001157600080fd5b50604051620016b4380380620016b4833981810160405260208110156200003757600080fd5b81019080805190602001909291905050506200006467bcc9be562f8a4b0a60c01b6200015c60201b60201c565b6200008067579ae7209daca85260c01b6200015c60201b60201c565b326000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000dc6729f26e2a831f76bd60c01b6200015f60201b60201c565b620000f8671839dd99ec0e261160c01b6200016260201b60201c565b620001146786d4d79b1474ba0960c01b6200016260201b60201c565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505062000165565b50565b50565b50565b61153f80620001756000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c806344f9c9ec116100b8578063b8919b571161007c578063b8919b5714610876578063c4543305146108d5578063c4d66de814610934578063d84fa10c14610978578063e49ef2a8146109d7578063f23a6e6114610a3657610136565b806344f9c9ec146106f25780635a8f0675146107515780637b103999146107b0578063a42ea708146107e4578063b851f6f91461082d57610136565b806320c13b0b116100ff57806320c13b0b146104c7578063221523e5146105c8578063249cb3fa14610627578063392e53cd146106895780633e260b13146106a957610136565b806223de291461013b5780630effa61f14610273578063150b7a02146102d25780631626ba7e146103c85780631ac0e7171461047e575b600080fd5b610271600480360360c081101561015157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156101d857600080fd5b8201836020820111156101ea57600080fd5b8035906020019184600183028401116401000000008311171561020c57600080fd5b90919293919293908035906020019064010000000081111561022d57600080fd5b82018360208201111561023f57600080fd5b8035906020019184600183028401116401000000008311171561026157600080fd5b9091929391929390505050610b36565b005b6102ba6004803603602081101561028957600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b54565b60405180821515815260200191505060405180910390f35b610393600480360360808110156102e857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561034f57600080fd5b82018360208201111561036157600080fd5b8035906020019184600183028401116401000000008311171561038357600080fd5b9091929391929390505050610b5f565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b610449600480360360408110156103de57600080fd5b81019080803590602001909291908035906020019064010000000081111561040557600080fd5b82018360208201111561041757600080fd5b8035906020019184600183028401116401000000008311171561043957600080fd5b9091929391929390505050610bb0565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b6104c56004803603602081101561049457600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610d87565b005b610593600480360360408110156104dd57600080fd5b81019080803590602001906401000000008111156104fa57600080fd5b82018360208201111561050c57600080fd5b8035906020019184600183028401116401000000008311171561052e57600080fd5b90919293919293908035906020019064010000000081111561054f57600080fd5b82018360208201111561056157600080fd5b8035906020019184600183028401116401000000008311171561058357600080fd5b9091929391929390505050610d8a565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b61060f600480360360208110156105de57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610f8e565b60405180821515815260200191505060405180910390f35b6106736004803603604081101561063d57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f95565b6040518082815260200191505060405180910390f35b61069161113f565b60405180821515815260200191505060405180910390f35b6106f0600480360360208110156106bf57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506111d2565b005b6107396004803603602081101561070857600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506111d5565b60405180821515815260200191505060405180910390f35b6107986004803603602081101561076757600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506111e0565b60405180821515815260200191505060405180910390f35b6107b86111eb565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61082b600480360360208110156107fa57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611211565b005b6108746004803603602081101561084357600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611214565b005b6108bd6004803603602081101561088c57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611217565b60405180821515815260200191505060405180910390f35b61091c600480360360208110156108eb57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061121e565b60405180821515815260200191505060405180910390f35b6109766004803603602081101561094a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611229565b005b6109bf6004803603602081101561098e57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506114a3565b60405180821515815260200191505060405180910390f35b610a1e600480360360208110156109ed57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506114aa565b60405180821515815260200191505060405180910390f35b610b01600480360360a0811015610a4c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190640100000000811115610abd57600080fd5b820183602082011115610acf57600080fd5b80359060200191846001830284011164010000000083111715610af157600080fd5b90919293919293905050506114b1565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b610b4a67ce47c0f946eadb1860c01b611214565b5050505050505050565b600060019050919050565b6000610b7567b827fecf1e33001460c01b611214565b610b8967b3558d27713bcbc360c01b611214565b610b9d67ca5809ab03b36cc360c01b611214565b63150b7a0260e01b905095945050505050565b6000610bc667d15cb231db01bd9560c01b611214565b610bda67cf444c026e53d2b560c01b611214565b610bee67feb865187e703ce360c01b611214565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1e382ce308686866040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509550505050505060206040518083038186803b158015610cb357600080fd5b505afa158015610cc7573d6000803e3d6000fd5b505050506040513d6020811015610cdd57600080fd5b81019080805190602001909291905050508015610d0a5750610d0967dcb61cbea4e09a8a60c01b610b54565b5b80610d255750610d2467597b2a0b23f7987b60c01b611217565b5b610d365763ffffffff60e01b610d7e565b60405160200180807f697356616c69645369676e617475726528627974657333322c62797465732900815250601f019050604051602081830303815290604052805190602001205b90509392505050565b50565b6000610da0679d53a108f4152ee460c01b611214565b610db4678f46380630213e2760c01b611214565b610dc8670444693b6dda2f5360c01b611214565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663124e9eb330878787876040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff16815260200180602001806020018381038352878782818152602001925080828437600081840152601f19601f8201169050808301925050508381038252858582818152602001925080828437600081840152601f19601f82011690508083019250505097505050505050505060206040518083038186803b158015610eb957600080fd5b505afa158015610ecd573d6000803e3d6000fd5b505050506040513d6020811015610ee357600080fd5b81019080805190602001909291905050508015610f105750610f0f67597e334f5a972f1e60c01b610b54565b5b80610f2b5750610f2a67624be475bd07a4c360c01b611217565b5b610f3c5763ffffffff60e01b610f84565b60405160200180807f697356616c69645369676e61747572652862797465732c627974657329000000815250601d019050604051602081830303815290604052805190602001205b9050949350505050565b6000919050565b6000610fab674fa492bc3d866f9660c01b611214565b610fbf67f11658511bdad90960c01b611214565b610fd367aea7b4d1358b312860c01b611214565b6000610fe967c7d74f3aaa7aa17a60c01b611214565b610ffd670b029f119a0e101260c01b611214565b60405160200180807f455243373737546f6b656e73526563697069656e7400000000000000000000008152506015019050604051602081830303815290604052805190602001208414801561107d57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156110f85761109667159f49977ceb711e60c01b611214565b6110aa67a1697c883c2b4d5f60c01b611214565b60405160200180807f455243313832305f4143434550545f4d41474943000000000000000000000000815250601401905060405160208183030381529060405280519060200120905061110d565b61110c6740bc089d08a45f7660c01b611214565b5b611121675edb1ebe087f56d760c01b611214565b61113567b6341297d7ddf48460c01b611214565b8091505092915050565b600061115567e29fe2f351ca6b2760c01b6111d2565b611169676f5dd3f08b97747760c01b6111d2565b61117d673a9488d62818322a60c01b6111d2565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b50565b600060019050919050565b600060019050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b50565b50565b6000919050565b600060019050919050565b61123d678fa2e2799025577f60c01b611214565b61125167d2ba19feb39e0b7f60c01b6111d2565b611265670c5ad53cdb9edd1560c01b6111d2565b61127967b6b588d2ebb9ae6960c01b6111d2565b61128d67c4ec9a90a885875260c01b6111d2565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611331576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180611504602f913960400191505060405180910390fd5b61134567c3785ba1534db95460c01b6111d2565b61135967e4202927591248ef60c01b6111d2565b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506113ae67531cfa2817fbdc8660c01b6111d2565b6113c2670fe7483554c7d7f060c01b611214565b6113d6671ba251afbdd08eb960c01b611214565b6113ea67e4b4698cdfd724ee60c01b611214565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061143f6701520f419008b58e60c01b6111d2565b6114536775364c04848b013b60c01b6111d2565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e632604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000919050565b6000919050565b60006114c76773b65ea4d003e8c060c01b611214565b6114db67efee7b06625db93660c01b611214565b6114ef6733114e923245121260c01b611214565b63f23a6e6160e01b9050969550505050505056fe496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742074686520696e697469616c697a6572a164736f6c634300060c000a"; type AccountImplementationV1MockConstructorParams = | [signer?: Signer] diff --git a/typings/factories/AccountImplementationV1__factory.ts b/typings/factories/AccountImplementationV1__factory.ts index 73d595b2..519591bd 100644 --- a/typings/factories/AccountImplementationV1__factory.ts +++ b/typings/factories/AccountImplementationV1__factory.ts @@ -23,6 +23,159 @@ const _abi = [ name: "Initialized", type: "event", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_098c0657", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__28344ffb", + type: "bytes8", + }, + ], + name: "c_28344ffb", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__2860b96a", + type: "bytes8", + }, + ], + name: "c_2860b96a", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_false098c0657", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__28344ffb", + type: "bytes8", + }, + ], + name: "c_false28344ffb", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__2860b96a", + type: "bytes8", + }, + ], + name: "c_false2860b96a", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_true098c0657", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__28344ffb", + type: "bytes8", + }, + ], + name: "c_true28344ffb", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__2860b96a", + type: "bytes8", + }, + ], + name: "c_true2860b96a", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [ { diff --git a/typings/factories/AccountRegistryMock__factory.ts b/typings/factories/AccountRegistryMock__factory.ts index 04557a31..4539f39d 100644 --- a/typings/factories/AccountRegistryMock__factory.ts +++ b/typings/factories/AccountRegistryMock__factory.ts @@ -9,6 +9,108 @@ import type { } from "../AccountRegistryMock"; const _abi = [ + { + inputs: [ + { + internalType: "bytes8", + name: "c__9649d652", + type: "bytes8", + }, + ], + name: "c_9649d652", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__9649d652", + type: "bytes8", + }, + ], + name: "c_false9649d652", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__fbab7e5c", + type: "bytes8", + }, + ], + name: "c_falsefbab7e5c", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__fbab7e5c", + type: "bytes8", + }, + ], + name: "c_fbab7e5c", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__9649d652", + type: "bytes8", + }, + ], + name: "c_true9649d652", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__fbab7e5c", + type: "bytes8", + }, + ], + name: "c_truefbab7e5c", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [ { @@ -88,7 +190,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b50610960806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063124e9eb314610046578063cbc438bf1461014a578063e1e382ce14610222575b600080fd5b6101326004803603606081101561005c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561009957600080fd5b8201836020820111156100ab57600080fd5b803590602001918460018302840111640100000000831117156100cd57600080fd5b9091929391929390803590602001906401000000008111156100ee57600080fd5b82018360208201111561010057600080fd5b8035906020019184600183028401116401000000008311171561012257600080fd5b90919293919293905050506102db565b60405180821515815260200191505060405180910390f35b6102206004803603604081101561016057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561019d57600080fd5b8201836020820111156101af57600080fd5b803590602001918460208302840111640100000000831117156101d157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050610418565b005b6102c36004803603606081101561023857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561027f57600080fd5b82018360208201111561029157600080fd5b803590602001918460018302840111640100000000831117156102b357600080fd5b90919293919293905050506104e3565b60405180821515815260200191505060405180910390f35b60008061038184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061037388888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506105d3565b61073c90919063ffffffff16565b90506000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505095945050505050565b60008151905060005b818110156104dd5760016000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085848151811061047757fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050610421565b50505050565b60008061053d84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508661073c90919063ffffffff16565b90506000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16915050949350505050565b60006105df825161080c565b826040516020018082805190602001908083835b6020831061061657805182526020820191506020810190506020830392506105f3565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405260405160200180807f19457468657265756d205369676e6564204d6573736167653a0a000000000000815250601a0183805190602001908083835b602083106106a85780518252602082019150602081019050602083039250610685565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b602083106106f957805182526020820191506020810190506020830392506106d6565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052805190602001209050919050565b600080600090506041835114156108025760008060006020860151925060408601519150606086015160001a9050601b8160ff16101561077d57601b810190505b601b8160ff1614806107925750601c8160ff16145b156107fe5760018782858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156107f1573d6000803e3d6000fd5b5050506020604051035193505b5050505b8091505092915050565b60606000821415610854576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061094e565b600082905060005b6000821461087e578080600101915050600a828161087657fe5b04915061085c565b60608167ffffffffffffffff8111801561089757600080fd5b506040519080825280601f01601f1916602001820160405280156108ca5781602001600182028036833780820191505090505b50905060006001830390508593505b6000841461094657600a84816108eb57fe5b0660300160f81b8282806001900393508151811061090557fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a848161093e57fe5b0493506108d9565b819450505050505b91905056fea164736f6c634300060c000a"; + "0x608060405234801561001057600080fd5b506111d1806100206000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c806399066bc61161006657806399066bc6146102a3578063cbc438bf146102ec578063e1e382ce146103c4578063f0ce0fe61461047d578063f0e97b33146104dc57610093565b8063124e9eb31461009857806339235d621461019c5780636259e66f146101fb57806382fa0d1e14610244575b600080fd5b610184600480360360608110156100ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156100eb57600080fd5b8201836020820111156100fd57600080fd5b8035906020019184600183028401116401000000008311171561011f57600080fd5b90919293919293908035906020019064010000000081111561014057600080fd5b82018360208201111561015257600080fd5b8035906020019184600183028401116401000000008311171561017457600080fd5b909192939192939050505061053b565b60405180821515815260200191505060405180910390f35b6101e3600480360360208110156101b257600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506106dd565b60405180821515815260200191505060405180910390f35b6102426004803603602081101561021157600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506106e4565b005b61028b6004803603602081101561025a57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506106e7565b60405180821515815260200191505060405180910390f35b6102ea600480360360208110156102b957600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506106f2565b005b6103c26004803603604081101561030257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561033f57600080fd5b82018360208201111561035157600080fd5b8035906020019184602083028401116401000000008311171561037357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192905050506106f5565b005b610465600480360360608110156103da57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561042157600080fd5b82018360208201111561043357600080fd5b8035906020019184600183028401116401000000008311171561045557600080fd5b9091929391929390505050610838565b60405180821515815260200191505060405180910390f35b6104c46004803603602081101561049357600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061098d565b60405180821515815260200191505060405180910390f35b610523600480360360208110156104f257600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610998565b60405180821515815260200191505060405180910390f35b6000610551674774857102ee385160c01b6106e4565b6105656773f1487c75d694f860c01b6106e4565b610579679eaf38bfa5ffda1860c01b6106e4565b600061061e84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061061088888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061099f565b610b4490919063ffffffff16565b9050610634677108cfd2b8f1685560c01b6106e4565b6106486743bfd04725bb7ab460c01b6106e4565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505095945050505050565b6000919050565b50565b600060019050919050565b50565b610709676f63c5f6dba4beab60c01b6106e4565b61071d679cd1be894a90accd60c01b6106e4565b61073167bb37c9607ea813a560c01b6106e4565b60008151905061074b6736d7512991da8afe60c01b6106e4565b61075f67a30a1dc641009c5460c01b6106e4565b60005b818110156108325761077e67c032a26f6f1135c460c01b6106e4565b60016000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008584815181106107cc57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050610762565b50505050565b600061084e670c6be4924ae2085460c01b6106e4565b6108626747a760788a349f0b60c01b6106e4565b6108766748f680dc33bc9d3f60c01b6106e4565b60006108cf84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505086610b4490919063ffffffff16565b90506108e56747f655d17704028a60c01b6106e4565b6108f9670fae7617e6d5f3d760c01b6106e4565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16915050949350505050565b600060019050919050565b6000919050565b60006109b5676caf41065fc97a4260c01b610e61565b6109c9679f00e9579a814efe60c01b610e61565b6109dd678bbf08d0403adc3f60c01b610e61565b6109e78251610e64565b826040516020018082805190602001908083835b60208310610a1e57805182526020820191506020810190506020830392506109fb565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405260405160200180807f19457468657265756d205369676e6564204d6573736167653a0a000000000000815250601a0183805190602001908083835b60208310610ab05780518252602082019150602081019050602083039250610a8d565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310610b015780518252602082019150602081019050602083039250610ade565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052805190602001209050919050565b6000610b5a670d75db982ec4597160c01b6111b3565b610b6e6725c2c60ab754182560c01b6111b3565b610b82673eb64a254569ed0660c01b6111b3565b6000610b9867fb2a2286066e15e460c01b6111b3565b610bac67a440db11ec9e986d60c01b6111b3565b604183511415610e1a57610bca6704a5aada48e2763260c01b6111b3565b610bde674b98cf1796e5c26660c01b6111b3565b610bf267d2dfec7b159385fc60c01b6111b3565b6000610c086772c2a840621b4aa760c01b6111b3565b610c1c67bfd411e6ba4d07c460c01b6111b3565b6000610c3267145d23f82764ba9960c01b6111b3565b610c4667acdff958a9c6c5dd60c01b6111b3565b6000610c5c673b79e3a80932a6a160c01b6111b3565b6020860151925060408601519150606086015160001a9050610c88679b0cdee01a57ea2f60c01b6111b3565b610c9c675dbf88583373227960c01b6111b3565b601b8160ff161015610cdb57610cbc670dc9a1836eb51c3260c01b6111b3565b610cd0677097d8456a6c3e1560c01b6111b3565b601b81019050610cf0565b610cef6708b39c61216869e760c01b6111b3565b5b610d04672ea4d6db7d2138c560c01b6111b3565b610d18679ad3f461195a5eee60c01b6111b3565b601b8160ff16148015610d3b5750610d3a67a24e972b59dc7d0560c01b6111b6565b5b80610d655750601c8160ff16148015610d645750610d6367934bee4849491d9560c01b6111b6565b5b5b15610dfd57610d7e676d6a491fc6e072fa60c01b6111b3565b610d9267aecd1690d1de9f1c60c01b6111b3565b60018782858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610dec573d6000803e3d6000fd5b505050602060405103519350610e12565b610e1167513fbc3b3a0ad1c060c01b6111b3565b5b505050610e2f565b610e2e6723d6d78de386c96660c01b6111b3565b5b610e436707d0c4f11e72cfc960c01b6111b3565b610e5767b9689b22f403636c60c01b6111b3565b8091505092915050565b50565b6060610e7a67e3a0abd5bcd9be4560c01b6111c1565b610e8e676f4ac71b01df0db160c01b6111c1565b610ea26721d33336b8b2843560c01b6111c1565b6000821415610f2457610ebf6799734a524846f5ea60c01b6111c1565b610ed36786ec3af2b5204b2d60c01b6111c1565b610ee7675f049c9df345fcb860c01b6111c1565b6040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506111ae565b610f38674e123f29ad8e63ae60c01b6111c1565b610f4c678a02b86c6f5ae79060c01b6111c1565b610f6067aef6cecdbdb7f12260c01b6111c1565b6000829050610f79675ee403aa4c2e194160c01b6111c1565b610f8d67c9a686dccda57deb60c01b6111c1565b6000610fa36770f6e6f301963e5060c01b6111c1565b610fb767cec46452a4c2007960c01b6111c1565b5b6000821461100257610fd467a2c57d3c793a6eb760c01b6111c1565b8080600101915050610ff0677b9437f81985d6c960c01b6111c1565b600a8281610ffa57fe5b049150610fb8565b611016675b6ccf3f6790a03260c01b6111c1565b61102a67c5942845ca4d8bd160c01b6111c1565b60608167ffffffffffffffff8111801561104357600080fd5b506040519080825280601f01601f1916602001820160405280156110765781602001600182028036833780820191505090505b50905061108d67f47605e8a1a97a4f60c01b6111c1565b6110a167fb23949ab383488b60c01b6111c1565b60006001830390506110bd67f586ddddd202275b60c01b6111c1565b8593506110d4670a29638383e5bbf260c01b6111c1565b6110e867417a1c155b8c8d7860c01b6111c1565b5b6000841461117e576111056730db4ddbb2bce57560c01b6111c1565b600a848161110f57fe5b0660300160f81b8282806001900393508151811061112957fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061116c6753f1af39e9b748c960c01b6111c1565b600a848161117657fe5b0493506110e9565b611192674d1eb2df4daf6cff60c01b6111c1565b6111a6677ce056f455b7e7f260c01b6111c1565b819450505050505b919050565b50565b600060019050919050565b5056fea164736f6c634300060c000a"; type AccountRegistryMockConstructorParams = | [signer?: Signer] diff --git a/typings/factories/AccountRegistry__factory.ts b/typings/factories/AccountRegistry__factory.ts index 208c51ee..d587234e 100644 --- a/typings/factories/AccountRegistry__factory.ts +++ b/typings/factories/AccountRegistry__factory.ts @@ -10,6 +10,57 @@ import type { } from "../AccountRegistry"; const _abi = [ + { + inputs: [ + { + internalType: "bytes8", + name: "c__9649d652", + type: "bytes8", + }, + ], + name: "c_9649d652", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__9649d652", + type: "bytes8", + }, + ], + name: "c_false9649d652", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__9649d652", + type: "bytes8", + }, + ], + name: "c_true9649d652", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [ { diff --git a/typings/factories/Account__factory.ts b/typings/factories/Account__factory.ts index 2f3798ac..db8b8482 100644 --- a/typings/factories/Account__factory.ts +++ b/typings/factories/Account__factory.ts @@ -26,6 +26,159 @@ const _abi = [ stateMutability: "nonpayable", type: "fallback", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__28344ffb", + type: "bytes8", + }, + ], + name: "c_28344ffb", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__495bfa8b", + type: "bytes8", + }, + ], + name: "c_495bfa8b", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__ac4285e3", + type: "bytes8", + }, + ], + name: "c_ac4285e3", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__28344ffb", + type: "bytes8", + }, + ], + name: "c_false28344ffb", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__495bfa8b", + type: "bytes8", + }, + ], + name: "c_false495bfa8b", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__ac4285e3", + type: "bytes8", + }, + ], + name: "c_falseac4285e3", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__28344ffb", + type: "bytes8", + }, + ], + name: "c_true28344ffb", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__495bfa8b", + type: "bytes8", + }, + ], + name: "c_true495bfa8b", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__ac4285e3", + type: "bytes8", + }, + ], + name: "c_trueac4285e3", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [], name: "controller", @@ -114,7 +267,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b506040516107513803806107518339818101604052604081101561003357600080fd5b810190808051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050610630806101216000396000f3fe60806040526004361061004e5760003560e01c80633f579f42146100be5780635c60da1b146101e75780637b10399914610228578063d784d42614610269578063f77c4791146102ba57610055565b3661005557005b34801561006157600080fd5b50600080369050146100bc576000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050368060008037600080826000855af43d806000803e81600081146100b757816000f35b816000fd5b005b3480156100ca57600080fd5b5061016c600480360360608110156100e157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561012857600080fd5b82018360208201111561013a57600080fd5b8035906020019184600183028401116401000000008311171561015c57600080fd5b90919293919293905050506102fb565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ac578082015181840152602081019050610191565b50505050905090810190601f1680156101d95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101f357600080fd5b506101fc61049f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561023457600080fd5b5061023d6104c5565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561027557600080fd5b506102b86004803603602081101561028c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104eb565b005b3480156102c657600080fd5b506102cf6105d3565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b606060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806105f8602c913960400191505060405180910390fd5b606060008673ffffffffffffffffffffffffffffffffffffffff1686868660405180838380828437808301925050509250505060006040518083038185875af1925050503d8060008114610411576040519150601f19603f3d011682016040523d82523d6000602084013e610416565b606091505b50809350819250505080610492576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4163636f756e743a207472616e73616374696f6e20726576657274656400000081525060200191505060405180910390fd5b8192505050949350505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461058f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806105f8602c913960400191505060405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fe436f6e74726f6c6c65643a206d73672e73656e646572206973206e6f742074686520636f6e74726f6c6c6572a164736f6c634300060c000a"; + "0x608060405234801561001057600080fd5b50604051610f32380380610f328339818101604052604081101561003357600080fd5b810190808051906020019092919080519060200190929190505050610068674c05ed6aa1cd281960c01b61019960201b60201c565b610082675db0dfd7018850c360c01b61019960201b60201c565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506100dc6727cd07b305f6130f60c01b61019c60201b60201c565b6100f6673763e953c2595ed960c01b61019c60201b60201c565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610151679802ebbc23dba3ba60c01b61019c60201b60201c565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505061019f565b50565b50565b610d84806101ae6000396000f3fe6080604052600436106100e15760003560e01c80635c60da1b1161007f578063a42ea70811610059578063a42ea7081461067a578063d1c43eae146106d0578063d784d42614610726578063f77c479114610777576100e8565b80635c60da1b1461058c5780637b103999146105cd5780638f9bda6e1461060e576100e8565b80633f579f42116100bb5780633f579f421461031f57806344f9c9ec14610448578063550648ff146104b457806356c2fc6c14610520576100e8565b806310b90163146101f1578063221523e51461025d57806325afd90f146102c9576100e8565b366100e857005b3480156100f457600080fd5b5061010967d1c166158a76fd7860c01b6107b8565b61011d670a4a924f04604fe560c01b6107b8565b610131670ec1ea2f1a11078060c01b6107b8565b600080369050146101db57610150670366ed24f6d51c0d60c01b6107b8565b61016467583b5ef5a1a2fce260c01b6107b8565b61017867726acafc478ad1f860c01b6107b8565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506101b3673d8591565072bf1f60c01b6107b8565b368060008037600080826000855af43d806000803e81600081146101d657816000f35b816000fd5b6101ef67967eae13d5222be260c01b6107b8565b005b3480156101fd57600080fd5b506102456004803603602081101561021457600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107bb565b60405180821515815260200191505060405180910390f35b34801561026957600080fd5b506102b16004803603602081101561028057600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107c2565b60405180821515815260200191505060405180910390f35b3480156102d557600080fd5b5061031d600480360360208110156102ec57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107b8565b005b34801561032b57600080fd5b506103cd6004803603606081101561034257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561038957600080fd5b82018360208201111561039b57600080fd5b803590602001918460018302840111640100000000831117156103bd57600080fd5b90919293919293905050506107c9565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561040d5780820151818401526020810190506103f2565b50505050905090810190601f16801561043a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561045457600080fd5b5061049c6004803603602081101561046b57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610afd565b60405180821515815260200191505060405180910390f35b3480156104c057600080fd5b50610508600480360360208110156104d757600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b08565b60405180821515815260200191505060405180910390f35b34801561052c57600080fd5b506105746004803603602081101561054357600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b0f565b60405180821515815260200191505060405180910390f35b34801561059857600080fd5b506105a1610b1a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105d957600080fd5b506105e2610b40565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561061a57600080fd5b506106626004803603602081101561063157600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b66565b60405180821515815260200191505060405180910390f35b34801561068657600080fd5b506106ce6004803603602081101561069d57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b71565b005b3480156106dc57600080fd5b50610724600480360360208110156106f357600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b74565b005b34801561073257600080fd5b506107756004803603602081101561074957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b77565b005b34801561078357600080fd5b5061078c610d27565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b50565b6000919050565b6000919050565b60606107df6715e98a49f265557060c01b6107b8565b6107f367f6266a592c249da560c01b610b74565b6108076728279893f8537e1960c01b610b74565b61081b67d300d0a9ecbe6cac60c01b610b74565b61082f678d5c0caa285e3ec560c01b610b74565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180610d4c602c913960400191505060405180910390fd5b6108e76718b2e4dd03bc759a60c01b610b74565b6108fb67f8b65e28b897a44f60c01b610b74565b61090f67390c85347f6e2a2360c01b6107b8565b61092367d2a3446ca25e972660c01b6107b8565b61093767aca9b4091d5a9bc860c01b6107b8565b61094b67cce790cad14eb25260c01b6107b8565b606061096167b3adbec8c64c374360c01b6107b8565b6109756791d717b4dffb179d60c01b6107b8565b600061098b67310ff00dd2ac011060c01b6107b8565b8673ffffffffffffffffffffffffffffffffffffffff1686868660405180838380828437808301925050509250505060006040518083038185875af1925050503d80600081146109f7576040519150601f19603f3d011682016040523d82523d6000602084013e6109fc565b606091505b508093508192505050610a1967a450d3c3f63b6d4d60c01b6107b8565b610a2d679a3e7d330ffc414560c01b6107b8565b610a41671925c722e30d4f6d60c01b6107b8565b80610ab4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4163636f756e743a207472616e73616374696f6e20726576657274656400000081525060200191505060405180910390fd5b610ac867a7fa168288301d1c60c01b6107b8565b610adc6745320fb16320fa4a60c01b6107b8565b610af06779ce6fa2117b3f1e60c01b6107b8565b8192505050949350505050565b600060019050919050565b6000919050565b600060019050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019050919050565b50565b50565b610b8b6735cfec4d4a3972f660c01b6107b8565b610b9f67f6266a592c249da560c01b610b74565b610bb36728279893f8537e1960c01b610b74565b610bc767d300d0a9ecbe6cac60c01b610b74565b610bdb678d5c0caa285e3ec560c01b610b74565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180610d4c602c913960400191505060405180910390fd5b610c936718b2e4dd03bc759a60c01b610b74565b610ca767f8b65e28b897a44f60c01b610b74565b610cbb67dbd823a6f693c9e360c01b6107b8565b610ccf6759af4a1e64a734ae60c01b6107b8565b610ce367123d1e7dcae181d060c01b6107b8565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fe436f6e74726f6c6c65643a206d73672e73656e646572206973206e6f742074686520636f6e74726f6c6c6572a164736f6c634300060c000a"; type AccountConstructorParams = | [signer?: Signer] diff --git a/typings/factories/AddressLib__factory.ts b/typings/factories/AddressLib__factory.ts index 127427b3..6238942e 100644 --- a/typings/factories/AddressLib__factory.ts +++ b/typings/factories/AddressLib__factory.ts @@ -10,11 +10,11 @@ const _abi = [ inputs: [ { internalType: "bytes8", - name: "c__6866fc56", + name: "c__c8dd6f34", type: "bytes8", }, ], - name: "c_6866fc56", + name: "c_c8dd6f34", outputs: [], stateMutability: "pure", type: "function", @@ -23,11 +23,11 @@ const _abi = [ inputs: [ { internalType: "bytes8", - name: "c__6866fc56", + name: "c__c8dd6f34", type: "bytes8", }, ], - name: "c_false6866fc56", + name: "c_falsec8dd6f34", outputs: [ { internalType: "bool", @@ -42,11 +42,11 @@ const _abi = [ inputs: [ { internalType: "bytes8", - name: "c__6866fc56", + name: "c__c8dd6f34", type: "bytes8", }, ], - name: "c_true6866fc56", + name: "c_truec8dd6f34", outputs: [ { internalType: "bool", @@ -60,7 +60,7 @@ const _abi = [ ]; const _bytecode = - "0x610179610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061004b5760003560e01c80636074c36c14610050578063afd9965c14610099578063bdf2f737146100f8575b600080fd5b6100976004803603602081101561006657600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610157565b005b6100e0600480360360208110156100af57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061015a565b60405180821515815260200191505060405180910390f35b61013f6004803603602081101561010e57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610165565b60405180821515815260200191505060405180910390f35b50565b600060019050919050565b600091905056fea164736f6c634300060c000a"; + "0x610179610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061004b5760003560e01c80636df47516146100505780639ea44844146100af578063fb0f0e39146100f8575b600080fd5b6100976004803603602081101561006657600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610157565b60405180821515815260200191505060405180910390f35b6100f6600480360360208110156100c557600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061015e565b005b61013f6004803603602081101561010e57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610161565b60405180821515815260200191505060405180910390f35b6000919050565b50565b60006001905091905056fea164736f6c634300060c000a"; type AddressLibConstructorParams = | [signer?: Signer] diff --git a/typings/factories/AmplificationUtils__factory.ts b/typings/factories/AmplificationUtils__factory.ts deleted file mode 100644 index ba5b24f9..00000000 --- a/typings/factories/AmplificationUtils__factory.ts +++ /dev/null @@ -1,111 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { - AmplificationUtils, - AmplificationUtilsInterface, -} from "../AmplificationUtils"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "oldA", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "newA", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "initialTime", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "futureTime", - type: "uint256", - }, - ], - name: "RampA", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "currentA", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "time", - type: "uint256", - }, - ], - name: "StopRampA", - type: "event", - }, -]; - -const _bytecode = - "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b11fd6dff13a14654d73e77c50d46af55a0781b6d0604277b4a768052de705bc64736f6c63430008110033"; - -type AmplificationUtilsConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: AmplificationUtilsConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class AmplificationUtils__factory extends ContractFactory { - constructor(...args: AmplificationUtilsConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - deploy( - overrides?: Overrides & { from?: string | Promise } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - getDeployTransaction( - overrides?: Overrides & { from?: string | Promise } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - attach(address: string): AmplificationUtils { - return super.attach(address) as AmplificationUtils; - } - connect(signer: Signer): AmplificationUtils__factory { - return super.connect(signer) as AmplificationUtils__factory; - } - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): AmplificationUtilsInterface { - return new utils.Interface(_abi) as AmplificationUtilsInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): AmplificationUtils { - return new Contract(address, _abi, signerOrProvider) as AmplificationUtils; - } -} diff --git a/typings/factories/AssetLogic__factory.ts b/typings/factories/AssetLogic__factory.ts deleted file mode 100644 index 8700e15e..00000000 --- a/typings/factories/AssetLogic__factory.ts +++ /dev/null @@ -1,88 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { AssetLogic, AssetLogicInterface } from "../AssetLogic"; - -const _abi = [ - { - inputs: [], - name: "AssetLogic__getConfig_notRegistered", - type: "error", - }, - { - inputs: [], - name: "AssetLogic__getTokenIndexFromStableSwapPool_notExist", - type: "error", - }, - { - inputs: [], - name: "AssetLogic__handleIncomingAsset_feeOnTransferNotSupported", - type: "error", - }, - { - inputs: [], - name: "AssetLogic__handleIncomingAsset_nativeAssetNotSupported", - type: "error", - }, - { - inputs: [], - name: "AssetLogic__handleOutgoingAsset_notNative", - type: "error", - }, - { - inputs: [], - name: "AssetLogic__swapAsset_externalStableSwapPoolDoesNotExist", - type: "error", - }, -]; - -const _bytecode = - "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a308637350ea3051c4aec0daff55569551361be4e979421eff6819f130e68b8f64736f6c63430008110033"; - -type AssetLogicConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: AssetLogicConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class AssetLogic__factory extends ContractFactory { - constructor(...args: AssetLogicConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - deploy( - overrides?: Overrides & { from?: string | Promise } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - getDeployTransaction( - overrides?: Overrides & { from?: string | Promise } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - attach(address: string): AssetLogic { - return super.attach(address) as AssetLogic; - } - connect(signer: Signer): AssetLogic__factory { - return super.connect(signer) as AssetLogic__factory; - } - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): AssetLogicInterface { - return new utils.Interface(_abi) as AssetLogicInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): AssetLogic { - return new Contract(address, _abi, signerOrProvider) as AssetLogic; - } -} diff --git a/typings/factories/BalancesHelperV2__factory.ts b/typings/factories/BalancesHelperV2__factory.ts index 3657e0b0..a87d49ba 100644 --- a/typings/factories/BalancesHelperV2__factory.ts +++ b/typings/factories/BalancesHelperV2__factory.ts @@ -46,6 +46,57 @@ const _abi = [ name: "TokenZeroAddress", type: "error", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__158c7976", + type: "bytes8", + }, + ], + name: "c_158c7976", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__158c7976", + type: "bytes8", + }, + ], + name: "c_false158c7976", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__158c7976", + type: "bytes8", + }, + ], + name: "c_true158c7976", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [ { @@ -97,7 +148,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b5061108a806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806350c5a7101461003b578063ef5bfc371461006b575b600080fd5b610055600480360381019061005091906109e6565b61009b565b6040516100629190610ce8565b60405180910390f35b610085600480360381019061008091906109e6565b610279565b6040516100929190610d0a565b60405180910390f35b6060600083839050868690506100b19190610e68565b67ffffffffffffffff8111156100f0577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561011e5781602001602082028036833780820191505090505b50905060005b8686905081101561026c5760005b85859050811015610258576000828787905061014e9190610e68565b826101599190610e12565b90506101ff898985818110610197577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906101ac91906109bd565b8888858181106101e5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906101fa91906109bd565b610457565b848281518110610238577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101818152505050808061025090610f3b565b915050610132565b50808061026490610f3b565b915050610124565b5080915050949350505050565b60606000838390508686905061028f9190610e68565b67ffffffffffffffff8111156102ce577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156102fc5781602001602082028036833780820191505090505b50905060005b8686905081101561044a5760005b85859050811015610436576000828787905061032c9190610e68565b826103379190610e12565b90506103dd898985818110610375577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201602081019061038a91906109bd565b8888858181106103c3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906103d891906109bd565b610608565b848281518110610416577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101818152505050808061042e90610f3b565b915050610310565b50808061044290610f3b565b915050610302565b5080915050949350505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156104cc5782826040517f484305ff0000000000000000000000000000000000000000000000000000000081526004016104c3929190610cbf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156105405782826040517f41f93bdf000000000000000000000000000000000000000000000000000000008152600401610537929190610cbf565b60405180910390fd5b60006105e0632ec8eec760e01b8560405160240161055e9190610ca4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050508473ffffffffffffffffffffffffffffffffffffffff166107b090919063ffffffff16565b90506000818060200190518101906105f89190610a5b565b5050509050809250505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561067d5782826040517f484305ff000000000000000000000000000000000000000000000000000000008152600401610674929190610cbf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156106f15782826040517f41f93bdf0000000000000000000000000000000000000000000000000000000081526004016106e8929190610cbf565b60405180910390fd5b60006107916370a0823160e01b8560405160240161070f9190610ca4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050508473ffffffffffffffffffffffffffffffffffffffff166107b090919063ffffffff16565b9050808060200190518101906107a79190610abe565b91505092915050565b60606107d58383604051806060016040528060258152602001611059602591396107dd565b905092915050565b60606107e8846108aa565b610827576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081e90610d4e565b60405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff168560405161084f9190610c8d565b600060405180830381855afa9150503d806000811461088a576040519150601f19603f3d011682016040523d82523d6000602084013e61088f565b606091505b509150915061089f8282866108cd565b925050509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b606083156108dd5782905061092d565b6000835111156108f05782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109249190610d2c565b60405180910390fd5b9392505050565b60008135905061094381611013565b92915050565b60008083601f84011261095b57600080fd5b8235905067ffffffffffffffff81111561097457600080fd5b60208301915083602082028301111561098c57600080fd5b9250929050565b6000815190506109a28161102a565b92915050565b6000815190506109b781611041565b92915050565b6000602082840312156109cf57600080fd5b60006109dd84828501610934565b91505092915050565b600080600080604085870312156109fc57600080fd5b600085013567ffffffffffffffff811115610a1657600080fd5b610a2287828801610949565b9450945050602085013567ffffffffffffffff811115610a4157600080fd5b610a4d87828801610949565b925092505092959194509250565b60008060008060808587031215610a7157600080fd5b6000610a7f87828801610993565b9450506020610a90878288016109a8565b9350506040610aa1878288016109a8565b9250506060610ab2878288016109a8565b91505092959194509250565b600060208284031215610ad057600080fd5b6000610ade848285016109a8565b91505092915050565b6000610af38383610c13565b60208301905092915050565b6000610b0b8383610c7e565b60208301905092915050565b610b2081610ec2565b82525050565b6000610b3182610d8e565b610b3b8185610dd4565b9350610b4683610d6e565b8060005b83811015610b77578151610b5e8882610ae7565b9750610b6983610dba565b925050600181019050610b4a565b5085935050505092915050565b6000610b8f82610d99565b610b998185610de5565b9350610ba483610d7e565b8060005b83811015610bd5578151610bbc8882610aff565b9750610bc783610dc7565b925050600181019050610ba8565b5085935050505092915050565b6000610bed82610da4565b610bf78185610df6565b9350610c07818560208601610f08565b80840191505092915050565b610c1c81610ed4565b82525050565b6000610c2d82610daf565b610c378185610e01565b9350610c47818560208601610f08565b610c5081610fb3565b840191505092915050565b6000610c68602483610e01565b9150610c7382610fc4565b604082019050919050565b610c8781610efe565b82525050565b6000610c998284610be2565b915081905092915050565b6000602082019050610cb96000830184610b17565b92915050565b6000604082019050610cd46000830185610b17565b610ce16020830184610b17565b9392505050565b60006020820190508181036000830152610d028184610b26565b905092915050565b60006020820190508181036000830152610d248184610b84565b905092915050565b60006020820190508181036000830152610d468184610c22565b905092915050565b60006020820190508181036000830152610d6781610c5b565b9050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000610e1d82610efe565b9150610e2883610efe565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610e5d57610e5c610f84565b5b828201905092915050565b6000610e7382610efe565b9150610e7e83610efe565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610eb757610eb6610f84565b5b828202905092915050565b6000610ecd82610ede565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015610f26578082015181840152602081019050610f0b565b83811115610f35576000848401525b50505050565b6000610f4682610efe565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610f7957610f78610f84565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000601f19601f8301169050919050565b7f416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7460008201527f7261637400000000000000000000000000000000000000000000000000000000602082015250565b61101c81610ec2565b811461102757600080fd5b50565b61103381610ed4565b811461103e57600080fd5b50565b61104a81610efe565b811461105557600080fd5b5056fe416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564a164736f6c6343000804000a"; + "0x608060405234801561001057600080fd5b5061002b6709f30c992493712560c01b61003060201b60201c565b610033565b50565b611605806100426000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80632686e1591461005c57806350c5a71014610078578063598cebc2146100a857806385837775146100d8578063ef5bfc3714610108575b600080fd5b61007660048036038101906100719190610f34565b610138565b005b610092600480360381019061008d9190610ebf565b61013b565b60405161009f91906111f9565b60405180910390f35b6100c260048036038101906100bd9190610f34565b610409565b6040516100cf919061123d565b60405180910390f35b6100f260048036038101906100ed9190610f34565b610414565b6040516100ff919061123d565b60405180910390f35b610122600480360381019061011d9190610ebf565b61041b565b60405161012f919061121b565b60405180910390f35b50565b606061015167b7e5e1e9244e5e0160c01b610138565b610165672048521181b0f1cf60c01b610138565b61017967b4518694c34f490660c01b610138565b6000838390508686905061018d9190611394565b67ffffffffffffffff8111156101cc577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156101fa5781602001602082028036833780820191505090505b5090506102116757f4c382f00c5a8360c01b610138565b61022567e69f8d60c03d722d60c01b610138565b60005b868690508110156103d45761024767ab1fc139b6b2455a60c01b610138565b61025b6771d1b307fe59c4ba60c01b610138565b60005b858590508110156103c05761027d676fc8991df9fe527360c01b610138565b610291670d0d6fcdea937bbc60c01b610138565b600082878790506102a29190611394565b826102ad919061133e565b90506102c367691e1323cd6c34f260c01b610138565b6103678989858181106102ff577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906103149190610e96565b88888581811061034d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906103629190610e96565b6106e9565b8482815181106103a0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181815250505080806103b89061149f565b91505061025e565b5080806103cc9061149f565b915050610228565b506103e96705d2747fe66b15de60c01b610138565b6103fd6779537f854243435860c01b610138565b80915050949350505050565b600060019050919050565b6000919050565b60606104316757a851679897871060c01b610138565b61044567afca38cbaae3954b60c01b610138565b6104596717e61485e2adddae60c01b610138565b6000838390508686905061046d9190611394565b67ffffffffffffffff8111156104ac577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156104da5781602001602082028036833780820191505090505b5090506104f167a8fd47c736e098c660c01b610138565b6105056754a3a66a760471e260c01b610138565b60005b868690508110156106b457610527676020aede3cf0f24260c01b610138565b61053b677c74b1a46b3310a860c01b610138565b60005b858590508110156106a05761055d67a6e963d7511535f060c01b610138565b6105716767f1de8600063fdd60c01b610138565b600082878790506105829190611394565b8261058d919061133e565b90506105a367f267705018eace0d60c01b610138565b6106478989858181106105df577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906105f49190610e96565b88888581811061062d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906106429190610e96565b6109c7565b848281518110610680577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181815250505080806106989061149f565b91505061053e565b5080806106ac9061149f565b915050610508565b506106c967f5cb551b5203b64e60c01b610138565b6106dd67dcd6147ba89eec3960c01b610138565b80915050949350505050565b60006106ff6716015317cc44c1fe60c01b610138565b61071367d08a07da0c10fa6560c01b610138565b61072767904b2cf5eb3c41ad60c01b610138565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156107af5761077067f2daedce79a4ab6660c01b610138565b82826040517f484305ff0000000000000000000000000000000000000000000000000000000081526004016107a69291906111d0565b60405180910390fd5b6107c367dbfe044603cf7ed960c01b610138565b6107d767bcd8d2533bb37a4860c01b610138565b6107eb6704079fddbeeaca4960c01b610138565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561087357610834675e3fae1ce3835aac60c01b610138565b82826040517f41f93bdf00000000000000000000000000000000000000000000000000000000815260040161086a9291906111d0565b60405180910390fd5b6108876729109ed6e6803a3e60c01b610138565b61089b67df9d686a987d620260c01b610138565b6108af67ff1d584f0b3383ff60c01b610138565b600061094f632ec8eec760e01b856040516024016108cd91906111b5565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050508473ffffffffffffffffffffffffffffffffffffffff16610c7490919063ffffffff16565b90506109656734d8c5a7d10216ee60c01b610138565b6109796739c0f73afd5eb4ac60c01b610138565b60008180602001905181019061098f9190610f5d565b50505090506109a8674c52b5de12a9f5f860c01b610138565b6109bc6710cce64556abd10560c01b610138565b809250505092915050565b60006109dd678d7f6ae46953909760c01b610138565b6109f16770b374a1822c332460c01b610138565b610a056787145e489d3e328460c01b610138565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a8d57610a4e67873f8a37fca17e4360c01b610138565b82826040517f484305ff000000000000000000000000000000000000000000000000000000008152600401610a849291906111d0565b60405180910390fd5b610aa16770e4c54b166c57c260c01b610138565b610ab567c49ee77d5f48860260c01b610138565b610ac967ad0eade5d3d1ba8c60c01b610138565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b5157610b126749cab2b7bd90a8bc60c01b610138565b82826040517f41f93bdf000000000000000000000000000000000000000000000000000000008152600401610b489291906111d0565b60405180910390fd5b610b6567e85f3c08277b03f160c01b610138565b610b7967c26540d5beb682f560c01b610138565b610b8d67e1af98e33c8d159160c01b610138565b6000610c2d6370a0823160e01b85604051602401610bab91906111b5565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050508473ffffffffffffffffffffffffffffffffffffffff16610c7490919063ffffffff16565b9050610c4367779032358553ccd060c01b610138565b610c5767f3c5150d5508debe60c01b610138565b80806020019051810190610c6b9190610fc0565b91505092915050565b6060610c9983836040518060600160405280602581526020016115d460259139610ca1565b905092915050565b6060610cac84610d6e565b610ceb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce29061127a565b60405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1685604051610d13919061119e565b600060405180830381855afa9150503d8060008114610d4e576040519150601f19603f3d011682016040523d82523d6000602084013e610d53565b606091505b5091509150610d63828286610d91565b925050509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60608315610da157829050610df1565b600083511115610db45782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de89190611258565b60405180910390fd5b9392505050565b600081359050610e0781611577565b92915050565b60008083601f840112610e1f57600080fd5b8235905067ffffffffffffffff811115610e3857600080fd5b602083019150836020820283011115610e5057600080fd5b9250929050565b600081359050610e668161158e565b92915050565b600081519050610e7b816115a5565b92915050565b600081519050610e90816115bc565b92915050565b600060208284031215610ea857600080fd5b6000610eb684828501610df8565b91505092915050565b60008060008060408587031215610ed557600080fd5b600085013567ffffffffffffffff811115610eef57600080fd5b610efb87828801610e0d565b9450945050602085013567ffffffffffffffff811115610f1a57600080fd5b610f2687828801610e0d565b925092505092959194509250565b600060208284031215610f4657600080fd5b6000610f5484828501610e57565b91505092915050565b60008060008060808587031215610f7357600080fd5b6000610f8187828801610e6c565b9450506020610f9287828801610e81565b9350506040610fa387828801610e81565b9250506060610fb487828801610e81565b91505092959194509250565b600060208284031215610fd257600080fd5b6000610fe084828501610e81565b91505092915050565b6000610ff58383611124565b60208301905092915050565b600061100d838361118f565b60208301905092915050565b611022816113ee565b82525050565b6000611033826112ba565b61103d8185611300565b93506110488361129a565b8060005b838110156110795781516110608882610fe9565b975061106b836112e6565b92505060018101905061104c565b5085935050505092915050565b6000611091826112c5565b61109b8185611311565b93506110a6836112aa565b8060005b838110156110d75781516110be8882611001565b97506110c9836112f3565b9250506001810190506110aa565b5085935050505092915050565b6110ed81611400565b82525050565b60006110fe826112d0565b6111088185611322565b935061111881856020860161146c565b80840191505092915050565b61112d81611438565b82525050565b600061113e826112db565b611148818561132d565b935061115881856020860161146c565b61116181611517565b840191505092915050565b600061117960248361132d565b915061118482611528565b604082019050919050565b61119881611462565b82525050565b60006111aa82846110f3565b915081905092915050565b60006020820190506111ca6000830184611019565b92915050565b60006040820190506111e56000830185611019565b6111f26020830184611019565b9392505050565b600060208201905081810360008301526112138184611028565b905092915050565b600060208201905081810360008301526112358184611086565b905092915050565b600060208201905061125260008301846110e4565b92915050565b600060208201905081810360008301526112728184611133565b905092915050565b600060208201905081810360008301526112938161116c565b9050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061134982611462565b915061135483611462565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611389576113886114e8565b5b828201905092915050565b600061139f82611462565b91506113aa83611462565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156113e3576113e26114e8565b5b828202905092915050565b60006113f982611442565b9050919050565b60008115159050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101561148a57808201518184015260208101905061146f565b83811115611499576000848401525b50505050565b60006114aa82611462565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156114dd576114dc6114e8565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000601f19601f8301169050919050565b7f416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7460008201527f7261637400000000000000000000000000000000000000000000000000000000602082015250565b611580816113ee565b811461158b57600080fd5b50565b6115978161140c565b81146115a257600080fd5b50565b6115ae81611438565b81146115b957600080fd5b50565b6115c581611462565b81146115d057600080fd5b5056fe416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564a164736f6c6343000804000a"; type BalancesHelperV2ConstructorParams = | [signer?: Signer] diff --git a/typings/factories/BalancesHelper__factory.ts b/typings/factories/BalancesHelper__factory.ts index 29836d10..d56d15bd 100644 --- a/typings/factories/BalancesHelper__factory.ts +++ b/typings/factories/BalancesHelper__factory.ts @@ -9,6 +9,57 @@ import type { } from "../BalancesHelper"; const _abi = [ + { + inputs: [ + { + internalType: "bytes8", + name: "c__7989c7ce", + type: "bytes8", + }, + ], + name: "c_7989c7ce", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__7989c7ce", + type: "bytes8", + }, + ], + name: "c_false7989c7ce", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__7989c7ce", + type: "bytes8", + }, + ], + name: "c_true7989c7ce", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [ { @@ -36,7 +87,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b506106a2806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063ef5bfc3714610030575b600080fd5b6100fc6004803603604081101561004657600080fd5b810190808035906020019064010000000081111561006357600080fd5b82018360208201111561007557600080fd5b8035906020019184602083028401116401000000008311171561009757600080fd5b9091929391929390803590602001906401000000008111156100b857600080fd5b8201836020820111156100ca57600080fd5b803590602001918460208302840111640100000000831117156100ec57600080fd5b9091929391929390505050610153565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561013f578082015181840152602081019050610124565b505050509050019250505060405180910390f35b60608061016f848490508787905061035490919063ffffffff16565b67ffffffffffffffff8111801561018557600080fd5b506040519080825280602002602001820160405280156101b45781602001602082028036833780820191505090505b50905060005b868690508110156103475760005b858590508110156103395760006101fd6101ee848989905061035490919063ffffffff16565b836103da90919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff1687878481811061022357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146102d2576102b589898581811061026a57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1688888581811061029357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16610462565b8482815181106102c157fe5b60200260200101818152505061032b565b8888848181106102de57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163184828151811061031e57fe5b6020026020010181815250505b5080806001019150506101c8565b5080806001019150506101ba565b5080915050949350505050565b60008083141561036757600090506103d4565b600082840290508284828161037857fe5b04146103cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806106726024913960400191505060405180910390fd5b809150505b92915050565b600080828401905083811015610458576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174684c69623a206164646974696f6e206f766572666c6f77000081525060200191505060405180910390fd5b8091505092915050565b600080600090506000833b905060008111156106665760008473ffffffffffffffffffffffffffffffffffffffff166370a0823160e01b87604051602401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b60208310610550578051825260208201915060208101905060208303925061052d565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d80600081146105b0576040519150601f19603f3d011682016040523d82523d6000602084013e6105b5565b606091505b505090508015610664578473ffffffffffffffffffffffffffffffffffffffff166370a08231876040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561062657600080fd5b505afa15801561063a573d6000803e3d6000fd5b505050506040513d602081101561065057600080fd5b810190808051906020019092919050505092505b505b81925050509291505056fe536166654d6174684c69623a206d756c7469706c69636174696f6e206f766572666c6f77a164736f6c634300060c000a"; + "0x608060405234801561001057600080fd5b50610c9b806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063505c2304146100515780635290eaf9146100b0578063717e5771146100f9578063ef5bfc3714610158575b600080fd5b6100986004803603602081101561006757600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061027b565b60405180821515815260200191505060405180910390f35b6100f7600480360360208110156100c657600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610286565b005b6101406004803603602081101561010f57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610289565b60405180821515815260200191505060405180910390f35b6102246004803603604081101561016e57600080fd5b810190808035906020019064010000000081111561018b57600080fd5b82018360208201111561019d57600080fd5b803590602001918460208302840111640100000000831117156101bf57600080fd5b9091929391929390803590602001906401000000008111156101e057600080fd5b8201836020820111156101f257600080fd5b8035906020019184602083028401116401000000008311171561021457600080fd5b9091929391929390505050610290565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561026757808201518184015260208101905061024c565b505050509050019250505060405180910390f35b600060019050919050565b50565b6000919050565b60606102a6671996f7c7db2259ac60c01b610286565b6102ba672e4b787fb5dcd29b60c01b610286565b6102ce6707663e952ab1b04b60c01b610286565b60606102e984849050878790506105e690919063ffffffff16565b67ffffffffffffffff811180156102ff57600080fd5b5060405190808252806020026020018201604052801561032e5781602001602082028036833780820191505090505b509050610345671e9f866a219d807660c01b610286565b610359675ee4ced19174963160c01b610286565b60005b868690508110156105b15761037b673a8062ad6a5a9ae860c01b610286565b61038f676962c83948de6c6260c01b610286565b60005b858590508110156105a3576103b16756207a9aa498eb3760c01b610286565b6103c567b0f0d8f141dfc6e060c01b610286565b60006103ef6103e084898990506105e690919063ffffffff16565b8361079890919063ffffffff16565b9050610405677cd11da277f59b6f60c01b610286565b61041967788ca4d91656b03060c01b610286565b600073ffffffffffffffffffffffffffffffffffffffff1687878481811061043d57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610514576104896714199bc9d11db1d460c01b610286565b61049d67ad5235d8ec378d1760c01b610286565b6104f78989858181106104ac57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168888858181106104d557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff166108d5565b84828151811061050357fe5b602002602001018181525050610595565b6105286755d7cdbac043e98d60c01b610286565b61053c6712a6454d49d0a65960c01b610286565b88888481811061054857fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163184828151811061058857fe5b6020026020010181815250505b508080600101915050610392565b50808060010191505061035c565b506105c667048643c1a644649960c01b610286565b6105da67d43948735d9a2b3860c01b610286565b80915050949350505050565b60006105fc673c508ce9aa0e6e6760c01b610c67565b610610670fa17eaab328e08260c01b610c67565b6106246768dfb0ea208c8f4060c01b610c67565b60008314156106715761064167a98d3fc708d3c69860c01b610c67565b6106556734bd3093bb68e15860c01b610c67565b6106686624de95f54120b160c01b610c67565b60009050610792565b6106856717005ae97fd5de3160c01b610c67565b61069967612166ddcd06cb8660c01b610c67565b6106ad67fc456346581af9f960c01b610c67565b600082840290506106c86780b69eb24224e59560c01b610c67565b6106dc67143061fc1d33eebb60c01b610c67565b6106f0671e71cfc00112654d60c01b610c67565b828482816106fa57fe5b0414610751576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180610c6b6024913960400191505060405180910390fd5b61076567a0f4e2148fad644960c01b610c67565b610779674bf736a758111ab060c01b610c67565b61078d67acec17dbca3a62a460c01b610c67565b809150505b92915050565b60006107ae672797d9bbee8e685760c01b610c67565b6107c267e25930aa3032662f60c01b610c67565b6107d6673b804ace3fd44ea060c01b610c67565b600082840190506107f167e0d809daafe36a0460c01b610c67565b61080567d0d7b021c1a6823260c01b610c67565b6108196741f1099b5fa09b9360c01b610c67565b8381101561088f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174684c69623a206164646974696f6e206f766572666c6f77000081525060200191505060405180910390fd5b6108a36728a352a27e50889560c01b610c67565b6108b767f55e5f024a80111c60c01b610c67565b6108cb67d865abdcb752192460c01b610c67565b8091505092915050565b60006108eb67b2712729e87868b360c01b610286565b6108ff67227ce95247d1b4cc60c01b610286565b61091367b685489daeb71a5560c01b610286565b600061092967a6f8c0fb98cafeeb60c01b610286565b61093d67c3aca832f91352cc60c01b610286565b6000610953678be659e0485bcf1760c01b610286565b833b905061096b670b33b15ad270360060c01b610286565b61097f676603793ca1524bbd60c01b610286565b6000811115610c1f5761099c6734983df7d9a27ced60c01b610286565b6109b0673b2ddbbd2fe08b5060c01b610286565b6109c46718a8c4551090a02c60c01b610286565b60008473ffffffffffffffffffffffffffffffffffffffff166370a0823160e01b87604051602401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b60208310610a9c5780518252602082019150602081019050602083039250610a79565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114610afc576040519150601f19603f3d011682016040523d82523d6000602084013e610b01565b606091505b50509050610b1967c7fe3ced1711fc8b60c01b610286565b610b2d673b5f49e36a53cb9d60c01b610286565b8015610c0457610b47677def714ce110fcfc60c01b610286565b610b5b67eb520c752ccbf0a860c01b610286565b8473ffffffffffffffffffffffffffffffffffffffff166370a08231876040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610bc257600080fd5b505afa158015610bd6573d6000803e3d6000fd5b505050506040513d6020811015610bec57600080fd5b81019080805190602001909291905050509250610c19565b610c1867d71c6452d70f1f5d60c01b610286565b5b50610c34565b610c336774cc09ed764aea3760c01b610286565b5b610c4867d4139ac54b6cf02d60c01b610286565b610c5c679db125fba3c9713860c01b610286565b819250505092915050565b5056fe536166654d6174684c69623a206d756c7469706c69636174696f6e206f766572666c6f77a164736f6c634300060c000a"; type BalancesHelperConstructorParams = | [signer?: Signer] diff --git a/typings/factories/BlockLib__factory.ts b/typings/factories/BlockLib__factory.ts index a3df7dcb..320b9257 100644 --- a/typings/factories/BlockLib__factory.ts +++ b/typings/factories/BlockLib__factory.ts @@ -10,11 +10,11 @@ const _abi = [ inputs: [ { internalType: "bytes8", - name: "c__f0eb5f6b", + name: "c__078794b3", type: "bytes8", }, ], - name: "c_f0eb5f6b", + name: "c_078794b3", outputs: [], stateMutability: "pure", type: "function", @@ -23,11 +23,11 @@ const _abi = [ inputs: [ { internalType: "bytes8", - name: "c__f0eb5f6b", + name: "c__078794b3", type: "bytes8", }, ], - name: "c_falsef0eb5f6b", + name: "c_false078794b3", outputs: [ { internalType: "bool", @@ -42,11 +42,11 @@ const _abi = [ inputs: [ { internalType: "bytes8", - name: "c__f0eb5f6b", + name: "c__078794b3", type: "bytes8", }, ], - name: "c_truef0eb5f6b", + name: "c_true078794b3", outputs: [ { internalType: "bool", @@ -60,7 +60,7 @@ const _abi = [ ]; const _bytecode = - "0x610179610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061004b5760003560e01c80635e9714b614610050578063911f807c146100af57806391f2f13c146100f8575b600080fd5b6100976004803603602081101561006657600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610157565b60405180821515815260200191505060405180910390f35b6100f6600480360360208110156100c557600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610162565b005b61013f6004803603602081101561010e57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610165565b60405180821515815260200191505060405180910390f35b600060019050919050565b50565b600091905056fea164736f6c634300060c000a"; + "0x610179610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061004b5760003560e01c806324b0ab5e14610050578063ad42fc76146100af578063e81e629c1461010e575b600080fd5b6100976004803603602081101561006657600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610157565b60405180821515815260200191505060405180910390f35b6100f6600480360360208110156100c557600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061015e565b60405180821515815260200191505060405180910390f35b6101556004803603602081101561012457600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610169565b005b6000919050565b600060019050919050565b5056fea164736f6c634300060c000a"; type BlockLibConstructorParams = | [signer?: Signer] diff --git a/typings/factories/BytesLib__factory.ts b/typings/factories/BytesLib__factory.ts index 6a505423..4cc8cc16 100644 --- a/typings/factories/BytesLib__factory.ts +++ b/typings/factories/BytesLib__factory.ts @@ -10,11 +10,11 @@ const _abi = [ inputs: [ { internalType: "bytes8", - name: "c__cf01c64c", + name: "c__2ad25a5a", type: "bytes8", }, ], - name: "c_cf01c64c", + name: "c_2ad25a5a", outputs: [], stateMutability: "pure", type: "function", @@ -23,11 +23,11 @@ const _abi = [ inputs: [ { internalType: "bytes8", - name: "c__cf01c64c", + name: "c__2ad25a5a", type: "bytes8", }, ], - name: "c_falsecf01c64c", + name: "c_false2ad25a5a", outputs: [ { internalType: "bool", @@ -42,11 +42,11 @@ const _abi = [ inputs: [ { internalType: "bytes8", - name: "c__cf01c64c", + name: "c__2ad25a5a", type: "bytes8", }, ], - name: "c_truecf01c64c", + name: "c_true2ad25a5a", outputs: [ { internalType: "bool", @@ -60,7 +60,7 @@ const _abi = [ ]; const _bytecode = - "0x610179610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061004b5760003560e01c80634c8a384b14610050578063639fedc0146100af5780637faf7b501461010e575b600080fd5b6100976004803603602081101561006657600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610157565b60405180821515815260200191505060405180910390f35b6100f6600480360360208110156100c557600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610162565b60405180821515815260200191505060405180910390f35b6101556004803603602081101561012457600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610169565b005b600060019050919050565b6000919050565b5056fea164736f6c634300060c000a"; + "0x610179610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061004b5760003560e01c80631f29a62d1461005057806366554a9014610099578063c56a0c9a146100f8575b600080fd5b6100976004803603602081101561006657600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610157565b005b6100e0600480360360208110156100af57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061015a565b60405180821515815260200191505060405180910390f35b61013f6004803603602081101561010e57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610165565b60405180821515815260200191505060405180910390f35b50565b600060019050919050565b600091905056fea164736f6c634300060c000a"; type BytesLibConstructorParams = | [signer?: Signer] diff --git a/typings/factories/CBridgeFacet__factory.ts b/typings/factories/CBridgeFacet__factory.ts index b19a56f6..791a0057 100644 --- a/typings/factories/CBridgeFacet__factory.ts +++ b/typings/factories/CBridgeFacet__factory.ts @@ -124,6 +124,108 @@ const _abi = [ name: "CBUpdatedSlippageTolerance", type: "event", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__82a0834b", + type: "bytes8", + }, + ], + name: "c_82a0834b", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__9296fc39", + type: "bytes8", + }, + ], + name: "c_9296fc39", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__82a0834b", + type: "bytes8", + }, + ], + name: "c_false82a0834b", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__9296fc39", + type: "bytes8", + }, + ], + name: "c_false9296fc39", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__82a0834b", + type: "bytes8", + }, + ], + name: "c_true82a0834b", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__9296fc39", + type: "bytes8", + }, + ], + name: "c_true9296fc39", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [ { @@ -206,7 +308,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b506115ab806100206000396000f3fe60806040526004361061003f5760003560e01c806340d280a21461004457806352434c6e1461006d5780636f395e60146100895780639e32e2e6146100b2575b600080fd5b34801561005057600080fd5b5061006b60048036038101906100669190610dac565b6100db565b005b61008760048036038101906100829190610dfe565b610204565b005b34801561009557600080fd5b506100b060048036038101906100ab9190610dac565b6105f6565b005b3480156100be57600080fd5b506100d960048036038101906100d49190610e50565b6106ef565b005b6100e36107a2565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561014a576040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061015461083d565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504681600101819055506127108160020160006101000a81548163ffffffff021916908363ffffffff1602179055507fcbfd47a07530fc4fffba96f5686a7127e5661fe26dd01503239ca2f66fcad99082466040516101f892919061112b565b60405180910390a15050565b600061020e61086a565b905060018160000154141561024f576040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001816000018190555081600001602081019061026c9190610e79565b67ffffffffffffffff164614156102af576040517f4ac09ad300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168260600160208101906102da9190610dac565b73ffffffffffffffffffffffffffffffffffffffff161415610328576040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000826040013511610366576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168260800160208101906103919190610dac565b73ffffffffffffffffffffffffffffffffffffffff1614156103df576040517fdc2e5e8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006103e961083d565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050610457333086604001358760800160208101906104319190610dac565b73ffffffffffffffffffffffffffffffffffffffff16610897909392919063ffffffff16565b6104988185604001358660800160208101906104739190610dac565b73ffffffffffffffffffffffffffffffffffffffff166109209092919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff1663a5977fbb8560600160208101906104c79190610dac565b8660800160208101906104da9190610dac565b87604001358860000160208101906104f29190610e79565b8960200160208101906105059190610e79565b8860020160009054906101000a900463ffffffff166040518763ffffffff1660e01b815260040161053b969594939291906110ca565b600060405180830381600087803b15801561055557600080fd5b505af1158015610569573d6000803e3d6000fd5b505050507fd565a5cf794050de1a171170c91acd5d14cbf11877dc3fa020e9975495ab17578460800160208101906105a19190610dac565b338660600160208101906105b59190610dac565b87604001358860000160208101906105cd9190610e79565b6040516105de9594939291906111b6565b60405180910390a15050600081600001819055505050565b6105fe6107a2565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610665576040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061066f61083d565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f4ae67faf3cf135d9eca1b5490d3613096d2d0610fca7496112fa46ef019fbd4e826040516106e3919061104f565b60405180910390a15050565b6113888163ffffffff1611610730576040517f9ff4125000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107386107a2565b600061074261083d565b9050818160020160006101000a81548163ffffffff021916908363ffffffff1602179055507f8d5e80c35df41e151b58f1a100ad605ae1ebcda3d0c329b22820b232767a773082604051610796919061127c565b60405180910390a15050565b6107aa610a7e565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461083b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083290611176565b60405180910390fd5b565b6000807f9d7253cc9498e9cc54011bbbe9471a68adbc99d0ac1eef42369f5a452e814c4a90508091505090565b6000807fc59b5acc5a6673a6c49ca2de898f87adbd9fdfdff36f689476b1c9e0c50964b490508091505090565b61091a846323b872dd60e01b8585856040516024016108b893929190611093565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610aab565b50505050565b60008114806109b9575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b815260040161096792919061106a565b60206040518083038186803b15801561097f57600080fd5b505afa158015610993573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b79190610e27565b145b6109f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ef9061125c565b60405180910390fd5b610a798363095ea7b360e01b8484604051602401610a1792919061112b565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610aab565b505050565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b6000610b0d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16610b729092919063ffffffff16565b9050600081511115610b6d5780806020019051810190610b2d9190610dd5565b610b6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b639061123c565b60405180910390fd5b5b505050565b6060610b818484600085610b8a565b90509392505050565b606082471015610bcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc690611196565b60405180910390fd5b610bd885610c9e565b610c17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0e9061121c565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051610c409190611038565b60006040518083038185875af1925050503d8060008114610c7d576040519150601f19603f3d011682016040523d82523d6000602084013e610c82565b606091505b5091509150610c92828286610cc1565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60608315610cd157829050610d21565b600083511115610ce45782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d189190611154565b60405180910390fd5b9392505050565b600081359050610d378161152b565b92915050565b600081519050610d4c81611542565b92915050565b600060a08284031215610d6457600080fd5b81905092915050565b600081519050610d7c81611559565b92915050565b600081359050610d9181611570565b92915050565b600081359050610da681611587565b92915050565b600060208284031215610dbe57600080fd5b6000610dcc84828501610d28565b91505092915050565b600060208284031215610de757600080fd5b6000610df584828501610d3d565b91505092915050565b600060a08284031215610e1057600080fd5b6000610e1e84828501610d52565b91505092915050565b600060208284031215610e3957600080fd5b6000610e4784828501610d6d565b91505092915050565b600060208284031215610e6257600080fd5b6000610e7084828501610d82565b91505092915050565b600060208284031215610e8b57600080fd5b6000610e9984828501610d97565b91505092915050565b610eab816112c9565b82525050565b6000610ebc82611297565b610ec681856112ad565b9350610ed6818560208601611359565b80840191505092915050565b6000610eed826112a2565b610ef781856112b8565b9350610f07818560208601611359565b610f108161138c565b840191505092915050565b6000610f286022836112b8565b9150610f338261139d565b604082019050919050565b6000610f4b6026836112b8565b9150610f56826113ec565b604082019050919050565b6000610f6e6007836112b8565b9150610f798261143b565b602082019050919050565b6000610f91601d836112b8565b9150610f9c82611464565b602082019050919050565b6000610fb4602a836112b8565b9150610fbf8261148d565b604082019050919050565b6000610fd76036836112b8565b9150610fe2826114dc565b604082019050919050565b610ff681611307565b82525050565b61100581611335565b82525050565b61101481611311565b82525050565b61102381611347565b82525050565b61103281611321565b82525050565b60006110448284610eb1565b915081905092915050565b60006020820190506110646000830184610ea2565b92915050565b600060408201905061107f6000830185610ea2565b61108c6020830184610ea2565b9392505050565b60006060820190506110a86000830186610ea2565b6110b56020830185610ea2565b6110c26040830184610fed565b949350505050565b600060c0820190506110df6000830189610ea2565b6110ec6020830188610ea2565b6110f96040830187610fed565b6111066060830186611029565b6111136080830185611029565b61112060a083018461100b565b979650505050505050565b60006040820190506111406000830185610ea2565b61114d6020830184610fed565b9392505050565b6000602082019050818103600083015261116e8184610ee2565b905092915050565b6000602082019050818103600083015261118f81610f1b565b9050919050565b600060208201905081810360008301526111af81610f3e565b9050919050565b600060c08201905081810360008301526111cf81610f61565b90506111de6020830188610ea2565b6111eb6040830187610ea2565b6111f86060830186610ea2565b6112056080830185610fed565b61121260a083018461101a565b9695505050505050565b6000602082019050818103600083015261123581610f84565b9050919050565b6000602082019050818103600083015261125581610fa7565b9050919050565b6000602082019050818103600083015261127581610fca565b9050919050565b60006020820190506112916000830184610ffc565b92915050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b60006112d4826112e7565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600067ffffffffffffffff82169050919050565b600061134082611311565b9050919050565b600061135282611321565b9050919050565b60005b8381101561137757808201518184015260208101905061135c565b83811115611386576000848401525b50505050565b6000601f19601f8301169050919050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f6362726964676500000000000000000000000000000000000000000000000000600082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b611534816112c9565b811461153f57600080fd5b50565b61154b816112db565b811461155657600080fd5b50565b61156281611307565b811461156d57600080fd5b50565b61157981611311565b811461158457600080fd5b50565b61159081611321565b811461159b57600080fd5b5056fea164736f6c6343000804000a"; + "0x608060405234801561001057600080fd5b50611fb2806100206000396000f3fe6080604052600436106100915760003560e01c80636f395e60116100595780636f395e601461017e5780639e32e2e6146101a75780639f91c7fd146101d0578063ac0d2b131461020d578063e31fa1af1461024a57610091565b806314917f99146100965780631dcb855a146100bf57806340d280a2146100fc5780634a6f22c41461012557806352434c6e14610162575b600080fd5b3480156100a257600080fd5b506100bd60048036038101906100b8919061176f565b610273565b005b3480156100cb57600080fd5b506100e660048036038101906100e1919061176f565b610276565b6040516100f39190611afd565b60405180910390f35b34801561010857600080fd5b50610123600480360381019061011e919061171d565b61027d565b005b34801561013157600080fd5b5061014c6004803603810190610147919061176f565b6104be565b6040516101599190611afd565b60405180910390f35b61017c60048036038101906101779190611798565b6104c9565b005b34801561018a57600080fd5b506101a560048036038101906101a0919061171d565b610c03565b005b3480156101b357600080fd5b506101ce60048036038101906101c991906117ea565b610dec565b005b3480156101dc57600080fd5b506101f760048036038101906101f2919061176f565b610f8f565b6040516102049190611afd565b60405180910390f35b34801561021957600080fd5b50610234600480360381019061022f919061176f565b610f9a565b6040516102419190611afd565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c919061176f565b610fa1565b005b50565b6000919050565b6102916797d4a79c6e8da8fc60c01b610fa1565b6102a5670e2f2c8a5311f67460c01b610fa1565b6102b9675b13a1991c267f1c60c01b610fa1565b6102c1610fa4565b6102d5677ee86732d55ff95260c01b610fa1565b6102e9674d33e4f9b9612d8d60c01b610fa1565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561036457610332676d6a428ac068619060c01b610fa1565b6040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610378671b6d9165f559dd9060c01b610fa1565b61038c67dd59355fd48e644160c01b610fa1565b6103a067b3b032f8c8c9f6a160c01b610fa1565b60006103aa6110a3565b90506103c06731d19ee530be69ef60c01b610fa1565b818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061041767fe86263d0e8940c660c01b610fa1565b46816001018190555061043467314b893e78a144b760c01b610fa1565b6127108160020160006101000a81548163ffffffff021916908363ffffffff16021790555061046d676ad2b17f4918fdfa60c01b610fa1565b61048167d1d40b0589cebbdf60c01b610fa1565b7fcbfd47a07530fc4fffba96f5686a7127e5661fe26dd01503239ca2f66fcad99082466040516104b2929190611ad4565b60405180910390a15050565b600060019050919050565b6104dd677f1d47e894864aaa60c01b610fa1565b6104f16770f43b674d4e55d060c01b610273565b61050567fdb58b8d5e8c5bd260c01b610273565b61051967f88563faceb9065260c01b610273565b6000610523611121565b905061053967f5511ed184b06f9d60c01b610273565b61054d675fe6356e9bb02e7e60c01b610273565b6001816000015414156105a05761056e67c2bf72a01148a95560c01b610273565b6040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105b46759328cc6ac1a5b8460c01b610273565b6105c8676585023ebf8de8b060c01b610273565b600181600001819055506105e66794e629fc71d8c79e60c01b610273565b6105fa6715242012ce96c7f160c01b610fa1565b61060e678eb6f4db737f4b7360c01b610fa1565b61062267c457076ac82718fc60c01b610fa1565b61063667cfdca50ae33020dc60c01b610fa1565b8160000160208101906106499190611813565b67ffffffffffffffff164614156106b45761066e67b59b8ab41c16feab60c01b610fa1565b61068267d0ad4a309013922660c01b610fa1565b6040517f4ac09ad300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106c86756f8932bd4555ad760c01b610fa1565b6106dc6764fb57761461897360c01b610fa1565b6106f0675f0446559da0f55960c01b610fa1565b600073ffffffffffffffffffffffffffffffffffffffff1682606001602081019061071b919061171d565b73ffffffffffffffffffffffffffffffffffffffff16141561077d5761074b672203e1af5929465760c01b610fa1565b6040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107916728a865aea8258ceb60c01b610fa1565b6107a5676fe46105247774d560c01b610fa1565b6107b9678f7510e1a7192ffb60c01b610fa1565b600082604001351161080b576107d967af20204004d2c86560c01b610fa1565b6040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61081f67c235e2a5916e216e60c01b610fa1565b61083367c34c8b0197b67e6c60c01b610fa1565b61084767676e00839b9a5a8060c01b610fa1565b600073ffffffffffffffffffffffffffffffffffffffff16826080016020810190610872919061171d565b73ffffffffffffffffffffffffffffffffffffffff1614156108d4576108a267245d22043cdb3d0c60c01b610fa1565b6040517fdc2e5e8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108e86718ff5e19da60343860c01b610fa1565b6108fc67bedceb4db841a53e60c01b610fa1565b61091067cda8ba86a5e6ee9860c01b610fa1565b600061091a6110a3565b9050610930673f5fa8242b94796e60c01b610fa1565b61094467681ec17cea69b30660c01b610fa1565b60008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061098167c92843e9e9460b5460c01b610fa1565b61099567dccd0c487d1fe6f660c01b610fa1565b6109d8333086604001358760800160208101906109b2919061171d565b73ffffffffffffffffffffffffffffffffffffffff1661119f909392919063ffffffff16565b6109ec67e80d1d6748997c0260c01b610fa1565b610a0067400f0c5be983a9b760c01b610fa1565b610a41818560400135866080016020810190610a1c919061171d565b73ffffffffffffffffffffffffffffffffffffffff166112289092919063ffffffff16565b610a5567b0a7fc2efbeee0d760c01b610fa1565b610a6967c07b9de819409a3c60c01b610fa1565b8073ffffffffffffffffffffffffffffffffffffffff1663a5977fbb856060016020810190610a98919061171d565b866080016020810190610aab919061171d565b8760400135886000016020810190610ac39190611813565b896020016020810190610ad69190611813565b8860020160009054906101000a900463ffffffff166040518763ffffffff1660e01b8152600401610b0c96959493929190611a73565b600060405180830381600087803b158015610b2657600080fd5b505af1158015610b3a573d6000803e3d6000fd5b50505050610b5267c9b43804a582003960c01b610fa1565b610b6667d699a6191c59138260c01b610fa1565b7fd565a5cf794050de1a171170c91acd5d14cbf11877dc3fa020e9975495ab1757846080016020810190610b9a919061171d565b33866060016020810190610bae919061171d565b8760400135886000016020810190610bc69190611813565b604051610bd7959493929190611b7a565b60405180910390a15050610bf567441391ce80e99b6c60c01b610273565b600081600001819055505050565b610c1767d3a2494a835102c160c01b610fa1565b610c2b670c9b2f19ad78ba2d60c01b610fa1565b610c3f67285a34703cb3897d60c01b610fa1565b610c47610fa4565b610c5b679941e4eb5c2e085a60c01b610fa1565b610c6f674a3f870b19eeb0f860c01b610fa1565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cea57610cb8679f1850b2b41a922760c01b610fa1565b6040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610cfe67088b159fcf23024f60c01b610fa1565b610d1267bcee72259e25a4d760c01b610fa1565b610d2667f6343277fc69a82e60c01b610fa1565b6000610d306110a3565b9050610d4667cd0ef56dfe642dd060c01b610fa1565b818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d9d67e8752783a7430db760c01b610fa1565b610db1672bc4e9b6619b7ce260c01b610fa1565b7f4ae67faf3cf135d9eca1b5490d3613096d2d0610fca7496112fa46ef019fbd4e82604051610de091906119f8565b60405180910390a15050565b610e0067456d55e4c0f14d4760c01b610fa1565b610e14673174e49db9a5ddea60c01b610fa1565b610e2867192813406d0b2a1e60c01b610fa1565b6113888163ffffffff1611610e7d57610e4b67549ef105040999b860c01b610fa1565b6040517f9ff4125000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e916751434f62a0bf406a60c01b610fa1565b610ea5675b61e57e6bbb740860c01b610fa1565b610eb9676d54701b66ab59d160c01b610fa1565b610ec1610fa4565b610ed5675845cbbdeb29872860c01b610fa1565b610ee967ed9b116e321da9eb60c01b610fa1565b6000610ef36110a3565b9050610f09671a742eb68541c25c60c01b610fa1565b818160020160006101000a81548163ffffffff021916908363ffffffff160217905550610f40675d88c84e2624c04460c01b610fa1565b610f5467eaa1be02d588fb4460c01b610fa1565b7f8d5e80c35df41e151b58f1a100ad605ae1ebcda3d0c329b22820b232767a773082604051610f839190611c40565b60405180910390a15050565b600060019050919050565b6000919050565b50565b610fb86721b40df6734b4e6460c01b611386565b610fcc677276b6d1bbf7b68b60c01b611386565b610fe067f8611dbcb55a1f7860c01b611386565b610ff4676cedf54251a3375160c01b611386565b610ffc611389565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461108d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108490611b3a565b60405180910390fd5b6110a167e452355b21bbd41e60c01b611386565b565b60006110b96746874ce4b0fd162b60c01b610fa1565b6110cd67c48ee095da74410560c01b610fa1565b6110e167a1033010cec72c2460c01b610fa1565b60007f9d7253cc9498e9cc54011bbbe9471a68adbc99d0ac1eef42369f5a452e814c4a905061111a674e1695596a4af8ef60c01b610fa1565b8091505090565b600061113767fa11c344c1ec53a860c01b610273565b61114b670fd7b7008acdbf5460c01b610273565b61115f679fbd6d57c5d665d460c01b610273565b60007fc59b5acc5a6673a6c49ca2de898f87adbd9fdfdff36f689476b1c9e0c50964b4905061119867a9235c9a8268ed9060c01b610273565b8091505090565b611222846323b872dd60e01b8585856040516024016111c093929190611a3c565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611407565b50505050565b60008114806112c1575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b815260040161126f929190611a13565b60206040518083038186803b15801561128757600080fd5b505afa15801561129b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112bf91906117c1565b145b611300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f790611c20565b60405180910390fd5b6113818363095ea7b360e01b848460405160240161131f929190611ad4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611407565b505050565b50565b600061139f674f9afbb757d80e6360c01b611386565b6113b3674b823103125da15660c01b611386565b6113c7674ab715c231c1608d60c01b611386565b60007fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c905061140067982d9bb86701efa860c01b611386565b8091505090565b6000611469826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166114ce9092919063ffffffff16565b90506000815111156114c957808060200190518101906114899190611746565b6114c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bf90611c00565b60405180910390fd5b5b505050565b60606114dd84846000856114e6565b90509392505050565b60608247101561152b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152290611b5a565b60405180910390fd5b611534856115fa565b611573576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156a90611be0565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161159c91906119e1565b60006040518083038185875af1925050503d80600081146115d9576040519150601f19603f3d011682016040523d82523d6000602084013e6115de565b606091505b50915091506115ee82828661161d565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6060831561162d5782905061167d565b6000835111156116405782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116749190611b18565b60405180910390fd5b9392505050565b60008135905061169381611f1b565b92915050565b6000815190506116a881611f32565b92915050565b6000813590506116bd81611f49565b92915050565b600060a082840312156116d557600080fd5b81905092915050565b6000815190506116ed81611f60565b92915050565b60008135905061170281611f77565b92915050565b60008135905061171781611f8e565b92915050565b60006020828403121561172f57600080fd5b600061173d84828501611684565b91505092915050565b60006020828403121561175857600080fd5b600061176684828501611699565b91505092915050565b60006020828403121561178157600080fd5b600061178f848285016116ae565b91505092915050565b600060a082840312156117aa57600080fd5b60006117b8848285016116c3565b91505092915050565b6000602082840312156117d357600080fd5b60006117e1848285016116de565b91505092915050565b6000602082840312156117fc57600080fd5b600061180a848285016116f3565b91505092915050565b60006020828403121561182557600080fd5b600061183384828501611708565b91505092915050565b61184581611c8d565b82525050565b61185481611c9f565b82525050565b600061186582611c5b565b61186f8185611c71565b935061187f818560208601611d49565b80840191505092915050565b600061189682611c66565b6118a08185611c7c565b93506118b0818560208601611d49565b6118b981611d7c565b840191505092915050565b60006118d1602283611c7c565b91506118dc82611d8d565b604082019050919050565b60006118f4602683611c7c565b91506118ff82611ddc565b604082019050919050565b6000611917600783611c7c565b915061192282611e2b565b602082019050919050565b600061193a601d83611c7c565b915061194582611e54565b602082019050919050565b600061195d602a83611c7c565b915061196882611e7d565b604082019050919050565b6000611980603683611c7c565b915061198b82611ecc565b604082019050919050565b61199f81611cf7565b82525050565b6119ae81611d25565b82525050565b6119bd81611d01565b82525050565b6119cc81611d37565b82525050565b6119db81611d11565b82525050565b60006119ed828461185a565b915081905092915050565b6000602082019050611a0d600083018461183c565b92915050565b6000604082019050611a28600083018561183c565b611a35602083018461183c565b9392505050565b6000606082019050611a51600083018661183c565b611a5e602083018561183c565b611a6b6040830184611996565b949350505050565b600060c082019050611a88600083018961183c565b611a95602083018861183c565b611aa26040830187611996565b611aaf60608301866119d2565b611abc60808301856119d2565b611ac960a08301846119b4565b979650505050505050565b6000604082019050611ae9600083018561183c565b611af66020830184611996565b9392505050565b6000602082019050611b12600083018461184b565b92915050565b60006020820190508181036000830152611b32818461188b565b905092915050565b60006020820190508181036000830152611b53816118c4565b9050919050565b60006020820190508181036000830152611b73816118e7565b9050919050565b600060c0820190508181036000830152611b938161190a565b9050611ba2602083018861183c565b611baf604083018761183c565b611bbc606083018661183c565b611bc96080830185611996565b611bd660a08301846119c3565b9695505050505050565b60006020820190508181036000830152611bf98161192d565b9050919050565b60006020820190508181036000830152611c1981611950565b9050919050565b60006020820190508181036000830152611c3981611973565b9050919050565b6000602082019050611c5560008301846119a5565b92915050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b6000611c9882611cd7565b9050919050565b60008115159050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600067ffffffffffffffff82169050919050565b6000611d3082611d01565b9050919050565b6000611d4282611d11565b9050919050565b60005b83811015611d67578082015181840152602081019050611d4c565b83811115611d76576000848401525b50505050565b6000601f19601f8301169050919050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f6362726964676500000000000000000000000000000000000000000000000000600082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b611f2481611c8d565b8114611f2f57600080fd5b50565b611f3b81611c9f565b8114611f4657600080fd5b50565b611f5281611cab565b8114611f5d57600080fd5b50565b611f6981611cf7565b8114611f7457600080fd5b50565b611f8081611d01565b8114611f8b57600080fd5b50565b611f9781611d11565b8114611fa257600080fd5b5056fea164736f6c6343000804000a"; type CBridgeFacetConstructorParams = | [signer?: Signer] diff --git a/typings/factories/ConnextFacet__factory.ts b/typings/factories/ConnextFacet__factory.ts index 71963fbe..030bddac 100644 --- a/typings/factories/ConnextFacet__factory.ts +++ b/typings/factories/ConnextFacet__factory.ts @@ -111,6 +111,57 @@ const _abi = [ name: "ConnextTokenSwap", type: "event", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__4f0a9270", + type: "bytes8", + }, + ], + name: "c_4f0a9270", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__4f0a9270", + type: "bytes8", + }, + ], + name: "c_false4f0a9270", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__4f0a9270", + type: "bytes8", + }, + ], + name: "c_true4f0a9270", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [ { @@ -213,7 +264,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b50611b37806100206000396000f3fe6080604052600436106100345760003560e01c80633205dc691461003957806351b401b914610062578063da328d541461007e575b600080fd5b34801561004557600080fd5b50610060600480360381019061005b9190611055565b61009a565b005b61007c600480360381019061007791906110de565b61029c565b005b610098600480360381019061009391906110de565b61064f565b005b6100a26109e3565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610111576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610108906111c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610180576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610177906111c8565b60405180910390fd5b600061018a610a7e565b9050838160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550828160000160146101000a81548163ffffffff021916908363ffffffff160217905550818160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168363ffffffff168573ffffffffffffffffffffffffffffffffffffffff167fe23ac138025651e2fb684be9a5c635424d4dac7fc73449494c24c4955e79027860405160405180910390a450505050565b60006102a6610aab565b90506000879050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff160361031c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610313906111c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361038b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610382906111c8565b60405180910390fd5b610393610ade565b63ffffffff168563ffffffff16036103e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d79061125a565b60405180910390fd5b823414610422576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610419906112c6565b60405180910390fd5b868173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b815260040161045e9291906112f5565b602060405180830381865afa15801561047b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049f9190611333565b10156104e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d7906113d2565b60405180910390fd5b61050d3330898473ffffffffffffffffffffffffffffffffffffffff16610b01909392919063ffffffff16565b61053882888373ffffffffffffffffffffffffffffffffffffffff16610b8a9092919063ffffffff16565b60008273ffffffffffffffffffffffffffffffffffffffff16638aac16ba85888a8d338e8c604051806020016040528060008152506040518963ffffffff1660e01b815260040161058f97969594939291906114a0565b60206040518083038185885af11580156105ad573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105d2919061154c565b90508873ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168763ffffffff167f1a0290ac7c224ab0140c811403ba545f80e92404b9979b69e52b3f589bc1c1e08b888660405161063c93929190611588565b60405180910390a4505050505050505050565b6000610659610aab565b90506000610665610cd9565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16036106d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106cd906111c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603610745576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073c906111c8565b60405180910390fd5b61074d610ade565b63ffffffff168563ffffffff160361079a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107919061125a565b60405180910390fd5b82876107a691906115ee565b34146107e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107de90611694565b60405180910390fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0896040518263ffffffff1660e01b81526004016000604051808303818588803b15801561083457600080fd5b505af1158015610848573d6000803e3d6000fd5b50505050508073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3848a6040518363ffffffff1660e01b81526004016108889291906116b4565b6020604051808303816000875af11580156108a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108cb9190611715565b50506000866040516020016108e09190611742565b604051602081830303815290604052905060008373ffffffffffffffffffffffffffffffffffffffff16638aac16ba86898d87338f8d8a6040518963ffffffff1660e01b815260040161093997969594939291906114a0565b60206040518083038185885af1158015610957573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061097c919061154c565b90508773ffffffffffffffffffffffffffffffffffffffff168763ffffffff167fe16c7dcc828782adcdd94aaeb1d07c3ae5a6d593a6b851ab5e023f9c961436873488856040516109cf93929190611588565b60405180910390a350505050505050505050565b6109eb610d0c565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a73906117cf565b60405180910390fd5b565b6000807ffa2e9c22c7fe2104814a1d7e2c66c58d10a2d7989d5bcf01173a2564aa59c04d90508091505090565b6000610ab5610a7e565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610ae8610a7e565b60000160149054906101000a900463ffffffff16905090565b610b84846323b872dd60e01b858585604051602401610b22939291906117ef565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610d39565b50505050565b6000811480610c14575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401610bd19291906112f5565b602060405180830381865afa158015610bee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c129190611333565b145b610c53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4a90611898565b60405180910390fd5b610cd48363095ea7b360e01b8484604051602401610c729291906116b4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610d39565b505050565b6000610ce3610a7e565b60010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b6000610d9b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16610e009092919063ffffffff16565b9050600081511115610dfb5780806020019051810190610dbb9190611715565b610dfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df19061192a565b60405180910390fd5b5b505050565b6060610e0f8484600085610e18565b90509392505050565b606082471015610e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e54906119bc565b60405180910390fd5b610e6685610f2c565b610ea5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9c90611a28565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051610ece9190611a84565b60006040518083038185875af1925050503d8060008114610f0b576040519150601f19603f3d011682016040523d82523d6000602084013e610f10565b606091505b5091509150610f20828286610f4f565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60608315610f5f57829050610faf565b600083511115610f725782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa69190611adf565b60405180910390fd5b9392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610fe682610fbb565b9050919050565b610ff681610fdb565b811461100157600080fd5b50565b60008135905061101381610fed565b92915050565b600063ffffffff82169050919050565b61103281611019565b811461103d57600080fd5b50565b60008135905061104f81611029565b92915050565b60008060006060848603121561106e5761106d610fb6565b5b600061107c86828701611004565b935050602061108d86828701611040565b925050604061109e86828701611004565b9150509250925092565b6000819050919050565b6110bb816110a8565b81146110c657600080fd5b50565b6000813590506110d8816110b2565b92915050565b60008060008060008060c087890312156110fb576110fa610fb6565b5b600061110989828a01611004565b965050602061111a89828a016110c9565b955050604061112b89828a01611004565b945050606061113c89828a01611040565b935050608061114d89828a016110c9565b92505060a061115e89828a016110c9565b9150509295509295509295565b600082825260208201905092915050565b7f436f6e6e6578743a20696e76616c696420616464726573730000000000000000600082015250565b60006111b260188361116b565b91506111bd8261117c565b602082019050919050565b600060208201905081810360008301526111e1816111a5565b9050919050565b7f436f6e6e6578743a2043616e6e6f742062726964676520746f2073616d65206460008201527f6f6d61696e000000000000000000000000000000000000000000000000000000602082015250565b600061124460258361116b565b915061124f826111e8565b604082019050919050565b6000602082019050818103600083015261127381611237565b9050919050565b7f436f6e6e6578743a2072656c6179657246656520213d206d73672e76616c7565600082015250565b60006112b060208361116b565b91506112bb8261127a565b602082019050919050565b600060208201905081810360008301526112df816112a3565b9050919050565b6112ef81610fdb565b82525050565b600060408201905061130a60008301856112e6565b61131760208301846112e6565b9392505050565b60008151905061132d816110b2565b92915050565b60006020828403121561134957611348610fb6565b5b60006113578482850161131e565b91505092915050565b7f436f6e6e6578743a2055736572206d75737420617070726f766520616d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b60006113bc60218361116b565b91506113c782611360565b604082019050919050565b600060208201905081810360008301526113eb816113af565b9050919050565b6113fb81611019565b82525050565b61140a816110a8565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561144a57808201518184015260208101905061142f565b60008484015250505050565b6000601f19601f8301169050919050565b600061147282611410565b61147c818561141b565b935061148c81856020860161142c565b61149581611456565b840191505092915050565b600060e0820190506114b5600083018a6113f2565b6114c260208301896112e6565b6114cf60408301886112e6565b6114dc60608301876112e6565b6114e96080830186611401565b6114f660a0830185611401565b81810360c08301526115088184611467565b905098975050505050505050565b6000819050919050565b61152981611516565b811461153457600080fd5b50565b60008151905061154681611520565b92915050565b60006020828403121561156257611561610fb6565b5b600061157084828501611537565b91505092915050565b61158281611516565b82525050565b600060608201905061159d6000830186611401565b6115aa6020830185611401565b6115b76040830184611579565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115f9826110a8565b9150611604836110a8565b925082820190508082111561161c5761161b6115bf565b5b92915050565b7f436f6e6e6578743a20616d6f756e74202b2072656c6179657246656520213d2060008201527f6d73672e76616c75650000000000000000000000000000000000000000000000602082015250565b600061167e60298361116b565b915061168982611622565b604082019050919050565b600060208201905081810360008301526116ad81611671565b9050919050565b60006040820190506116c960008301856112e6565b6116d66020830184611401565b9392505050565b60008115159050919050565b6116f2816116dd565b81146116fd57600080fd5b50565b60008151905061170f816116e9565b92915050565b60006020828403121561172b5761172a610fb6565b5b600061173984828501611700565b91505092915050565b600060208201905061175760008301846112e6565b92915050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b60006117b960228361116b565b91506117c48261175d565b604082019050919050565b600060208201905081810360008301526117e8816117ac565b9050919050565b600060608201905061180460008301866112e6565b61181160208301856112e6565b61181e6040830184611401565b949350505050565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b600061188260368361116b565b915061188d82611826565b604082019050919050565b600060208201905081810360008301526118b181611875565b9050919050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000611914602a8361116b565b915061191f826118b8565b604082019050919050565b6000602082019050818103600083015261194381611907565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006119a660268361116b565b91506119b18261194a565b604082019050919050565b600060208201905081810360008301526119d581611999565b9050919050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000611a12601d8361116b565b9150611a1d826119dc565b602082019050919050565b60006020820190508181036000830152611a4181611a05565b9050919050565b600081905092915050565b6000611a5e82611410565b611a688185611a48565b9350611a7881856020860161142c565b80840191505092915050565b6000611a908284611a53565b915081905092915050565b600081519050919050565b6000611ab182611a9b565b611abb818561116b565b9350611acb81856020860161142c565b611ad481611456565b840191505092915050565b60006020820190508181036000830152611af98184611aa6565b90509291505056fea2646970667358221220f3dc4951c58ae8b44cd9ca16d9356178d872e081900d417184103d3d1d4fc9ed64736f6c63430008110033"; + "0x608060405234801561001057600080fd5b50612533806100206000396000f3fe6080604052600436106100555760003560e01c80631e127d9e1461005a5780633205dc691461009757806351b401b9146100c0578063da328d54146100dc578063e59cff6a146100f8578063ff578afd14610121575b600080fd5b34801561006657600080fd5b50610081600480360381019061007c9190611960565b61015e565b60405161008e91906119a8565b60405180910390f35b3480156100a357600080fd5b506100be60048036038101906100b99190611a5d565b610169565b005b6100da60048036038101906100d59190611ae6565b6104d3565b005b6100f660048036038101906100f19190611ae6565b610b2e565b005b34801561010457600080fd5b5061011f600480360381019061011a9190611960565b61116a565b005b34801561012d57600080fd5b5061014860048036038101906101439190611960565b61116d565b60405161015591906119a8565b60405180910390f35b600060019050919050565b61017d67da66d5c76eb6198060c01b61116a565b6101916707107aa74081ad9a60c01b61116a565b6101a56709e536b31d2b284560c01b61116a565b6101ad611174565b6101c16724b3a7fbd5a0555c60c01b61116a565b6101d5673158d971c7fdb0ca60c01b61116a565b6101e96703c9330b53674b1760c01b61116a565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610258576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161024f90611bd0565b60405180910390fd5b61026c67fcc5147cdd4ebd8960c01b61116a565b610280674fdb424e77c2592f60c01b61116a565b61029467f9d795c7c5682b1d60c01b61116a565b6102a8671cbbd1c5e3f278ca60c01b61116a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161030e90611bd0565b60405180910390fd5b61032b67016ab0db5906bbb360c01b61116a565b61033f67169c7e53c5b97e3360c01b61116a565b610353679cab345ad0dd8ce860c01b61116a565b600061035d611273565b9050610373672902fe7e7f2d9cda60c01b61116a565b838160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103ca6792d47aeff096fb8f60c01b61116a565b828160000160146101000a81548163ffffffff021916908363ffffffff16021790555061040167dae0b6432f92708c60c01b61116a565b818160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061045867a5bbad863e87472960c01b61116a565b61046c6730c01a8ab946fa6060c01b61116a565b8173ffffffffffffffffffffffffffffffffffffffff168363ffffffff168573ffffffffffffffffffffffffffffffffffffffff167fe23ac138025651e2fb684be9a5c635424d4dac7fc73449494c24c4955e79027860405160405180910390a450505050565b6104e767acf0e9b35b4e65cd60c01b61116a565b6104fb6738c37d6ca422220660c01b61116a565b61050f6755a23b34dbcae5e460c01b61116a565b60006105196112f0565b905061052f675672b2448cdaf2f660c01b61116a565b61054367dd45662776e9485560c01b61116a565b600087905061055c674cbc6907ea07364660c01b61116a565b61057067628a6a1dae6e92c660c01b61116a565b61058467cdd5c254132cf2e360c01b61116a565b600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16036105f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ea90611bd0565b60405180910390fd5b61060767200b5f32b92e177c60c01b61116a565b61061b674f3206500b7d2d5b60c01b61116a565b61062f67d6ea1b1f01245e9160c01b61116a565b61064367da795a7d1d76ed2960c01b61116a565b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036106b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a990611bd0565b60405180910390fd5b6106c6674bb3f49be13dfadd60c01b61116a565b6106da671a6e4c979fc59d1360c01b61116a565b6106ee6718797eb7b093482c60c01b61116a565b6107026744a98e3e169b2f3460c01b61116a565b61070a61135f565b63ffffffff168563ffffffff1603610757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074e90611c62565b60405180910390fd5b61076b673ce249b64835bbe560c01b61116a565b61077f67b9f72ba69a763c2760c01b61116a565b610793679fda6d2ebebf2fc360c01b61116a565b6107a7673cc29b0d572e7d7760c01b61116a565b8234146107e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e090611cce565b60405180910390fd5b6107fd673d2b8fad77a6165f60c01b61116a565b61081167ea2297dd4a98c52260c01b61116a565b61082567e468230f90149a5c60c01b61116a565b610839672b6ca90b2121025860c01b61116a565b868173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b8152600401610875929190611cfd565b602060405180830381865afa158015610892573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b69190611d3b565b10156108f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ee90611dda565b60405180910390fd5b61090b67eeae8774d4737f9b60c01b61116a565b61091f6777f92ef958d33eb060c01b61116a565b6109336724476b17f224827760c01b61116a565b610947676472c6d9ab3589b760c01b61116a565b6109743330898473ffffffffffffffffffffffffffffffffffffffff166113be909392919063ffffffff16565b6109886774bf09dfa548e53660c01b61116a565b61099c6760a91e4e3a8ac2d960c01b61116a565b6109c782888373ffffffffffffffffffffffffffffffffffffffff166114479092919063ffffffff16565b6109db67ed56f35d7f2b828060c01b61116a565b6109ef67e38f566121b8c22660c01b61116a565b60008273ffffffffffffffffffffffffffffffffffffffff16638aac16ba85888a8d338e8c604051806020016040528060008152506040518963ffffffff1660e01b8152600401610a469796959493929190611ea8565b60206040518083038185885af1158015610a64573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a899190611f54565b9050610a9f67db5256f5193ef69260c01b61116a565b610ab367faca73967507dca660c01b61116a565b8873ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168763ffffffff167f1a0290ac7c224ab0140c811403ba545f80e92404b9979b69e52b3f589bc1c1e08b8886604051610b1b93929190611f90565b60405180910390a4505050505050505050565b610b4267c472042bb0a39b6f60c01b61116a565b610b5667e8d23992abac163d60c01b61116a565b610b6a67b48086d5ae77200760c01b61116a565b6000610b746112f0565b9050610b8a67ce9c305cc02b1c1160c01b61116a565b610b9e674c7274a33eb2813c60c01b61116a565b6000610ba8611596565b9050610bbe67bdf25af44a249b6560c01b61116a565b610bd267b444096f935769e960c01b61116a565b610be667bc5e5dc4ce769c2c60c01b61116a565b600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1603610c55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4c90611bd0565b60405180910390fd5b610c69671cc12e0b11e5007760c01b61116a565b610c7d67fa05b4e6612f0dc660c01b61116a565b610c9167a91b4fcfcd68b0e660c01b61116a565b610ca5671bbdb3490f019f5c60c01b61116a565b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603610d14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0b90611bd0565b60405180910390fd5b610d286771179656948a2b0060c01b61116a565b610d3c67a3e2bdd52726bafd60c01b61116a565b610d5067046edd65ee4f553060c01b61116a565b610d64678c8ce874ae9b9de860c01b61116a565b610d6c61135f565b63ffffffff168563ffffffff1603610db9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db090611c62565b60405180910390fd5b610dcd67aef6da0e6fe9d52160c01b61116a565b610de167740f381fd2151cb260c01b61116a565b610df567346b3c8880b2c3da60c01b61116a565b610e09674ad7b107080662c360c01b61116a565b8287610e159190611ff6565b3414610e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4d9061209c565b60405180910390fd5b610e6a6789871c2781989c6d60c01b61116a565b610e7e67060d638a4435f2cb60c01b61116a565b610e926708b41563644eea3e60c01b61116a565b610ea66755a072def3c33fb160c01b61116a565b6000819050610ebf673d4cc8668bbb681860c01b61116a565b610ed367508afb80f9f91eff60c01b61116a565b8073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0896040518263ffffffff1660e01b81526004016000604051808303818588803b158015610f1b57600080fd5b505af1158015610f2f573d6000803e3d6000fd5b5050505050610f4867d240007acf4daa6460c01b61116a565b610f5c67e3df34b53866cb7760c01b61116a565b8073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3848a6040518363ffffffff1660e01b8152600401610f979291906120bc565b6020604051808303816000875af1158015610fb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fda9190612111565b5050610ff06737adbf910b3ee50360c01b61116a565b611004672a586681e374b5d660c01b61116a565b600086604051602001611017919061213e565b604051602081830303815290604052905061103c67199e92c28f9b407560c01b61116a565b6110506704c4ce9f5de15da560c01b61116a565b60008373ffffffffffffffffffffffffffffffffffffffff16638aac16ba86898d87338f8d8a6040518963ffffffff1660e01b81526004016110989796959493929190611ea8565b60206040518083038185885af11580156110b6573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110db9190611f54565b90506110f167a170e2544473341460c01b61116a565b61110567feb2f7a200bc2b9760c01b61116a565b8773ffffffffffffffffffffffffffffffffffffffff168763ffffffff167fe16c7dcc828782adcdd94aaeb1d07c3ae5a6d593a6b851ab5e023f9c9614368734888560405161115693929190611f90565b60405180910390a350505050505050505050565b50565b6000919050565b6111886721b40df6734b4e6460c01b611605565b61119c677276b6d1bbf7b68b60c01b611605565b6111b067f8611dbcb55a1f7860c01b611605565b6111c4676cedf54251a3375160c01b611605565b6111cc611608565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461125d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611254906121cb565b60405180910390fd5b61127167e452355b21bbd41e60c01b611605565b565b60006112886686de270f8eb5ee60c01b61116a565b61129c67e91f6aa427e7a86260c01b61116a565b6112b067f9fa26a73cd597f060c01b61116a565b60007ffa2e9c22c7fe2104814a1d7e2c66c58d10a2d7989d5bcf01173a2564aa59c04d90506112e967b96cba4c6f0b350c60c01b61116a565b8091505090565b600061130667ac00b124db4b589260c01b61116a565b61131a67fe1df3e726aaef2f60c01b61116a565b61132e67ac13fce227ef532760c01b61116a565b611336611273565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006113756799a5fb6e1d2eed7160c01b61116a565b6113896743d580f33e0df2b160c01b61116a565b61139d67e8552e2d8af2b48e60c01b61116a565b6113a5611273565b60000160149054906101000a900463ffffffff16905090565b611441846323b872dd60e01b8585856040516024016113df939291906121eb565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611686565b50505050565b60008114806114d1575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b815260040161148e929190611cfd565b602060405180830381865afa1580156114ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114cf9190611d3b565b145b611510576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150790612294565b60405180910390fd5b6115918363095ea7b360e01b848460405160240161152f9291906120bc565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611686565b505050565b60006115ac672d586a34e5abb5b460c01b61116a565b6115c067260fb297e7aa153460c01b61116a565b6115d46760d293c4377d5b2c60c01b61116a565b6115dc611273565b60010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b50565b600061161e674f9afbb757d80e6360c01b611605565b611632674b823103125da15660c01b611605565b611646674ab715c231c1608d60c01b611605565b60007fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c905061167f67982d9bb86701efa860c01b611605565b8091505090565b60006116e8826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661174d9092919063ffffffff16565b905060008151111561174857808060200190518101906117089190612111565b611747576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173e90612326565b60405180910390fd5b5b505050565b606061175c8484600085611765565b90509392505050565b6060824710156117aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a1906123b8565b60405180910390fd5b6117b385611879565b6117f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e990612424565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161181b9190612480565b60006040518083038185875af1925050503d8060008114611858576040519150601f19603f3d011682016040523d82523d6000602084013e61185d565b606091505b509150915061186d82828661189c565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b606083156118ac578290506118fc565b6000835111156118bf5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f391906124db565b60405180910390fd5b9392505050565b600080fd5b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b61193d81611908565b811461194857600080fd5b50565b60008135905061195a81611934565b92915050565b60006020828403121561197657611975611903565b5b60006119848482850161194b565b91505092915050565b60008115159050919050565b6119a28161198d565b82525050565b60006020820190506119bd6000830184611999565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119ee826119c3565b9050919050565b6119fe816119e3565b8114611a0957600080fd5b50565b600081359050611a1b816119f5565b92915050565b600063ffffffff82169050919050565b611a3a81611a21565b8114611a4557600080fd5b50565b600081359050611a5781611a31565b92915050565b600080600060608486031215611a7657611a75611903565b5b6000611a8486828701611a0c565b9350506020611a9586828701611a48565b9250506040611aa686828701611a0c565b9150509250925092565b6000819050919050565b611ac381611ab0565b8114611ace57600080fd5b50565b600081359050611ae081611aba565b92915050565b60008060008060008060c08789031215611b0357611b02611903565b5b6000611b1189828a01611a0c565b9650506020611b2289828a01611ad1565b9550506040611b3389828a01611a0c565b9450506060611b4489828a01611a48565b9350506080611b5589828a01611ad1565b92505060a0611b6689828a01611ad1565b9150509295509295509295565b600082825260208201905092915050565b7f436f6e6e6578743a20696e76616c696420616464726573730000000000000000600082015250565b6000611bba601883611b73565b9150611bc582611b84565b602082019050919050565b60006020820190508181036000830152611be981611bad565b9050919050565b7f436f6e6e6578743a2043616e6e6f742062726964676520746f2073616d65206460008201527f6f6d61696e000000000000000000000000000000000000000000000000000000602082015250565b6000611c4c602583611b73565b9150611c5782611bf0565b604082019050919050565b60006020820190508181036000830152611c7b81611c3f565b9050919050565b7f436f6e6e6578743a2072656c6179657246656520213d206d73672e76616c7565600082015250565b6000611cb8602083611b73565b9150611cc382611c82565b602082019050919050565b60006020820190508181036000830152611ce781611cab565b9050919050565b611cf7816119e3565b82525050565b6000604082019050611d126000830185611cee565b611d1f6020830184611cee565b9392505050565b600081519050611d3581611aba565b92915050565b600060208284031215611d5157611d50611903565b5b6000611d5f84828501611d26565b91505092915050565b7f436f6e6e6578743a2055736572206d75737420617070726f766520616d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b6000611dc4602183611b73565b9150611dcf82611d68565b604082019050919050565b60006020820190508181036000830152611df381611db7565b9050919050565b611e0381611a21565b82525050565b611e1281611ab0565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e52578082015181840152602081019050611e37565b60008484015250505050565b6000601f19601f8301169050919050565b6000611e7a82611e18565b611e848185611e23565b9350611e94818560208601611e34565b611e9d81611e5e565b840191505092915050565b600060e082019050611ebd600083018a611dfa565b611eca6020830189611cee565b611ed76040830188611cee565b611ee46060830187611cee565b611ef16080830186611e09565b611efe60a0830185611e09565b81810360c0830152611f108184611e6f565b905098975050505050505050565b6000819050919050565b611f3181611f1e565b8114611f3c57600080fd5b50565b600081519050611f4e81611f28565b92915050565b600060208284031215611f6a57611f69611903565b5b6000611f7884828501611f3f565b91505092915050565b611f8a81611f1e565b82525050565b6000606082019050611fa56000830186611e09565b611fb26020830185611e09565b611fbf6040830184611f81565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061200182611ab0565b915061200c83611ab0565b925082820190508082111561202457612023611fc7565b5b92915050565b7f436f6e6e6578743a20616d6f756e74202b2072656c6179657246656520213d2060008201527f6d73672e76616c75650000000000000000000000000000000000000000000000602082015250565b6000612086602983611b73565b91506120918261202a565b604082019050919050565b600060208201905081810360008301526120b581612079565b9050919050565b60006040820190506120d16000830185611cee565b6120de6020830184611e09565b9392505050565b6120ee8161198d565b81146120f957600080fd5b50565b60008151905061210b816120e5565b92915050565b60006020828403121561212757612126611903565b5b6000612135848285016120fc565b91505092915050565b60006020820190506121536000830184611cee565b92915050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b60006121b5602283611b73565b91506121c082612159565b604082019050919050565b600060208201905081810360008301526121e4816121a8565b9050919050565b60006060820190506122006000830186611cee565b61220d6020830185611cee565b61221a6040830184611e09565b949350505050565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b600061227e603683611b73565b915061228982612222565b604082019050919050565b600060208201905081810360008301526122ad81612271565b9050919050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000612310602a83611b73565b915061231b826122b4565b604082019050919050565b6000602082019050818103600083015261233f81612303565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006123a2602683611b73565b91506123ad82612346565b604082019050919050565b600060208201905081810360008301526123d181612395565b9050919050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b600061240e601d83611b73565b9150612419826123d8565b602082019050919050565b6000602082019050818103600083015261243d81612401565b9050919050565b600081905092915050565b600061245a82611e18565b6124648185612444565b9350612474818560208601611e34565b80840191505092915050565b600061248c828461244f565b915081905092915050565b600081519050919050565b60006124ad82612497565b6124b78185611b73565b93506124c7818560208601611e34565b6124d081611e5e565b840191505092915050565b600060208201905081810360008301526124f581846124a2565b90509291505056fea26469706673582212204da084d29f2b1f49110a7e2136c1f929f1a0ef590b5b88f05fb2d02502daf9f664736f6c63430008110033"; type ConnextFacetConstructorParams = | [signer?: Signer] diff --git a/typings/factories/Constants__factory.ts b/typings/factories/Constants__factory.ts deleted file mode 100644 index a000f20b..00000000 --- a/typings/factories/Constants__factory.ts +++ /dev/null @@ -1,370 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { Constants, ConstantsInterface } from "../Constants"; - -const _abi = [ - { - inputs: [], - name: "AAVE_REFERRAL_CODE", - outputs: [ - { - internalType: "uint16", - name: "", - type: "uint16", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "A_PRECISION", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "BPS_FEE_DENOMINATOR", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "DEFAULT_COPY_BYTES", - outputs: [ - { - internalType: "uint16", - name: "", - type: "uint16", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "DEFAULT_DEADLINE_EXTENSION", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "DEFAULT_NORMALIZED_DECIMALS", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "EXECUTE_CALLDATA_RESERVE_GAS", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "FEE_DENOMINATOR", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "FUTURE_TIME_BUFFER", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "GOVERNANCE_DELAY", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "INITIAL_AAVE_REFERRAL_CODE", - outputs: [ - { - internalType: "uint16", - name: "", - type: "uint16", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "INITIAL_LIQUIDITY_FEE_NUMERATOR", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "INITIAL_MAX_ROUTERS", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "MAXIMUM_POOLED_TOKENS", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "MAX_A", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "MAX_ADMIN_FEE", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "MAX_A_CHANGE", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "MAX_LOOP_LIMIT", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "MAX_SWAP_FEE", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "MINIMUM_POOLED_TOKENS", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "MIN_RAMP_DELAY", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "MIN_RAMP_TIME", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "ORACLE_VALID_PERIOD", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "POOL_PRECISION_DECIMALS", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, -]; - -const _bytecode = - "0x6105a1610053600b82828239805160001a607314610046577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106101625760003560e01c806360e26bb4116100cd578063c8d5d89e11610086578063c8d5d89e14610383578063d011f918146103a1578063d73792a9146103bf578063dab597ea146103dd578063f1828d56146103fb578063f3de03621461041957610162565b806360e26bb4146102cf578063834f3b70146102ed578063ab3d85441461030b578063ab5ac06114610329578063b0b5489514610347578063c86a23ee1461036557610162565b8063396984151161011f578063396984151461021b57806343bbce5814610239578063443841ef1461025757806351a7b98f1461027557806359f491c8146102935780636037af42146102b157610162565b80630296ab501461016757806305a363de1461018557806306e9481c146101a357806319b693e9146101c157806328c8d10e146101df57806330d356c4146101fd575b600080fd5b61016f610437565b60405161017c91906104e4565b60405180910390f35b61018d61043c565b60405161019a919061051c565b60405180910390f35b6101ab610441565b6040516101b89190610550565b60405180910390f35b6101c9610448565b6040516101d69190610550565b60405180910390f35b6101e761044f565b6040516101f49190610550565b60405180910390f35b610205610455565b6040516102129190610550565b60405180910390f35b61022361045a565b6040516102309190610550565b60405180910390f35b610241610461565b60405161024e9190610550565b60405180910390f35b61025f610466565b60405161026c9190610550565b60405180910390f35b61027d61046b565b60405161028a9190610550565b60405180910390f35b61029b610470565b6040516102a89190610550565b60405180910390f35b6102b9610476565b6040516102c69190610550565b60405180910390f35b6102d761047b565b6040516102e49190610550565b60405180910390f35b6102f5610481565b6040516103029190610550565b60405180910390f35b610313610487565b6040516103209190610550565b60405180910390f35b61033161048f565b60405161033e9190610550565b60405180910390f35b61034f610494565b60405161035c9190610550565b60405180910390f35b61036d61049b565b60405161037a9190610550565b60405180910390f35b61038b6104a1565b604051610398919061051c565b60405180910390f35b6103a96104a7565b6040516103b69190610550565b60405180910390f35b6103c76104ac565b6040516103d49190610550565b60405180910390f35b6103e56104b5565b6040516103f291906104e4565b60405180910390f35b6104036104ba565b604051610410919061051c565b60405180910390f35b6104216104bf565b60405161042e9190610550565b60405180910390f35b601281565b600081565b6212750081565b6201518081565b61271081565b600281565b620f424081565b600381565b603c81565b600581565b610e1081565b601081565b61271081565b61270b81565b6305f5e10081565b600281565b62093a8081565b61010081565b61010081565b606481565b6402540be40081565b601281565b600081565b6402540be40081565b600060ff82169050919050565b6104de816104c8565b82525050565b60006020820190506104f960008301846104d5565b92915050565b600061ffff82169050919050565b610516816104ff565b82525050565b6000602082019050610531600083018461050d565b92915050565b6000819050919050565b61054a81610537565b82525050565b60006020820190506105656000830184610541565b9291505056fea26469706673582212203efe6256091afb8e2107e33a5eaab449485de06d0808fe754bbef2f651ba32ed64736f6c63430008110033"; - -type ConstantsConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: ConstantsConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class Constants__factory extends ContractFactory { - constructor(...args: ConstantsConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - deploy( - overrides?: Overrides & { from?: string | Promise } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - getDeployTransaction( - overrides?: Overrides & { from?: string | Promise } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - attach(address: string): Constants { - return super.attach(address) as Constants; - } - connect(signer: Signer): Constants__factory { - return super.connect(signer) as Constants__factory; - } - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): ConstantsInterface { - return new utils.Interface(_abi) as ConstantsInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): Constants { - return new Contract(address, _abi, signerOrProvider) as Constants; - } -} diff --git a/typings/factories/ContextUpgradeable__factory.ts b/typings/factories/ContextUpgradeable__factory.ts deleted file mode 100644 index 7ae8a3f0..00000000 --- a/typings/factories/ContextUpgradeable__factory.ts +++ /dev/null @@ -1,39 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from "ethers"; -import { Provider } from "@ethersproject/providers"; -import type { - ContextUpgradeable, - ContextUpgradeableInterface, -} from "../ContextUpgradeable"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint8", - name: "version", - type: "uint8", - }, - ], - name: "Initialized", - type: "event", - }, -]; - -export class ContextUpgradeable__factory { - static readonly abi = _abi; - static createInterface(): ContextUpgradeableInterface { - return new utils.Interface(_abi) as ContextUpgradeableInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): ContextUpgradeable { - return new Contract(address, _abi, signerOrProvider) as ContextUpgradeable; - } -} diff --git a/typings/factories/Controlled__factory.ts b/typings/factories/Controlled__factory.ts index aef289c5..d71adfb7 100644 --- a/typings/factories/Controlled__factory.ts +++ b/typings/factories/Controlled__factory.ts @@ -7,6 +7,57 @@ import { Provider } from "@ethersproject/providers"; import type { Controlled, ControlledInterface } from "../Controlled"; const _abi = [ + { + inputs: [ + { + internalType: "bytes8", + name: "c__495bfa8b", + type: "bytes8", + }, + ], + name: "c_495bfa8b", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__495bfa8b", + type: "bytes8", + }, + ], + name: "c_false495bfa8b", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__495bfa8b", + type: "bytes8", + }, + ], + name: "c_true495bfa8b", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [], name: "controller", diff --git a/typings/factories/DiamondCutFacet__factory.ts b/typings/factories/DiamondCutFacet__factory.ts index 7ec21224..f91e18cd 100644 --- a/typings/factories/DiamondCutFacet__factory.ts +++ b/typings/factories/DiamondCutFacet__factory.ts @@ -51,6 +51,57 @@ const _abi = [ name: "DiamondCut", type: "event", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__e238b7d9", + type: "bytes8", + }, + ], + name: "c_e238b7d9", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__e238b7d9", + type: "bytes8", + }, + ], + name: "c_falsee238b7d9", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__e238b7d9", + type: "bytes8", + }, + ], + name: "c_truee238b7d9", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [ { @@ -94,7 +145,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b5061270a806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80631f931c1c14610030575b600080fd5b61004a600480360381019061004591906116ab565b61004c565b005b6100546100b6565b6100af8585906100649190611a49565b8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610151565b5050505050565b6100be610380565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461014f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014690611ae1565b60405180910390fd5b565b60005b835181101561033557600084828151811061017257610171611b01565b5b60200260200101516020015190506000600281111561019457610193611b30565b5b8160028111156101a7576101a6611b30565b5b036101f7576101f28583815181106101c2576101c1611b01565b5b6020026020010151600001518684815181106101e1576101e0611b01565b5b6020026020010151604001516103ad565b610321565b6001600281111561020b5761020a611b30565b5b81600281111561021e5761021d611b30565b5b0361026e5761026985838151811061023957610238611b01565b5b60200260200101516000015186848151811061025857610257611b01565b5b602002602001015160400151610624565b610320565b60028081111561028157610280611b30565b5b81600281111561029457610293611b30565b5b036102e4576102df8583815181106102af576102ae611b01565b5b6020026020010151600001518684815181106102ce576102cd611b01565b5b6020026020010151604001516108a5565b61031f565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161031690611bd1565b60405180910390fd5b5b5b50808061032d90611c2a565b915050610154565b507f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67383838360405161036993929190611f27565b60405180910390a161037b8282610a30565b505050565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b60008151116103f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103e890611fde565b60405180910390fd5b60006103fb610380565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361046c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161046390612070565b60405180910390fd5b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905090506000816bffffffffffffffffffffffff16036104d9576104d88285610c42565b5b60005b835181101561061d5760008482815181106104fa576104f9611b01565b5b602002602001015190506000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146105ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e590612102565b60405180910390fd5b6105fa8583868a610d1d565b83806106059061213a565b9450505050808061061590611c2a565b9150506104dc565b5050505050565b6000815111610668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065f90611fde565b60405180910390fd5b6000610672610380565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106da90612070565b60405180910390fd5b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905090506000816bffffffffffffffffffffffff16036107505761074f8285610c42565b5b60005b835181101561089e57600084828151811061077157610770611b01565b5b602002602001015190506000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085b906121e0565b60405180910390fd5b61086f858284610eca565b61087b8583868a610d1d565b83806108869061213a565b9450505050808061089690611c2a565b915050610753565b5050505050565b60008151116108e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e090611fde565b60405180910390fd5b60006108f3610380565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610964576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095b90612272565b60405180910390fd5b60005b8251811015610a2a57600083828151811061098557610984611b01565b5b602002602001015190506000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050610a15848284610eca565b50508080610a2290611c2a565b915050610967565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610aad576000815114610aa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9f90612304565b60405180910390fd5b610c3e565b6000815111610af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae890612396565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610b4757610b46826040518060600160405280602881526020016126896028913961152c565b5b6000808373ffffffffffffffffffffffffffffffffffffffff1683604051610b6f91906123f2565b600060405180830381855af49150503d8060008114610baa576040519150601f19603f3d011682016040523d82523d6000602084013e610baf565b606091505b509150915081610c3b57600081511115610c0057806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf7919061244d565b60405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c32906124e1565b60405180910390fd5b50505b5050565b610c64816040518060600160405280602481526020016126b16024913961152c565b81600201805490508260010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555081600201819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b81846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508360010160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018390806001815401808255809150506001900390600052602060002090600891828204019190066004029091909190916101000a81548163ffffffff021916908360e01c021790555080846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3090612573565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9e90612605565b60405180910390fd5b6000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050600060018560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905061107e9190612625565b90508082146112125760008560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000182815481106110df576110de611b01565b5b90600052602060002090600891828204019190066004029054906101000a900460e01b9050808660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001848154811061115b5761115a611b01565b5b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908360e01c021790555082866000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550505b8460010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180548061126657611265612659565b5b60019003818190600052602060002090600891828204019190066004026101000a81549063ffffffff02191690559055846000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a8154906bffffffffffffffffffffffff0219169055505060008103611525576000600186600201805490506113509190612625565b905060008660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490508181146114915760008760020183815481106113ba576113b9611b01565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050808860020183815481106113fe576113fd611b01565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818860010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550505b866002018054806114a5576114a4612659565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590558660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000905550505b5050505050565b6000823b9050600081118290611578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156f919061244d565b60405180910390fd5b50505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f8401126115b7576115b6611592565b5b8235905067ffffffffffffffff8111156115d4576115d3611597565b5b6020830191508360208202830111156115f0576115ef61159c565b5b9250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611622826115f7565b9050919050565b61163281611617565b811461163d57600080fd5b50565b60008135905061164f81611629565b92915050565b60008083601f84011261166b5761166a611592565b5b8235905067ffffffffffffffff81111561168857611687611597565b5b6020830191508360018202830111156116a4576116a361159c565b5b9250929050565b6000806000806000606086880312156116c7576116c6611588565b5b600086013567ffffffffffffffff8111156116e5576116e461158d565b5b6116f1888289016115a1565b9550955050602061170488828901611640565b935050604086013567ffffffffffffffff8111156117255761172461158d565b5b61173188828901611655565b92509250509295509295909350565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61178982611740565b810181811067ffffffffffffffff821117156117a8576117a7611751565b5b80604052505050565b60006117bb61157e565b90506117c78282611780565b919050565b600067ffffffffffffffff8211156117e7576117e6611751565b5b602082029050602081019050919050565b600080fd5b600080fd5b6003811061180f57600080fd5b50565b60008135905061182181611802565b92915050565b600067ffffffffffffffff82111561184257611841611751565b5b602082029050602081019050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61188881611853565b811461189357600080fd5b50565b6000813590506118a58161187f565b92915050565b60006118be6118b984611827565b6117b1565b905080838252602082019050602084028301858111156118e1576118e061159c565b5b835b8181101561190a57806118f68882611896565b8452602084019350506020810190506118e3565b5050509392505050565b600082601f83011261192957611928611592565b5b81356119398482602086016118ab565b91505092915050565b600060608284031215611958576119576117f8565b5b61196260606117b1565b9050600061197284828501611640565b600083015250602061198684828501611812565b602083015250604082013567ffffffffffffffff8111156119aa576119a96117fd565b5b6119b684828501611914565b60408301525092915050565b60006119d56119d0846117cc565b6117b1565b905080838252602082019050602084028301858111156119f8576119f761159c565b5b835b81811015611a3f57803567ffffffffffffffff811115611a1d57611a1c611592565b5b808601611a2a8982611942565b855260208501945050506020810190506119fa565b5050509392505050565b6000611a563684846119c2565b905092915050565b600082825260208201905092915050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b6000611acb602283611a5e565b9150611ad682611a6f565b604082019050919050565b60006020820190508181036000830152611afa81611abe565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4c69624469616d6f6e644375743a20496e636f7272656374204661636574437560008201527f74416374696f6e00000000000000000000000000000000000000000000000000602082015250565b6000611bbb602783611a5e565b9150611bc682611b5f565b604082019050919050565b60006020820190508181036000830152611bea81611bae565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000611c3582611c20565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611c6757611c66611bf1565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611ca781611617565b82525050565b60038110611cbe57611cbd611b30565b5b50565b6000819050611ccf82611cad565b919050565b6000611cdf82611cc1565b9050919050565b611cef81611cd4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611d2a81611853565b82525050565b6000611d3c8383611d21565b60208301905092915050565b6000602082019050919050565b6000611d6082611cf5565b611d6a8185611d00565b9350611d7583611d11565b8060005b83811015611da6578151611d8d8882611d30565b9750611d9883611d48565b925050600181019050611d79565b5085935050505092915050565b6000606083016000830151611dcb6000860182611c9e565b506020830151611dde6020860182611ce6565b5060408301518482036040860152611df68282611d55565b9150508091505092915050565b6000611e0f8383611db3565b905092915050565b6000602082019050919050565b6000611e2f82611c72565b611e398185611c7d565b935083602082028501611e4b85611c8e565b8060005b85811015611e875784840389528151611e688582611e03565b9450611e7383611e17565b925060208a01995050600181019050611e4f565b50829750879550505050505092915050565b611ea281611617565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611ee2578082015181840152602081019050611ec7565b60008484015250505050565b6000611ef982611ea8565b611f038185611eb3565b9350611f13818560208601611ec4565b611f1c81611740565b840191505092915050565b60006060820190508181036000830152611f418186611e24565b9050611f506020830185611e99565b8181036040830152611f628184611eee565b9050949350505050565b7f4c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e206660008201527f6163657420746f20637574000000000000000000000000000000000000000000602082015250565b6000611fc8602b83611a5e565b9150611fd382611f6c565b604082019050919050565b60006020820190508181036000830152611ff781611fbb565b9050919050565b7f4c69624469616d6f6e644375743a204164642066616365742063616e2774206260008201527f6520616464726573732830290000000000000000000000000000000000000000602082015250565b600061205a602c83611a5e565b915061206582611ffe565b604082019050919050565b600060208201905081810360008301526120898161204d565b9050919050565b7f4c69624469616d6f6e644375743a2043616e2774206164642066756e6374696f60008201527f6e207468617420616c7265616479206578697374730000000000000000000000602082015250565b60006120ec603583611a5e565b91506120f782612090565b604082019050919050565b6000602082019050818103600083015261211b816120df565b9050919050565b60006bffffffffffffffffffffffff82169050919050565b600061214582612122565b91506bffffffffffffffffffffffff820361216357612162611bf1565b5b600182019050919050565b7f4c69624469616d6f6e644375743a2043616e2774207265706c6163652066756e60008201527f6374696f6e20776974682073616d652066756e6374696f6e0000000000000000602082015250565b60006121ca603883611a5e565b91506121d58261216e565b604082019050919050565b600060208201905081810360008301526121f9816121bd565b9050919050565b7f4c69624469616d6f6e644375743a2052656d6f7665206661636574206164647260008201527f657373206d757374206265206164647265737328302900000000000000000000602082015250565b600061225c603683611a5e565b915061226782612200565b604082019050919050565b6000602082019050818103600083015261228b8161224f565b9050919050565b7f4c69624469616d6f6e644375743a205f696e697420697320616464726573732860008201527f3029206275745f63616c6c64617461206973206e6f7420656d70747900000000602082015250565b60006122ee603c83611a5e565b91506122f982612292565b604082019050919050565b6000602082019050818103600083015261231d816122e1565b9050919050565b7f4c69624469616d6f6e644375743a205f63616c6c6461746120697320656d707460008201527f7920627574205f696e6974206973206e6f742061646472657373283029000000602082015250565b6000612380603d83611a5e565b915061238b82612324565b604082019050919050565b600060208201905081810360008301526123af81612373565b9050919050565b600081905092915050565b60006123cc82611ea8565b6123d681856123b6565b93506123e6818560208601611ec4565b80840191505092915050565b60006123fe82846123c1565b915081905092915050565b600081519050919050565b600061241f82612409565b6124298185611a5e565b9350612439818560208601611ec4565b61244281611740565b840191505092915050565b600060208201905081810360008301526124678184612414565b905092915050565b7f4c69624469616d6f6e644375743a205f696e69742066756e6374696f6e20726560008201527f7665727465640000000000000000000000000000000000000000000000000000602082015250565b60006124cb602683611a5e565b91506124d68261246f565b604082019050919050565b600060208201905081810360008301526124fa816124be565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f76652066756e6360008201527f74696f6e207468617420646f65736e2774206578697374000000000000000000602082015250565b600061255d603783611a5e565b915061256882612501565b604082019050919050565b6000602082019050818103600083015261258c81612550565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f766520696d6d7560008201527f7461626c652066756e6374696f6e000000000000000000000000000000000000602082015250565b60006125ef602e83611a5e565b91506125fa82612593565b604082019050919050565b6000602082019050818103600083015261261e816125e2565b9050919050565b600061263082611c20565b915061263b83611c20565b925082820390508181111561265357612652611bf1565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfe4c69624469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f64654c69624469616d6f6e644375743a204e657720666163657420686173206e6f20636f6465a26469706673582212207fa2a888ad5bbe4de1458e663214e8a88a5f68b72dc15183dafb93f74374cabc64736f6c63430008110033"; + "0x608060405234801561001057600080fd5b506139dc806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80631f931c1c14610051578063a38775811461006d578063a44a1d6d1461009d578063b6f4ad23146100b9575b600080fd5b61006b600480360381019061006691906128c2565b6100e9565b005b610087600480360381019061008291906129af565b6101b7565b60405161009491906129f7565b60405180910390f35b6100b760048036038101906100b291906129af565b6101be565b005b6100d360048036038101906100ce91906129af565b6101c1565b6040516100e091906129f7565b60405180910390f35b6100fd67289dfeb4c66136a960c01b6101be565b61011167e5a597ae739b87c260c01b6101be565b610125679b7aa0fdc6113ac960c01b6101be565b61012d6101cc565b6101416734b421f3a9ef97d960c01b6101be565b610155677c88f654614b38de60c01b6101be565b6101b08585906101659190612d1b565b8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506102cb565b5050505050565b6000919050565b50565b600060019050919050565b6101e06721b40df6734b4e6460c01b610716565b6101f4677276b6d1bbf7b68b60c01b610716565b61020867f8611dbcb55a1f7860c01b610716565b61021c676cedf54251a3375160c01b610716565b610224610719565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ac90612db3565b60405180910390fd5b6102c967e452355b21bbd41e60c01b610716565b565b6102df67a19105344d9f01ff60c01b610716565b6102f367b64c935a270824d460c01b610716565b61030767472298b363a8ccd460c01b610716565b60005b835181101561067b57610327679f2b3e118cce749f60c01b610716565b61033b67d896c15712e4c99e60c01b610716565b60008482815181106103505761034f612dd3565b5b602002602001015160200151905061037267e9e9e49fe14a781e60c01b610716565b61038667c54028706882e3fd60c01b610716565b6000600281111561039a57610399612e02565b5b8160028111156103ad576103ac612e02565b5b03610439576103c667f4728512f8de3aa360c01b610716565b6103da6740469cb01cf2faa260c01b610716565b6103ee6721754418551a963060c01b610716565b61043485838151811061040457610403612dd3565b5b60200260200101516000015186848151811061042357610422612dd3565b5b602002602001015160400151610797565b610667565b61044d67964166c6a112694260c01b610716565b610461675cddae6a9e8d84f060c01b610716565b6001600281111561047557610474612e02565b5b81600281111561048857610487612e02565b5b03610514576104a1676469914f5066ffc460c01b610716565b6104b567cf470716cadf00df60c01b610716565b6104c967f4605d17f3b1301c60c01b610716565b61050f8583815181106104df576104de612dd3565b5b6020026020010151600001518684815181106104fe576104fd612dd3565b5b602002602001015160400151610c93565b610666565b61052867e72a92bcd515975b60c01b610716565b61053c67b1e174fb1bb1b85360c01b610716565b60028081111561054f5761054e612e02565b5b81600281111561056257610561612e02565b5b036105ee5761057b67db0f598297fb7fbc60c01b610716565b61058f671a55e89439142ee060c01b610716565b6105a36711513d20488a52e060c01b610716565b6105e98583815181106105b9576105b8612dd3565b5b6020026020010151600001518684815181106105d8576105d7612dd3565b5b6020026020010151604001516111c1565b610665565b61060267cf3e056f531577e760c01b610716565b610616671903ab370305c25960c01b610716565b61062a676af2c3acde0bf38760c01b610716565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065c90612ea3565b60405180910390fd5b5b5b50808061067390612efc565b91505061030a565b5061069067dc19ebbaa4095b3160c01b610716565b6106a4678571dd875084a3e060c01b610716565b7f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6738383836040516106d7939291906131f9565b60405180910390a16106f367faecfc839f48e07b60c01b610716565b6107076792cae661f317b4ce60c01b610716565b61071182826114c8565b505050565b50565b600061072f674f9afbb757d80e6360c01b610716565b610743674b823103125da15660c01b610716565b610757674ab715c231c1608d60c01b610716565b60007fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c905061079067982d9bb86701efa860c01b610716565b8091505090565b6107ab67cc97399e32da22a560c01b610716565b6107bf67021d8eb4be5452a860c01b610716565b6107d3678748409130ac41fa60c01b610716565b6107e767ccd015372bd45b9c60c01b610716565b600081511161082b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610822906132b0565b60405180910390fd5b61083f67d0bcd87037df4e5a60c01b610716565b6108536777b6df3c8e2ebf4660c01b610716565b6108676755a810a63d06fcdd60c01b610716565b6000610871610719565b90506108876747e187c4c65f108c60c01b610716565b61089b670bde1222440aa4dd60c01b610716565b6108af67f7810a880d4fe12d60c01b610716565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361091e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091590613342565b60405180910390fd5b610932676e4814773ca1e6f960c01b610716565b61094667abb5961c588ff7dc60c01b610716565b61095a6775b1393f5ceb0a4860c01b610716565b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905090506109ba6779cb28ccf660334260c01b610716565b6109ce671a64ec3fd612cafd60c01b610716565b6000816bffffffffffffffffffffffff1603610a2f576109f8672a23378c0ae85db760c01b610716565b610a0c670288376b7f20f78660c01b610716565b610a2067d14bbd8396b718cd60c01b610716565b610a2a8285611973565b610a44565b610a43675eb466f90a620b0f60c01b610716565b5b610a5867fcd8a57751c34a1160c01b610716565b610a6c67c014c8ff907100cb60c01b610716565b60005b8351811015610c8c57610a8c677134da3b2ea217c360c01b610716565b610aa0678ef84b1f8594c55e60c01b610716565b6000848281518110610ab557610ab4612dd3565b5b60200260200101519050610ad367e6627f219f43163560c01b610716565b610ae7672b0989e1ce351d2c60c01b610716565b6000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050610b76678edc0ee3600e6f7160c01b610716565b610b8a67acff68f00aaf198060c01b610716565b610b9e678e7e9da0f87df0c460c01b610716565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610c0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c04906133d4565b60405180910390fd5b610c2167de5c2f108b7a76ad60c01b610716565b610c35679df301acb4b4e7b560c01b610716565b610c4967d5dd90cfdfe4af7760c01b610716565b610c558583868a611ac6565b610c6967b77905e3474e693060c01b610716565b8380610c749061340c565b94505050508080610c8490612efc565b915050610a6f565b5050505050565b610ca7672faab333134f8f2b60c01b610716565b610cbb67f1aef7c8a9655d5360c01b610716565b610ccf67d203ed109c17319660c01b610716565b610ce367f4734d8378f4311060c01b610716565b6000815111610d27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1e906132b0565b60405180910390fd5b610d3b6754602ce0fe5a43bf60c01b610716565b610d4f67f46efb4b2c2c709e60c01b610716565b610d6367610110a281fa82c760c01b610716565b6000610d6d610719565b9050610d8367edc9c99031ecb10d60c01b610716565b610d976767fe440300c94a3460c01b610716565b610dab6784ec279df893a23160c01b610716565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1190613342565b60405180910390fd5b610e2e678fb1a303062b7c3660c01b610716565b610e42672659fafa49e6fe9a60c01b610716565b610e5667151721b3adf3095360c01b610716565b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805490509050610eb66747aaf74cd533212060c01b610716565b610eca6703de6b9bbbb4e65460c01b610716565b6000816bffffffffffffffffffffffff1603610f2b57610ef4677f40383c8703753660c01b610716565b610f0867bee7ffe190c4ad3c60c01b610716565b610f1c6755bd06ec28bd8be360c01b610716565b610f268285611973565b610f40565b610f3f67dd6dd2122982fcbd60c01b610716565b5b610f5467c00fc6f5b3cfec0760c01b610716565b610f686712c602b6c749bc1660c01b610716565b60005b83518110156111ba57610f8867b01c581fb6bf76d460c01b610716565b610f9c6772bf81d7d68cd5cc60c01b610716565b6000848281518110610fb157610fb0612dd3565b5b60200260200101519050610fcf67f378c2c5d2ac591860c01b610716565b610fe3672abe9487f14424bf60c01b610716565b6000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061107267c938893e73b6cc8660c01b610716565b61108667b830452a6260fe5860c01b610716565b61109a67732490d4bd014f1160c01b610716565b8673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611108576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ff906134b2565b60405180910390fd5b61111c67307ef01dc603673f60c01b610716565b61113067df9b9ad53f3498bb60c01b610716565b61114467ef74a1c742a2ef4b60c01b610716565b61114f858284611cd7565b6111636709eba8384d15433760c01b610716565b61117767eb34f0e39cc002be60c01b610716565b6111838583868a611ac6565b61119767c8e26e167d4df53e60c01b610716565b83806111a29061340c565b945050505080806111b290612efc565b915050610f6b565b5050505050565b6111d567484f249b41b9afdf60c01b610716565b6111e9672afee721a436189e60c01b610716565b6111fd6790c0f4303981d53860c01b610716565b61121167b69809b50e9b29b160c01b610716565b6000815111611255576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124c906132b0565b60405180910390fd5b6112696703449e0de1d16e1460c01b610716565b61127d67043931a3bf63a76460c01b610716565b6112916783eac4de134a189760c01b610716565b600061129b610719565b90506112b1676fa9503e3a33edf160c01b610716565b6112c567565ff8422e73f48260c01b610716565b6112d967a43a53c1c8fdb01860c01b610716565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611348576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133f90613544565b60405180910390fd5b61135c67a83ec82cf318ce9960c01b610716565b6113706729de67dbee8a781960c01b610716565b6113846778ae44bab32ab16d60c01b610716565b60005b82518110156114c2576113a467c86ec2c930ebf39060c01b610716565b6113b867bb2f8bac9067d0d960c01b610716565b60008382815181106113cd576113cc612dd3565b5b602002602001015190506113eb67afdb7f7eafa2419160c01b610716565b6113ff67336a3f69f07dbd0a60c01b610716565b6000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061148e67a9a5f6b739625a6060c01b610716565b6114a267fd046ea59cd94d2a60c01b610716565b6114ad848284611cd7565b505080806114ba90612efc565b915050611387565b50505050565b6114dc67029e1a56337e048460c01b610716565b6114f067165337675d3a848660c01b610716565b611504674613682e59aed10a60c01b610716565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115e55761154c6788e41d767c30804a60c01b610716565b61156067509782c75193bd1560c01b610716565b611574677c55baba9bedefc760c01b610716565b6115886779b630e4a1a501b160c01b610716565b60008151146115cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c3906135d6565b60405180910390fd5b6115e0671cf5cba47462738c60c01b610716565b61196f565b6115f967d87fba57f9fd56d260c01b610716565b61160d6785ecbfea545b551c60c01b610716565b611621675a99520875f542d360c01b610716565b611635677335d4909eb3f6ed60c01b610716565b6000815111611679576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167090613668565b60405180910390fd5b61168d67e2308116fde49ef660c01b610716565b6116a167e68a1e15bfb15c1560c01b610716565b6116b567e2f9c57761f027da60c01b610716565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461174b576116fc677e43db5cf3dda55a60c01b610716565b61171067f9079825f16296d860c01b610716565b6117246722169a84f6e6288860c01b610716565b6117468260405180606001604052806028815260200161395b602891396126a3565b611760565b61175f6756028f6713aeb61660c01b610716565b5b611774678b5d37b494e8790c60c01b610716565b6117886732f3ff1c4d01de4c60c01b610716565b6000808373ffffffffffffffffffffffffffffffffffffffff16836040516117b091906136c4565b600060405180830381855af49150503d80600081146117eb576040519150601f19603f3d011682016040523d82523d6000602084013e6117f0565b606091505b509150915061180967cb519b28cdf2316460c01b610716565b61181d67d3126d202060687460c01b610716565b81611958576118366713957e4282cdd48760c01b610716565b61184a676bcab06e51e2612c60c01b610716565b61185e67d3bfca2e5aa4d84960c01b610716565b6000815111156118e15761187c673aa967c1a865c9c260c01b610716565b61189067f27acd53282addda60c01b610716565b6118a46780ab759cddda78d060c01b610716565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d8919061371f565b60405180910390fd5b6118f567a434d1c24e3903bc60c01b610716565b61190967d32e3505412c44c560c01b610716565b61191d677d8323cb74d7c2d860c01b610716565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194f906137b3565b60405180910390fd5b61196c67bc6651a6d16ea71460c01b610716565b50505b5050565b6119876745cff900de072b7660c01b610716565b61199b67ac3e31ef1ea5c74960c01b610716565b6119af673364688f11db6d0d60c01b610716565b6119d181604051806060016040528060248152602001613983602491396126a3565b6119e567b9f39a1cc8adecc260c01b610716565b81600201805490508260010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550611a496718823160317e019160c01b610716565b611a5d676ae1118a96d2a90560c01b610716565b81600201819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b611ada67a2899c53551cdd3760c01b610716565b611aee678197d74e06e4145f60c01b610716565b81846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550611b87677d99602b18ea589060c01b610716565b611b9b67351b6ed487ae748960c01b610716565b8360010160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018390806001815401808255809150506001900390600052602060002090600891828204019190066004029091909190916101000a81548163ffffffff021916908360e01c0217905550611c3c67c24c5f99c230f00760c01b610716565b80846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b611ceb6787c03a3a3424540460c01b610716565b611cff672e3806f37bc3a9d460c01b610716565b611d13678d411e0bbad3542c60c01b610716565b611d276726e5377f8db7750360c01b610716565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8d90613845565b60405180910390fd5b611daa67ebcad92e55ad094460c01b610716565b611dbe6751364413e637bba560c01b610716565b611dd26792673f376289e6e260c01b610716565b611de667f72487d3a8cf4ac460c01b610716565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4b906138d7565b60405180910390fd5b611e6867a4c3c236bcab394860c01b610716565b611e7c677e1962b66805ad7060c01b610716565b611e90670d999328d8a5d9c360c01b610716565b6000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050611f2567d10337e1e2ecfc3960c01b610716565b611f39677b893f30fdd7ad7060c01b610716565b600060018560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050611f8f91906138f7565b9050611fa567bb5bf925ceece87660c01b610716565b611fb9676df862371a13aaa560c01b610716565b8082146121b357611fd467156a8665fdd7526f60c01b610716565b611fe8673cefa8bc28e7d12860c01b610716565b611ffc67bdc380bd85401db960c01b610716565b60008560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001828154811061205457612053612dd3565b5b90600052602060002090600891828204019190066004029054906101000a900460e01b905061208d671de77bf8f010eaec60c01b610716565b808660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000184815481106120e4576120e3612dd3565b5b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908360e01c0217905550612128673af62f9c8f759fb160c01b610716565b82866000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550506121c8565b6121c7671d9b423266d067f060c01b610716565b5b6121dc67018034db5579529460c01b610716565b6121f067a1c9b3117b7c6ab660c01b610716565b8460010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054806122445761224361392b565b5b60019003818190600052602060002090600891828204019190066004026101000a81549063ffffffff0219169055905561228867559997c386b3648460c01b610716565b846000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a8154906bffffffffffffffffffffffff021916905550506123386760a723ea0e7e1d4860c01b610716565b61234c67ff433d7c2e2ac4be60c01b610716565b60008103612687576123686762db4abf7f19cb2060c01b610716565b61237c67efe6f413d09d1ebd60c01b610716565b61239067ec471a641a3edf7960c01b610716565b6000600186600201805490506123a691906138f7565b90506123bb6622a131c51aff2c60c01b610716565b6123cf67919cfbc3e76423a760c01b610716565b60008660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154905061242c674e9eba62f8a28b9860c01b610716565b6124406799c973d204243fa060c01b610716565b81811461259e5761245b673c79f4e3584d9a5960c01b610716565b61246f67990168f15e45b6b860c01b610716565b612483678582ef208a32dc4260c01b610716565b600087600201838154811061249b5761249a612dd3565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506124dc671085af932ae9ef7260c01b610716565b808860020183815481106124f3576124f2612dd3565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061254f67ad58108eb86eb21760c01b610716565b818860010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550506125b3565b6125b267804be83a13f0191a60c01b610716565b5b6125c767b1f28e33128b33c960c01b610716565b6125db67c4cd68f75da79ff060c01b610716565b866002018054806125ef576125ee61392b565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905561263867a379df54f7bb9fb460c01b610716565b8660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009055505061269c565b61269b671627b1de00b56a1b60c01b610716565b5b5050505050565b6126b767f91685f166b890e160c01b610716565b6126cb672a44665c1fa886a160c01b610716565b6126df6756e8a556d62b0f5e60c01b610716565b60006126f567996ed809f12ff03160c01b610716565b823b905061270d6709c9d04de4f50a1e60c01b610716565b61272167b71747c1488d4acd60c01b610716565b61273567f052a96327eb0abf60c01b610716565b60008111829061277b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612772919061371f565b60405180910390fd5b5061279067b956b25dc409113860c01b610716565b505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f8401126127ce576127cd6127a9565b5b8235905067ffffffffffffffff8111156127eb576127ea6127ae565b5b602083019150836020820283011115612807576128066127b3565b5b9250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006128398261280e565b9050919050565b6128498161282e565b811461285457600080fd5b50565b60008135905061286681612840565b92915050565b60008083601f840112612882576128816127a9565b5b8235905067ffffffffffffffff81111561289f5761289e6127ae565b5b6020830191508360018202830111156128bb576128ba6127b3565b5b9250929050565b6000806000806000606086880312156128de576128dd61279f565b5b600086013567ffffffffffffffff8111156128fc576128fb6127a4565b5b612908888289016127b8565b9550955050602061291b88828901612857565b935050604086013567ffffffffffffffff81111561293c5761293b6127a4565b5b6129488882890161286c565b92509250509295509295909350565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b61298c81612957565b811461299757600080fd5b50565b6000813590506129a981612983565b92915050565b6000602082840312156129c5576129c461279f565b5b60006129d38482850161299a565b91505092915050565b60008115159050919050565b6129f1816129dc565b82525050565b6000602082019050612a0c60008301846129e8565b92915050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612a5b82612a12565b810181811067ffffffffffffffff82111715612a7a57612a79612a23565b5b80604052505050565b6000612a8d612795565b9050612a998282612a52565b919050565b600067ffffffffffffffff821115612ab957612ab8612a23565b5b602082029050602081019050919050565b600080fd5b600080fd5b60038110612ae157600080fd5b50565b600081359050612af381612ad4565b92915050565b600067ffffffffffffffff821115612b1457612b13612a23565b5b602082029050602081019050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612b5a81612b25565b8114612b6557600080fd5b50565b600081359050612b7781612b51565b92915050565b6000612b90612b8b84612af9565b612a83565b90508083825260208201905060208402830185811115612bb357612bb26127b3565b5b835b81811015612bdc5780612bc88882612b68565b845260208401935050602081019050612bb5565b5050509392505050565b600082601f830112612bfb57612bfa6127a9565b5b8135612c0b848260208601612b7d565b91505092915050565b600060608284031215612c2a57612c29612aca565b5b612c346060612a83565b90506000612c4484828501612857565b6000830152506020612c5884828501612ae4565b602083015250604082013567ffffffffffffffff811115612c7c57612c7b612acf565b5b612c8884828501612be6565b60408301525092915050565b6000612ca7612ca284612a9e565b612a83565b90508083825260208201905060208402830185811115612cca57612cc96127b3565b5b835b81811015612d1157803567ffffffffffffffff811115612cef57612cee6127a9565b5b808601612cfc8982612c14565b85526020850194505050602081019050612ccc565b5050509392505050565b6000612d28368484612c94565b905092915050565b600082825260208201905092915050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d9d602283612d30565b9150612da882612d41565b604082019050919050565b60006020820190508181036000830152612dcc81612d90565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4c69624469616d6f6e644375743a20496e636f7272656374204661636574437560008201527f74416374696f6e00000000000000000000000000000000000000000000000000602082015250565b6000612e8d602783612d30565b9150612e9882612e31565b604082019050919050565b60006020820190508181036000830152612ebc81612e80565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000612f0782612ef2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f3957612f38612ec3565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612f798161282e565b82525050565b60038110612f9057612f8f612e02565b5b50565b6000819050612fa182612f7f565b919050565b6000612fb182612f93565b9050919050565b612fc181612fa6565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ffc81612b25565b82525050565b600061300e8383612ff3565b60208301905092915050565b6000602082019050919050565b600061303282612fc7565b61303c8185612fd2565b935061304783612fe3565b8060005b8381101561307857815161305f8882613002565b975061306a8361301a565b92505060018101905061304b565b5085935050505092915050565b600060608301600083015161309d6000860182612f70565b5060208301516130b06020860182612fb8565b50604083015184820360408601526130c88282613027565b9150508091505092915050565b60006130e18383613085565b905092915050565b6000602082019050919050565b600061310182612f44565b61310b8185612f4f565b93508360208202850161311d85612f60565b8060005b85811015613159578484038952815161313a85826130d5565b9450613145836130e9565b925060208a01995050600181019050613121565b50829750879550505050505092915050565b6131748161282e565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156131b4578082015181840152602081019050613199565b60008484015250505050565b60006131cb8261317a565b6131d58185613185565b93506131e5818560208601613196565b6131ee81612a12565b840191505092915050565b6000606082019050818103600083015261321381866130f6565b9050613222602083018561316b565b818103604083015261323481846131c0565b9050949350505050565b7f4c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e206660008201527f6163657420746f20637574000000000000000000000000000000000000000000602082015250565b600061329a602b83612d30565b91506132a58261323e565b604082019050919050565b600060208201905081810360008301526132c98161328d565b9050919050565b7f4c69624469616d6f6e644375743a204164642066616365742063616e2774206260008201527f6520616464726573732830290000000000000000000000000000000000000000602082015250565b600061332c602c83612d30565b9150613337826132d0565b604082019050919050565b6000602082019050818103600083015261335b8161331f565b9050919050565b7f4c69624469616d6f6e644375743a2043616e2774206164642066756e6374696f60008201527f6e207468617420616c7265616479206578697374730000000000000000000000602082015250565b60006133be603583612d30565b91506133c982613362565b604082019050919050565b600060208201905081810360008301526133ed816133b1565b9050919050565b60006bffffffffffffffffffffffff82169050919050565b6000613417826133f4565b91506bffffffffffffffffffffffff820361343557613434612ec3565b5b600182019050919050565b7f4c69624469616d6f6e644375743a2043616e2774207265706c6163652066756e60008201527f6374696f6e20776974682073616d652066756e6374696f6e0000000000000000602082015250565b600061349c603883612d30565b91506134a782613440565b604082019050919050565b600060208201905081810360008301526134cb8161348f565b9050919050565b7f4c69624469616d6f6e644375743a2052656d6f7665206661636574206164647260008201527f657373206d757374206265206164647265737328302900000000000000000000602082015250565b600061352e603683612d30565b9150613539826134d2565b604082019050919050565b6000602082019050818103600083015261355d81613521565b9050919050565b7f4c69624469616d6f6e644375743a205f696e697420697320616464726573732860008201527f3029206275745f63616c6c64617461206973206e6f7420656d70747900000000602082015250565b60006135c0603c83612d30565b91506135cb82613564565b604082019050919050565b600060208201905081810360008301526135ef816135b3565b9050919050565b7f4c69624469616d6f6e644375743a205f63616c6c6461746120697320656d707460008201527f7920627574205f696e6974206973206e6f742061646472657373283029000000602082015250565b6000613652603d83612d30565b915061365d826135f6565b604082019050919050565b6000602082019050818103600083015261368181613645565b9050919050565b600081905092915050565b600061369e8261317a565b6136a88185613688565b93506136b8818560208601613196565b80840191505092915050565b60006136d08284613693565b915081905092915050565b600081519050919050565b60006136f1826136db565b6136fb8185612d30565b935061370b818560208601613196565b61371481612a12565b840191505092915050565b6000602082019050818103600083015261373981846136e6565b905092915050565b7f4c69624469616d6f6e644375743a205f696e69742066756e6374696f6e20726560008201527f7665727465640000000000000000000000000000000000000000000000000000602082015250565b600061379d602683612d30565b91506137a882613741565b604082019050919050565b600060208201905081810360008301526137cc81613790565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f76652066756e6360008201527f74696f6e207468617420646f65736e2774206578697374000000000000000000602082015250565b600061382f603783612d30565b915061383a826137d3565b604082019050919050565b6000602082019050818103600083015261385e81613822565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f766520696d6d7560008201527f7461626c652066756e6374696f6e000000000000000000000000000000000000602082015250565b60006138c1602e83612d30565b91506138cc82613865565b604082019050919050565b600060208201905081810360008301526138f0816138b4565b9050919050565b600061390282612ef2565b915061390d83612ef2565b925082820390508181111561392557613924612ec3565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfe4c69624469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f64654c69624469616d6f6e644375743a204e657720666163657420686173206e6f20636f6465a2646970667358221220397d6bc128858945df35e9fa5d35a9136bd69a90d0474bc2b1e565efa4670e3264736f6c63430008110033"; type DiamondCutFacetConstructorParams = | [signer?: Signer] diff --git a/typings/factories/DiamondLoupeFacet__factory.ts b/typings/factories/DiamondLoupeFacet__factory.ts index 29362190..a9888fb9 100644 --- a/typings/factories/DiamondLoupeFacet__factory.ts +++ b/typings/factories/DiamondLoupeFacet__factory.ts @@ -9,6 +9,57 @@ import type { } from "../DiamondLoupeFacet"; const _abi = [ + { + inputs: [ + { + internalType: "bytes8", + name: "c__cb71d28d", + type: "bytes8", + }, + ], + name: "c_cb71d28d", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__cb71d28d", + type: "bytes8", + }, + ], + name: "c_falsecb71d28d", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__cb71d28d", + type: "bytes8", + }, + ], + name: "c_truecb71d28d", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [ { @@ -107,7 +158,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b50610c0c806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806301ffc9a71461005c57806352ef6b2c1461008c5780637a0ed627146100aa578063adfca15e146100c8578063cdffacc6146100f8575b600080fd5b6100766004803603810190610071919061068f565b610128565b60405161008391906106d7565b60405180910390f35b61009461019e565b6040516100a191906107e2565b60405180910390f35b6100b261023b565b6040516100bf91906109c1565b60405180910390f35b6100e260048036038101906100dd9190610a0f565b61045e565b6040516100ef9190610aab565b60405180910390f35b610112600480360381019061010d919061068f565b610549565b60405161011f9190610adc565b60405180910390f35b6000806101336105d5565b9050806003016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff16915050919050565b606060006101aa6105d5565b90508060020180548060200260200160405190810160405280929190818152602001828054801561023057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116101e6575b505050505091505090565b606060006102476105d5565b90506000816002018054905090508067ffffffffffffffff81111561026f5761026e610af7565b5b6040519080825280602002602001820160405280156102a857816020015b610295610602565b81526020019060019003908161028d5790505b50925060005b818110156104585760008360020182815481106102ce576102cd610b26565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508085838151811061030f5761030e610b26565b5b60200260200101516000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508360010160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180548060200260200160405190810160405280929190818152602001828054801561041d57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116103ca5790505b505050505085838151811061043557610434610b26565b5b60200260200101516020018190525050808061045090610b8e565b9150506102ae565b50505090565b6060600061046a6105d5565b90508060010160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180548060200260200160405190810160405280929190818152602001828054801561053c57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116104e95790505b5050505050915050919050565b6000806105546105d5565b9050806000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61066c81610637565b811461067757600080fd5b50565b60008135905061068981610663565b92915050565b6000602082840312156106a5576106a4610632565b5b60006106b38482850161067a565b91505092915050565b60008115159050919050565b6106d1816106bc565b82525050565b60006020820190506106ec60008301846106c8565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006107498261071e565b9050919050565b6107598161073e565b82525050565b600061076b8383610750565b60208301905092915050565b6000602082019050919050565b600061078f826106f2565b61079981856106fd565b93506107a48361070e565b8060005b838110156107d55781516107bc888261075f565b97506107c783610777565b9250506001810190506107a8565b5085935050505092915050565b600060208201905081810360008301526107fc8184610784565b905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61086581610637565b82525050565b6000610877838361085c565b60208301905092915050565b6000602082019050919050565b600061089b82610830565b6108a5818561083b565b93506108b08361084c565b8060005b838110156108e15781516108c8888261086b565b97506108d383610883565b9250506001810190506108b4565b5085935050505092915050565b60006040830160008301516109066000860182610750565b506020830151848203602086015261091e8282610890565b9150508091505092915050565b600061093783836108ee565b905092915050565b6000602082019050919050565b600061095782610804565b610961818561080f565b93508360208202850161097385610820565b8060005b858110156109af5784840389528151610990858261092b565b945061099b8361093f565b925060208a01995050600181019050610977565b50829750879550505050505092915050565b600060208201905081810360008301526109db818461094c565b905092915050565b6109ec8161073e565b81146109f757600080fd5b50565b600081359050610a09816109e3565b92915050565b600060208284031215610a2557610a24610632565b5b6000610a33848285016109fa565b91505092915050565b600082825260208201905092915050565b6000610a5882610830565b610a628185610a3c565b9350610a6d8361084c565b8060005b83811015610a9e578151610a85888261086b565b9750610a9083610883565b925050600181019050610a71565b5085935050505092915050565b60006020820190508181036000830152610ac58184610a4d565b905092915050565b610ad68161073e565b82525050565b6000602082019050610af16000830184610acd565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000610b9982610b84565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610bcb57610bca610b55565b5b60018201905091905056fea2646970667358221220ef9c4d5ee27fa9078434fe5fd9d16f9b8885f43dc1a58f1befea84c4bbc0077664736f6c63430008110033"; + "0x608060405234801561001057600080fd5b50610fed806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063adfca15e1161005b578063adfca15e14610115578063cdffacc614610145578063cffb5dec14610175578063f9f7c365146101a557610088565b806301ffc9a71461008d5780631a7cfa86146100bd57806352ef6b2c146100d95780637a0ed627146100f7575b600080fd5b6100a760048036038101906100a291906109eb565b6101d5565b6040516100b49190610a33565b60405180910390f35b6100d760048036038101906100d29190610aa6565b6102b0565b005b6100e16102b3565b6040516100ee9190610bc3565b60405180910390f35b6100ff6103a0565b60405161010c9190610da2565b60405180910390f35b61012f600480360381019061012a9190610df0565b6106b3565b60405161013c9190610e8c565b60405180910390f35b61015f600480360381019061015a91906109eb565b6107ee565b60405161016c9190610ebd565b60405180910390f35b61018f600480360381019061018a9190610aa6565b6108cb565b60405161019c9190610a33565b60405180910390f35b6101bf60048036038101906101ba9190610aa6565b6108d2565b6040516101cc9190610a33565b60405180910390f35b60006101eb67285efd6f4e8eb41160c01b6102b0565b6101ff679667d234011edd8560c01b6102b0565b610213674d70fb37c7dd087760c01b6102b0565b600061021d6108dd565b90506102336735ba6e9c5701761860c01b6102b0565b61024767610d1f4a0bb3823a60c01b6102b0565b806003016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff16915050919050565b50565b60606102c9677f1de3f66179977b60c01b6102b0565b6102dd6774595e158391e43760c01b6102b0565b6102f167a74d20d6eaba1b4660c01b6102b0565b60006102fb6108dd565b905061031167f0ed24c854f6c73360c01b6102b0565b8060020180548060200260200160405190810160405280929190818152602001828054801561039557602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161034b575b505050505091505090565b60606103b6674d80155458127eb460c01b6102b0565b6103ca679fa63900be221ebb60c01b6102b0565b6103de67eaad7781e34e55e860c01b6102b0565b60006103e86108dd565b90506103fe67cceaf84e7e9eb3f060c01b6102b0565b61041267e5500b1af7b537b760c01b6102b0565b600081600201805490509050610432670ef3f15519e6694a60c01b6102b0565b8067ffffffffffffffff81111561044c5761044b610ed8565b5b60405190808252806020026020018201604052801561048557816020015b61047261095e565b81526020019060019003908161046a5790505b50925061049c67162378066aec876b60c01b6102b0565b6104b0673b4a5083af334b4d60c01b6102b0565b60005b818110156106ad576104cf678fba1acd7dd9812160c01b6102b0565b6104e36736cf091544e7072160c01b6102b0565b60008360020182815481106104fb576104fa610f07565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061053c6701b5da9682d1107960c01b6102b0565b808583815181106105505761054f610f07565b5b60200260200101516000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506105a267c2f3430262c30ae560c01b6102b0565b8360010160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180548060200260200160405190810160405280929190818152602001828054801561067257602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161061f5790505b505050505085838151811061068a57610689610f07565b5b6020026020010151602001819052505080806106a590610f6f565b9150506104b3565b50505090565b60606106c967f494b22b7fae5c5160c01b6102b0565b6106dd679693544bdf9bcfbb60c01b6102b0565b6106f167f40dfac7753be95460c01b6102b0565b60006106fb6108dd565b90506107116744ef83ae08424b2d60c01b6102b0565b8060010160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054806020026020016040519081016040528092919081815260200182805480156107e157602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161078e5790505b5050505050915050919050565b60006108046721cd709b6caf5a7760c01b6102b0565b6108186798ae13998b39ee3760c01b6102b0565b61082c67fe378eb71e09567360c01b6102b0565b60006108366108dd565b905061084c670e751d6d9cd00f0860c01b6102b0565b806000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b6000919050565b600060019050919050565b60006108f3674f9afbb757d80e6360c01b61095b565b610907674b823103125da15660c01b61095b565b61091b674ab715c231c1608d60c01b61095b565b60007fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c905061095467982d9bb86701efa860c01b61095b565b8091505090565b50565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6109c881610993565b81146109d357600080fd5b50565b6000813590506109e5816109bf565b92915050565b600060208284031215610a0157610a0061098e565b5b6000610a0f848285016109d6565b91505092915050565b60008115159050919050565b610a2d81610a18565b82525050565b6000602082019050610a486000830184610a24565b92915050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b610a8381610a4e565b8114610a8e57600080fd5b50565b600081359050610aa081610a7a565b92915050565b600060208284031215610abc57610abb61098e565b5b6000610aca84828501610a91565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610b2a82610aff565b9050919050565b610b3a81610b1f565b82525050565b6000610b4c8383610b31565b60208301905092915050565b6000602082019050919050565b6000610b7082610ad3565b610b7a8185610ade565b9350610b8583610aef565b8060005b83811015610bb6578151610b9d8882610b40565b9750610ba883610b58565b925050600181019050610b89565b5085935050505092915050565b60006020820190508181036000830152610bdd8184610b65565b905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b610c4681610993565b82525050565b6000610c588383610c3d565b60208301905092915050565b6000602082019050919050565b6000610c7c82610c11565b610c868185610c1c565b9350610c9183610c2d565b8060005b83811015610cc2578151610ca98882610c4c565b9750610cb483610c64565b925050600181019050610c95565b5085935050505092915050565b6000604083016000830151610ce76000860182610b31565b5060208301518482036020860152610cff8282610c71565b9150508091505092915050565b6000610d188383610ccf565b905092915050565b6000602082019050919050565b6000610d3882610be5565b610d428185610bf0565b935083602082028501610d5485610c01565b8060005b85811015610d905784840389528151610d718582610d0c565b9450610d7c83610d20565b925060208a01995050600181019050610d58565b50829750879550505050505092915050565b60006020820190508181036000830152610dbc8184610d2d565b905092915050565b610dcd81610b1f565b8114610dd857600080fd5b50565b600081359050610dea81610dc4565b92915050565b600060208284031215610e0657610e0561098e565b5b6000610e1484828501610ddb565b91505092915050565b600082825260208201905092915050565b6000610e3982610c11565b610e438185610e1d565b9350610e4e83610c2d565b8060005b83811015610e7f578151610e668882610c4c565b9750610e7183610c64565b925050600181019050610e52565b5085935050505092915050565b60006020820190508181036000830152610ea68184610e2e565b905092915050565b610eb781610b1f565b82525050565b6000602082019050610ed26000830184610eae565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000610f7a82610f65565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610fac57610fab610f36565b5b60018201905091905056fea26469706673582212208ae89fa3fa833ae3bf910fdf8729e07a04a52370d167a31178eb59048c8e75e764736f6c63430008110033"; type DiamondLoupeFacetConstructorParams = | [signer?: Signer] diff --git a/typings/factories/Diamond__factory.ts b/typings/factories/Diamond__factory.ts index 9a3ea5c7..c61325e0 100644 --- a/typings/factories/Diamond__factory.ts +++ b/typings/factories/Diamond__factory.ts @@ -32,6 +32,57 @@ const _abi = [ stateMutability: "payable", type: "fallback", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__e3a4c27e", + type: "bytes8", + }, + ], + name: "c_e3a4c27e", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__e3a4c27e", + type: "bytes8", + }, + ], + name: "c_falsee3a4c27e", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__e3a4c27e", + type: "bytes8", + }, + ], + name: "c_truee3a4c27e", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { stateMutability: "payable", type: "receive", @@ -39,7 +90,7 @@ const _abi = [ ]; const _bytecode = - "0x60806040526040516200497d3803806200497d8339818101604052810190620000299190620018d0565b6200003f82620001f760201b620001671760201c565b6000600167ffffffffffffffff8111156200005f576200005e62001917565b5b6040519080825280602002602001820160405280156200009c57816020015b620000886200181a565b8152602001906001900390816200007e5790505b5090506000600167ffffffffffffffff811115620000bf57620000be62001917565b5b604051908082528060200260200182016040528015620000ee5781602001602082028036833780820191505090505b509050631f931c1c60e01b8160008151811062000110576200010f62001946565b5b60200260200101907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152505060405180606001604052808473ffffffffffffffffffffffffffffffffffffffff168152602001600060028111156200019a576200019962001975565b5b81526020018281525082600081518110620001ba57620001b962001946565b5b6020026020010181905250620001ed82600060405180602001604052806000815250620002d660201b6200023e1760201c565b50505050620025c1565b6000620002096200055a60201b60201c565b905060008160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b60005b835181101562000505576000848281518110620002fb57620002fa62001946565b5b60200260200101516020015190506000600281111562000320576200031f62001975565b5b81600281111562000336576200033562001975565b5b0362000396576200039085838151811062000356576200035562001946565b5b60200260200101516000015186848151811062000378576200037762001946565b5b6020026020010151604001516200058760201b60201c565b620004ee565b60016002811115620003ad57620003ac62001975565b5b816002811115620003c357620003c262001975565b5b0362000423576200041d858381518110620003e357620003e262001946565b5b60200260200101516000015186848151811062000405576200040462001946565b5b6020026020010151604001516200082960201b60201c565b620004ed565b60028081111562000439576200043862001975565b5b8160028111156200044f576200044e62001975565b5b03620004af57620004a98583815181106200046f576200046e62001946565b5b60200260200101516000015186848151811062000491576200049062001946565b5b60200260200101516040015162000add60201b60201c565b620004ec565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004e39062001a2b565b60405180910390fd5b5b5b508080620004fc9062001a86565b915050620002d9565b507f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6738383836040516200053b9392919062001e00565b60405180910390a162000555828262000c8560201b60201c565b505050565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b6000815111620005ce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005c59062001ec1565b60405180910390fd5b6000620005e06200055a60201b60201c565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000654576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200064b9062001f59565b60405180910390fd5b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905090506000816bffffffffffffffffffffffff1603620006ca57620006c9828562000eb360201b60201c565b5b60005b835181101562000822576000848281518110620006ef57620006ee62001946565b5b602002602001015190506000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614620007e6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007dd9062001ff1565b60405180910390fd5b620007fa8583868a62000f9760201b60201c565b838062000807906200202b565b94505050508080620008199062001a86565b915050620006cd565b5050505050565b600081511162000870576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008679062001ec1565b60405180910390fd5b6000620008826200055a60201b60201c565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620008f6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008ed9062001f59565b60405180910390fd5b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905090506000816bffffffffffffffffffffffff16036200096c576200096b828562000eb360201b60201c565b5b60005b835181101562000ad657600084828151811062000991576200099062001946565b5b602002602001015190506000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000a87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a7e90620020da565b60405180910390fd5b62000a9a8582846200114460201b60201c565b62000aae8583868a62000f9760201b60201c565b838062000abb906200202b565b9450505050808062000acd9062001a86565b9150506200096f565b5050505050565b600081511162000b24576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b1b9062001ec1565b60405180910390fd5b600062000b366200055a60201b60201c565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161462000baa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ba19062002172565b60405180910390fd5b60005b825181101562000c7f57600083828151811062000bcf5762000bce62001946565b5b602002602001015190506000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905062000c678482846200114460201b60201c565b5050808062000c769062001a86565b91505062000bad565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000d0757600081511462000d01576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000cf8906200220a565b60405180910390fd5b62000eaf565b600081511162000d4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d4590620022a2565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161462000dae5762000dad826040518060600160405280602881526020016200493160289139620017c560201b60201c565b5b6000808373ffffffffffffffffffffffffffffffffffffffff168360405162000dd8919062002306565b600060405180830381855af49150503d806000811462000e15576040519150601f19603f3d011682016040523d82523d6000602084013e62000e1a565b606091505b50915091508162000eac5760008151111562000e6f57806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000e6691906200236b565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ea39062002405565b60405180910390fd5b50505b5050565b62000ede816040518060600160405280602481526020016200495960249139620017c560201b60201c565b81600201805490508260010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555081600201819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b81846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508360010160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018390806001815401808255809150506001900390600052602060002090600891828204019190066004029091909190916101000a81548163ffffffff021916908360e01c021790555080846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620011b6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620011ad906200249d565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362001227576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200121e9062002535565b60405180910390fd5b6000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050600060018560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905062001300919062002557565b90508082146200149b5760008560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001828154811062001365576200136462001946565b5b90600052602060002090600891828204019190066004029054906101000a900460e01b9050808660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018481548110620013e457620013e362001946565b5b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908360e01c021790555082866000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550505b8460010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805480620014f257620014f162002592565b5b60019003818190600052602060002090600891828204019190066004026101000a81549063ffffffff02191690559055846000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a8154906bffffffffffffffffffffffff0219169055505060008103620017be57600060018660020180549050620015df919062002557565b905060008660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050818114620017275760008760020183815481106200164d576200164c62001946565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508088600201838154811062001694576200169362001946565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818860010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550505b866002018054806200173e576200173d62002592565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590558660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000905550505b5050505050565b6000823b905060008111829062001814576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200180b91906200236b565b60405180910390fd5b50505050565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016000600281111562001859576200185862001975565b5b8152602001606081525090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062001898826200186b565b9050919050565b620018aa816200188b565b8114620018b657600080fd5b50565b600081519050620018ca816200189f565b92915050565b60008060408385031215620018ea57620018e962001866565b5b6000620018fa85828601620018b9565b92505060206200190d85828601620018b9565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600082825260208201905092915050565b7f4c69624469616d6f6e644375743a20496e636f7272656374204661636574437560008201527f74416374696f6e00000000000000000000000000000000000000000000000000602082015250565b600062001a13602783620019a4565b915062001a2082620019b5565b604082019050919050565b6000602082019050818103600083015262001a468162001a04565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b600062001a938262001a7c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820362001ac85762001ac762001a4d565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b62001b0a816200188b565b82525050565b6003811062001b245762001b2362001975565b5b50565b600081905062001b378262001b10565b919050565b600062001b498262001b27565b9050919050565b62001b5b8162001b3c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b62001bc48162001b8d565b82525050565b600062001bd8838362001bb9565b60208301905092915050565b6000602082019050919050565b600062001bfe8262001b61565b62001c0a818562001b6c565b935062001c178362001b7d565b8060005b8381101562001c4e57815162001c32888262001bca565b975062001c3f8362001be4565b92505060018101905062001c1b565b5085935050505092915050565b600060608301600083015162001c75600086018262001aff565b50602083015162001c8a602086018262001b50565b506040830151848203604086015262001ca4828262001bf1565b9150508091505092915050565b600062001cbf838362001c5b565b905092915050565b6000602082019050919050565b600062001ce18262001ad3565b62001ced818562001ade565b93508360208202850162001d018562001aef565b8060005b8581101562001d43578484038952815162001d21858262001cb1565b945062001d2e8362001cc7565b925060208a0199505060018101905062001d05565b50829750879550505050505092915050565b62001d60816200188b565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b8381101562001da257808201518184015260208101905062001d85565b60008484015250505050565b6000601f19601f8301169050919050565b600062001dcc8262001d66565b62001dd8818562001d71565b935062001dea81856020860162001d82565b62001df58162001dae565b840191505092915050565b6000606082019050818103600083015262001e1c818662001cd4565b905062001e2d602083018562001d55565b818103604083015262001e41818462001dbf565b9050949350505050565b7f4c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e206660008201527f6163657420746f20637574000000000000000000000000000000000000000000602082015250565b600062001ea9602b83620019a4565b915062001eb68262001e4b565b604082019050919050565b6000602082019050818103600083015262001edc8162001e9a565b9050919050565b7f4c69624469616d6f6e644375743a204164642066616365742063616e2774206260008201527f6520616464726573732830290000000000000000000000000000000000000000602082015250565b600062001f41602c83620019a4565b915062001f4e8262001ee3565b604082019050919050565b6000602082019050818103600083015262001f748162001f32565b9050919050565b7f4c69624469616d6f6e644375743a2043616e2774206164642066756e6374696f60008201527f6e207468617420616c7265616479206578697374730000000000000000000000602082015250565b600062001fd9603583620019a4565b915062001fe68262001f7b565b604082019050919050565b600060208201905081810360008301526200200c8162001fca565b9050919050565b60006bffffffffffffffffffffffff82169050919050565b6000620020388262002013565b91506bffffffffffffffffffffffff820362002059576200205862001a4d565b5b600182019050919050565b7f4c69624469616d6f6e644375743a2043616e2774207265706c6163652066756e60008201527f6374696f6e20776974682073616d652066756e6374696f6e0000000000000000602082015250565b6000620020c2603883620019a4565b9150620020cf8262002064565b604082019050919050565b60006020820190508181036000830152620020f581620020b3565b9050919050565b7f4c69624469616d6f6e644375743a2052656d6f7665206661636574206164647260008201527f657373206d757374206265206164647265737328302900000000000000000000602082015250565b60006200215a603683620019a4565b91506200216782620020fc565b604082019050919050565b600060208201905081810360008301526200218d816200214b565b9050919050565b7f4c69624469616d6f6e644375743a205f696e697420697320616464726573732860008201527f3029206275745f63616c6c64617461206973206e6f7420656d70747900000000602082015250565b6000620021f2603c83620019a4565b9150620021ff8262002194565b604082019050919050565b600060208201905081810360008301526200222581620021e3565b9050919050565b7f4c69624469616d6f6e644375743a205f63616c6c6461746120697320656d707460008201527f7920627574205f696e6974206973206e6f742061646472657373283029000000602082015250565b60006200228a603d83620019a4565b915062002297826200222c565b604082019050919050565b60006020820190508181036000830152620022bd816200227b565b9050919050565b600081905092915050565b6000620022dc8262001d66565b620022e88185620022c4565b9350620022fa81856020860162001d82565b80840191505092915050565b6000620023148284620022cf565b915081905092915050565b600081519050919050565b600062002337826200231f565b620023438185620019a4565b93506200235581856020860162001d82565b620023608162001dae565b840191505092915050565b600060208201905081810360008301526200238781846200232a565b905092915050565b7f4c69624469616d6f6e644375743a205f696e69742066756e6374696f6e20726560008201527f7665727465640000000000000000000000000000000000000000000000000000602082015250565b6000620023ed602683620019a4565b9150620023fa826200238f565b604082019050919050565b600060208201905081810360008301526200242081620023de565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f76652066756e6360008201527f74696f6e207468617420646f65736e2774206578697374000000000000000000602082015250565b600062002485603783620019a4565b9150620024928262002427565b604082019050919050565b60006020820190508181036000830152620024b88162002476565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f766520696d6d7560008201527f7461626c652066756e6374696f6e000000000000000000000000000000000000602082015250565b60006200251d602e83620019a4565b91506200252a82620024bf565b604082019050919050565b6000602082019050818103600083015262002550816200250e565b9050919050565b6000620025648262001a7c565b9150620025718362001a7c565b92508282039050818111156200258c576200258b62001a4d565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b61236080620025d16000396000f3fe60806040523661000b57005b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c9050809150600082600001600080357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610141576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610138906116c8565b60405180910390fd5b3660008037600080366000845af43d6000803e8060008114610162573d6000f35b3d6000fd5b600061017161046d565b905060008160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b60005b835181101561042257600084828151811061025f5761025e6116e8565b5b60200260200101516020015190506000600281111561028157610280611717565b5b81600281111561029457610293611717565b5b036102e4576102df8583815181106102af576102ae6116e8565b5b6020026020010151600001518684815181106102ce576102cd6116e8565b5b60200260200101516040015161049a565b61040e565b600160028111156102f8576102f7611717565b5b81600281111561030b5761030a611717565b5b0361035b57610356858381518110610326576103256116e8565b5b602002602001015160000151868481518110610345576103446116e8565b5b602002602001015160400151610711565b61040d565b60028081111561036e5761036d611717565b5b81600281111561038157610380611717565b5b036103d1576103cc85838151811061039c5761039b6116e8565b5b6020026020010151600001518684815181106103bb576103ba6116e8565b5b602002602001015160400151610992565b61040c565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610403906117b8565b60405180910390fd5b5b5b50808061041a90611811565b915050610241565b507f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67383838360405161045693929190611b7d565b60405180910390a16104688282610b1d565b505050565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b60008151116104de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d590611c34565b60405180910390fd5b60006104e861046d565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610559576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055090611cc6565b60405180910390fd5b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905090506000816bffffffffffffffffffffffff16036105c6576105c58285610d2f565b5b60005b835181101561070a5760008482815181106105e7576105e66116e8565b5b602002602001015190506000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d290611d58565b60405180910390fd5b6106e78583868a610e0a565b83806106f290611d90565b9450505050808061070290611811565b9150506105c9565b5050505050565b6000815111610755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074c90611c34565b60405180910390fd5b600061075f61046d565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c790611cc6565b60405180910390fd5b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905090506000816bffffffffffffffffffffffff160361083d5761083c8285610d2f565b5b60005b835181101561098b57600084828151811061085e5761085d6116e8565b5b602002602001015190506000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610951576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094890611e36565b60405180910390fd5b61095c858284610fb7565b6109688583868a610e0a565b838061097390611d90565b9450505050808061098390611811565b915050610840565b5050505050565b60008151116109d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cd90611c34565b60405180910390fd5b60006109e061046d565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610a51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4890611ec8565b60405180910390fd5b60005b8251811015610b17576000838281518110610a7257610a716116e8565b5b602002602001015190506000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050610b02848284610fb7565b50508080610b0f90611811565b915050610a54565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b9a576000815114610b95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8c90611f5a565b60405180910390fd5b610d2b565b6000815111610bde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd590611fec565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610c3457610c33826040518060600160405280602881526020016122df60289139611619565b5b6000808373ffffffffffffffffffffffffffffffffffffffff1683604051610c5c9190612048565b600060405180830381855af49150503d8060008114610c97576040519150601f19603f3d011682016040523d82523d6000602084013e610c9c565b606091505b509150915081610d2857600081511115610ced57806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce491906120a3565b60405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1f90612137565b60405180910390fd5b50505b5050565b610d518160405180606001604052806024815260200161230760249139611619565b81600201805490508260010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555081600201819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b81846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508360010160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018390806001815401808255809150506001900390600052602060002090600891828204019190066004029091909190916101000a81548163ffffffff021916908360e01c021790555080846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611026576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101d906121c9565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108b9061225b565b60405180910390fd5b6000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050600060018560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905061116b919061227b565b90508082146112ff5760008560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000182815481106111cc576111cb6116e8565b5b90600052602060002090600891828204019190066004029054906101000a900460e01b9050808660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018481548110611248576112476116e8565b5b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908360e01c021790555082866000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550505b8460010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805480611353576113526122af565b5b60019003818190600052602060002090600891828204019190066004026101000a81549063ffffffff02191690559055846000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a8154906bffffffffffffffffffffffff02191690555050600081036116125760006001866002018054905061143d919061227b565b905060008660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154905081811461157e5760008760020183815481106114a7576114a66116e8565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050808860020183815481106114eb576114ea6116e8565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818860010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550505b86600201805480611592576115916122af565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590558660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000905550505b5050505050565b6000823b9050600081118290611665576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165c91906120a3565b60405180910390fd5b50505050565b600082825260208201905092915050565b7f4469616d6f6e643a2046756e6374696f6e20646f6573206e6f74206578697374600082015250565b60006116b260208361166b565b91506116bd8261167c565b602082019050919050565b600060208201905081810360008301526116e1816116a5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4c69624469616d6f6e644375743a20496e636f7272656374204661636574437560008201527f74416374696f6e00000000000000000000000000000000000000000000000000602082015250565b60006117a260278361166b565b91506117ad82611746565b604082019050919050565b600060208201905081810360008301526117d181611795565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b600061181c82611807565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361184e5761184d6117d8565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006118b082611885565b9050919050565b6118c0816118a5565b82525050565b600381106118d7576118d6611717565b5b50565b60008190506118e8826118c6565b919050565b60006118f8826118da565b9050919050565b611908816118ed565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61196f8161193a565b82525050565b60006119818383611966565b60208301905092915050565b6000602082019050919050565b60006119a58261190e565b6119af8185611919565b93506119ba8361192a565b8060005b838110156119eb5781516119d28882611975565b97506119dd8361198d565b9250506001810190506119be565b5085935050505092915050565b6000606083016000830151611a1060008601826118b7565b506020830151611a2360208601826118ff565b5060408301518482036040860152611a3b828261199a565b9150508091505092915050565b6000611a5483836119f8565b905092915050565b6000602082019050919050565b6000611a7482611859565b611a7e8185611864565b935083602082028501611a9085611875565b8060005b85811015611acc5784840389528151611aad8582611a48565b9450611ab883611a5c565b925060208a01995050600181019050611a94565b50829750879550505050505092915050565b611ae7816118a5565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b27578082015181840152602081019050611b0c565b60008484015250505050565b6000601f19601f8301169050919050565b6000611b4f82611aed565b611b598185611af8565b9350611b69818560208601611b09565b611b7281611b33565b840191505092915050565b60006060820190508181036000830152611b978186611a69565b9050611ba66020830185611ade565b8181036040830152611bb88184611b44565b9050949350505050565b7f4c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e206660008201527f6163657420746f20637574000000000000000000000000000000000000000000602082015250565b6000611c1e602b8361166b565b9150611c2982611bc2565b604082019050919050565b60006020820190508181036000830152611c4d81611c11565b9050919050565b7f4c69624469616d6f6e644375743a204164642066616365742063616e2774206260008201527f6520616464726573732830290000000000000000000000000000000000000000602082015250565b6000611cb0602c8361166b565b9150611cbb82611c54565b604082019050919050565b60006020820190508181036000830152611cdf81611ca3565b9050919050565b7f4c69624469616d6f6e644375743a2043616e2774206164642066756e6374696f60008201527f6e207468617420616c7265616479206578697374730000000000000000000000602082015250565b6000611d4260358361166b565b9150611d4d82611ce6565b604082019050919050565b60006020820190508181036000830152611d7181611d35565b9050919050565b60006bffffffffffffffffffffffff82169050919050565b6000611d9b82611d78565b91506bffffffffffffffffffffffff8203611db957611db86117d8565b5b600182019050919050565b7f4c69624469616d6f6e644375743a2043616e2774207265706c6163652066756e60008201527f6374696f6e20776974682073616d652066756e6374696f6e0000000000000000602082015250565b6000611e2060388361166b565b9150611e2b82611dc4565b604082019050919050565b60006020820190508181036000830152611e4f81611e13565b9050919050565b7f4c69624469616d6f6e644375743a2052656d6f7665206661636574206164647260008201527f657373206d757374206265206164647265737328302900000000000000000000602082015250565b6000611eb260368361166b565b9150611ebd82611e56565b604082019050919050565b60006020820190508181036000830152611ee181611ea5565b9050919050565b7f4c69624469616d6f6e644375743a205f696e697420697320616464726573732860008201527f3029206275745f63616c6c64617461206973206e6f7420656d70747900000000602082015250565b6000611f44603c8361166b565b9150611f4f82611ee8565b604082019050919050565b60006020820190508181036000830152611f7381611f37565b9050919050565b7f4c69624469616d6f6e644375743a205f63616c6c6461746120697320656d707460008201527f7920627574205f696e6974206973206e6f742061646472657373283029000000602082015250565b6000611fd6603d8361166b565b9150611fe182611f7a565b604082019050919050565b6000602082019050818103600083015261200581611fc9565b9050919050565b600081905092915050565b600061202282611aed565b61202c818561200c565b935061203c818560208601611b09565b80840191505092915050565b60006120548284612017565b915081905092915050565b600081519050919050565b60006120758261205f565b61207f818561166b565b935061208f818560208601611b09565b61209881611b33565b840191505092915050565b600060208201905081810360008301526120bd818461206a565b905092915050565b7f4c69624469616d6f6e644375743a205f696e69742066756e6374696f6e20726560008201527f7665727465640000000000000000000000000000000000000000000000000000602082015250565b600061212160268361166b565b915061212c826120c5565b604082019050919050565b6000602082019050818103600083015261215081612114565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f76652066756e6360008201527f74696f6e207468617420646f65736e2774206578697374000000000000000000602082015250565b60006121b360378361166b565b91506121be82612157565b604082019050919050565b600060208201905081810360008301526121e2816121a6565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f766520696d6d7560008201527f7461626c652066756e6374696f6e000000000000000000000000000000000000602082015250565b6000612245602e8361166b565b9150612250826121e9565b604082019050919050565b6000602082019050818103600083015261227481612238565b9050919050565b600061228682611807565b915061229183611807565b92508282039050818111156122a9576122a86117d8565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfe4c69624469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f64654c69624469616d6f6e644375743a204e657720666163657420686173206e6f20636f6465a2646970667358221220305eabd09a504968137ac5539dead05c9347b2777b97892556acd6bd25b9766a64736f6c634300081100334c69624469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f64654c69624469616d6f6e644375743a204e657720666163657420686173206e6f20636f6465"; + "0x6080604052604051620076bd380380620076bd833981810160405281019062000029919062003222565b6200004567a7e6b32f9d93319460c01b6200032b60201b60201c565b620000616768f3360c480f308760c01b6200032b60201b60201c565b6200007d67cdf01ba336a2e7bb60c01b6200032b60201b60201c565b62000093826200032e60201b620003581760201c565b620000af67754cde6603f9473d60c01b6200032b60201b60201c565b620000cb67018e4e083eeab8c760c01b6200032b60201b60201c565b6000600167ffffffffffffffff811115620000eb57620000ea62003269565b5b6040519080825280602002602001820160405280156200012857816020015b620001146200316c565b8152602001906001900390816200010a5790505b5090506200014767dc402a1637fb2d5960c01b6200032b60201b60201c565b6200016367996371118cc6c3f760c01b6200032b60201b60201c565b6000600167ffffffffffffffff81111562000183576200018262003269565b5b604051908082528060200260200182016040528015620001b25781602001602082028036833780820191505090505b509050620001d167f99be39acddb239160c01b6200032b60201b60201c565b631f931c1c60e01b81600081518110620001f057620001ef62003298565b5b60200260200101907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815250506200025867e6bc06d236aa92e560c01b6200032b60201b60201c565b60405180606001604052808473ffffffffffffffffffffffffffffffffffffffff16815260200160006002811115620002965762000295620032c7565b5b81526020018281525082600081518110620002b657620002b562003298565b5b6020026020010181905250620002dd6753ea75fc60a9c1e960c01b6200032b60201b60201c565b620002f9678817ef405cc7854460c01b6200032b60201b60201c565b6200032182600060405180602001604052806000815250620004ed60201b620004cf1760201c565b5050505062003f13565b50565b6200034a674f69fffccbea1a6060c01b62000a6560201b60201c565b6200036667254a8afedf49a2bd60c01b62000a6560201b60201c565b620003826764ae761eae80994a60c01b62000a6560201b60201c565b60006200039462000a6860201b60201c565b9050620003b26728cf10db04b3ce6a60c01b62000a6560201b60201c565b620003ce67254c9c1d52a21ebf60c01b62000a6560201b60201c565b60008160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506200041367f8cb9d02f213dad260c01b62000a6560201b60201c565b828260040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200047267320b257c7ea8cea760c01b62000a6560201b60201c565b6200048e67a1ef30c006aa278260c01b62000a6560201b60201c565b8273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6200050967a19105344d9f01ff60c01b62000a6560201b60201c565b6200052567b64c935a270824d460c01b62000a6560201b60201c565b6200054167472298b363a8ccd460c01b62000a6560201b60201c565b60005b8351811015620009a0576200056a679f2b3e118cce749f60c01b62000a6560201b60201c565b6200058667d896c15712e4c99e60c01b62000a6560201b60201c565b60008482815181106200059e576200059d62003298565b5b6020026020010151602001519050620005c867e9e9e49fe14a781e60c01b62000a6560201b60201c565b620005e467c54028706882e3fd60c01b62000a6560201b60201c565b60006002811115620005fb57620005fa620032c7565b5b816002811115620006115762000610620032c7565b5b03620006c5576200063367f4728512f8de3aa360c01b62000a6560201b60201c565b6200064f6740469cb01cf2faa260c01b62000a6560201b60201c565b6200066b6721754418551a963060c01b62000a6560201b60201c565b620006bf85838151811062000685576200068462003298565b5b602002602001015160000151868481518110620006a757620006a662003298565b5b60200260200101516040015162000b0660201b60201c565b62000989565b620006e167964166c6a112694260c01b62000a6560201b60201c565b620006fd675cddae6a9e8d84f060c01b62000a6560201b60201c565b60016002811115620007145762000713620032c7565b5b8160028111156200072a5762000729620032c7565b5b03620007de576200074c676469914f5066ffc460c01b62000a6560201b60201c565b6200076867cf470716cadf00df60c01b62000a6560201b60201c565b6200078467f4605d17f3b1301c60c01b62000a6560201b60201c565b620007d88583815181106200079e576200079d62003298565b5b602002602001015160000151868481518110620007c057620007bf62003298565b5b6020026020010151604001516200112e60201b60201c565b62000988565b620007fa67e72a92bcd515975b60c01b62000a6560201b60201c565b6200081667b1e174fb1bb1b85360c01b62000a6560201b60201c565b6002808111156200082c576200082b620032c7565b5b816002811115620008425762000841620032c7565b5b03620008f6576200086467db0f598297fb7fbc60c01b62000a6560201b60201c565b62000880671a55e89439142ee060c01b62000a6560201b60201c565b6200089c6711513d20488a52e060c01b62000a6560201b60201c565b620008f0858381518110620008b657620008b562003298565b5b602002602001015160000151868481518110620008d857620008d762003298565b5b602002602001015160400151620017a060201b60201c565b62000987565b6200091267cf3e056f531577e760c01b62000a6560201b60201c565b6200092e671903ab370305c25960c01b62000a6560201b60201c565b6200094a676af2c3acde0bf38760c01b62000a6560201b60201c565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200097e906200337d565b60405180910390fd5b5b5b5080806200099790620033d8565b91505062000544565b50620009bd67dc19ebbaa4095b3160c01b62000a6560201b60201c565b620009d9678571dd875084a3e060c01b62000a6560201b60201c565b7f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67383838360405162000a0e9392919062003752565b60405180910390a162000a3267faecfc839f48e07b60c01b62000a6560201b60201c565b62000a4e6792cae661f317b4ce60c01b62000a6560201b60201c565b62000a60828262001b5c60201b60201c565b505050565b50565b600062000a86674f9afbb757d80e6360c01b62000a6560201b60201c565b62000aa2674b823103125da15660c01b62000a6560201b60201c565b62000abe674ab715c231c1608d60c01b62000a6560201b60201c565b60007fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c905062000aff67982d9bb86701efa860c01b62000a6560201b60201c565b8091505090565b62000b2267cc97399e32da22a560c01b62000a6560201b60201c565b62000b3e67021d8eb4be5452a860c01b62000a6560201b60201c565b62000b5a678748409130ac41fa60c01b62000a6560201b60201c565b62000b7667ccd015372bd45b9c60c01b62000a6560201b60201c565b600081511162000bbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000bb49062003813565b60405180910390fd5b62000bd967d0bcd87037df4e5a60c01b62000a6560201b60201c565b62000bf56777b6df3c8e2ebf4660c01b62000a6560201b60201c565b62000c116755a810a63d06fcdd60c01b62000a6560201b60201c565b600062000c2362000a6860201b60201c565b905062000c416747e187c4c65f108c60c01b62000a6560201b60201c565b62000c5d670bde1222440aa4dd60c01b62000a6560201b60201c565b62000c7967f7810a880d4fe12d60c01b62000a6560201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000ceb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ce290620038ab565b60405180910390fd5b62000d07676e4814773ca1e6f960c01b62000a6560201b60201c565b62000d2367abb5961c588ff7dc60c01b62000a6560201b60201c565b62000d3f6775b1393f5ceb0a4860c01b62000a6560201b60201c565b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050905062000da76779cb28ccf660334260c01b62000a6560201b60201c565b62000dc3671a64ec3fd612cafd60c01b62000a6560201b60201c565b6000816bffffffffffffffffffffffff160362000e465762000df6672a23378c0ae85db760c01b62000a6560201b60201c565b62000e12670288376b7f20f78660c01b62000a6560201b60201c565b62000e2e67d14bbd8396b718cd60c01b62000a6560201b60201c565b62000e4082856200212c60201b60201c565b62000e63565b62000e62675eb466f90a620b0f60c01b62000a6560201b60201c565b5b62000e7f67fcd8a57751c34a1160c01b62000a6560201b60201c565b62000e9b67c014c8ff907100cb60c01b62000a6560201b60201c565b60005b8351811015620011275762000ec4677134da3b2ea217c360c01b62000a6560201b60201c565b62000ee0678ef84b1f8594c55e60c01b62000a6560201b60201c565b600084828151811062000ef85762000ef762003298565b5b6020026020010151905062000f1e67e6627f219f43163560c01b62000a6560201b60201c565b62000f3a672b0989e1ce351d2c60c01b62000a6560201b60201c565b6000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905062000fd1678edc0ee3600e6f7160c01b62000a6560201b60201c565b62000fed67acff68f00aaf198060c01b62000a6560201b60201c565b62001009678e7e9da0f87df0c460c01b62000a6560201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146200107b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620010729062003943565b60405180910390fd5b6200109767de5c2f108b7a76ad60c01b62000a6560201b60201c565b620010b3679df301acb4b4e7b560c01b62000a6560201b60201c565b620010cf67d5dd90cfdfe4af7760c01b62000a6560201b60201c565b620010e38583868a620022b860201b60201c565b620010ff67b77905e3474e693060c01b62000a6560201b60201c565b83806200110c906200397d565b945050505080806200111e90620033d8565b91505062000e9e565b5050505050565b6200114a672faab333134f8f2b60c01b62000a6560201b60201c565b6200116667f1aef7c8a9655d5360c01b62000a6560201b60201c565b6200118267d203ed109c17319660c01b62000a6560201b60201c565b6200119e67f4734d8378f4311060c01b62000a6560201b60201c565b6000815111620011e5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620011dc9062003813565b60405180910390fd5b620012016754602ce0fe5a43bf60c01b62000a6560201b60201c565b6200121d67f46efb4b2c2c709e60c01b62000a6560201b60201c565b6200123967610110a281fa82c760c01b62000a6560201b60201c565b60006200124b62000a6860201b60201c565b90506200126967edc9c99031ecb10d60c01b62000a6560201b60201c565b620012856767fe440300c94a3460c01b62000a6560201b60201c565b620012a16784ec279df893a23160c01b62000a6560201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362001313576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200130a90620038ab565b60405180910390fd5b6200132f678fb1a303062b7c3660c01b62000a6560201b60201c565b6200134b672659fafa49e6fe9a60c01b62000a6560201b60201c565b6200136767151721b3adf3095360c01b62000a6560201b60201c565b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805490509050620013cf6747aaf74cd533212060c01b62000a6560201b60201c565b620013eb6703de6b9bbbb4e65460c01b62000a6560201b60201c565b6000816bffffffffffffffffffffffff16036200146e576200141e677f40383c8703753660c01b62000a6560201b60201c565b6200143a67bee7ffe190c4ad3c60c01b62000a6560201b60201c565b620014566755bd06ec28bd8be360c01b62000a6560201b60201c565b6200146882856200212c60201b60201c565b6200148b565b6200148a67dd6dd2122982fcbd60c01b62000a6560201b60201c565b5b620014a767c00fc6f5b3cfec0760c01b62000a6560201b60201c565b620014c36712c602b6c749bc1660c01b62000a6560201b60201c565b60005b83518110156200179957620014ec67b01c581fb6bf76d460c01b62000a6560201b60201c565b620015086772bf81d7d68cd5cc60c01b62000a6560201b60201c565b600084828151811062001520576200151f62003298565b5b602002602001015190506200154667f378c2c5d2ac591860c01b62000a6560201b60201c565b62001562672abe9487f14424bf60c01b62000a6560201b60201c565b6000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050620015f967c938893e73b6cc8660c01b62000a6560201b60201c565b6200161567b830452a6260fe5860c01b62000a6560201b60201c565b6200163167732490d4bd014f1160c01b62000a6560201b60201c565b8673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620016a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620016999062003a2c565b60405180910390fd5b620016be67307ef01dc603673f60c01b62000a6560201b60201c565b620016da67df9b9ad53f3498bb60c01b62000a6560201b60201c565b620016f667ef74a1c742a2ef4b60c01b62000a6560201b60201c565b62001709858284620024f160201b60201c565b620017256709eba8384d15433760c01b62000a6560201b60201c565b6200174167eb34f0e39cc002be60c01b62000a6560201b60201c565b620017558583868a620022b860201b60201c565b6200177167c8e26e167d4df53e60c01b62000a6560201b60201c565b83806200177e906200397d565b945050505080806200179090620033d8565b915050620014c6565b5050505050565b620017bc67484f249b41b9afdf60c01b62000a6560201b60201c565b620017d8672afee721a436189e60c01b62000a6560201b60201c565b620017f46790c0f4303981d53860c01b62000a6560201b60201c565b6200181067b69809b50e9b29b160c01b62000a6560201b60201c565b600081511162001857576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200184e9062003813565b60405180910390fd5b620018736703449e0de1d16e1460c01b62000a6560201b60201c565b6200188f67043931a3bf63a76460c01b62000a6560201b60201c565b620018ab6783eac4de134a189760c01b62000a6560201b60201c565b6000620018bd62000a6860201b60201c565b9050620018db676fa9503e3a33edf160c01b62000a6560201b60201c565b620018f767565ff8422e73f48260c01b62000a6560201b60201c565b6200191367a43a53c1c8fdb01860c01b62000a6560201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161462001985576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200197c9062003ac4565b60405180910390fd5b620019a167a83ec82cf318ce9960c01b62000a6560201b60201c565b620019bd6729de67dbee8a781960c01b62000a6560201b60201c565b620019d96778ae44bab32ab16d60c01b62000a6560201b60201c565b60005b825181101562001b565762001a0267c86ec2c930ebf39060c01b62000a6560201b60201c565b62001a1e67bb2f8bac9067d0d960c01b62000a6560201b60201c565b600083828151811062001a365762001a3562003298565b5b6020026020010151905062001a5c67afdb7f7eafa2419160c01b62000a6560201b60201c565b62001a7867336a3f69f07dbd0a60c01b62000a6560201b60201c565b6000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905062001b0f67a9a5f6b739625a6060c01b62000a6560201b60201c565b62001b2b67fd046ea59cd94d2a60c01b62000a6560201b60201c565b62001b3e848284620024f160201b60201c565b5050808062001b4d90620033d8565b915050620019dc565b50505050565b62001b7867029e1a56337e048460c01b62000a6560201b60201c565b62001b9467165337675d3a848660c01b62000a6560201b60201c565b62001bb0674613682e59aed10a60c01b62000a6560201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362001cbe5762001c016788e41d767c30804a60c01b62000a6560201b60201c565b62001c1d67509782c75193bd1560c01b62000a6560201b60201c565b62001c39677c55baba9bedefc760c01b62000a6560201b60201c565b62001c556779b630e4a1a501b160c01b62000a6560201b60201c565b600081511462001c9c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162001c939062003b5c565b60405180910390fd5b62001cb8671cf5cba47462738c60c01b62000a6560201b60201c565b62002128565b62001cda67d87fba57f9fd56d260c01b62000a6560201b60201c565b62001cf66785ecbfea545b551c60c01b62000a6560201b60201c565b62001d12675a99520875f542d360c01b62000a6560201b60201c565b62001d2e677335d4909eb3f6ed60c01b62000a6560201b60201c565b600081511162001d75576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162001d6c9062003bf4565b60405180910390fd5b62001d9167e2308116fde49ef660c01b62000a6560201b60201c565b62001dad67e68a1e15bfb15c1560c01b62000a6560201b60201c565b62001dc967e2f9c57761f027da60c01b62000a6560201b60201c565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161462001e825762001e19677e43db5cf3dda55a60c01b62000a6560201b60201c565b62001e3567f9079825f16296d860c01b62000a6560201b60201c565b62001e516722169a84f6e6288860c01b62000a6560201b60201c565b62001e7c8260405180606001604052806028815260200162007671602891396200303760201b60201c565b62001e9f565b62001e9e6756028f6713aeb61660c01b62000a6560201b60201c565b5b62001ebb678b5d37b494e8790c60c01b62000a6560201b60201c565b62001ed76732f3ff1c4d01de4c60c01b62000a6560201b60201c565b6000808373ffffffffffffffffffffffffffffffffffffffff168360405162001f01919062003c58565b600060405180830381855af49150503d806000811462001f3e576040519150601f19603f3d011682016040523d82523d6000602084013e62001f43565b606091505b509150915062001f6467cb519b28cdf2316460c01b62000a6560201b60201c565b62001f8067d3126d202060687460c01b62000a6560201b60201c565b81620021095762001fa26713957e4282cdd48760c01b62000a6560201b60201c565b62001fbe676bcab06e51e2612c60c01b62000a6560201b60201c565b62001fda67d3bfca2e5aa4d84960c01b62000a6560201b60201c565b600081511115620020785762002001673aa967c1a865c9c260c01b62000a6560201b60201c565b6200201d67f27acd53282addda60c01b62000a6560201b60201c565b620020396780ab759cddda78d060c01b62000a6560201b60201c565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200206f919062003cbd565b60405180910390fd5b6200209467a434d1c24e3903bc60c01b62000a6560201b60201c565b620020b067d32e3505412c44c560c01b62000a6560201b60201c565b620020cc677d8323cb74d7c2d860c01b62000a6560201b60201c565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620021009062003d57565b60405180910390fd5b6200212567bc6651a6d16ea71460c01b62000a6560201b60201c565b50505b5050565b620021486745cff900de072b7660c01b62000a6560201b60201c565b6200216467ac3e31ef1ea5c74960c01b62000a6560201b60201c565b62002180673364688f11db6d0d60c01b62000a6560201b60201c565b620021ab8160405180606001604052806024815260200162007699602491396200303760201b60201c565b620021c767b9f39a1cc8adecc260c01b62000a6560201b60201c565b81600201805490508260010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550620022336718823160317e019160c01b62000a6560201b60201c565b6200224f676ae1118a96d2a90560c01b62000a6560201b60201c565b81600201819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b620022d467a2899c53551cdd3760c01b62000a6560201b60201c565b620022f0678197d74e06e4145f60c01b62000a6560201b60201c565b81846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555062002391677d99602b18ea589060c01b62000a6560201b60201c565b620023ad67351b6ed487ae748960c01b62000a6560201b60201c565b8360010160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018390806001815401808255809150506001900390600052602060002090600891828204019190066004029091909190916101000a81548163ffffffff021916908360e01c02179055506200245667c24c5f99c230f00760c01b62000a6560201b60201c565b80846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6200250d6787c03a3a3424540460c01b62000a6560201b60201c565b62002529672e3806f37bc3a9d460c01b62000a6560201b60201c565b62002545678d411e0bbad3542c60c01b62000a6560201b60201c565b620025616726e5377f8db7750360c01b62000a6560201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620025d3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620025ca9062003def565b60405180910390fd5b620025ef67ebcad92e55ad094460c01b62000a6560201b60201c565b6200260b6751364413e637bba560c01b62000a6560201b60201c565b620026276792673f376289e6e260c01b62000a6560201b60201c565b6200264367f72487d3a8cf4ac460c01b62000a6560201b60201c565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620026b4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620026ab9062003e87565b60405180910390fd5b620026d067a4c3c236bcab394860c01b62000a6560201b60201c565b620026ec677e1962b66805ad7060c01b62000a6560201b60201c565b62002708670d999328d8a5d9c360c01b62000a6560201b60201c565b6000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050620027a567d10337e1e2ecfc3960c01b62000a6560201b60201c565b620027c1677b893f30fdd7ad7060c01b62000a6560201b60201c565b600060018560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905062002819919062003ea9565b90506200283767bb5bf925ceece87660c01b62000a6560201b60201c565b62002853676df862371a13aaa560c01b62000a6560201b60201c565b80821462002a7d576200287767156a8665fdd7526f60c01b62000a6560201b60201c565b62002893673cefa8bc28e7d12860c01b62000a6560201b60201c565b620028af67bdc380bd85401db960c01b62000a6560201b60201c565b60008560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000182815481106200290a576200290962003298565b5b90600052602060002090600891828204019190066004029054906101000a900460e01b90506200294b671de77bf8f010eaec60c01b62000a6560201b60201c565b808660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018481548110620029a557620029a462003298565b5b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908360e01c0217905550620029f1673af62f9c8f759fb160c01b62000a6560201b60201c565b82866000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055505062002a9a565b62002a99671d9b423266d067f060c01b62000a6560201b60201c565b5b62002ab667018034db5579529460c01b62000a6560201b60201c565b62002ad267a1c9b3117b7c6ab660c01b62000a6560201b60201c565b8460010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180548062002b295762002b2862003ee4565b5b60019003818190600052602060002090600891828204019190066004026101000a81549063ffffffff0219169055905562002b7567559997c386b3648460c01b62000a6560201b60201c565b846000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a8154906bffffffffffffffffffffffff0219169055505062002c2d6760a723ea0e7e1d4860c01b62000a6560201b60201c565b62002c4967ff433d7c2e2ac4be60c01b62000a6560201b60201c565b60008103620030135762002c6e6762db4abf7f19cb2060c01b62000a6560201b60201c565b62002c8a67efe6f413d09d1ebd60c01b62000a6560201b60201c565b62002ca667ec471a641a3edf7960c01b62000a6560201b60201c565b60006001866002018054905062002cbe919062003ea9565b905062002cdb6622a131c51aff2c60c01b62000a6560201b60201c565b62002cf767919cfbc3e76423a760c01b62000a6560201b60201c565b60008660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154905062002d5c674e9eba62f8a28b9860c01b62000a6560201b60201c565b62002d786799c973d204243fa060c01b62000a6560201b60201c565b81811462002f065762002d9c673c79f4e3584d9a5960c01b62000a6560201b60201c565b62002db867990168f15e45b6b860c01b62000a6560201b60201c565b62002dd4678582ef208a32dc4260c01b62000a6560201b60201c565b600087600201838154811062002def5762002dee62003298565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905062002e38671085af932ae9ef7260c01b62000a6560201b60201c565b8088600201838154811062002e525762002e5162003298565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062002eb667ad58108eb86eb21760c01b62000a6560201b60201c565b818860010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505062002f23565b62002f2267804be83a13f0191a60c01b62000a6560201b60201c565b5b62002f3f67b1f28e33128b33c960c01b62000a6560201b60201c565b62002f5b67c4cd68f75da79ff060c01b62000a6560201b60201c565b8660020180548062002f725762002f7162003ee4565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905562002fc367a379df54f7bb9fb460c01b62000a6560201b60201c565b8660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009055505062003030565b6200302f671627b1de00b56a1b60c01b62000a6560201b60201c565b5b5050505050565b6200305367f91685f166b890e160c01b62000a6560201b60201c565b6200306f672a44665c1fa886a160c01b62000a6560201b60201c565b6200308b6756e8a556d62b0f5e60c01b62000a6560201b60201c565b6000620030a967996ed809f12ff03160c01b62000a6560201b60201c565b823b9050620030c96709c9d04de4f50a1e60c01b62000a6560201b60201c565b620030e567b71747c1488d4acd60c01b62000a6560201b60201c565b6200310167f052a96327eb0abf60c01b62000a6560201b60201c565b6000811182906200314a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162003141919062003cbd565b60405180910390fd5b506200316767b956b25dc409113860c01b62000a6560201b60201c565b505050565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160006002811115620031ab57620031aa620032c7565b5b8152602001606081525090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620031ea82620031bd565b9050919050565b620031fc81620031dd565b81146200320857600080fd5b50565b6000815190506200321c81620031f1565b92915050565b600080604083850312156200323c576200323b620031b8565b5b60006200324c858286016200320b565b92505060206200325f858286016200320b565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600082825260208201905092915050565b7f4c69624469616d6f6e644375743a20496e636f7272656374204661636574437560008201527f74416374696f6e00000000000000000000000000000000000000000000000000602082015250565b600062003365602783620032f6565b9150620033728262003307565b604082019050919050565b60006020820190508181036000830152620033988162003356565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000620033e582620033ce565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036200341a57620034196200339f565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6200345c81620031dd565b82525050565b60038110620034765762003475620032c7565b5b50565b6000819050620034898262003462565b919050565b60006200349b8262003479565b9050919050565b620034ad816200348e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6200351681620034df565b82525050565b60006200352a83836200350b565b60208301905092915050565b6000602082019050919050565b60006200355082620034b3565b6200355c8185620034be565b93506200356983620034cf565b8060005b83811015620035a05781516200358488826200351c565b9750620035918362003536565b9250506001810190506200356d565b5085935050505092915050565b6000606083016000830151620035c7600086018262003451565b506020830151620035dc6020860182620034a2565b5060408301518482036040860152620035f6828262003543565b9150508091505092915050565b6000620036118383620035ad565b905092915050565b6000602082019050919050565b6000620036338262003425565b6200363f818562003430565b935083602082028501620036538562003441565b8060005b8581101562003695578484038952815162003673858262003603565b9450620036808362003619565b925060208a0199505060018101905062003657565b50829750879550505050505092915050565b620036b281620031dd565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015620036f4578082015181840152602081019050620036d7565b60008484015250505050565b6000601f19601f8301169050919050565b60006200371e82620036b8565b6200372a8185620036c3565b93506200373c818560208601620036d4565b620037478162003700565b840191505092915050565b600060608201905081810360008301526200376e818662003626565b90506200377f6020830185620036a7565b818103604083015262003793818462003711565b9050949350505050565b7f4c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e206660008201527f6163657420746f20637574000000000000000000000000000000000000000000602082015250565b6000620037fb602b83620032f6565b915062003808826200379d565b604082019050919050565b600060208201905081810360008301526200382e81620037ec565b9050919050565b7f4c69624469616d6f6e644375743a204164642066616365742063616e2774206260008201527f6520616464726573732830290000000000000000000000000000000000000000602082015250565b600062003893602c83620032f6565b9150620038a08262003835565b604082019050919050565b60006020820190508181036000830152620038c68162003884565b9050919050565b7f4c69624469616d6f6e644375743a2043616e2774206164642066756e6374696f60008201527f6e207468617420616c7265616479206578697374730000000000000000000000602082015250565b60006200392b603583620032f6565b91506200393882620038cd565b604082019050919050565b600060208201905081810360008301526200395e816200391c565b9050919050565b60006bffffffffffffffffffffffff82169050919050565b60006200398a8262003965565b91506bffffffffffffffffffffffff8203620039ab57620039aa6200339f565b5b600182019050919050565b7f4c69624469616d6f6e644375743a2043616e2774207265706c6163652066756e60008201527f6374696f6e20776974682073616d652066756e6374696f6e0000000000000000602082015250565b600062003a14603883620032f6565b915062003a2182620039b6565b604082019050919050565b6000602082019050818103600083015262003a478162003a05565b9050919050565b7f4c69624469616d6f6e644375743a2052656d6f7665206661636574206164647260008201527f657373206d757374206265206164647265737328302900000000000000000000602082015250565b600062003aac603683620032f6565b915062003ab98262003a4e565b604082019050919050565b6000602082019050818103600083015262003adf8162003a9d565b9050919050565b7f4c69624469616d6f6e644375743a205f696e697420697320616464726573732860008201527f3029206275745f63616c6c64617461206973206e6f7420656d70747900000000602082015250565b600062003b44603c83620032f6565b915062003b518262003ae6565b604082019050919050565b6000602082019050818103600083015262003b778162003b35565b9050919050565b7f4c69624469616d6f6e644375743a205f63616c6c6461746120697320656d707460008201527f7920627574205f696e6974206973206e6f742061646472657373283029000000602082015250565b600062003bdc603d83620032f6565b915062003be98262003b7e565b604082019050919050565b6000602082019050818103600083015262003c0f8162003bcd565b9050919050565b600081905092915050565b600062003c2e82620036b8565b62003c3a818562003c16565b935062003c4c818560208601620036d4565b80840191505092915050565b600062003c66828462003c21565b915081905092915050565b600081519050919050565b600062003c898262003c71565b62003c958185620032f6565b935062003ca7818560208601620036d4565b62003cb28162003700565b840191505092915050565b6000602082019050818103600083015262003cd9818462003c7c565b905092915050565b7f4c69624469616d6f6e644375743a205f696e69742066756e6374696f6e20726560008201527f7665727465640000000000000000000000000000000000000000000000000000602082015250565b600062003d3f602683620032f6565b915062003d4c8262003ce1565b604082019050919050565b6000602082019050818103600083015262003d728162003d30565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f76652066756e6360008201527f74696f6e207468617420646f65736e2774206578697374000000000000000000602082015250565b600062003dd7603783620032f6565b915062003de48262003d79565b604082019050919050565b6000602082019050818103600083015262003e0a8162003dc8565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f766520696d6d7560008201527f7461626c652066756e6374696f6e000000000000000000000000000000000000602082015250565b600062003e6f602e83620032f6565b915062003e7c8262003e11565b604082019050919050565b6000602082019050818103600083015262003ea28162003e60565b9050919050565b600062003eb682620033ce565b915062003ec383620033ce565b925082820390508181111562003ede5762003edd6200339f565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b61374e8062003f236000396000f3fe6080604052600436106100385760003560e01c806353a845b5146102a0578063926cd86d146102dd578063e8fa136a146103065761003f565b3661003f57005b6100536711f9a5eb36163b8960c01b610343565b61006767dbe2beb916fa8a5b60c01b610343565b61007b6790d1a3cb3ba44ee360c01b610343565b6000610091674da9ab19ea0baaeb60c01b610343565b6100a567979b87787adfcc6f60c01b610343565b60007fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90506100de67c7c975d955274fd260c01b610343565b8091506100f567bcae6db60f573e9a60c01b610343565b61010967ca1671d26216c11160c01b610343565b600082600001600080357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506101bb6792d906f4ab70537060c01b610343565b6101cf675faf97112e5c11e260c01b610343565b6101e367f10e8643be83266d60c01b610343565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610252576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610249906129f6565b60405180910390fd5b61026667e8144acc2819f60560c01b610343565b61027a6767619bab0f74d44660c01b610343565b3660008037600080366000845af43d6000803e806000811461029b573d6000f35b3d6000fd5b3480156102ac57600080fd5b506102c760048036038101906102c29190612a73565b610346565b6040516102d49190612abb565b60405180910390f35b3480156102e957600080fd5b5061030460048036038101906102ff9190612a73565b610343565b005b34801561031257600080fd5b5061032d60048036038101906103289190612a73565b610351565b60405161033a9190612abb565b60405180910390f35b50565b600060019050919050565b6000919050565b61036c674f69fffccbea1a6060c01b61091a565b61038067254a8afedf49a2bd60c01b61091a565b6103946764ae761eae80994a60c01b61091a565b600061039e61091d565b90506103b46728cf10db04b3ce6a60c01b61091a565b6103c867254c9c1d52a21ebf60c01b61091a565b60008160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061040567f8cb9d02f213dad260c01b61091a565b828260040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061045c67320b257c7ea8cea760c01b61091a565b61047067a1ef30c006aa278260c01b61091a565b8273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6104e367a19105344d9f01ff60c01b61091a565b6104f767b64c935a270824d460c01b61091a565b61050b67472298b363a8ccd460c01b61091a565b60005b835181101561087f5761052b679f2b3e118cce749f60c01b61091a565b61053f67d896c15712e4c99e60c01b61091a565b600084828151811061055457610553612ad6565b5b602002602001015160200151905061057667e9e9e49fe14a781e60c01b61091a565b61058a67c54028706882e3fd60c01b61091a565b6000600281111561059e5761059d612b05565b5b8160028111156105b1576105b0612b05565b5b0361063d576105ca67f4728512f8de3aa360c01b61091a565b6105de6740469cb01cf2faa260c01b61091a565b6105f26721754418551a963060c01b61091a565b61063885838151811061060857610607612ad6565b5b60200260200101516000015186848151811061062757610626612ad6565b5b60200260200101516040015161099b565b61086b565b61065167964166c6a112694260c01b61091a565b610665675cddae6a9e8d84f060c01b61091a565b6001600281111561067957610678612b05565b5b81600281111561068c5761068b612b05565b5b03610718576106a5676469914f5066ffc460c01b61091a565b6106b967cf470716cadf00df60c01b61091a565b6106cd67f4605d17f3b1301c60c01b61091a565b6107138583815181106106e3576106e2612ad6565b5b60200260200101516000015186848151811061070257610701612ad6565b5b602002602001015160400151610e97565b61086a565b61072c67e72a92bcd515975b60c01b61091a565b61074067b1e174fb1bb1b85360c01b61091a565b60028081111561075357610752612b05565b5b81600281111561076657610765612b05565b5b036107f25761077f67db0f598297fb7fbc60c01b61091a565b610793671a55e89439142ee060c01b61091a565b6107a76711513d20488a52e060c01b61091a565b6107ed8583815181106107bd576107bc612ad6565b5b6020026020010151600001518684815181106107dc576107db612ad6565b5b6020026020010151604001516113c5565b610869565b61080667cf3e056f531577e760c01b61091a565b61081a671903ab370305c25960c01b61091a565b61082e676af2c3acde0bf38760c01b61091a565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086090612ba6565b60405180910390fd5b5b5b50808061087790612bff565b91505061050e565b5061089467dc19ebbaa4095b3160c01b61091a565b6108a8678571dd875084a3e060c01b61091a565b7f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6738383836040516108db93929190612f6b565b60405180910390a16108f767faecfc839f48e07b60c01b61091a565b61090b6792cae661f317b4ce60c01b61091a565b61091582826116cc565b505050565b50565b6000610933674f9afbb757d80e6360c01b61091a565b610947674b823103125da15660c01b61091a565b61095b674ab715c231c1608d60c01b61091a565b60007fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c905061099467982d9bb86701efa860c01b61091a565b8091505090565b6109af67cc97399e32da22a560c01b61091a565b6109c367021d8eb4be5452a860c01b61091a565b6109d7678748409130ac41fa60c01b61091a565b6109eb67ccd015372bd45b9c60c01b61091a565b6000815111610a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2690613022565b60405180910390fd5b610a4367d0bcd87037df4e5a60c01b61091a565b610a576777b6df3c8e2ebf4660c01b61091a565b610a6b6755a810a63d06fcdd60c01b61091a565b6000610a7561091d565b9050610a8b6747e187c4c65f108c60c01b61091a565b610a9f670bde1222440aa4dd60c01b61091a565b610ab367f7810a880d4fe12d60c01b61091a565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b19906130b4565b60405180910390fd5b610b36676e4814773ca1e6f960c01b61091a565b610b4a67abb5961c588ff7dc60c01b61091a565b610b5e6775b1393f5ceb0a4860c01b61091a565b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805490509050610bbe6779cb28ccf660334260c01b61091a565b610bd2671a64ec3fd612cafd60c01b61091a565b6000816bffffffffffffffffffffffff1603610c3357610bfc672a23378c0ae85db760c01b61091a565b610c10670288376b7f20f78660c01b61091a565b610c2467d14bbd8396b718cd60c01b61091a565b610c2e8285611b77565b610c48565b610c47675eb466f90a620b0f60c01b61091a565b5b610c5c67fcd8a57751c34a1160c01b61091a565b610c7067c014c8ff907100cb60c01b61091a565b60005b8351811015610e9057610c90677134da3b2ea217c360c01b61091a565b610ca4678ef84b1f8594c55e60c01b61091a565b6000848281518110610cb957610cb8612ad6565b5b60200260200101519050610cd767e6627f219f43163560c01b61091a565b610ceb672b0989e1ce351d2c60c01b61091a565b6000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050610d7a678edc0ee3600e6f7160c01b61091a565b610d8e67acff68f00aaf198060c01b61091a565b610da2678e7e9da0f87df0c460c01b61091a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610e11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0890613146565b60405180910390fd5b610e2567de5c2f108b7a76ad60c01b61091a565b610e39679df301acb4b4e7b560c01b61091a565b610e4d67d5dd90cfdfe4af7760c01b61091a565b610e598583868a611cca565b610e6d67b77905e3474e693060c01b61091a565b8380610e789061317e565b94505050508080610e8890612bff565b915050610c73565b5050505050565b610eab672faab333134f8f2b60c01b61091a565b610ebf67f1aef7c8a9655d5360c01b61091a565b610ed367d203ed109c17319660c01b61091a565b610ee767f4734d8378f4311060c01b61091a565b6000815111610f2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2290613022565b60405180910390fd5b610f3f6754602ce0fe5a43bf60c01b61091a565b610f5367f46efb4b2c2c709e60c01b61091a565b610f6767610110a281fa82c760c01b61091a565b6000610f7161091d565b9050610f8767edc9c99031ecb10d60c01b61091a565b610f9b6767fe440300c94a3460c01b61091a565b610faf6784ec279df893a23160c01b61091a565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361101e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611015906130b4565b60405180910390fd5b611032678fb1a303062b7c3660c01b61091a565b611046672659fafa49e6fe9a60c01b61091a565b61105a67151721b3adf3095360c01b61091a565b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905090506110ba6747aaf74cd533212060c01b61091a565b6110ce6703de6b9bbbb4e65460c01b61091a565b6000816bffffffffffffffffffffffff160361112f576110f8677f40383c8703753660c01b61091a565b61110c67bee7ffe190c4ad3c60c01b61091a565b6111206755bd06ec28bd8be360c01b61091a565b61112a8285611b77565b611144565b61114367dd6dd2122982fcbd60c01b61091a565b5b61115867c00fc6f5b3cfec0760c01b61091a565b61116c6712c602b6c749bc1660c01b61091a565b60005b83518110156113be5761118c67b01c581fb6bf76d460c01b61091a565b6111a06772bf81d7d68cd5cc60c01b61091a565b60008482815181106111b5576111b4612ad6565b5b602002602001015190506111d367f378c2c5d2ac591860c01b61091a565b6111e7672abe9487f14424bf60c01b61091a565b6000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061127667c938893e73b6cc8660c01b61091a565b61128a67b830452a6260fe5860c01b61091a565b61129e67732490d4bd014f1160c01b61091a565b8673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361130c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130390613224565b60405180910390fd5b61132067307ef01dc603673f60c01b61091a565b61133467df9b9ad53f3498bb60c01b61091a565b61134867ef74a1c742a2ef4b60c01b61091a565b611353858284611edb565b6113676709eba8384d15433760c01b61091a565b61137b67eb34f0e39cc002be60c01b61091a565b6113878583868a611cca565b61139b67c8e26e167d4df53e60c01b61091a565b83806113a69061317e565b945050505080806113b690612bff565b91505061116f565b5050505050565b6113d967484f249b41b9afdf60c01b61091a565b6113ed672afee721a436189e60c01b61091a565b6114016790c0f4303981d53860c01b61091a565b61141567b69809b50e9b29b160c01b61091a565b6000815111611459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145090613022565b60405180910390fd5b61146d6703449e0de1d16e1460c01b61091a565b61148167043931a3bf63a76460c01b61091a565b6114956783eac4de134a189760c01b61091a565b600061149f61091d565b90506114b5676fa9503e3a33edf160c01b61091a565b6114c967565ff8422e73f48260c01b61091a565b6114dd67a43a53c1c8fdb01860c01b61091a565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461154c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611543906132b6565b60405180910390fd5b61156067a83ec82cf318ce9960c01b61091a565b6115746729de67dbee8a781960c01b61091a565b6115886778ae44bab32ab16d60c01b61091a565b60005b82518110156116c6576115a867c86ec2c930ebf39060c01b61091a565b6115bc67bb2f8bac9067d0d960c01b61091a565b60008382815181106115d1576115d0612ad6565b5b602002602001015190506115ef67afdb7f7eafa2419160c01b61091a565b61160367336a3f69f07dbd0a60c01b61091a565b6000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061169267a9a5f6b739625a6060c01b61091a565b6116a667fd046ea59cd94d2a60c01b61091a565b6116b1848284611edb565b505080806116be90612bff565b91505061158b565b50505050565b6116e067029e1a56337e048460c01b61091a565b6116f467165337675d3a848660c01b61091a565b611708674613682e59aed10a60c01b61091a565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117e9576117506788e41d767c30804a60c01b61091a565b61176467509782c75193bd1560c01b61091a565b611778677c55baba9bedefc760c01b61091a565b61178c6779b630e4a1a501b160c01b61091a565b60008151146117d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c790613348565b60405180910390fd5b6117e4671cf5cba47462738c60c01b61091a565b611b73565b6117fd67d87fba57f9fd56d260c01b61091a565b6118116785ecbfea545b551c60c01b61091a565b611825675a99520875f542d360c01b61091a565b611839677335d4909eb3f6ed60c01b61091a565b600081511161187d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611874906133da565b60405180910390fd5b61189167e2308116fde49ef660c01b61091a565b6118a567e68a1e15bfb15c1560c01b61091a565b6118b967e2f9c57761f027da60c01b61091a565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461194f57611900677e43db5cf3dda55a60c01b61091a565b61191467f9079825f16296d860c01b61091a565b6119286722169a84f6e6288860c01b61091a565b61194a826040518060600160405280602881526020016136cd602891396128a7565b611964565b6119636756028f6713aeb61660c01b61091a565b5b611978678b5d37b494e8790c60c01b61091a565b61198c6732f3ff1c4d01de4c60c01b61091a565b6000808373ffffffffffffffffffffffffffffffffffffffff16836040516119b49190613436565b600060405180830381855af49150503d80600081146119ef576040519150601f19603f3d011682016040523d82523d6000602084013e6119f4565b606091505b5091509150611a0d67cb519b28cdf2316460c01b61091a565b611a2167d3126d202060687460c01b61091a565b81611b5c57611a3a6713957e4282cdd48760c01b61091a565b611a4e676bcab06e51e2612c60c01b61091a565b611a6267d3bfca2e5aa4d84960c01b61091a565b600081511115611ae557611a80673aa967c1a865c9c260c01b61091a565b611a9467f27acd53282addda60c01b61091a565b611aa86780ab759cddda78d060c01b61091a565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adc9190613491565b60405180910390fd5b611af967a434d1c24e3903bc60c01b61091a565b611b0d67d32e3505412c44c560c01b61091a565b611b21677d8323cb74d7c2d860c01b61091a565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5390613525565b60405180910390fd5b611b7067bc6651a6d16ea71460c01b61091a565b50505b5050565b611b8b6745cff900de072b7660c01b61091a565b611b9f67ac3e31ef1ea5c74960c01b61091a565b611bb3673364688f11db6d0d60c01b61091a565b611bd5816040518060600160405280602481526020016136f5602491396128a7565b611be967b9f39a1cc8adecc260c01b61091a565b81600201805490508260010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550611c4d6718823160317e019160c01b61091a565b611c61676ae1118a96d2a90560c01b61091a565b81600201819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b611cde67a2899c53551cdd3760c01b61091a565b611cf2678197d74e06e4145f60c01b61091a565b81846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550611d8b677d99602b18ea589060c01b61091a565b611d9f67351b6ed487ae748960c01b61091a565b8360010160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018390806001815401808255809150506001900390600052602060002090600891828204019190066004029091909190916101000a81548163ffffffff021916908360e01c0217905550611e4067c24c5f99c230f00760c01b61091a565b80846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b611eef6787c03a3a3424540460c01b61091a565b611f03672e3806f37bc3a9d460c01b61091a565b611f17678d411e0bbad3542c60c01b61091a565b611f2b6726e5377f8db7750360c01b61091a565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f91906135b7565b60405180910390fd5b611fae67ebcad92e55ad094460c01b61091a565b611fc26751364413e637bba560c01b61091a565b611fd66792673f376289e6e260c01b61091a565b611fea67f72487d3a8cf4ac460c01b61091a565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612058576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204f90613649565b60405180910390fd5b61206c67a4c3c236bcab394860c01b61091a565b612080677e1962b66805ad7060c01b61091a565b612094670d999328d8a5d9c360c01b61091a565b6000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16905061212967d10337e1e2ecfc3960c01b61091a565b61213d677b893f30fdd7ad7060c01b61091a565b600060018560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805490506121939190613669565b90506121a967bb5bf925ceece87660c01b61091a565b6121bd676df862371a13aaa560c01b61091a565b8082146123b7576121d867156a8665fdd7526f60c01b61091a565b6121ec673cefa8bc28e7d12860c01b61091a565b61220067bdc380bd85401db960c01b61091a565b60008560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001828154811061225857612257612ad6565b5b90600052602060002090600891828204019190066004029054906101000a900460e01b9050612291671de77bf8f010eaec60c01b61091a565b808660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000184815481106122e8576122e7612ad6565b5b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908360e01c021790555061232c673af62f9c8f759fb160c01b61091a565b82866000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550506123cc565b6123cb671d9b423266d067f060c01b61091a565b5b6123e067018034db5579529460c01b61091a565b6123f467a1c9b3117b7c6ab660c01b61091a565b8460010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054806124485761244761369d565b5b60019003818190600052602060002090600891828204019190066004026101000a81549063ffffffff0219169055905561248c67559997c386b3648460c01b61091a565b846000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a8154906bffffffffffffffffffffffff0219169055505061253c6760a723ea0e7e1d4860c01b61091a565b61255067ff433d7c2e2ac4be60c01b61091a565b6000810361288b5761256c6762db4abf7f19cb2060c01b61091a565b61258067efe6f413d09d1ebd60c01b61091a565b61259467ec471a641a3edf7960c01b61091a565b6000600186600201805490506125aa9190613669565b90506125bf6622a131c51aff2c60c01b61091a565b6125d367919cfbc3e76423a760c01b61091a565b60008660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050612630674e9eba62f8a28b9860c01b61091a565b6126446799c973d204243fa060c01b61091a565b8181146127a25761265f673c79f4e3584d9a5960c01b61091a565b61267367990168f15e45b6b860c01b61091a565b612687678582ef208a32dc4260c01b61091a565b600087600201838154811061269f5761269e612ad6565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506126e0671085af932ae9ef7260c01b61091a565b808860020183815481106126f7576126f6612ad6565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061275367ad58108eb86eb21760c01b61091a565b818860010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550506127b7565b6127b667804be83a13f0191a60c01b61091a565b5b6127cb67b1f28e33128b33c960c01b61091a565b6127df67c4cd68f75da79ff060c01b61091a565b866002018054806127f3576127f261369d565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905561283c67a379df54f7bb9fb460c01b61091a565b8660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000905550506128a0565b61289f671627b1de00b56a1b60c01b61091a565b5b5050505050565b6128bb67f91685f166b890e160c01b61091a565b6128cf672a44665c1fa886a160c01b61091a565b6128e36756e8a556d62b0f5e60c01b61091a565b60006128f967996ed809f12ff03160c01b61091a565b823b90506129116709c9d04de4f50a1e60c01b61091a565b61292567b71747c1488d4acd60c01b61091a565b61293967f052a96327eb0abf60c01b61091a565b60008111829061297f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129769190613491565b60405180910390fd5b5061299467b956b25dc409113860c01b61091a565b505050565b600082825260208201905092915050565b7f4469616d6f6e643a2046756e6374696f6e20646f6573206e6f74206578697374600082015250565b60006129e0602083612999565b91506129eb826129aa565b602082019050919050565b60006020820190508181036000830152612a0f816129d3565b9050919050565b600080fd5b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b612a5081612a1b565b8114612a5b57600080fd5b50565b600081359050612a6d81612a47565b92915050565b600060208284031215612a8957612a88612a16565b5b6000612a9784828501612a5e565b91505092915050565b60008115159050919050565b612ab581612aa0565b82525050565b6000602082019050612ad06000830184612aac565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4c69624469616d6f6e644375743a20496e636f7272656374204661636574437560008201527f74416374696f6e00000000000000000000000000000000000000000000000000602082015250565b6000612b90602783612999565b9150612b9b82612b34565b604082019050919050565b60006020820190508181036000830152612bbf81612b83565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000612c0a82612bf5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c3c57612c3b612bc6565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c9e82612c73565b9050919050565b612cae81612c93565b82525050565b60038110612cc557612cc4612b05565b5b50565b6000819050612cd682612cb4565b919050565b6000612ce682612cc8565b9050919050565b612cf681612cdb565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612d5d81612d28565b82525050565b6000612d6f8383612d54565b60208301905092915050565b6000602082019050919050565b6000612d9382612cfc565b612d9d8185612d07565b9350612da883612d18565b8060005b83811015612dd9578151612dc08882612d63565b9750612dcb83612d7b565b925050600181019050612dac565b5085935050505092915050565b6000606083016000830151612dfe6000860182612ca5565b506020830151612e116020860182612ced565b5060408301518482036040860152612e298282612d88565b9150508091505092915050565b6000612e428383612de6565b905092915050565b6000602082019050919050565b6000612e6282612c47565b612e6c8185612c52565b935083602082028501612e7e85612c63565b8060005b85811015612eba5784840389528151612e9b8582612e36565b9450612ea683612e4a565b925060208a01995050600181019050612e82565b50829750879550505050505092915050565b612ed581612c93565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f15578082015181840152602081019050612efa565b60008484015250505050565b6000601f19601f8301169050919050565b6000612f3d82612edb565b612f478185612ee6565b9350612f57818560208601612ef7565b612f6081612f21565b840191505092915050565b60006060820190508181036000830152612f858186612e57565b9050612f946020830185612ecc565b8181036040830152612fa68184612f32565b9050949350505050565b7f4c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e206660008201527f6163657420746f20637574000000000000000000000000000000000000000000602082015250565b600061300c602b83612999565b915061301782612fb0565b604082019050919050565b6000602082019050818103600083015261303b81612fff565b9050919050565b7f4c69624469616d6f6e644375743a204164642066616365742063616e2774206260008201527f6520616464726573732830290000000000000000000000000000000000000000602082015250565b600061309e602c83612999565b91506130a982613042565b604082019050919050565b600060208201905081810360008301526130cd81613091565b9050919050565b7f4c69624469616d6f6e644375743a2043616e2774206164642066756e6374696f60008201527f6e207468617420616c7265616479206578697374730000000000000000000000602082015250565b6000613130603583612999565b915061313b826130d4565b604082019050919050565b6000602082019050818103600083015261315f81613123565b9050919050565b60006bffffffffffffffffffffffff82169050919050565b600061318982613166565b91506bffffffffffffffffffffffff82036131a7576131a6612bc6565b5b600182019050919050565b7f4c69624469616d6f6e644375743a2043616e2774207265706c6163652066756e60008201527f6374696f6e20776974682073616d652066756e6374696f6e0000000000000000602082015250565b600061320e603883612999565b9150613219826131b2565b604082019050919050565b6000602082019050818103600083015261323d81613201565b9050919050565b7f4c69624469616d6f6e644375743a2052656d6f7665206661636574206164647260008201527f657373206d757374206265206164647265737328302900000000000000000000602082015250565b60006132a0603683612999565b91506132ab82613244565b604082019050919050565b600060208201905081810360008301526132cf81613293565b9050919050565b7f4c69624469616d6f6e644375743a205f696e697420697320616464726573732860008201527f3029206275745f63616c6c64617461206973206e6f7420656d70747900000000602082015250565b6000613332603c83612999565b915061333d826132d6565b604082019050919050565b6000602082019050818103600083015261336181613325565b9050919050565b7f4c69624469616d6f6e644375743a205f63616c6c6461746120697320656d707460008201527f7920627574205f696e6974206973206e6f742061646472657373283029000000602082015250565b60006133c4603d83612999565b91506133cf82613368565b604082019050919050565b600060208201905081810360008301526133f3816133b7565b9050919050565b600081905092915050565b600061341082612edb565b61341a81856133fa565b935061342a818560208601612ef7565b80840191505092915050565b60006134428284613405565b915081905092915050565b600081519050919050565b60006134638261344d565b61346d8185612999565b935061347d818560208601612ef7565b61348681612f21565b840191505092915050565b600060208201905081810360008301526134ab8184613458565b905092915050565b7f4c69624469616d6f6e644375743a205f696e69742066756e6374696f6e20726560008201527f7665727465640000000000000000000000000000000000000000000000000000602082015250565b600061350f602683612999565b915061351a826134b3565b604082019050919050565b6000602082019050818103600083015261353e81613502565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f76652066756e6360008201527f74696f6e207468617420646f65736e2774206578697374000000000000000000602082015250565b60006135a1603783612999565b91506135ac82613545565b604082019050919050565b600060208201905081810360008301526135d081613594565b9050919050565b7f4c69624469616d6f6e644375743a2043616e27742072656d6f766520696d6d7560008201527f7461626c652066756e6374696f6e000000000000000000000000000000000000602082015250565b6000613633602e83612999565b915061363e826135d7565b604082019050919050565b6000602082019050818103600083015261366281613626565b9050919050565b600061367482612bf5565b915061367f83612bf5565b925082820390508181111561369757613696612bc6565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfe4c69624469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f64654c69624469616d6f6e644375743a204e657720666163657420686173206e6f20636f6465a2646970667358221220ce25dd26737419727baaf3296d0861642400fd173299e708e7384026daae708164736f6c634300081100334c69624469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f64654c69624469616d6f6e644375743a204e657720666163657420686173206e6f20636f6465"; type DiamondConstructorParams = | [signer?: Signer] diff --git a/typings/factories/ECDSAExtendedLib__factory.ts b/typings/factories/ECDSAExtendedLib__factory.ts index 4d9c2476..2d8718ec 100644 --- a/typings/factories/ECDSAExtendedLib__factory.ts +++ b/typings/factories/ECDSAExtendedLib__factory.ts @@ -13,11 +13,11 @@ const _abi = [ inputs: [ { internalType: "bytes8", - name: "c__29f5519d", + name: "c__edf8bcf6", type: "bytes8", }, ], - name: "c_29f5519d", + name: "c_edf8bcf6", outputs: [], stateMutability: "pure", type: "function", @@ -26,11 +26,11 @@ const _abi = [ inputs: [ { internalType: "bytes8", - name: "c__29f5519d", + name: "c__edf8bcf6", type: "bytes8", }, ], - name: "c_false29f5519d", + name: "c_falseedf8bcf6", outputs: [ { internalType: "bool", @@ -45,11 +45,11 @@ const _abi = [ inputs: [ { internalType: "bytes8", - name: "c__29f5519d", + name: "c__edf8bcf6", type: "bytes8", }, ], - name: "c_true29f5519d", + name: "c_trueedf8bcf6", outputs: [ { internalType: "bool", @@ -63,7 +63,7 @@ const _abi = [ ]; const _bytecode = - "0x610179610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061004b5760003560e01c806359c7018614610050578063aba95d37146100af578063b1ccd792146100f8575b600080fd5b6100976004803603602081101561006657600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610157565b60405180821515815260200191505060405180910390f35b6100f6600480360360208110156100c557600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061015e565b005b61013f6004803603602081101561010e57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610161565b60405180821515815260200191505060405180910390f35b6000919050565b50565b60006001905091905056fea164736f6c634300060c000a"; + "0x610179610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061004b5760003560e01c80636a44257214610050578063a96a1a66146100af578063bc92fe7d1461010e575b600080fd5b6100976004803603602081101561006657600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610157565b60405180821515815260200191505060405180910390f35b6100f6600480360360208110156100c557600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610162565b60405180821515815260200191505060405180910390f35b6101556004803603602081101561012457600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610169565b005b600060019050919050565b6000919050565b5056fea164736f6c634300060c000a"; type ECDSAExtendedLibConstructorParams = | [signer?: Signer] diff --git a/typings/factories/ECDSALib__factory.ts b/typings/factories/ECDSALib__factory.ts index 3c40cb56..a0a0e657 100644 --- a/typings/factories/ECDSALib__factory.ts +++ b/typings/factories/ECDSALib__factory.ts @@ -10,11 +10,11 @@ const _abi = [ inputs: [ { internalType: "bytes8", - name: "c__099dd06c", + name: "c__02f9a6b3", type: "bytes8", }, ], - name: "c_099dd06c", + name: "c_02f9a6b3", outputs: [], stateMutability: "pure", type: "function", @@ -23,11 +23,11 @@ const _abi = [ inputs: [ { internalType: "bytes8", - name: "c__099dd06c", + name: "c__02f9a6b3", type: "bytes8", }, ], - name: "c_false099dd06c", + name: "c_false02f9a6b3", outputs: [ { internalType: "bool", @@ -42,11 +42,11 @@ const _abi = [ inputs: [ { internalType: "bytes8", - name: "c__099dd06c", + name: "c__02f9a6b3", type: "bytes8", }, ], - name: "c_true099dd06c", + name: "c_true02f9a6b3", outputs: [ { internalType: "bool", @@ -60,7 +60,7 @@ const _abi = [ ]; const _bytecode = - "0x610179610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061004b5760003560e01c806357d59bf0146100505780636a3bc913146100995780639a2d0f69146100f8575b600080fd5b6100976004803603602081101561006657600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610157565b005b6100e0600480360360208110156100af57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061015a565b60405180821515815260200191505060405180910390f35b61013f6004803603602081101561010e57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610165565b60405180821515815260200191505060405180910390f35b50565b600060019050919050565b600091905056fea164736f6c634300060c000a"; + "0x610179610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061004b5760003560e01c80631617e104146100505780631cefbfd8146100af578063a91793dd146100f8575b600080fd5b6100976004803603602081101561006657600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610157565b60405180821515815260200191505060405180910390f35b6100f6600480360360208110156100c557600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610162565b005b61013f6004803603602081101561010e57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610165565b60405180821515815260200191505060405180910390f35b600060019050919050565b50565b600091905056fea164736f6c634300060c000a"; type ECDSALibConstructorParams = | [signer?: Signer] diff --git a/typings/factories/ENSAbstractResolver__factory.ts b/typings/factories/ENSAbstractResolver__factory.ts index 6a11a2c3..4184033b 100644 --- a/typings/factories/ENSAbstractResolver__factory.ts +++ b/typings/factories/ENSAbstractResolver__factory.ts @@ -14,11 +14,11 @@ const _abi = [ inputs: [ { internalType: "bytes8", - name: "c__8e2129aa", + name: "c__f395fef5", type: "bytes8", }, ], - name: "c_8e2129aa", + name: "c_f395fef5", outputs: [], stateMutability: "pure", type: "function", @@ -27,11 +27,11 @@ const _abi = [ inputs: [ { internalType: "bytes8", - name: "c__8e2129aa", + name: "c__f395fef5", type: "bytes8", }, ], - name: "c_false8e2129aa", + name: "c_falsef395fef5", outputs: [ { internalType: "bool", @@ -46,11 +46,11 @@ const _abi = [ inputs: [ { internalType: "bytes8", - name: "c__8e2129aa", + name: "c__f395fef5", type: "bytes8", }, ], - name: "c_true8e2129aa", + name: "c_truef395fef5", outputs: [ { internalType: "bool", diff --git a/typings/factories/ENSAddressResolver__factory.ts b/typings/factories/ENSAddressResolver__factory.ts index 45d6f914..dcf7d94c 100644 --- a/typings/factories/ENSAddressResolver__factory.ts +++ b/typings/factories/ENSAddressResolver__factory.ts @@ -97,6 +97,108 @@ const _abi = [ stateMutability: "view", type: "function", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__3f206a34", + type: "bytes8", + }, + ], + name: "c_3f206a34", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__f395fef5", + type: "bytes8", + }, + ], + name: "c_f395fef5", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__3f206a34", + type: "bytes8", + }, + ], + name: "c_false3f206a34", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__f395fef5", + type: "bytes8", + }, + ], + name: "c_falsef395fef5", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__3f206a34", + type: "bytes8", + }, + ], + name: "c_true3f206a34", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__f395fef5", + type: "bytes8", + }, + ], + name: "c_truef395fef5", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [ { diff --git a/typings/factories/ENSController__factory.ts b/typings/factories/ENSController__factory.ts index 79d10f15..fbb57fa1 100644 --- a/typings/factories/ENSController__factory.ts +++ b/typings/factories/ENSController__factory.ts @@ -295,6 +295,516 @@ const _abi = [ stateMutability: "view", type: "function", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_098c0657", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__0b6945c4", + type: "bytes8", + }, + ], + name: "c_0b6945c4", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__3f206a34", + type: "bytes8", + }, + ], + name: "c_3f206a34", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__52615ca8", + type: "bytes8", + }, + ], + name: "c_52615ca8", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__633abef9", + type: "bytes8", + }, + ], + name: "c_633abef9", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__6f06df17", + type: "bytes8", + }, + ], + name: "c_6f06df17", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__7ffc1d72", + type: "bytes8", + }, + ], + name: "c_7ffc1d72", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__8aa9670c", + type: "bytes8", + }, + ], + name: "c_8aa9670c", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__d18be0f9", + type: "bytes8", + }, + ], + name: "c_d18be0f9", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__f395fef5", + type: "bytes8", + }, + ], + name: "c_f395fef5", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_false098c0657", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__0b6945c4", + type: "bytes8", + }, + ], + name: "c_false0b6945c4", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__3f206a34", + type: "bytes8", + }, + ], + name: "c_false3f206a34", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__52615ca8", + type: "bytes8", + }, + ], + name: "c_false52615ca8", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__633abef9", + type: "bytes8", + }, + ], + name: "c_false633abef9", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__6f06df17", + type: "bytes8", + }, + ], + name: "c_false6f06df17", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__7ffc1d72", + type: "bytes8", + }, + ], + name: "c_false7ffc1d72", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__8aa9670c", + type: "bytes8", + }, + ], + name: "c_false8aa9670c", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__d18be0f9", + type: "bytes8", + }, + ], + name: "c_falsed18be0f9", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__f395fef5", + type: "bytes8", + }, + ], + name: "c_falsef395fef5", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_true098c0657", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__0b6945c4", + type: "bytes8", + }, + ], + name: "c_true0b6945c4", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__3f206a34", + type: "bytes8", + }, + ], + name: "c_true3f206a34", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__52615ca8", + type: "bytes8", + }, + ], + name: "c_true52615ca8", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__633abef9", + type: "bytes8", + }, + ], + name: "c_true633abef9", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__6f06df17", + type: "bytes8", + }, + ], + name: "c_true6f06df17", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__7ffc1d72", + type: "bytes8", + }, + ], + name: "c_true7ffc1d72", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__8aa9670c", + type: "bytes8", + }, + ], + name: "c_true8aa9670c", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__d18be0f9", + type: "bytes8", + }, + ], + name: "c_trued18be0f9", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__f395fef5", + type: "bytes8", + }, + ], + name: "c_truef395fef5", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [], name: "chainId", @@ -763,7 +1273,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b5032600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600046905080600281905550506149798061006e6000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c806371404156116100f9578063a91ee0dc11610097578063d0f710d611610071578063d0f710d614610512578063d5fa2b0014610542578063dc5b68a61461055e578063f1cb7e061461057a576101c4565b8063a91ee0dc146104a9578063c8690233146104c5578063c8cc2aee146104f6576101c4565b80637d0e0e7e116100d35780637d0e0e7e146104375780638b95dd71146104535780639a8a05921461046f578063a526d83b1461048d576101c4565b806371404156146103e157806377372213146103fd5780637b10399914610419576101c4565b8063392e53cd1161016657806355800f871161014057806355800f871461033557806359d1d43c14610351578063691f3431146103815780636df0cf42146103b1576101c4565b8063392e53cd146102cb5780633b3b57de146102e957806346386f7314610319576101c4565b8063116191b6116101a2578063116191b6146102455780631b3cd1421461026357806329ae6a7e1461029357806329cd62ea146102af576101c4565b806301ffc9a7146101c95780630c68ba21146101f957806310f13a8c14610229575b600080fd5b6101e360048036038101906101de91906133b4565b6105aa565b6040516101f091906141bc565b60405180910390f35b610213600480360381019061020e9190613066565b610834565b60405161022091906141bc565b60405180910390f35b610243600480360381019061023e9190613288565b610889565b005b61024d61096d565b60405161025a919061415d565b60405180910390f35b61027d600480360381019061027891906130b8565b610993565b60405161028a919061415d565b60405180910390f35b6102ad60048036038101906102a891906130b8565b6109c6565b005b6102c960048036038101906102c4919061311d565b610beb565b005b6102d3610cb3565b6040516102e091906141bc565b60405180910390f35b61030360048036038101906102fe91906130b8565b610d0b565b604051610310919061415d565b60405180910390f35b610333600480360381019061032e919061316c565b610d1d565b005b61034f600480360381019061034a91906130b8565b611017565b005b61036b60048036038101906103669190613230565b6112d8565b604051610378919061433d565b60405180910390f35b61039b600480360381019061039691906130b8565b6113ad565b6040516103a8919061433d565b60405180910390f35b6103cb60048036038101906103c69190613472565b611462565b6040516103d891906141d7565b60405180910390f35b6103fb60048036038101906103f69190613066565b611482565b005b61041760048036038101906104129190613230565b61169a565b005b610421611746565b60405161042e91906142fe565b60405180910390f35b610451600480360381019061044c91906130b8565b61176c565b005b61046d6004803603810190610468919061334d565b611a38565b005b610477611a92565b604051610484919061461f565b60405180910390f35b6104a760048036038101906104a29190613066565b611a98565b005b6104c360048036038101906104be91906133dd565b611b2f565b005b6104df60048036038101906104da91906130b8565b611d58565b6040516104ed92919061421b565b60405180910390f35b610510600480360381019061050b91906130b8565b611d92565b005b61052c600480360381019061052791906131d8565b6120a2565b60405161053991906141bc565b60405180910390f35b61055c600480360381019061055791906130e1565b6120fb565b005b61057860048036038101906105739190613406565b612153565b005b610594600480360381019061058f9190613311565b612366565b6040516105a191906142dc565b60405180910390f35b60006040516020016105bb9061406f565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061067d5750604051602001610626906140aa565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806106e95750604051602001610692906140fe565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061075557506040516020016106fe906140d4565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107c1575060405160200161076a906140e9565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061082d57506040516020016107d6906140bf565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b846108938161242d565b6108d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c9906145df565b60405180910390fd5b82826007600089815260200190815260200160002087876040516108f7929190614056565b90815260200160405180910390209190610912929190612d39565b508484604051610923929190614056565b6040518091039020867fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a7550878760405161095d929190614319565b60405180910390a3505050505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60096020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006109d0612516565b90503073ffffffffffffffffffffffffffffffffffffffff166109f283612527565b73ffffffffffffffffffffffffffffffffffffffff1614610a48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3f9061443f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166009600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae09061437f565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b0fc9c383836040518363ffffffff1660e01b8152600401610b469291906141f2565b600060405180830381600087803b158015610b6057600080fd5b505af1158015610b74573d6000803e3d6000fd5b505050506009600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690557f7803a16d95f9ca635bdec561006625e7444d8a9f8463866643cc03af011779d38282604051610bdf9291906141f2565b60405180910390a15050565b82610bf58161242d565b610c34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2b906145df565b60405180910390fd5b604051806040016040528084815260200183815250600660008681526020019081526020016000206000820151816000015560208201518160010155905050837f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e468484604051610ca592919061421b565b60405180910390a250505050565b60008073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b6000610d1682612527565b9050919050565b6000610d27612516565b90506000610d3682878761260c565b9050610d868185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612664565b610dc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbc9061439f565b60405180910390fd5b60008686604051602001610dda92919061402a565b6040516020818303038152906040528051906020012090503073ffffffffffffffffffffffffffffffffffffffff16610e1288612527565b73ffffffffffffffffffffffffffffffffffffffff1614610e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5f9061441f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16610e8982612527565b73ffffffffffffffffffffffffffffffffffffffff1614610edf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed6906143bf565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635ef2c7f08888303060006040518663ffffffff1660e01b8152600401610f43959493929190614244565b600060405180830381600087803b158015610f5d57600080fd5b505af1158015610f71573d6000803e3d6000fd5b50505050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b0fc9c382856040518363ffffffff1660e01b8152600401610fd29291906141f2565b600060405180830381600087803b158015610fec57600080fd5b505af1158015611000573d6000803e3d6000fd5b5050505061100e81846126d1565b50505050505050565b6000611021612516565b9050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff1660e01b815260040161107e91906141d7565b60206040518083038186803b15801561109657600080fd5b505afa1580156110aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ce919061308f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461113b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111329061447f565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630178b8bf846040518263ffffffff1660e01b81526004016111ad91906141d7565b60206040518083038186803b1580156111c557600080fd5b505afa1580156111d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111fd919061308f565b73ffffffffffffffffffffffffffffffffffffffff1614611253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124a9061435f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1661127483612527565b73ffffffffffffffffffffffffffffffffffffffff16146112ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c19061451f565b60405180910390fd5b6112d482826126d1565b5050565b60606007600085815260200190815260200160002083836040516112fd929190614056565b90815260200160405180910390208054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561139f5780601f106113745761010080835404028352916020019161139f565b820191906000526020600020905b81548152906001019060200180831161138257829003601f168201915b505050505090509392505050565b6060600560008381526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114565780601f1061142b57610100808354040283529160200191611456565b820191906000526020600020905b81548152906001019060200180831161143957829003601f168201915b50505050509050919050565b600061147b82600001518360200151846040015161260c565b9050919050565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661150d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115049061449f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16141561157c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115739061459f565b60405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611607576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fe9061453f565b60405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fee943cdb81826d5909c559c6b1ae6908fcaf2dbc16c4b730346736b486283e8b328260405161168f929190614193565b60405180910390a150565b826116a48161242d565b6116e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116da906145df565b60405180910390fd5b8282600560008781526020019081526020016000209190611705929190612d39565b50837fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f78484604051611738929190614319565b60405180910390a250505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611776612516565b9050600073ffffffffffffffffffffffffffffffffffffffff1661179983612527565b73ffffffffffffffffffffffffffffffffffffffff16146117ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e6906144ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166009600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611891576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611888906144df565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3846040518263ffffffff1660e01b815260040161190391906141d7565b60206040518083038186803b15801561191b57600080fd5b505afa15801561192f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611953919061308f565b73ffffffffffffffffffffffffffffffffffffffff16146119a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a09061455f565b60405180910390fd5b806009600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fc1e082a8c26f27c26e1bf5d0ce7ddd579ec7f6d7eb3ea90d8abd6c40991bae368282604051611a2c9291906141f2565b60405180910390a15050565b82611a428161242d565b611a81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a78906145df565b60405180910390fd5b611a8c8484846126e9565b50505050565b60025481565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1a9061449f565b60405180910390fd5b611b2c816127ab565b50565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611bba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb19061449f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c21906144bf565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611cbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb2906145ff565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fdb0239c63d4033dcdd21bd44f8dd479a03efbae12f6bbe27c0a5f923d26514cc600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051611d4d919061415d565b60405180910390a150565b6000806006600084815260200190815260200160002060000154600660008581526020019081526020016000206001015491509150915091565b6000611d9c612516565b9050600073ffffffffffffffffffffffffffffffffffffffff16611dbf83612527565b73ffffffffffffffffffffffffffffffffffffffff1614611e15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0c906144ff565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166009600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611eb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ead9061437f565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3846040518263ffffffff1660e01b8152600401611f2891906141d7565b60206040518083038186803b158015611f4057600080fd5b505afa158015611f54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f78919061308f565b73ffffffffffffffffffffffffffffffffffffffff1614611fce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc59061455f565b60405180910390fd5b611fd882306126d1565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a83306040518363ffffffff1660e01b81526004016120359291906141f2565b600060405180830381600087803b15801561204f57600080fd5b505af1158015612063573d6000803e3d6000fd5b505050507fcefbe9dbadcf675eef14e23810996ff38541fc26b4dd77cd6724b0eedc96f2008260405161209691906141d7565b60405180910390a15050565b60006120f28484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612664565b90509392505050565b816121058161242d565b612144576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213b906145df565b60405180910390fd5b61214e83836126d1565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146121e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121da906143ff565b60405180910390fd5b6000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612295576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228c906144bf565b60405180910390fd5b83600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612320838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505061293a565b61232981612992565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e6326040516123589190614178565b60405180910390a150505050565b60606004600084815260200190815260200160002060008381526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124205780601f106123f557610100808354040283529160200191612420565b820191906000526020600020905b81548152906001019060200180831161240357829003601f168201915b5050505050905092915050565b6000612437612516565b73ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3846040518263ffffffff1660e01b81526004016124a891906141d7565b60206040518083038186803b1580156124c057600080fd5b505afa1580156124d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124f8919061308f565b73ffffffffffffffffffffffffffffffffffffffff16149050919050565b600061252260286129d6565b905090565b6000806060600460008581526020019081526020016000206000603c81526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156125e55780601f106125ba576101008083540402835291602001916125e5565b820191906000526020600020905b8154815290600101906020018083116125c857829003601f168201915b50505050509050600081511115612602576125ff81612a6b565b91505b8192505050919050565b600061265b7f621363c539a3aa1024c8837ca1dc095db03b7f9512b3a95ecb429aae7fd953ed85858560405160200161264793929190613fed565b604051602081830303815290604052612a93565b90509392505050565b60008061267a8385612ad490919063ffffffff16565b90506000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b6126e582603c6126e084612b8f565b6126e9565b5050565b827f65412581168e88a1e60c6459d7f44ae83ad0832e670826c05a4e2476b57af752838360405161271b92919061463a565b60405180910390a2603c82141561276d57827f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd261275783612a6b565b6040516127649190614178565b60405180910390a25b8060046000858152602001908152602001600020600084815260200190815260200160002090805190602001906127a5929190612db9565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561281b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612812906143df565b60405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156128a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289e9061457f565b60405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fbc3292102fa77e083913064b282926717cdfaede4d35f553d66366c0a3da755a328260405161292f929190614193565b60405180910390a150565b6000815114156129525761294d326127ab565b61298f565b60008151905060005b8181101561298c5761297f83828151811061297257fe5b60200260200101516127ab565b808060010191505061295b565b50505b50565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600090506129e5612bf6565b15612a5e576000836000369050039050612a5660003683906014850192612a0e93929190614711565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612ca3565b915050612a62565b3390505b80915050919050565b6000806014835114612a7c57600080fd5b600c6101000a602084015104905080915050919050565b6000612acc600254308585604051602001612ab19493929190614113565b60405160208183030381529060405280519060200120612d09565b905092915050565b60008060009050604183511415612b855760008060006020860151925060408601519150606086015160001a9050601b8160ff161015612b1557601b810190505b601b8160ff161480612b2a5750601c8160ff16145b15612b815760018782858560405160008152602001604052604051612b529493929190614297565b6020604051602081039080840390855afa158015612b74573d6000803e3d6000fd5b5050506020604051035193505b5050505b8091505092915050565b606080601467ffffffffffffffff81118015612baa57600080fd5b506040519080825280601f01601f191660200182016040528015612bdd5781602001600182028036833780820191505090505b509050600c6101000a8302602082015280915050919050565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415612c9c57602c60003690501015612c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c8e9061445f565b60405180910390fd5b600190505b8091505090565b6000806014835114612cea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce1906145bf565b60405180910390fd5b6c01000000000000000000000000602084015104905080915050919050565b600081604051602001612d1c9190614084565b604051602081830303815290604052805190602001209050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612d7a57803560ff1916838001178555612da8565b82800160010185558215612da8579182015b82811115612da7578235825591602001919060010190612d8c565b5b509050612db59190612e39565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612dfa57805160ff1916838001178555612e28565b82800160010185558215612e28579182015b82811115612e27578251825591602001919060010190612e0c565b5b509050612e359190612e39565b5090565b5b80821115612e52576000816000905550600101612e3a565b5090565b600081359050612e65816148f9565b92915050565b600081519050612e7a816148f9565b92915050565b60008083601f840112612e9257600080fd5b8235905067ffffffffffffffff811115612eab57600080fd5b602083019150836020820283011115612ec357600080fd5b9250929050565b600081359050612ed981614910565b92915050565b600081359050612eee81614927565b92915050565b60008083601f840112612f0657600080fd5b8235905067ffffffffffffffff811115612f1f57600080fd5b602083019150836001820283011115612f3757600080fd5b9250929050565b600082601f830112612f4f57600080fd5b8135612f62612f5d82614697565b61466a565b91508082526020830160208301858383011115612f7e57600080fd5b612f89838284614861565b50505092915050565b600081359050612fa18161493e565b92915050565b60008083601f840112612fb957600080fd5b8235905067ffffffffffffffff811115612fd257600080fd5b602083019150836001820283011115612fea57600080fd5b9250929050565b60006060828403121561300357600080fd5b61300d606061466a565b9050600061301d84828501612e56565b600083015250602061303184828501612eca565b602083015250604061304584828501612eca565b60408301525092915050565b60008135905061306081614955565b92915050565b60006020828403121561307857600080fd5b600061308684828501612e56565b91505092915050565b6000602082840312156130a157600080fd5b60006130af84828501612e6b565b91505092915050565b6000602082840312156130ca57600080fd5b60006130d884828501612eca565b91505092915050565b600080604083850312156130f457600080fd5b600061310285828601612eca565b925050602061311385828601612e56565b9150509250929050565b60008060006060848603121561313257600080fd5b600061314086828701612eca565b935050602061315186828701612eca565b925050604061316286828701612eca565b9150509250925092565b6000806000806060858703121561318257600080fd5b600061319087828801612eca565b94505060206131a187828801612eca565b935050604085013567ffffffffffffffff8111156131be57600080fd5b6131ca87828801612ef4565b925092505092959194509250565b6000806000604084860312156131ed57600080fd5b60006131fb86828701612eca565b935050602084013567ffffffffffffffff81111561321857600080fd5b61322486828701612ef4565b92509250509250925092565b60008060006040848603121561324557600080fd5b600061325386828701612eca565b935050602084013567ffffffffffffffff81111561327057600080fd5b61327c86828701612fa7565b92509250509250925092565b6000806000806000606086880312156132a057600080fd5b60006132ae88828901612eca565b955050602086013567ffffffffffffffff8111156132cb57600080fd5b6132d788828901612fa7565b9450945050604086013567ffffffffffffffff8111156132f657600080fd5b61330288828901612fa7565b92509250509295509295909350565b6000806040838503121561332457600080fd5b600061333285828601612eca565b925050602061334385828601613051565b9150509250929050565b60008060006060848603121561336257600080fd5b600061337086828701612eca565b935050602061338186828701613051565b925050604084013567ffffffffffffffff81111561339e57600080fd5b6133aa86828701612f3e565b9150509250925092565b6000602082840312156133c657600080fd5b60006133d484828501612edf565b91505092915050565b6000602082840312156133ef57600080fd5b60006133fd84828501612f92565b91505092915050565b6000806000806060858703121561341c57600080fd5b600061342a87828801612f92565b945050602085013567ffffffffffffffff81111561344757600080fd5b61345387828801612e80565b9350935050604061346687828801612e56565b91505092959194509250565b60006060828403121561348457600080fd5b600061349284828501612ff1565b91505092915050565b6134a4816147f5565b82525050565b6134b381614744565b82525050565b6134ca6134c582614744565b6148a3565b82525050565b6134d981614756565b82525050565b6134e881614762565b82525050565b6134ff6134fa82614762565b6148b5565b82525050565b6000613510826146c3565b61351a81856146d9565b935061352a818560208601614870565b613533816148db565b840191505092915050565b6000613549826146c3565b61355381856146ea565b9350613563818560208601614870565b80840191505092915050565b61357881614807565b82525050565b6135878161482b565b82525050565b600061359983856146f5565b93506135a6838584614861565b6135af836148db565b840190509392505050565b60006135c68385614706565b93506135d3838584614861565b82840190509392505050565b60006135ea826146ce565b6135f481856146f5565b9350613604818560208601614870565b61360d816148db565b840191505092915050565b6000613625601983614706565b91507f737570706f727473496e746572666163652862797465733429000000000000006000830152601982019050919050565b60006136656024836146f5565b91507f454e53436f6e74726f6c6c65723a20696e76616c6964206e6f6465207265736f60008301527f6c766572000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006136cb6021836146f5565b91507f454e53436f6e74726f6c6c65723a20696e76616c6964206e6f6465206f776e6560008301527f72000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006137316029836146f5565b91507f454e53436f6e74726f6c6c65723a20696e76616c696420677561726469616e2060008301527f7369676e617475726500000000000000000000000000000000000000000000006020830152604082019050919050565b60006137976022836146f5565b91507f454e53436f6e74726f6c6c65723a206c6162656c20616c72656164792074616b60008301527f656e0000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006137fd601c83614706565b91507f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000830152601c82019050919050565b600061383d6020836146f5565b91507f477561726465643a2063616e6e6f74206164642030783020677561726469616e6000830152602082019050919050565b600061387d602f836146f5565b91507f496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742060008301527f74686520696e697469616c697a657200000000000000000000000000000000006020830152604082019050919050565b60006138e3600d83614706565b91507f61646472286279746573333229000000000000000000000000000000000000006000830152600d82019050919050565b6000613923601b836146f5565b91507f454e53436f6e74726f6c6c65723a20696e76616c6964206e6f646500000000006000830152602082019050919050565b60006139636021836146f5565b91507f454e53436f6e74726f6c6c65723a206e6f646520646f65736e2774206578697360008301527f74000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006139c96022836146f5565b91507f47617465776179526563697069656e743a20696e76616c6964206d73672e646160008301527f74610000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613a2f601483614706565b91507f7465787428627974657333322c737472696e67290000000000000000000000006000830152601482019050919050565b6000613a6f600d83614706565b91507f6e616d65286279746573333229000000000000000000000000000000000000006000830152600d82019050919050565b6000613aaf602b836146f5565b91507f454e53436f6e74726f6c6c65723a2063616c6c6572206973206e6f742074686560008301527f206e6f6465206f776e65720000000000000000000000000000000000000000006020830152604082019050919050565b6000613b156026836146f5565b91507f477561726465643a2074782e6f726967696e206973206e6f742074686520677560008301527f61726469616e00000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613b7b6026836146f5565b91507f454e53436f6e74726f6c6c65723a2063616e6e6f74207365742030783020726560008301527f67697374727900000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613be16025836146f5565b91507f454e53436f6e74726f6c6c65723a206e6f646520616c7265616479207375626d60008301527f69747465640000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613c47600f83614706565b91507f7075626b657928627974657333322900000000000000000000000000000000006000830152600f82019050919050565b6000613c876022836146f5565b91507f454e53436f6e74726f6c6c65723a206e6f646520616c7265616479206578697360008301527f74730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613ced6023836146f5565b91507f454e53436f6e74726f6c6c65723a206e6f646520616c726561647920696e207360008301527f796e6300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613d53601f836146f5565b91507f477561726465643a20677561726469616e20646f65736e2774206578697374006000830152602082019050919050565b6000613d936025836146f5565b91507f454e53436f6e74726f6c6c65723a20696e76616c696420656e73206e6f64652060008301527f6f776e65720000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613df96020836146f5565b91507f477561726465643a20677561726469616e20616c7265616479206578697374736000830152602082019050919050565b6000613e39601b836146f5565b91507f477561726465643a2063616e6e6f742072656d6f76652073656c6600000000006000830152602082019050919050565b6000613e79601d836146f5565b91507f42797465734c69623a20696e76616c69642064617461206c656e6774680000006000830152602082019050919050565b6000613eb96037836146f5565b91507f454e5341627374726163745265736f6c7665723a20726576657274656420627960008301527f206f6e6c794e6f64654f776e6572206d6f6469666965720000000000000000006020830152604082019050919050565b6000613f1f601283614706565b91507f6164647228627974657333322c75696e742900000000000000000000000000006000830152601282019050919050565b6000613f5f6023836146f5565b91507f454e53436f6e74726f6c6c65723a20726567697374727920616c72656164792060008301527f73657400000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b613fc1816147ca565b82525050565b613fd8613fd3826147ca565b6148d1565b82525050565b613fe7816147e8565b82525050565b6000613ff982866134b9565b60148201915061400982856134ee565b60208201915061401982846134ee565b602082019150819050949350505050565b600061403682856134ee565b60208201915061404682846134ee565b6020820191508190509392505050565b60006140638284866135ba565b91508190509392505050565b600061407a82613618565b9150819050919050565b600061408f826137f0565b915061409b82846134ee565b60208201915081905092915050565b60006140b5826138d6565b9150819050919050565b60006140ca82613a22565b9150819050919050565b60006140df82613a62565b9150819050919050565b60006140f482613c3a565b9150819050919050565b600061410982613f12565b9150819050919050565b600061411f8287613fc7565b60208201915061412f82866134b9565b60148201915061413f82856134ee565b60208201915061414f828461353e565b915081905095945050505050565b600060208201905061417260008301846134aa565b92915050565b600060208201905061418d600083018461349b565b92915050565b60006040820190506141a8600083018561349b565b6141b560208301846134aa565b9392505050565b60006020820190506141d160008301846134d0565b92915050565b60006020820190506141ec60008301846134df565b92915050565b600060408201905061420760008301856134df565b61421460208301846134aa565b9392505050565b600060408201905061423060008301856134df565b61423d60208301846134df565b9392505050565b600060a08201905061425960008301886134df565b61426660208301876134df565b61427360408301866134aa565b61428060608301856134aa565b61428d608083018461357e565b9695505050505050565b60006080820190506142ac60008301876134df565b6142b96020830186613fde565b6142c660408301856134df565b6142d360608301846134df565b95945050505050565b600060208201905081810360008301526142f68184613505565b905092915050565b6000602082019050614313600083018461356f565b92915050565b6000602082019050818103600083015261433481848661358d565b90509392505050565b6000602082019050818103600083015261435781846135df565b905092915050565b6000602082019050818103600083015261437881613658565b9050919050565b60006020820190508181036000830152614398816136be565b9050919050565b600060208201905081810360008301526143b881613724565b9050919050565b600060208201905081810360008301526143d88161378a565b9050919050565b600060208201905081810360008301526143f881613830565b9050919050565b6000602082019050818103600083015261441881613870565b9050919050565b6000602082019050818103600083015261443881613916565b9050919050565b6000602082019050818103600083015261445881613956565b9050919050565b60006020820190508181036000830152614478816139bc565b9050919050565b6000602082019050818103600083015261449881613aa2565b9050919050565b600060208201905081810360008301526144b881613b08565b9050919050565b600060208201905081810360008301526144d881613b6e565b9050919050565b600060208201905081810360008301526144f881613bd4565b9050919050565b6000602082019050818103600083015261451881613c7a565b9050919050565b6000602082019050818103600083015261453881613ce0565b9050919050565b6000602082019050818103600083015261455881613d46565b9050919050565b6000602082019050818103600083015261457881613d86565b9050919050565b6000602082019050818103600083015261459881613dec565b9050919050565b600060208201905081810360008301526145b881613e2c565b9050919050565b600060208201905081810360008301526145d881613e6c565b9050919050565b600060208201905081810360008301526145f881613eac565b9050919050565b6000602082019050818103600083015261461881613f52565b9050919050565b60006020820190506146346000830184613fb8565b92915050565b600060408201905061464f6000830185613fb8565b81810360208301526146618184613505565b90509392505050565b6000604051905081810181811067ffffffffffffffff8211171561468d57600080fd5b8060405250919050565b600067ffffffffffffffff8211156146ae57600080fd5b601f19601f8301169050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000808585111561472157600080fd5b8386111561472e57600080fd5b6001850283019150848603905094509492505050565b600061474f826147aa565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60006147a382614744565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b600060ff82169050919050565b60006148008261483d565b9050919050565b600061481282614819565b9050919050565b6000614824826147aa565b9050919050565b6000614836826147d4565b9050919050565b60006148488261484f565b9050919050565b600061485a826147aa565b9050919050565b82818337600083830152505050565b60005b8381101561488e578082015181840152602081019050614873565b8381111561489d576000848401525b50505050565b60006148ae826148bf565b9050919050565b6000819050919050565b60006148ca826148ec565b9050919050565b6000819050919050565b6000601f19601f8301169050919050565b60008160601b9050919050565b61490281614744565b811461490d57600080fd5b50565b61491981614762565b811461492457600080fd5b50565b6149308161476c565b811461493b57600080fd5b50565b61494781614798565b811461495257600080fd5b50565b61495e816147ca565b811461496957600080fd5b5056fea164736f6c634300060c000a"; + "0x60806040523480156200001157600080fd5b506200002e67e6ad6dd6ee73072860c01b6200017e60201b60201c565b6200004a67bcc9be562f8a4b0a60c01b6200018160201b60201c565b6200006667579ae7209daca85260c01b6200018160201b60201c565b32600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000c3676b19898ae2f7725060c01b6200018460201b60201c565b620000df677c2d0c907f0deddc60c01b6200018460201b60201c565b620000fb67f0d1a438b0305bb160c01b6200018460201b60201c565b6000620001196737bb5abaf3e7d9d360c01b6200018460201b60201c565b46905062000138676f86a9c0c67bb39a60c01b6200018460201b60201c565b80600281905550506200015c674f33f857671bcade60c01b6200018760201b60201c565b62000178671b8a8de85538aaee60c01b6200018a60201b60201c565b6200018d565b50565b50565b50565b50565b50565b6172ce806200019d6000396000f3fe608060405234801561001057600080fd5b506004361061038e5760003560e01c80638b95dd71116101de578063bdbafb451161010f578063dc5b68a6116100ad578063ee5fac3c1161007c578063ee5fac3c14610ba0578063f0af072114610bd0578063f1cb7e0614610bec578063f446529f14610c1c5761038e565b8063dc5b68a614610b1c578063dce3f9a414610b38578063e89f764b14610b54578063ebaa653314610b845761038e565b8063c8cc2aee116100e9578063c8cc2aee14610a84578063d0f710d614610aa0578063d5fa2b0014610ad0578063d84fa10c14610aec5761038e565b8063bdbafb4514610a07578063c454330514610a23578063c869023314610a535761038e565b8063a6f8c64a1161017c578063b94f144811610156578063b94f14481461096f578063bccb31c61461099f578063bcd48364146109bb578063bd1313ce146109d75761038e565b8063a6f8c64a14610907578063a91ee0dc14610923578063ae1a7ece1461093f5761038e565b80639adf1043116101b85780639adf10431461085b5780639f106f7e1461088b578063a3561e69146108bb578063a526d83b146108eb5761038e565b80638b95dd71146107f1578063969faf5b1461080d5780639a8a05921461083d5761038e565b80633b3b57de116102c3578063691f3431116102615780637737221311610230578063773722131461077f5780637b1039991461079b5780637d0e0e7e146107b95780638034cda0146107d55761038e565b8063691f3431146106d3578063692b0ad9146107035780636df0cf421461073357806371404156146107635761038e565b80635016492e1161029d5780635016492e1461062757806355800f871461065757806359d1d43c1461067357806361f6df1e146106a35761038e565b80633b3b57de146105bf5780633e260b13146105ef57806346386f731461060b5761038e565b80631b3cd1421161033057806329cd62ea1161030a57806329cd62ea1461052557806329fbd957146105415780632c4bbae614610571578063392e53cd146105a15761038e565b80631b3cd142146104bd578063279a5039146104ed57806329ae6a7e146105095761038e565b80630c68ba211161036c5780630c68ba21146104235780630feb61e61461045357806310f13a8c14610483578063116191b61461049f5761038e565b806301ffc9a71461039357806306554924146103c35780630c67003a146103f3575b600080fd5b6103ad60048036038101906103a89190615c9d565b610c4c565b6040516103ba9190616ace565b60405180910390f35b6103dd60048036038101906103d89190615cc6565b61102a565b6040516103ea9190616ace565b60405180910390f35b61040d60048036038101906104089190615cc6565b611035565b60405161041a9190616ace565b60405180910390f35b61043d6004803603810190610438919061594f565b61103c565b60405161044a9190616ace565b60405180910390f35b61046d60048036038101906104689190615cc6565b6110cd565b60405161047a9190616ace565b60405180910390f35b61049d60048036038101906104989190615b71565b6110d8565b005b6104a76112ac565b6040516104b49190616a6f565b60405180910390f35b6104d760048036038101906104d291906159a1565b6112d2565b6040516104e49190616a6f565b60405180910390f35b61050760048036038101906105029190615cc6565b611305565b005b610523600480360381019061051e91906159a1565b611308565b005b61053f600480360381019061053a9190615a06565b61166d565b005b61055b60048036038101906105569190615cc6565b611825565b6040516105689190616ace565b60405180910390f35b61058b60048036038101906105869190615cc6565b611830565b6040516105989190616ace565b60405180910390f35b6105a9611837565b6040516105b69190616ace565b60405180910390f35b6105d960048036038101906105d491906159a1565b6118cc565b6040516105e69190616a6f565b60405180910390f35b61060960048036038101906106049190615cc6565b61191a565b005b61062560048036038101906106209190615a55565b61191d565b005b610641600480360381019061063c9190615cc6565b611e0b565b60405161064e9190616ace565b60405180910390f35b610671600480360381019061066c91906159a1565b611e16565b005b61068d60048036038101906106889190615b19565b61222b565b60405161069a9190616c4f565b60405180910390f35b6106bd60048036038101906106b89190615cc6565b61233c565b6040516106ca9190616ace565b60405180910390f35b6106ed60048036038101906106e891906159a1565b612347565b6040516106fa9190616c4f565b60405180910390f35b61071d60048036038101906107189190615cc6565b612438565b60405161072a9190616ace565b60405180910390f35b61074d60048036038101906107489190615d84565b61243f565b60405161075a9190616ae9565b60405180910390f35b61077d6004803603810190610778919061594f565b61249b565b005b61079960048036038101906107949190615b19565b612843565b005b6107a36129df565b6040516107b09190616c10565b60405180910390f35b6107d360048036038101906107ce91906159a1565b612a05565b005b6107ef60048036038101906107ea9190615cc6565b612e38565b005b61080b60048036038101906108069190615c36565b612e3b565b005b61082760048036038101906108229190615cc6565b612f71565b6040516108349190616ace565b60405180910390f35b610845612f78565b6040516108529190616f31565b60405180910390f35b61087560048036038101906108709190615cc6565b612f7e565b6040516108829190616ace565b60405180910390f35b6108a560048036038101906108a09190615cc6565b612f89565b6040516108b29190616ace565b60405180910390f35b6108d560048036038101906108d09190615cc6565b612f94565b6040516108e29190616ace565b60405180910390f35b6109056004803603810190610900919061594f565b612f9b565b005b610921600480360381019061091c9190615cc6565b61310e565b005b61093d60048036038101906109389190615cef565b613111565b005b61095960048036038101906109549190615cc6565b6134ca565b6040516109669190616ace565b60405180910390f35b61098960048036038101906109849190615cc6565b6134d5565b6040516109969190616ace565b60405180910390f35b6109b960048036038101906109b49190615cc6565b6134dc565b005b6109d560048036038101906109d09190615cc6565b6134df565b005b6109f160048036038101906109ec9190615cc6565b6134e2565b6040516109fe9190616ace565b60405180910390f35b610a216004803603810190610a1c9190615cc6565b6134e9565b005b610a3d6004803603810190610a389190615cc6565b6134ec565b604051610a4a9190616ace565b60405180910390f35b610a6d6004803603810190610a6891906159a1565b6134f7565b604051610a7b929190616b2d565b60405180910390f35b610a9e6004803603810190610a9991906159a1565b61356d565b005b610aba6004803603810190610ab59190615ac1565b613a21565b604051610ac79190616ace565b60405180910390f35b610aea6004803603810190610ae591906159ca565b613ab6565b005b610b066004803603810190610b019190615cc6565b613bea565b604051610b139190616ace565b60405180910390f35b610b366004803603810190610b319190615d18565b613bf1565b005b610b526004803603810190610b4d9190615cc6565b613fa8565b005b610b6e6004803603810190610b699190615cc6565b613fab565b604051610b7b9190616ace565b60405180910390f35b610b9e6004803603810190610b999190615cc6565b613fb2565b005b610bba6004803603810190610bb59190615cc6565b613fb5565b604051610bc79190616ace565b60405180910390f35b610bea6004803603810190610be59190615cc6565b613fbc565b005b610c066004803603810190610c019190615bfa565b613fbf565b604051610c139190616bee565b60405180910390f35b610c366004803603810190610c319190615cc6565b6140c2565b604051610c439190616ace565b60405180910390f35b6000610c62673e53c3a719fdfb6160c01b6134e9565b610c766729ef8ce42af619b060c01b6134e9565b610c8a672ce96fd6ab276e0c60c01b6134e9565b604051602001610c9990616981565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148015610d0b5750610d0a670fbe9824db25179a60c01b611e0b565b5b80610daf5750604051602001610d20906169bc565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148015610d925750610d916727b7c81d07ae1edf60c01b611e0b565b5b8015610dae5750610dad674c643504008914e460c01b611e0b565b5b5b80610e535750604051602001610dc490616a10565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148015610e365750610e3567cd525a4cca4f34a860c01b611e0b565b5b8015610e525750610e516788cd2a17224750ec60c01b611e0b565b5b5b80610ef75750604051602001610e68906169e6565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148015610eda5750610ed9672a0e61e84c067a0a60c01b611e0b565b5b8015610ef65750610ef567502d2e13e9277dcb60c01b611e0b565b5b5b80610f9b5750604051602001610f0c906169fb565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148015610f7e5750610f7d678a100a7067c528eb60c01b611e0b565b5b8015610f9a5750610f996711799455275f223260c01b611e0b565b5b5b806110235750604051602001610fb0906169d1565b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614801561102257506110216784e3fa8f14ba5fc860c01b611e0b565b5b5b9050919050565b600060019050919050565b6000919050565b6000611052677ab52c65f999e01f60c01b6134dc565b6110666710268b7b424a1bd560c01b6134dc565b61107a6713a157f311059a7b60c01b6134dc565b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600060019050919050565b6110ec67d251b3372a0cf47960c01b611305565b8461110167a8597772f581907360c01b613fb2565b611115676495766894d148d260c01b613fb2565b61112967c1da93cd693904fb60c01b613fb2565b61113d6711ce0725ac60101860c01b613fb2565b611146816140cd565b611185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117c90616ef1565b60405180910390fd5b611199678748427beee9a41560c01b613fb2565b6111ad679dcf59ae2b3dc50860c01b613fb2565b6111c167591792e78ec2f65760c01b611305565b6111d5676669726c18307e5e60c01b611305565b6111e967cae1031985aa218360c01b611305565b828260076000898152602001908152602001600020878760405161120e929190616968565b9081526020016040518091039020919061122992919061560d565b5061123e674e2633545fafa32260c01b611305565b611252675f78468e1dde38a460c01b611305565b8484604051611262929190616968565b6040518091039020867fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a7550878760405161129c929190616c2b565b60405180910390a3505050505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60096020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b50565b61131c6732f0fd9a837cb8ae60c01b6134e9565b61133067ccef01e2549de0f160c01b6134e9565b61134467351df6a73de5ed1f60c01b6134e9565b600061134e6141f2565b905061136467bc87442f68ba4e8560c01b6134e9565b61137867c1f6c1e5fb99a06a60c01b6134e9565b61138c67a01e251f792e923e60c01b6134e9565b3073ffffffffffffffffffffffffffffffffffffffff166113ac8361423f565b73ffffffffffffffffffffffffffffffffffffffff1614611402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f990616d51565b60405180910390fd5b61141667d97611c48588e50960c01b6134e9565b61142a67915426252a0e5af260c01b6134e9565b61143e673d4f611e5bcfec5160c01b6134e9565b61145267f5c32e9e304a40ae60c01b6134e9565b8073ffffffffffffffffffffffffffffffffffffffff166009600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ea90616c91565b60405180910390fd5b6115076757ad1b22f297e47460c01b6134e9565b61151b672518daaccd90e99d60c01b6134e9565b61152f67531efb0041a679c960c01b6134e9565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b0fc9c383836040518363ffffffff1660e01b815260040161158c929190616b04565b600060405180830381600087803b1580156115a657600080fd5b505af11580156115ba573d6000803e3d6000fd5b505050506115d267c7d84d1a497d278660c01b6134e9565b6009600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905561161c67b9e9f636ac14f30e60c01b6134e9565b61163067e55674422ce28fc360c01b6134e9565b7f7803a16d95f9ca635bdec561006625e7444d8a9f8463866643cc03af011779d38282604051611661929190616b04565b60405180910390a15050565b61168167d17efb0a7eb6908260c01b61310e565b8261169667a8597772f581907360c01b613fb2565b6116aa676495766894d148d260c01b613fb2565b6116be67c1da93cd693904fb60c01b613fb2565b6116d26711ce0725ac60101860c01b613fb2565b6116db816140cd565b61171a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171190616ef1565b60405180910390fd5b61172e678748427beee9a41560c01b613fb2565b611742679dcf59ae2b3dc50860c01b613fb2565b61175667a7c8d4d16e37e64360c01b61310e565b61176a67ce8cc1dc0cdb407760c01b61310e565b61177e673b6fb4a892f52fdf60c01b61310e565b6040518060400160405280848152602001838152506006600086815260200190815260200160002060008201518160000155602082015181600101559050506117d1675050d3db7836b7b260c01b61310e565b6117e5676e14e4e56feb20eb60c01b61310e565b837f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e468484604051611817929190616b2d565b60405180910390a250505050565b600060019050919050565b6000919050565b600061184d67e29fe2f351ca6b2760c01b61191a565b611861676f5dd3f08b97747760c01b61191a565b611875673a9488d62818322a60c01b61191a565b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b60006118e267ce175155cdbb82b660c01b612e38565b6118f6672829765e0e2bb8b060c01b612e38565b61190a67280086a7db8bdd0960c01b612e38565b6119138261423f565b9050919050565b50565b61193167093e06bd5823435060c01b6134e9565b61194567ac96d16a1d124a8660c01b6134e9565b61195967ee327b96f00b172e60c01b6134e9565b60006119636141f2565b905061197967fffac7b649ab959b60c01b6134e9565b61198d67eff3af429a5d4acd60c01b6134e9565b600061199a82878761441a565b90506119b067877a107de4122c7d60c01b6134e9565b6119c4675d96a43b57a9a14860c01b6134e9565b6119d8673f35c7250fc5b44960c01b6134e9565b611a268185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506144ae565b611a65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5c90616cb1565b60405180910390fd5b611a796707e366c09dc556ed60c01b6134e9565b611a8d672c7c0dd19e915ba360c01b6134e9565b611aa167097639b96bc3b80560c01b6134e9565b60008686604051602001611ab692919061693c565b604051602081830303815290604052805190602001209050611ae267e68beb862797da6e60c01b6134e9565b611af66762cc10045f9825dd60c01b6134e9565b611b0a673c62ebcce573c75a60c01b6134e9565b3073ffffffffffffffffffffffffffffffffffffffff16611b2a8861423f565b73ffffffffffffffffffffffffffffffffffffffff1614611b80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7790616d31565b60405180910390fd5b611b9467c9f661627c57c42660c01b6134e9565b611ba867a92e5d7d936d303a60c01b6134e9565b611bbc678b3a41262117961660c01b6134e9565b611bd067d4d77c202d37459960c01b6134e9565b600073ffffffffffffffffffffffffffffffffffffffff16611bf18261423f565b73ffffffffffffffffffffffffffffffffffffffff1614611c47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3e90616cd1565b60405180910390fd5b611c5b67a644ab7ed021918160c01b6134e9565b611c6f67761eab3b7dda68e260c01b6134e9565b611c8367613cb4e0dcf9073b60c01b6134e9565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635ef2c7f08888303060006040518663ffffffff1660e01b8152600401611ce7959493929190616b56565b600060405180830381600087803b158015611d0157600080fd5b505af1158015611d15573d6000803e3d6000fd5b50505050611d2d673c97c7996ed3291460c01b6134e9565b611d4167f8052d109a403d0860c01b6134e9565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b0fc9c382856040518363ffffffff1660e01b8152600401611d9e929190616b04565b600060405180830381600087803b158015611db857600080fd5b505af1158015611dcc573d6000803e3d6000fd5b50505050611de4674abdf691c39e28d560c01b6134e9565b611df867db1b5686f2b1df1b60c01b6134e9565b611e028184614580565b50505050505050565b600060019050919050565b611e2a67c29482f3a6cc814760c01b6134e9565b611e3e675d9375568b5cf37b60c01b6134e9565b611e5267a821cd4d6396a0c560c01b6134e9565b6000611e5c6141f2565b9050611e7267f8b13edbd3cdd6c260c01b6134e9565b611e8667868fc72177e2cce160c01b6134e9565b611e9a67e0f9a111b7f58f1960c01b6134e9565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff1660e01b8152600401611ef59190616ae9565b60206040518083038186803b158015611f0d57600080fd5b505afa158015611f21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f459190615978565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611fb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa990616d91565b60405180910390fd5b611fc667cfafcda721fa636760c01b6134e9565b611fda678e79226abb7ea95360c01b6134e9565b611fee67cd1ff6293a0a21cb60c01b6134e9565b61200267ca6580fbb3878c5f60c01b6134e9565b3073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630178b8bf846040518263ffffffff1660e01b81526004016120749190616ae9565b60206040518083038186803b15801561208c57600080fd5b505afa1580156120a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c49190615978565b73ffffffffffffffffffffffffffffffffffffffff161461211a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211190616c71565b60405180910390fd5b61212e6734e7c2c06a6b212f60c01b6134e9565b61214267221dc6d28b6f7a1e60c01b6134e9565b61215667259c70f8bcd41c9a60c01b6134e9565b61216a671e3be474d4bc2b4560c01b6134e9565b600073ffffffffffffffffffffffffffffffffffffffff1661218b8361423f565b73ffffffffffffffffffffffffffffffffffffffff16146121e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d890616e31565b60405180910390fd5b6121f567dfba363a4295a6bd60c01b6134e9565b61220967bc4c15ea2525331560c01b6134e9565b61221d67995ab68b5de2543a60c01b6134e9565b6122278282614580565b5050565b60606122416716908bcdbcdc0a9660c01b611305565b61225567378d2762af388c0860c01b611305565b61226967df2e701c4f77554d60c01b611305565b60076000858152602001908152602001600020838360405161228c929190616968565b90815260200160405180910390208054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561232e5780601f106123035761010080835404028352916020019161232e565b820191906000526020600020905b81548152906001019060200180831161231157829003601f168201915b505050505090509392505050565b600060019050919050565b606061235d67dec5b1215c24904760c01b613fa8565b612371673f4531654d1602d960c01b613fa8565b612385675968079db6a751b060c01b613fa8565b600560008381526020019081526020016000208054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561242c5780601f106124015761010080835404028352916020019161242c565b820191906000526020600020905b81548152906001019060200180831161240f57829003601f168201915b50505050509050919050565b6000919050565b60006124556755e36f2e6b1bed6860c01b6134e9565b6124696711ac5bde527c76fe60c01b6134e9565b61247d67f064a7883b8823c560c01b6134e9565b61249482600001518360200151846040015161441a565b9050919050565b6124af6747dd6d4e27a092d260c01b6134dc565b6124c367e0600b94c13d066760c01b6134dc565b6124d76755e8cedcdd449e2360c01b6134dc565b6124eb67ab821ba7fedab67160c01b6134dc565b6124ff67c540fbd78e0e2a4960c01b6134dc565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661258a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258190616db1565b60405180910390fd5b61259e67d014260b312542b460c01b6134dc565b6125b2674e25985d1c99d1f260c01b6134dc565b6125c667736984febec5fd2560c01b6134dc565b6125da67cbb923c66996310360c01b6134dc565b6125ee672c114aff1103564b60c01b6134dc565b61260267a76a63e34be2bddb60c01b6134dc565b61261667a220bc889ca09d2360c01b6134dc565b8073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415612685576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267c90616eb1565b60405180910390fd5b612699679467d7af09c5944d60c01b6134dc565b6126ad67c28a58b1b15ad6de60c01b6134dc565b6126c167c70b0fecc7c6d3b160c01b6134dc565b6126d567e7892f9392d41a6760c01b6134dc565b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612760576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275790616e51565b60405180910390fd5b612774675a0de441d13969aa60c01b6134dc565b612788674e473b0a29064fba60c01b6134dc565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506127f367e398e5606400274660c01b6134dc565b6128076738c3bd156a3471c260c01b6134dc565b7fee943cdb81826d5909c559c6b1ae6908fcaf2dbc16c4b730346736b486283e8b3282604051612838929190616aa5565b60405180910390a150565b61285767e126def3e2fdfc1060c01b613fa8565b8261286c67a8597772f581907360c01b613fb2565b612880676495766894d148d260c01b613fb2565b61289467c1da93cd693904fb60c01b613fb2565b6128a86711ce0725ac60101860c01b613fb2565b6128b1816140cd565b6128f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e790616ef1565b60405180910390fd5b612904678748427beee9a41560c01b613fb2565b612918679dcf59ae2b3dc50860c01b613fb2565b61292c6707fd1d9d1376442f60c01b613fa8565b61294067090977de14e2519760c01b613fa8565b612954670985f502ef56100560c01b613fa8565b828260056000878152602001908152602001600020919061297692919061560d565b5061298b67572689195bfb8dcf60c01b613fa8565b61299f67839de8924a7c57b360c01b613fa8565b837fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f784846040516129d1929190616c2b565b60405180910390a250505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612a196798f4fe795a6144c460c01b6134e9565b612a2d67d73fa07884c6296b60c01b6134e9565b612a41674f89b1faa0f36f2660c01b6134e9565b6000612a4b6141f2565b9050612a6167a74a41ef91908ce860c01b6134e9565b612a7567f04afda219e7f8bb60c01b6134e9565b612a8967069ded0da7c75ab960c01b6134e9565b600073ffffffffffffffffffffffffffffffffffffffff16612aaa8361423f565b73ffffffffffffffffffffffffffffffffffffffff1614612b00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af790616e11565b60405180910390fd5b612b14678cddb4766da2e34660c01b6134e9565b612b2766ab3ed8e3481c0560c01b6134e9565b612b3b671fd098baa193ac3c60c01b6134e9565b612b4f67e0887e53d44f403760c01b6134e9565b600073ffffffffffffffffffffffffffffffffffffffff166009600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612bf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612be890616df1565b60405180910390fd5b612c0567a498ec26f596d6e960c01b6134e9565b612c1967b74e03b9068920b660c01b6134e9565b612c2d674e7ad34c6e53bae860c01b6134e9565b612c416726e677701509fa3760c01b6134e9565b8073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3846040518263ffffffff1660e01b8152600401612cb39190616ae9565b60206040518083038186803b158015612ccb57600080fd5b505afa158015612cdf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d039190615978565b73ffffffffffffffffffffffffffffffffffffffff1614612d59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d5090616e71565b60405180910390fd5b612d6d670cd0d667e6f0800360c01b6134e9565b612d8167747454a7a4898a8560c01b6134e9565b806009600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612de767ffca0d5222865e7260c01b6134e9565b612dfb670cf13c115d48bc9c60c01b6134e9565b7fc1e082a8c26f27c26e1bf5d0ce7ddd579ec7f6d7eb3ea90d8abd6c40991bae368282604051612e2c929190616b04565b60405180910390a15050565b50565b612e4f6799155cd2a5dde28560c01b612e38565b82612e6467a8597772f581907360c01b613fb2565b612e78676495766894d148d260c01b613fb2565b612e8c67c1da93cd693904fb60c01b613fb2565b612ea06711ce0725ac60101860c01b613fb2565b612ea9816140cd565b612ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612edf90616ef1565b60405180910390fd5b612efc678748427beee9a41560c01b613fb2565b612f10679dcf59ae2b3dc50860c01b613fb2565b612f2467d9477995493ad23960c01b612e38565b612f3867e8ec793f550502aa60c01b612e38565b612f4c67c88eacd4d405cebc60c01b612e38565b612f6067722858e9ba70a57360c01b612e38565b612f6b8484846145d4565b50505050565b6000919050565b60025481565b600060019050919050565b600060019050919050565b6000919050565b612faf67c17b66a0b198af7b60c01b6134dc565b612fc367e0600b94c13d066760c01b6134dc565b612fd76755e8cedcdd449e2360c01b6134dc565b612feb67ab821ba7fedab67160c01b6134dc565b612fff67c540fbd78e0e2a4960c01b6134dc565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661308a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161308190616db1565b60405180910390fd5b61309e67d014260b312542b460c01b6134dc565b6130b2674e25985d1c99d1f260c01b6134dc565b6130c667dfa24a8cc198350160c01b6134dc565b6130da67f9907d82cd18ee0760c01b6134dc565b6130ee67dd37ee49f553c5a760c01b6134dc565b613102679ad66b1d98f77fdf60c01b6134dc565b61310b81614763565b50565b50565b61312567e9f2c05c29e364a960c01b6134e9565b61313967e0600b94c13d066760c01b6134dc565b61314d6755e8cedcdd449e2360c01b6134dc565b61316167ab821ba7fedab67160c01b6134dc565b61317567c540fbd78e0e2a4960c01b6134dc565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131f790616db1565b60405180910390fd5b61321467d014260b312542b460c01b6134dc565b613228674e25985d1c99d1f260c01b6134dc565b61323c6756ec4c07451bebd760c01b6134e9565b613250676284b5cfe2b6cd9560c01b6134e9565b613264672f569dba424ddeac60c01b6134e9565b61327867991f4dca615481e060c01b6134e9565b61328c67a8a9436bb01cf21360c01b6134e9565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156132fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132f390616dd1565b60405180910390fd5b61331067fa83ede13aeade4260c01b6134e9565b613324677145711e91344b0660c01b6134e9565b6133386754da73a6d641b97160c01b6134e9565b61334c67b54a3e091d86239060c01b6134e9565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156133dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133d490616f11565b60405180910390fd5b6133f167b214cbbf2513d88f60c01b6134e9565b61340567b606e73450fa4d8160c01b6134e9565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061345a675b8af6325434e8ba60c01b6134e9565b61346e671ae4b0a4bfec621960c01b6134e9565b7fdb0239c63d4033dcdd21bd44f8dd479a03efbae12f6bbe27c0a5f923d26514cc600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516134bf9190616a6f565b60405180910390a150565b600060019050919050565b6000919050565b50565b50565b6000919050565b50565b600060019050919050565b60008061350e67bf2c21e9346c79bf60c01b61310e565b61352267146b5820274012ac60c01b61310e565b61353667efc1b53237a9532760c01b61310e565b6006600084815260200190815260200160002060000154600660008581526020019081526020016000206001015491509150915091565b61358167195123199189556b60c01b6134e9565b6135956748eec34c0b163c1f60c01b6134e9565b6135a96780a6efacb3203cb060c01b6134e9565b60006135b36141f2565b90506135c9674cab9d3c2b64c15260c01b6134e9565b6135dd67ed6db694efc55e3a60c01b6134e9565b6135f167f6f02d4161c0aadf60c01b6134e9565b600073ffffffffffffffffffffffffffffffffffffffff166136128361423f565b73ffffffffffffffffffffffffffffffffffffffff1614613668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161365f90616e11565b60405180910390fd5b61367c67cdc40258d995303c60c01b6134e9565b61369067cdfb0ccffffa7e3060c01b6134e9565b6136a467a3fe81400e3e4c6960c01b6134e9565b6136b8677636a8ffbb7e2ec360c01b6134e9565b8073ffffffffffffffffffffffffffffffffffffffff166009600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613759576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161375090616c91565b60405180910390fd5b61376d67aaa8c5f31bb5252a60c01b6134e9565b6137816763bad9422c7bd62660c01b6134e9565b6137956794c1054105a61a1360c01b6134e9565b6137a9672d15573d3f9ab91f60c01b6134e9565b3073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3846040518263ffffffff1660e01b815260040161381b9190616ae9565b60206040518083038186803b15801561383357600080fd5b505afa158015613847573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061386b9190615978565b73ffffffffffffffffffffffffffffffffffffffff16146138c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138b890616e71565b60405180910390fd5b6138d5677d36fcfc58269f6960c01b6134e9565b6138e96736fe4e6461a6c8d360c01b6134e9565b6138fd67d2462ae891a22c3560c01b6134e9565b6139078230614580565b61391b6790691e74906f852d60c01b6134e9565b61392f6734990696d2cbbe5060c01b6134e9565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a83306040518363ffffffff1660e01b815260040161398c929190616b04565b600060405180830381600087803b1580156139a657600080fd5b505af11580156139ba573d6000803e3d6000fd5b505050506139d2672ab0eeb28861f73460c01b6134e9565b6139e667c0197a444973256760c01b6134e9565b7fcefbe9dbadcf675eef14e23810996ff38541fc26b4dd77cd6724b0eedc96f20082604051613a159190616ae9565b60405180910390a15050565b6000613a37670fa739e07c029f9060c01b6134dc565b613a4b67406100042e7653bd60c01b6134dc565b613a5f6784104632bda8198f60c01b6134dc565b613aad8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506144ae565b90509392505050565b613aca67b8dc6c7f6208982060c01b612e38565b81613adf67a8597772f581907360c01b613fb2565b613af3676495766894d148d260c01b613fb2565b613b0767c1da93cd693904fb60c01b613fb2565b613b1b6711ce0725ac60101860c01b613fb2565b613b24816140cd565b613b63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b5a90616ef1565b60405180910390fd5b613b77678748427beee9a41560c01b613fb2565b613b8b679dcf59ae2b3dc50860c01b613fb2565b613b9f677396c22b6058759b60c01b612e38565b613bb36766fb11489ea79d3760c01b612e38565b613bc7677545b5f28a61157360c01b612e38565b613bdb67e41b892a5d0b811960c01b612e38565b613be58383614580565b505050565b6000919050565b613c0567c9f8523af82bab8360c01b6134e9565b613c1967d2ba19feb39e0b7f60c01b61191a565b613c2d670c5ad53cdb9edd1560c01b61191a565b613c4167b6b588d2ebb9ae6960c01b61191a565b613c5567c4ec9a90a885875260c01b61191a565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614613ce5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613cdc90616d11565b60405180910390fd5b613cf967c3785ba1534db95460c01b61191a565b613d0d67e4202927591248ef60c01b61191a565b6000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613d6367531cfa2817fbdc8660c01b61191a565b613d776740d6cffa7ab2c26960c01b6134e9565b613d8b6756183fd103117d9e60c01b6134e9565b613d9f674602df75ac80bac360c01b6134e9565b613db36729a6ec9f49a02d1160c01b6134e9565b613dc767aceff1c6eeb9c91360c01b6134e9565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415613e37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e2e90616dd1565b60405180910390fd5b613e4b6703e069af565866e360c01b6134e9565b613e5f6787b237de5a3c419060c01b6134e9565b83600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613eb467de2fcb48e932264460c01b6134e9565b613ec8679dd0cca15f369a6c60c01b6134e9565b613f12838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506149e2565b613f266776e2956e5d5a32ca60c01b6134e9565b613f3a67e43784b3932c727e60c01b6134e9565b613f4381614b3e565b613f576701520f419008b58e60c01b61191a565b613f6b6775364c04848b013b60c01b61191a565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e632604051613f9a9190616a8a565b60405180910390a150505050565b50565b6000919050565b50565b6000919050565b50565b6060613fd567e2f9f38fff2fc32060c01b612e38565b613fe96785aead68c541c11460c01b612e38565b613ffd67e58df30d06a8f2d060c01b612e38565b6004600084815260200190815260200160002060008381526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156140b55780601f1061408a576101008083540402835291602001916140b5565b820191906000526020600020905b81548152906001019060200180831161409857829003601f168201915b5050505050905092915050565b600060019050919050565b60006140e367655be2e876f304b760c01b6134e9565b6140f76784463205d9b9b5d160c01b6134e9565b61410b67b724a588b1b1d71060c01b6134e9565b6141136141f2565b73ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3846040518263ffffffff1660e01b81526004016141849190616ae9565b60206040518083038186803b15801561419c57600080fd5b505afa1580156141b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d49190615978565b73ffffffffffffffffffffffffffffffffffffffff16149050919050565b6000614208677ac614d5268cc8ac60c01b613fbc565b61421c670a6b7ac33c94c4ed60c01b613fbc565b61423067e7ef433820a2765360c01b613fbc565b61423a6028614baa565b905090565b6000614255677a700e570bc2a2fc60c01b612e38565b61426967d0ba17887186b37e60c01b612e38565b61427d6780906c28707d15c960c01b612e38565b60006142936797ef8d9ff31bef5660c01b612e38565b6142a767f7584d6fe1f20edf60c01b612e38565b6060600460008581526020019081526020016000206000603c81526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156143625780601f1061433757610100808354040283529160200191614362565b820191906000526020600020905b81548152906001019060200180831161434557829003601f168201915b5050505050905061437d676d87361a9762eaaa60c01b612e38565b6143916735eb1fc4be22236c60c01b612e38565b6000815111156143d3576143af67948289de987958d460c01b612e38565b6143c36714e213e2588060b960c01b612e38565b6143cc81614d40565b91506143e8565b6143e7678f764f9dd1c1ed8260c01b612e38565b5b6143fc678b711ea8478c55b460c01b612e38565b61441067a95eb015360bec7e60c01b612e38565b8192505050919050565b600061443067d23d299e453cbef960c01b6134e9565b61444467cf4ec574175a17ec60c01b6134e9565b61445867c6352e1e889e3f5560c01b6134e9565b6144a57f621363c539a3aa1024c8837ca1dc095db03b7f9512b3a95ecb429aae7fd953ed858585604051602001614491939291906168ff565b604051602081830303815290604052614e31565b90509392505050565b60006144c467fbe9af14abc78ca860c01b6134dc565b6144d867bd3616cf00f8ad2b60c01b6134dc565b6144ec670aad941719c9b69b60c01b6134dc565b60006145018385614eae90919063ffffffff16565b90506145176706f556c4601e7cd060c01b6134dc565b61452b67344e7bee2db8345860c01b6134dc565b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b6145946738d211ffdd9c049860c01b612e38565b6145a867acea32d3c1dcb5ef60c01b612e38565b6145bc67a1ca8e8ea3f1792660c01b612e38565b6145d082603c6145cb846151b6565b6145d4565b5050565b6145e86710b60a5dae454a6f60c01b612e38565b6145fc6777ebe5b96203aa5660c01b612e38565b614610672e75dee0965b85d960c01b612e38565b827f65412581168e88a1e60c6459d7f44ae83ad0832e670826c05a4e2476b57af7528383604051614642929190616f4c565b60405180910390a261465e670ac1489a0da775d560c01b612e38565b614672671d550d092ffb544360c01b612e38565b603c8214156146fc5761468f678deefdd0c0c4f8b360c01b612e38565b6146a367aa5003b8afb30f0460c01b612e38565b6146b76717b5dcac59fd3d2960c01b612e38565b827f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd26146e283614d40565b6040516146ef9190616a8a565b60405180910390a2614711565b61471067ef5c168066bd63e360c01b612e38565b5b61472567597aaab56f7ddde360c01b612e38565b80600460008581526020019081526020016000206000848152602001908152602001600020908051906020019061475d92919061568d565b50505050565b6147776703611a9e4063d8ea60c01b6134dc565b61478b67ee1baacaa033494260c01b6134dc565b61479f6751e5840de998a97760c01b6134dc565b6147b3676f82de74e2e2e03560c01b6134dc565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415614823576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161481a90616cf1565b60405180910390fd5b6148376717cb80dba7a8a0ea60c01b6134dc565b61484b67e2f8fabe2a63d8b660c01b6134dc565b61485f677550a657f22d30dc60c01b6134dc565b614873673c81d7073dbe6f3060c01b6134dc565b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156148ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016148f690616e91565b60405180910390fd5b61491367bc5a1f0994a7f54e60c01b6134dc565b614927679a7f014629c7374960c01b6134dc565b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061499267d71c83e9f3188e9d60c01b6134dc565b6149a667e4bfbd26cb5c77e660c01b6134dc565b7fbc3292102fa77e083913064b282926717cdfaede4d35f553d66366c0a3da755a32826040516149d7929190616aa5565b60405180910390a150565b6149f667f4de5e8e73d6ad8760c01b6134dc565b614a0a67db1ce0981035d84760c01b6134dc565b614a1e67e97a0a25809a3f0960c01b6134dc565b600081511415614a7257614a3c67de11b839232da49160c01b6134dc565b614a5067b59bd2ea0c1c89a260c01b6134dc565b614a6467652fe2786000e62060c01b6134dc565b614a6d32614763565b614b3b565b614a8667ad5f6f13dddc2ad960c01b6134dc565b614a9a672af46088979bcb2160c01b6134dc565b614aae6796cb81cf0bf6606d60c01b6134dc565b600081519050614ac8672f4c11881b8dca8c60c01b6134dc565b614adc67cec4e8db5057edad60c01b6134dc565b60005b81811015614b3857614afb671a5cc94c8b734dd960c01b6134dc565b614b0f67e437d14e98e20b2f60c01b6134dc565b614b2b838281518110614b1e57fe5b6020026020010151614763565b8080600101915050614adf565b50505b50565b614b52670beab42e12728d3b60c01b613fbc565b614b66675ecbac840a5512ec60c01b613fbc565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000614bc06787c8246a4b35d1f160c01b613fbc565b614bd467976a1e8d41064d2460c01b613fbc565b614be8671867d8bf077bb31160c01b613fbc565b6000614bfe67bdfeda5454a1273960c01b613fbc565b614c12677709e048711a13c960c01b613fbc565b614c1a615296565b15614ce357614c3367d3c6f6b0bcac9b6e60c01b613fbc565b614c47673b2573735f5d680260c01b613fbc565b614c5b675089eb0622c78a2260c01b613fbc565b6000836000369050039050614c7a674bc94a8e9a6ee57960c01b613fbc565b614cdb60003683906014850192614c9393929190617023565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050615461565b915050614d0f565b614cf7677e45e81af2ec2edc60c01b613fbc565b614d0b67391e31dbfdfb407e60c01b613fbc565b3390505b614d2367c4042e2c7c2c999760c01b613fbc565b614d3767fc44c5cccf2cd16760c01b613fbc565b80915050919050565b6000614d5667db251656546edddc60c01b612e38565b614d6a67d4996cc6ed6650af60c01b612e38565b614d7e6713f77ccc0675e66660c01b612e38565b6000614d9467697468552eb1b46c60c01b612e38565b614da86746658c34a7b92ce060c01b612e38565b614dbc6726663fb4243c1d5360c01b612e38565b6014835114614dca57600080fd5b614dde67e7e35d0843eb212860c01b612e38565b614df267f87ddfdf9c4de47d60c01b612e38565b600c6101000a6020840151049050614e1467c3203e7177d7044160c01b612e38565b614e2867517dcdf0eb50c8a560c01b612e38565b80915050919050565b6000614e476771b334e2e3162d2e60c01b6134df565b614e5b6729046581cf97a49460c01b6134df565b614e6f674f9e67c6b1f334b360c01b6134df565b614ea6600254308585604051602001614e8b9493929190616a25565b60405160208183030381529060405280519060200120615590565b905092915050565b6000614ec4670d75db982ec4597160c01b6155fc565b614ed86725c2c60ab754182560c01b6155fc565b614eec673eb64a254569ed0660c01b6155fc565b6000614f0267fb2a2286066e15e460c01b6155fc565b614f1667a440db11ec9e986d60c01b6155fc565b60418351141561516f57614f346704a5aada48e2763260c01b6155fc565b614f48674b98cf1796e5c26660c01b6155fc565b614f5c67d2dfec7b159385fc60c01b6155fc565b6000614f726772c2a840621b4aa760c01b6155fc565b614f8667bfd411e6ba4d07c460c01b6155fc565b6000614f9c67145d23f82764ba9960c01b6155fc565b614fb067acdff958a9c6c5dd60c01b6155fc565b6000614fc6673b79e3a80932a6a160c01b6155fc565b6020860151925060408601519150606086015160001a9050614ff2679b0cdee01a57ea2f60c01b6155fc565b615006675dbf88583373227960c01b6155fc565b601b8160ff16101561504557615026670dc9a1836eb51c3260c01b6155fc565b61503a677097d8456a6c3e1560c01b6155fc565b601b8101905061505a565b6150596708b39c61216869e760c01b6155fc565b5b61506e672ea4d6db7d2138c560c01b6155fc565b615082679ad3f461195a5eee60c01b6155fc565b601b8160ff161480156150a557506150a467a24e972b59dc7d0560c01b6155ff565b5b806150cf5750601c8160ff161480156150ce57506150cd67934bee4849491d9560c01b6155ff565b5b5b15615152576150e8676d6a491fc6e072fa60c01b6155fc565b6150fc67aecd1690d1de9f1c60c01b6155fc565b6001878285856040516000815260200160405260405161511f9493929190616ba9565b6020604051602081039080840390855afa158015615141573d6000803e3d6000fd5b505050602060405103519350615167565b61516667513fbc3b3a0ad1c060c01b6155fc565b5b505050615184565b6151836723d6d78de386c96660c01b6155fc565b5b6151986707d0c4f11e72cfc960c01b6155fc565b6151ac67b9689b22f403636c60c01b6155fc565b8091505092915050565b60606151cc6772351ea3c5d1b9f360c01b612e38565b6151e067f02df6c3bcbceef060c01b612e38565b6151f467ea816d23ec4287f760c01b612e38565b6060601467ffffffffffffffff8111801561520e57600080fd5b506040519080825280601f01601f1916602001820160405280156152415781602001600182028036833780820191505090505b5090506152586762376b73bacb383560c01b612e38565b600c6101000a8302602082015261527967b828916d5b99c26e60c01b612e38565b61528d67f4e2d092fa493cdd60c01b612e38565b80915050919050565b60006152ac6714ec9ba31585b6f760c01b613fbc565b6152c06764d00f8ee4cbc0f460c01b613fbc565b6152d46728aef4b71ffef7e260c01b613fbc565b60006152ea677b6cf6392b8d09d960c01b613fbc565b6152fe67da655f124163f4bc60c01b613fbc565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561541d57615368678c4556fd14dc507160c01b613fbc565b61537c674811af4455ee520960c01b613fbc565b61539067ae36e4b52033411860c01b613fbc565b6153a467ffe63a27679b309260c01b613fbc565b602c600036905010156153ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016153e390616d71565b60405180910390fd5b61540067d1762b0b1ca636f360c01b613fbc565b6154146769c465f7e405b9f660c01b613fbc565b60019050615432565b6154316710f40798097af22060c01b613fbc565b5b615446671855328cbdf7411660c01b613fbc565b61545a670e4f1457e534f9ac60c01b613fbc565b8091505090565b6000615477670df8d76b8cabf76a60c01b61560a565b61548b67e180fcce9e2bf4c560c01b61560a565b61549f670dcb70abe8e8bb0b60c01b61560a565b60006154b567c9f13cc22eb780e060c01b61560a565b6154c967c60f8d891ff21de960c01b61560a565b6154dd6782bb9e679e55c73460c01b61560a565b6014835114615521576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161551890616ed1565b60405180910390fd5b615535679ea304b1b6348ade60c01b61560a565b61554967a0049b4768bf518260c01b61560a565b6c010000000000000000000000006020840151049050615573671f4dc55703cfba1860c01b61560a565b61558767afb63a07e82275e260c01b61560a565b80915050919050565b60006155a667f3d1beb9fba5b7be60c01b6155fc565b6155ba676cd81a1865d6353260c01b6155fc565b6155ce676810828c21da671e60c01b6155fc565b816040516020016155df9190616996565b604051602081830303815290604052805190602001209050919050565b50565b600060019050919050565b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061564e57803560ff191683800117855561567c565b8280016001018555821561567c579182015b8281111561567b578235825591602001919060010190615660565b5b509050615689919061570d565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106156ce57805160ff19168380011785556156fc565b828001600101855582156156fc579182015b828111156156fb5782518255916020019190600101906156e0565b5b509050615709919061570d565b5090565b5b8082111561572657600081600090555060010161570e565b5090565b60008135905061573981617237565b92915050565b60008151905061574e81617237565b92915050565b60008083601f84011261576657600080fd5b8235905067ffffffffffffffff81111561577f57600080fd5b60208301915083602082028301111561579757600080fd5b9250929050565b6000813590506157ad8161724e565b92915050565b6000813590506157c281617265565b92915050565b6000813590506157d78161727c565b92915050565b60008083601f8401126157ef57600080fd5b8235905067ffffffffffffffff81111561580857600080fd5b60208301915083600182028301111561582057600080fd5b9250929050565b600082601f83011261583857600080fd5b813561584b61584682616fa9565b616f7c565b9150808252602083016020830185838301111561586757600080fd5b61587283828461719f565b50505092915050565b60008135905061588a81617293565b92915050565b60008083601f8401126158a257600080fd5b8235905067ffffffffffffffff8111156158bb57600080fd5b6020830191508360018202830111156158d357600080fd5b9250929050565b6000606082840312156158ec57600080fd5b6158f66060616f7c565b905060006159068482850161572a565b600083015250602061591a8482850161579e565b602083015250604061592e8482850161579e565b60408301525092915050565b600081359050615949816172aa565b92915050565b60006020828403121561596157600080fd5b600061596f8482850161572a565b91505092915050565b60006020828403121561598a57600080fd5b60006159988482850161573f565b91505092915050565b6000602082840312156159b357600080fd5b60006159c18482850161579e565b91505092915050565b600080604083850312156159dd57600080fd5b60006159eb8582860161579e565b92505060206159fc8582860161572a565b9150509250929050565b600080600060608486031215615a1b57600080fd5b6000615a298682870161579e565b9350506020615a3a8682870161579e565b9250506040615a4b8682870161579e565b9150509250925092565b60008060008060608587031215615a6b57600080fd5b6000615a798782880161579e565b9450506020615a8a8782880161579e565b935050604085013567ffffffffffffffff811115615aa757600080fd5b615ab3878288016157dd565b925092505092959194509250565b600080600060408486031215615ad657600080fd5b6000615ae48682870161579e565b935050602084013567ffffffffffffffff811115615b0157600080fd5b615b0d868287016157dd565b92509250509250925092565b600080600060408486031215615b2e57600080fd5b6000615b3c8682870161579e565b935050602084013567ffffffffffffffff811115615b5957600080fd5b615b6586828701615890565b92509250509250925092565b600080600080600060608688031215615b8957600080fd5b6000615b978882890161579e565b955050602086013567ffffffffffffffff811115615bb457600080fd5b615bc088828901615890565b9450945050604086013567ffffffffffffffff811115615bdf57600080fd5b615beb88828901615890565b92509250509295509295909350565b60008060408385031215615c0d57600080fd5b6000615c1b8582860161579e565b9250506020615c2c8582860161593a565b9150509250929050565b600080600060608486031215615c4b57600080fd5b6000615c598682870161579e565b9350506020615c6a8682870161593a565b925050604084013567ffffffffffffffff811115615c8757600080fd5b615c9386828701615827565b9150509250925092565b600060208284031215615caf57600080fd5b6000615cbd848285016157b3565b91505092915050565b600060208284031215615cd857600080fd5b6000615ce6848285016157c8565b91505092915050565b600060208284031215615d0157600080fd5b6000615d0f8482850161587b565b91505092915050565b60008060008060608587031215615d2e57600080fd5b6000615d3c8782880161587b565b945050602085013567ffffffffffffffff811115615d5957600080fd5b615d6587828801615754565b93509350506040615d788782880161572a565b91505092959194509250565b600060608284031215615d9657600080fd5b6000615da4848285016158da565b91505092915050565b615db681617133565b82525050565b615dc581617056565b82525050565b615ddc615dd782617056565b6171e1565b82525050565b615deb81617068565b82525050565b615dfa81617074565b82525050565b615e11615e0c82617074565b6171f3565b82525050565b6000615e2282616fd5565b615e2c8185616feb565b9350615e3c8185602086016171ae565b615e4581617219565b840191505092915050565b6000615e5b82616fd5565b615e658185616ffc565b9350615e758185602086016171ae565b80840191505092915050565b615e8a81617145565b82525050565b615e9981617169565b82525050565b6000615eab8385617007565b9350615eb883858461719f565b615ec183617219565b840190509392505050565b6000615ed88385617018565b9350615ee583858461719f565b82840190509392505050565b6000615efc82616fe0565b615f068185617007565b9350615f168185602086016171ae565b615f1f81617219565b840191505092915050565b6000615f37601983617018565b91507f737570706f727473496e746572666163652862797465733429000000000000006000830152601982019050919050565b6000615f77602483617007565b91507f454e53436f6e74726f6c6c65723a20696e76616c6964206e6f6465207265736f60008301527f6c766572000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000615fdd602183617007565b91507f454e53436f6e74726f6c6c65723a20696e76616c6964206e6f6465206f776e6560008301527f72000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000616043602983617007565b91507f454e53436f6e74726f6c6c65723a20696e76616c696420677561726469616e2060008301527f7369676e617475726500000000000000000000000000000000000000000000006020830152604082019050919050565b60006160a9602283617007565b91507f454e53436f6e74726f6c6c65723a206c6162656c20616c72656164792074616b60008301527f656e0000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061610f601c83617018565b91507f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000830152601c82019050919050565b600061614f602083617007565b91507f477561726465643a2063616e6e6f74206164642030783020677561726469616e6000830152602082019050919050565b600061618f602f83617007565b91507f496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742060008301527f74686520696e697469616c697a657200000000000000000000000000000000006020830152604082019050919050565b60006161f5600d83617018565b91507f61646472286279746573333229000000000000000000000000000000000000006000830152600d82019050919050565b6000616235601b83617007565b91507f454e53436f6e74726f6c6c65723a20696e76616c6964206e6f646500000000006000830152602082019050919050565b6000616275602183617007565b91507f454e53436f6e74726f6c6c65723a206e6f646520646f65736e2774206578697360008301527f74000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006162db602283617007565b91507f47617465776179526563697069656e743a20696e76616c6964206d73672e646160008301527f74610000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000616341601483617018565b91507f7465787428627974657333322c737472696e67290000000000000000000000006000830152601482019050919050565b6000616381600d83617018565b91507f6e616d65286279746573333229000000000000000000000000000000000000006000830152600d82019050919050565b60006163c1602b83617007565b91507f454e53436f6e74726f6c6c65723a2063616c6c6572206973206e6f742074686560008301527f206e6f6465206f776e65720000000000000000000000000000000000000000006020830152604082019050919050565b6000616427602683617007565b91507f477561726465643a2074782e6f726967696e206973206e6f742074686520677560008301527f61726469616e00000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061648d602683617007565b91507f454e53436f6e74726f6c6c65723a2063616e6e6f74207365742030783020726560008301527f67697374727900000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006164f3602583617007565b91507f454e53436f6e74726f6c6c65723a206e6f646520616c7265616479207375626d60008301527f69747465640000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000616559600f83617018565b91507f7075626b657928627974657333322900000000000000000000000000000000006000830152600f82019050919050565b6000616599602283617007565b91507f454e53436f6e74726f6c6c65723a206e6f646520616c7265616479206578697360008301527f74730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006165ff602383617007565b91507f454e53436f6e74726f6c6c65723a206e6f646520616c726561647920696e207360008301527f796e6300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000616665601f83617007565b91507f477561726465643a20677561726469616e20646f65736e2774206578697374006000830152602082019050919050565b60006166a5602583617007565b91507f454e53436f6e74726f6c6c65723a20696e76616c696420656e73206e6f64652060008301527f6f776e65720000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061670b602083617007565b91507f477561726465643a20677561726469616e20616c7265616479206578697374736000830152602082019050919050565b600061674b601b83617007565b91507f477561726465643a2063616e6e6f742072656d6f76652073656c6600000000006000830152602082019050919050565b600061678b601d83617007565b91507f42797465734c69623a20696e76616c69642064617461206c656e6774680000006000830152602082019050919050565b60006167cb603783617007565b91507f454e5341627374726163745265736f6c7665723a20726576657274656420627960008301527f206f6e6c794e6f64654f776e6572206d6f6469666965720000000000000000006020830152604082019050919050565b6000616831601283617018565b91507f6164647228627974657333322c75696e742900000000000000000000000000006000830152601282019050919050565b6000616871602383617007565b91507f454e53436f6e74726f6c6c65723a20726567697374727920616c72656164792060008301527f73657400000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6168d381617108565b82525050565b6168ea6168e582617108565b61720f565b82525050565b6168f981617126565b82525050565b600061690b8286615dcb565b60148201915061691b8285615e00565b60208201915061692b8284615e00565b602082019150819050949350505050565b60006169488285615e00565b6020820191506169588284615e00565b6020820191508190509392505050565b6000616975828486615ecc565b91508190509392505050565b600061698c82615f2a565b9150819050919050565b60006169a182616102565b91506169ad8284615e00565b60208201915081905092915050565b60006169c7826161e8565b9150819050919050565b60006169dc82616334565b9150819050919050565b60006169f182616374565b9150819050919050565b6000616a068261654c565b9150819050919050565b6000616a1b82616824565b9150819050919050565b6000616a3182876168d9565b602082019150616a418286615dcb565b601482019150616a518285615e00565b602082019150616a618284615e50565b915081905095945050505050565b6000602082019050616a846000830184615dbc565b92915050565b6000602082019050616a9f6000830184615dad565b92915050565b6000604082019050616aba6000830185615dad565b616ac76020830184615dbc565b9392505050565b6000602082019050616ae36000830184615de2565b92915050565b6000602082019050616afe6000830184615df1565b92915050565b6000604082019050616b196000830185615df1565b616b266020830184615dbc565b9392505050565b6000604082019050616b426000830185615df1565b616b4f6020830184615df1565b9392505050565b600060a082019050616b6b6000830188615df1565b616b786020830187615df1565b616b856040830186615dbc565b616b926060830185615dbc565b616b9f6080830184615e90565b9695505050505050565b6000608082019050616bbe6000830187615df1565b616bcb60208301866168f0565b616bd86040830185615df1565b616be56060830184615df1565b95945050505050565b60006020820190508181036000830152616c088184615e17565b905092915050565b6000602082019050616c256000830184615e81565b92915050565b60006020820190508181036000830152616c46818486615e9f565b90509392505050565b60006020820190508181036000830152616c698184615ef1565b905092915050565b60006020820190508181036000830152616c8a81615f6a565b9050919050565b60006020820190508181036000830152616caa81615fd0565b9050919050565b60006020820190508181036000830152616cca81616036565b9050919050565b60006020820190508181036000830152616cea8161609c565b9050919050565b60006020820190508181036000830152616d0a81616142565b9050919050565b60006020820190508181036000830152616d2a81616182565b9050919050565b60006020820190508181036000830152616d4a81616228565b9050919050565b60006020820190508181036000830152616d6a81616268565b9050919050565b60006020820190508181036000830152616d8a816162ce565b9050919050565b60006020820190508181036000830152616daa816163b4565b9050919050565b60006020820190508181036000830152616dca8161641a565b9050919050565b60006020820190508181036000830152616dea81616480565b9050919050565b60006020820190508181036000830152616e0a816164e6565b9050919050565b60006020820190508181036000830152616e2a8161658c565b9050919050565b60006020820190508181036000830152616e4a816165f2565b9050919050565b60006020820190508181036000830152616e6a81616658565b9050919050565b60006020820190508181036000830152616e8a81616698565b9050919050565b60006020820190508181036000830152616eaa816166fe565b9050919050565b60006020820190508181036000830152616eca8161673e565b9050919050565b60006020820190508181036000830152616eea8161677e565b9050919050565b60006020820190508181036000830152616f0a816167be565b9050919050565b60006020820190508181036000830152616f2a81616864565b9050919050565b6000602082019050616f4660008301846168ca565b92915050565b6000604082019050616f6160008301856168ca565b8181036020830152616f738184615e17565b90509392505050565b6000604051905081810181811067ffffffffffffffff82111715616f9f57600080fd5b8060405250919050565b600067ffffffffffffffff821115616fc057600080fd5b601f19601f8301169050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000808585111561703357600080fd5b8386111561704057600080fd5b6001850283019150848603905094509492505050565b6000617061826170e8565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b60006170e182617056565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b600060ff82169050919050565b600061713e8261717b565b9050919050565b600061715082617157565b9050919050565b6000617162826170e8565b9050919050565b600061717482617112565b9050919050565b60006171868261718d565b9050919050565b6000617198826170e8565b9050919050565b82818337600083830152505050565b60005b838110156171cc5780820151818401526020810190506171b1565b838111156171db576000848401525b50505050565b60006171ec826171fd565b9050919050565b6000819050919050565b60006172088261722a565b9050919050565b6000819050919050565b6000601f19601f8301169050919050565b60008160601b9050919050565b61724081617056565b811461724b57600080fd5b50565b61725781617074565b811461726257600080fd5b50565b61726e8161707e565b811461727957600080fd5b50565b617285816170aa565b811461729057600080fd5b50565b61729c816170d6565b81146172a757600080fd5b50565b6172b381617108565b81146172be57600080fd5b5056fea164736f6c634300060c000a"; type ENSControllerConstructorParams = | [signer?: Signer] diff --git a/typings/factories/ENSHelper__factory.ts b/typings/factories/ENSHelper__factory.ts index 2fefc735..586eeeba 100644 --- a/typings/factories/ENSHelper__factory.ts +++ b/typings/factories/ENSHelper__factory.ts @@ -24,6 +24,108 @@ const _abi = [ name: "Initialized", type: "event", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_098c0657", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__5c42e10b", + type: "bytes8", + }, + ], + name: "c_5c42e10b", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_false098c0657", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__5c42e10b", + type: "bytes8", + }, + ], + name: "c_false5c42e10b", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_true098c0657", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__5c42e10b", + type: "bytes8", + }, + ], + name: "c_true5c42e10b", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [ { @@ -104,7 +206,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b50326000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e74806100606000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806338bc01b51461005c578063392e53cd1461008c5780637b103999146100aa578063c4d66de8146100c8578063dc6008e2146100e4575b600080fd5b610076600480360381019061007191906108a6565b610114565b6040516100839190610b55565b60405180910390f35b6100946101ec565b6040516100a19190610b99565b60405180910390f35b6100b2610242565b6040516100bf9190610bcf565b60405180910390f35b6100e260048036038101906100dd91906108e7565b610268565b005b6100fe60048036038101906100f991906108a6565b6103b2565b60405161010b9190610b77565b60405180910390f35b606060008251905060608167ffffffffffffffff8111801561013557600080fd5b506040519080825280602002602001820160405280156101645781602001602082028036833780820191505090505b50905060005b828110156101e15761018e85828151811061018157fe5b6020026020010151610460565b82828151811061019a57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050808060010191505061016a565b508092505050919050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146102f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ed90610bea565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e6326040516103a79190610b3a565b60405180910390a150565b606060008251905060608167ffffffffffffffff811180156103d357600080fd5b5060405190808252806020026020018201604052801561040757816020015b60608152602001906001900390816103f25790505b50905060005b828110156104555761043185828151811061042457fe5b60200260200101516105e1565b82828151811061043d57fe5b6020026020010181905250808060010191505061040d565b508092505050919050565b6000806000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630178b8bf856040518263ffffffff1660e01b81526004016104c09190610bb4565b60206040518083038186803b1580156104d857600080fd5b505afa1580156104ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610510919061087d565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146105d7578073ffffffffffffffffffffffffffffffffffffffff16633b3b57de856040518263ffffffff1660e01b815260040161057f9190610bb4565b60206040518083038186803b15801561059757600080fd5b505afa9250505080156105c857506040513d601f19601f820116820180604052508101906105c5919061087d565b60015b6105d1576105d6565b809250505b5b8192505050919050565b6060806000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630178b8bf856040518263ffffffff1660e01b81526004016106419190610bb4565b60206040518083038186803b15801561065957600080fd5b505afa15801561066d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610691919061087d565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461075d578073ffffffffffffffffffffffffffffffffffffffff1663691f3431856040518263ffffffff1660e01b81526004016107009190610bb4565b60006040518083038186803b15801561071857600080fd5b505afa92505050801561074e57506040513d6000823e3d601f19601f8201168201806040525081019061074b9190610910565b60015b6107575761075c565b809250505b5b8192505050919050565b60008151905061077681610e22565b92915050565b600082601f83011261078d57600080fd5b81356107a061079b82610c37565b610c0a565b915081818352602084019350602081019050838560208402820111156107c557600080fd5b60005b838110156107f557816107db88826107ff565b8452602084019350602083019250506001810190506107c8565b5050505092915050565b60008135905061080e81610e39565b92915050565b60008135905061082381610e50565b92915050565b600082601f83011261083a57600080fd5b815161084d61084882610c5f565b610c0a565b9150808252602083016020830185838301111561086957600080fd5b610874838284610dde565b50505092915050565b60006020828403121561088f57600080fd5b600061089d84828501610767565b91505092915050565b6000602082840312156108b857600080fd5b600082013567ffffffffffffffff8111156108d257600080fd5b6108de8482850161077c565b91505092915050565b6000602082840312156108f957600080fd5b600061090784828501610814565b91505092915050565b60006020828403121561092257600080fd5b600082015167ffffffffffffffff81111561093c57600080fd5b61094884828501610829565b91505092915050565b600061095d838361098c565b60208301905092915050565b60006109758383610a9b565b905092915050565b61098681610d84565b82525050565b61099581610d2a565b82525050565b60006109a682610cab565b6109b08185610ce6565b93506109bb83610c8b565b8060005b838110156109ec5781516109d38882610951565b97506109de83610ccc565b9250506001810190506109bf565b5085935050505092915050565b6000610a0482610cb6565b610a0e8185610cf7565b935083602082028501610a2085610c9b565b8060005b85811015610a5c5784840389528151610a3d8582610969565b9450610a4883610cd9565b925060208a01995050600181019050610a24565b50829750879550505050505092915050565b610a7781610d3c565b82525050565b610a8681610d48565b82525050565b610a9581610d96565b82525050565b6000610aa682610cc1565b610ab08185610d08565b9350610ac0818560208601610dde565b610ac981610e11565b840191505092915050565b6000610ae1602f83610d19565b91507f496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742060008301527f74686520696e697469616c697a657200000000000000000000000000000000006020830152604082019050919050565b6000602082019050610b4f600083018461097d565b92915050565b60006020820190508181036000830152610b6f818461099b565b905092915050565b60006020820190508181036000830152610b9181846109f9565b905092915050565b6000602082019050610bae6000830184610a6e565b92915050565b6000602082019050610bc96000830184610a7d565b92915050565b6000602082019050610be46000830184610a8c565b92915050565b60006020820190508181036000830152610c0381610ad4565b9050919050565b6000604051905081810181811067ffffffffffffffff82111715610c2d57600080fd5b8060405250919050565b600067ffffffffffffffff821115610c4e57600080fd5b602082029050602081019050919050565b600067ffffffffffffffff821115610c7657600080fd5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000610d3582610d64565b9050919050565b60008115159050919050565b6000819050919050565b6000610d5d82610d2a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610d8f82610dba565b9050919050565b6000610da182610da8565b9050919050565b6000610db382610d64565b9050919050565b6000610dc582610dcc565b9050919050565b6000610dd782610d64565b9050919050565b60005b83811015610dfc578082015181840152602081019050610de1565b83811115610e0b576000848401525b50505050565b6000601f19601f8301169050919050565b610e2b81610d2a565b8114610e3657600080fd5b50565b610e4281610d48565b8114610e4d57600080fd5b50565b610e5981610d52565b8114610e6457600080fd5b5056fea164736f6c634300060c000a"; + "0x608060405234801561001057600080fd5b5061002b67bcc9be562f8a4b0a60c01b6100a460201b60201c565b61004567579ae7209daca85260c01b6100a460201b60201c565b326000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061009f6788a5314e41b335a860c01b6100a760201b60201c565b6100aa565b50565b50565b611575806100b96000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80639b249bb6116100715780639b249bb614610152578063c454330514610182578063c4d66de8146101b2578063c6977ab5146101ce578063d84fa10c146101fe578063dc6008e21461022e576100a9565b806338bc01b5146100ae578063392e53cd146100de5780633e260b13146100fc57806373c00330146101185780637b10399914610134575b600080fd5b6100c860048036038101906100c39190610f3b565b61025e565b6040516100d59190611213565b60405180910390f35b6100e66103fe565b6040516100f39190611257565b60405180910390f35b61011660048036038101906101119190610f7c565b610491565b005b610132600480360381019061012d9190610f7c565b610494565b005b61013c610497565b604051610149919061128d565b60405180910390f35b61016c60048036038101906101679190610f7c565b6104bd565b6040516101799190611257565b60405180910390f35b61019c60048036038101906101979190610f7c565b6104c4565b6040516101a99190611257565b60405180910390f35b6101cc60048036038101906101c79190610fa5565b6104cf565b005b6101e860048036038101906101e39190610f7c565b61071d565b6040516101f59190611257565b60405180910390f35b61021860048036038101906102139190610f7c565b610728565b6040516102259190611257565b60405180910390f35b61024860048036038101906102439190610f3b565b61072f565b6040516102559190611235565b60405180910390f35b6060610274671262cfb69e40cc5b60c01b610494565b6102886798c01d2f7400c2ea60c01b610494565b61029c67ad9923707237991e60c01b610494565b6000825190506102b66789f55ae5d37def3e60c01b610494565b6102ca67ac677aeb4c017ff360c01b610494565b60608167ffffffffffffffff811180156102e357600080fd5b506040519080825280602002602001820160405280156103125781602001602082028036833780820191505090505b509050610329670ba5e1384af0913e60c01b610494565b61033d6714028a04d7886c0860c01b610494565b60005b828110156103cb5761035c6781d854b59fb81ec660c01b610494565b61037885828151811061036b57fe5b60200260200101516108a5565b82828151811061038457fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050610340565b506103e0676499c15a3010af8860c01b610494565b6103f4673ce7fdbf6e3ceeff60c01b610494565b8092505050919050565b600061041467e29fe2f351ca6b2760c01b610491565b610428676f5dd3f08b97747760c01b610491565b61043c673a9488d62818322a60c01b610491565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b50565b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000919050565b600060019050919050565b6104e3670b3f84efbe7b166460c01b610494565b6104f767d2ba19feb39e0b7f60c01b610491565b61050b670c5ad53cdb9edd1560c01b610491565b61051f67b6b588d2ebb9ae6960c01b610491565b61053367c4ec9a90a885875260c01b610491565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146105c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b8906112a8565b60405180910390fd5b6105d567c3785ba1534db95460c01b610491565b6105e967e4202927591248ef60c01b610491565b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061063e67531cfa2817fbdc8660c01b610491565b61065267a88fe5617780e90a60c01b610494565b61066667e820f68755b3cd5960c01b610494565b61067a674261d64cb5e3105760c01b610494565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506106cf6701520f419008b58e60c01b610491565b6106e36775364c04848b013b60c01b610491565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e63260405161071291906111f8565b60405180910390a150565b600060019050919050565b6000919050565b606061074567e80d71150b859b7260c01b610494565b61075967a983b910fbac0dde60c01b610494565b61076d67647fa2dd6620e96c60c01b610494565b600082519050610787673e1ca5096d39224d60c01b610494565b61079b67fc7faae55db6959760c01b610494565b60608167ffffffffffffffff811180156107b457600080fd5b506040519080825280602002602001820160405280156107e857816020015b60608152602001906001900390816107d35790505b5090506107ff67f69904c6431daa3260c01b610494565b61081367871b2ac11c1ac1e160c01b610494565b60005b8281101561087257610832679d6bbf61afcd60cd60c01b610494565b61084e85828151811061084157fe5b6020026020010151610b43565b82828151811061085a57fe5b60200260200101819052508080600101915050610816565b5061088767050076f9e6946aa460c01b610494565b61089b67881f2e841a33919160c01b610494565b8092505050919050565b60006108bb6767ba3fa8e255e42c60c01b610494565b6108cf67ded2d8e7ce5a2fd260c01b610494565b6108e367b7eec7d5b1f6d0ef60c01b610494565b60006108f9672f2b2f7babea174160c01b610494565b61090d67ddb621e05346684960c01b610494565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630178b8bf856040518263ffffffff1660e01b815260040161096a9190611272565b60206040518083038186803b15801561098257600080fd5b505afa158015610996573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ba9190610f12565b90506109d067f89bfd8ea1a9d84c60c01b610494565b6109e467dcfa76ac2a64a3d060c01b610494565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610afc57610a2b66c00643e0fe114260c01b610494565b610a3f676f657acc31999b6e60c01b610494565b610a53677e6620e4ec26afb860c01b610494565b8073ffffffffffffffffffffffffffffffffffffffff16633b3b57de856040518263ffffffff1660e01b8152600401610a8c9190611272565b60206040518083038186803b158015610aa457600080fd5b505afa925050508015610ad557506040513d601f19601f82011682018060405250810190610ad29190610f12565b60015b610ade57610af7565b610af2678d081549d3a105db60c01b610494565b809250505b610b11565b610b1067116afadf3c1fb43960c01b610494565b5b610b2567fd7a0c053af4eb8760c01b610494565b610b396730de74e4786aa2e460c01b610494565b8192505050919050565b6060610b59672ff51caeb36aa79560c01b610494565b610b6d678624272536b909b060c01b610494565b610b81675145d31ae44ae0e660c01b610494565b6060610b9767733b8d1519f8af7260c01b610494565b610bab670bec19ea53a9713360c01b610494565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630178b8bf856040518263ffffffff1660e01b8152600401610c089190611272565b60206040518083038186803b158015610c2057600080fd5b505afa158015610c34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c589190610f12565b9050610c6e675f3e55e290a1f2be60c01b610494565b610c8267a4236d1b625413fd60c01b610494565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610da057610cca6771cac04d0611340f60c01b610494565b610cde67bbd7a982fc04f8d860c01b610494565b610cf2671e4e6b27da2a22c560c01b610494565b8073ffffffffffffffffffffffffffffffffffffffff1663691f3431856040518263ffffffff1660e01b8152600401610d2b9190611272565b60006040518083038186803b158015610d4357600080fd5b505afa925050508015610d7957506040513d6000823e3d601f19601f82011682018060405250810190610d769190610fce565b60015b610d8257610d9b565b610d9667bcddd4c206b0dfb760c01b610494565b809250505b610db5565b610db46783411ebc5f7949ec60c01b610494565b5b610dc967f538509b78c1831860c01b610494565b610ddd677c2d448ed267709960c01b610494565b8192505050919050565b600081519050610df68161150c565b92915050565b600082601f830112610e0d57600080fd5b8135610e20610e1b826112f5565b6112c8565b91508181835260208401935060208101905083856020840282011115610e4557600080fd5b60005b83811015610e755781610e5b8882610e7f565b845260208401935060208301925050600181019050610e48565b5050505092915050565b600081359050610e8e81611523565b92915050565b600081359050610ea38161153a565b92915050565b600081359050610eb881611551565b92915050565b600082601f830112610ecf57600080fd5b8151610ee2610edd8261131d565b6112c8565b91508082526020830160208301858383011115610efe57600080fd5b610f098382846114c8565b50505092915050565b600060208284031215610f2457600080fd5b6000610f3284828501610de7565b91505092915050565b600060208284031215610f4d57600080fd5b600082013567ffffffffffffffff811115610f6757600080fd5b610f7384828501610dfc565b91505092915050565b600060208284031215610f8e57600080fd5b6000610f9c84828501610e94565b91505092915050565b600060208284031215610fb757600080fd5b6000610fc584828501610ea9565b91505092915050565b600060208284031215610fe057600080fd5b600082015167ffffffffffffffff811115610ffa57600080fd5b61100684828501610ebe565b91505092915050565b600061101b838361104a565b60208301905092915050565b60006110338383611159565b905092915050565b6110448161146e565b82525050565b611053816113e8565b82525050565b600061106482611369565b61106e81856113a4565b935061107983611349565b8060005b838110156110aa578151611091888261100f565b975061109c8361138a565b92505060018101905061107d565b5085935050505092915050565b60006110c282611374565b6110cc81856113b5565b9350836020820285016110de85611359565b8060005b8581101561111a57848403895281516110fb8582611027565b945061110683611397565b925060208a019950506001810190506110e2565b50829750879550505050505092915050565b611135816113fa565b82525050565b61114481611406565b82525050565b61115381611480565b82525050565b60006111648261137f565b61116e81856113c6565b935061117e8185602086016114c8565b611187816114fb565b840191505092915050565b600061119f602f836113d7565b91507f496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742060008301527f74686520696e697469616c697a657200000000000000000000000000000000006020830152604082019050919050565b600060208201905061120d600083018461103b565b92915050565b6000602082019050818103600083015261122d8184611059565b905092915050565b6000602082019050818103600083015261124f81846110b7565b905092915050565b600060208201905061126c600083018461112c565b92915050565b6000602082019050611287600083018461113b565b92915050565b60006020820190506112a2600083018461114a565b92915050565b600060208201905081810360008301526112c181611192565b9050919050565b6000604051905081810181811067ffffffffffffffff821117156112eb57600080fd5b8060405250919050565b600067ffffffffffffffff82111561130c57600080fd5b602082029050602081019050919050565b600067ffffffffffffffff82111561133457600080fd5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b60006113f38261144e565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b6000611447826113e8565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611479826114a4565b9050919050565b600061148b82611492565b9050919050565b600061149d8261144e565b9050919050565b60006114af826114b6565b9050919050565b60006114c18261144e565b9050919050565b60005b838110156114e65780820151818401526020810190506114cb565b838111156114f5576000848401525b50505050565b6000601f19601f8301169050919050565b611515816113e8565b811461152057600080fd5b50565b61152c81611406565b811461153757600080fd5b50565b61154381611410565b811461154e57600080fd5b50565b61155a8161143c565b811461156557600080fd5b5056fea164736f6c634300060c000a"; type ENSHelperConstructorParams = | [signer?: Signer] diff --git a/typings/factories/ENSNameResolver__factory.ts b/typings/factories/ENSNameResolver__factory.ts index 85ec426d..7726534e 100644 --- a/typings/factories/ENSNameResolver__factory.ts +++ b/typings/factories/ENSNameResolver__factory.ts @@ -29,6 +29,108 @@ const _abi = [ name: "NameChanged", type: "event", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__6f06df17", + type: "bytes8", + }, + ], + name: "c_6f06df17", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__f395fef5", + type: "bytes8", + }, + ], + name: "c_f395fef5", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__6f06df17", + type: "bytes8", + }, + ], + name: "c_false6f06df17", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__f395fef5", + type: "bytes8", + }, + ], + name: "c_falsef395fef5", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__6f06df17", + type: "bytes8", + }, + ], + name: "c_true6f06df17", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__f395fef5", + type: "bytes8", + }, + ], + name: "c_truef395fef5", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [ { diff --git a/typings/factories/ENSPubKeyResolver__factory.ts b/typings/factories/ENSPubKeyResolver__factory.ts index 64163e23..14788d79 100644 --- a/typings/factories/ENSPubKeyResolver__factory.ts +++ b/typings/factories/ENSPubKeyResolver__factory.ts @@ -35,6 +35,108 @@ const _abi = [ name: "PubkeyChanged", type: "event", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__633abef9", + type: "bytes8", + }, + ], + name: "c_633abef9", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__f395fef5", + type: "bytes8", + }, + ], + name: "c_f395fef5", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__633abef9", + type: "bytes8", + }, + ], + name: "c_false633abef9", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__f395fef5", + type: "bytes8", + }, + ], + name: "c_falsef395fef5", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__633abef9", + type: "bytes8", + }, + ], + name: "c_true633abef9", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__f395fef5", + type: "bytes8", + }, + ], + name: "c_truef395fef5", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [ { diff --git a/typings/factories/ENSRegistry__factory.ts b/typings/factories/ENSRegistry__factory.ts index 0a50c2a5..a61b3a4e 100644 --- a/typings/factories/ENSRegistry__factory.ts +++ b/typings/factories/ENSRegistry__factory.ts @@ -118,6 +118,57 @@ const _abi = [ name: "Transfer", type: "event", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__d1f32b86", + type: "bytes8", + }, + ], + name: "c_d1f32b86", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__d1f32b86", + type: "bytes8", + }, + ], + name: "c_falsed1f32b86", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__d1f32b86", + type: "bytes8", + }, + ], + name: "c_trued1f32b86", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [ { @@ -383,7 +434,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b50326000808060001b815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611253806100776000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80635b0fc9c3116100715780635b0fc9c3146102b15780635ef2c7f0146102ff578063a22cb4651461038b578063cf408823146103db578063e985e9c51461045d578063f79fe538146104d7576100b4565b80630178b8bf146100b957806302571be31461011157806306ab59231461016957806314ab9038146101d557806316a25cbd146102175780631896f70a14610263575b600080fd5b6100e5600480360360208110156100cf57600080fd5b810190808035906020019092919050505061051b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61013d6004803603602081101561012757600080fd5b810190808035906020019092919050505061055a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101bf6004803603606081101561017f57600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105dd565b6040518082815260200191505060405180910390f35b610215600480360360408110156101eb57600080fd5b8101908080359060200190929190803567ffffffffffffffff169060200190929190505050610812565b005b6102436004803603602081101561022d57600080fd5b81019080803590602001909291905050506109e6565b604051808267ffffffffffffffff16815260200191505060405180910390f35b6102af6004803603604081101561027957600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a19565b005b6102fd600480360360408110156102c757600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c11565b005b610389600480360360a081101561031557600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803567ffffffffffffffff169060200190929190505050610e09565b005b6103d9600480360360408110156103a157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610e2b565b005b61045b600480360360808110156103f157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803567ffffffffffffffff169060200190929190505050610f2a565b005b6104bf6004803603604081101561047357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f45565b60405180821515815260200191505060405180910390f35b610503600480360360208110156104ed57600080fd5b8101908080359060200190929190505050610fd9565b60405180821515815260200191505060405180910390f35b600080600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060008084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156105d35760009150506105d8565b809150505b919050565b600083600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806106da5750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61072f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061121b602c913960400191505060405180910390fd5b6000868660405160200180838152602001828152602001925050506040516020818303038152906040528051906020012090508460008083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085877fce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e8287604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a38093505050509392505050565b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061090d5750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610962576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061121b602c913960400191505060405180910390fd5b8260008086815260200190815260200160002060010160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550837f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa6884604051808267ffffffffffffffff16815260200191505060405180910390a250505050565b600080600083815260200190815260200160002060010160149054906101000a900467ffffffffffffffff169050919050565b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480610b145750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610b69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061121b602c913960400191505060405180910390fd5b8260008086815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550837f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a084604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250505050565b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480610d0c5750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610d61576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061121b602c913960400191505060405180910390fd5b8260008086815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550837fd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d26684604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250505050565b6000610e168686866105dd565b9050610e23818484611047565b505050505050565b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b610f348484610c11565b610f3f848383611047565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b60008084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611152578160008085815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550827f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a083604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25b60008084815260200190815260200160002060010160149054906101000a900467ffffffffffffffff1667ffffffffffffffff168167ffffffffffffffff1614611215578060008085815260200190815260200160002060010160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550827f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa6882604051808267ffffffffffffffff16815260200191505060405180910390a25b50505056fe454e5352656769737472793a20726576657274656420627920617574686f7269736564206d6f646966696572a164736f6c634300060c000a"; + "0x608060405234801561001057600080fd5b5061002b6736c8e9480155531e60c01b6100a160201b60201c565b61004567cb111d834975039760c01b6100a160201b60201c565b326000808060001b815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506100a4565b50565b611d5c806100b36000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80635ef2c7f011610097578063bfc17ff611610066578063bfc17ff6146104c4578063cf40882314610523578063e985e9c5146105a5578063f79fe5381461061f576100f5565b80635ef2c7f01461034057806365c05305146103cc578063751f4fce1461042b578063a22cb46514610474576100f5565b806314ab9038116100d357806314ab90381461021657806316a25cbd146102585780631896f70a146102a45780635b0fc9c3146102f2576100f5565b80630178b8bf146100fa57806302571be31461015257806306ab5923146101aa575b600080fd5b6101266004803603602081101561011057600080fd5b8101908080359060200190929190505050610663565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61017e6004803603602081101561016857600080fd5b81019080803590602001909291905050506106de565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610200600480360360608110156101c057600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061083e565b6040518082815260200191505060405180910390f35b6102566004803603604081101561022c57600080fd5b8101908080359060200190929190803567ffffffffffffffff169060200190929190505050610c13565b005b6102846004803603602081101561026e57600080fd5b8101908080359060200190929190505050610f37565b604051808267ffffffffffffffff16815260200191505060405180910390f35b6102f0600480360360408110156102ba57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fa6565b005b61033e6004803603604081101561030857600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112ee565b005b6103ca600480360360a081101561035657600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803567ffffffffffffffff169060200190929190505050611636565b005b610413600480360360208110156103e257600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506116bc565b60405180821515815260200191505060405180910390f35b6104726004803603602081101561044157600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506116c3565b005b6104c26004803603604081101561048a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506116c6565b005b61050b600480360360208110156104da57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611815565b60405180821515815260200191505060405180910390f35b6105a36004803603608081101561053957600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803567ffffffffffffffff169060200190929190505050611820565b005b610607600480360360408110156105bb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061189f565b60405180821515815260200191505060405180910390f35b61064b6004803603602081101561063557600080fd5b810190808035906020019092919050505061196f565b60405180821515815260200191505060405180910390f35b600061067967a91a92e3b1e6964d60c01b6116c3565b61068d67ad83c03b0635ce8660c01b6116c3565b6106a1675ffe20d6c29c0f2660c01b6116c3565b60008083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006106f4671dac06bc8af993dc60c01b6116c3565b6107086774259b69da08da8360c01b6116c3565b61071c67114165c8cbc5f0e260c01b6116c3565b600080600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061076a6733ed267e56eccf1960c01b6116c3565b61077e67060b2c72f9b534b260c01b6116c3565b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156107f8576107c667df48ee080439f57e60c01b6116c3565b6107da675e0c9b0341a2798960c01b6116c3565b6107ee6716d8c9e02790591c60c01b6116c3565b6000915050610839565b61080c67e6481328ab4613be60c01b6116c3565b61082067bfc9ecee990bd5e660c01b6116c3565b610834670e76d00bdcfa8b2660c01b6116c3565b809150505b919050565b60006108546746301080129d62c460c01b6116c3565b8361086967706fa904dea172c060c01b6116c3565b61087d67cf76ab10c9ddd21560c01b6116c3565b61089167522094c27440315e60c01b6116c3565b600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506108df67a02f5d77106563e460c01b6116c3565b6108f367f4dd7b3aca08833a60c01b6116c3565b610907675e2aab026345f06560c01b6116c3565b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148015610952575061095167e31086c8d5ce86ea60c01b611815565b5b806109ff5750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156109fe57506109fd6772b58f74a12a5c6760c01b611815565b5b5b610a54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180611d24602c913960400191505060405180910390fd5b610a68677a10899b08faa7f360c01b6116c3565b610a7c67bb373fe3fa23200260c01b6116c3565b610a90671b0b4faa8d730f0d60c01b6116c3565b610aa4679dc2381e3d0bb5c060c01b6116c3565b610ab86794da2df0a83fbf0160c01b6116c3565b610acc673945bc0957f8e5e660c01b6116c3565b600086866040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209050610b1367042906f404bfb65160c01b6116c3565b8460008083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b7b677df30e26fea4415b60c01b6116c3565b610b8f670f22a7c9dd95b7b760c01b6116c3565b85877fce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e8287604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a3610bf267ec9e85db7555aa4a60c01b6116c3565b610c0667364b665ccba087f160c01b6116c3565b8093505050509392505050565b610c27672b4d43abf09065c360c01b6116c3565b81610c3c67706fa904dea172c060c01b6116c3565b610c5067cf76ab10c9ddd21560c01b6116c3565b610c6467522094c27440315e60c01b6116c3565b600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050610cb267a02f5d77106563e460c01b6116c3565b610cc667f4dd7b3aca08833a60c01b6116c3565b610cda675e2aab026345f06560c01b6116c3565b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148015610d255750610d2467e31086c8d5ce86ea60c01b611815565b5b80610dd25750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015610dd15750610dd06772b58f74a12a5c6760c01b611815565b5b5b610e27576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180611d24602c913960400191505060405180910390fd5b610e3b677a10899b08faa7f360c01b6116c3565b610e4f67bb373fe3fa23200260c01b6116c3565b610e63673de8f8a23b6e5d7060c01b6116c3565b610e7767d86a23592c19405060c01b6116c3565b610e8b6795e8daa61d7de75d60c01b6116c3565b8260008086815260200190815260200160002060010160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550610edb6774b5b8b9c3b8d5c460c01b6116c3565b610eef6763d54e793fbed22960c01b6116c3565b837f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa6884604051808267ffffffffffffffff16815260200191505060405180910390a250505050565b6000610f4d674d7d38a73539dc5660c01b6116c3565b610f61675d3ffe7e1ff3b5d360c01b6116c3565b610f7567105d974893e03c6a60c01b6116c3565b60008083815260200190815260200160002060010160149054906101000a900467ffffffffffffffff169050919050565b610fba6723e07f132490a9d160c01b6116c3565b81610fcf67706fa904dea172c060c01b6116c3565b610fe367cf76ab10c9ddd21560c01b6116c3565b610ff767522094c27440315e60c01b6116c3565b600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061104567a02f5d77106563e460c01b6116c3565b61105967f4dd7b3aca08833a60c01b6116c3565b61106d675e2aab026345f06560c01b6116c3565b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480156110b857506110b767e31086c8d5ce86ea60c01b611815565b5b806111655750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561116457506111636772b58f74a12a5c6760c01b611815565b5b5b6111ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180611d24602c913960400191505060405180910390fd5b6111ce677a10899b08faa7f360c01b6116c3565b6111e267bb373fe3fa23200260c01b6116c3565b6111f6678d27949ed879301060c01b6116c3565b61120a67b0c05e18247a5a8060c01b6116c3565b61121e67022cb8e7fcf8e2c160c01b6116c3565b8260008086815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061128667d5df43ea9338375460c01b6116c3565b61129a678a8458b03787c9f760c01b6116c3565b837f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a084604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250505050565b611302677f782f3f1c22e8ef60c01b6116c3565b8161131767706fa904dea172c060c01b6116c3565b61132b67cf76ab10c9ddd21560c01b6116c3565b61133f67522094c27440315e60c01b6116c3565b600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061138d67a02f5d77106563e460c01b6116c3565b6113a167f4dd7b3aca08833a60c01b6116c3565b6113b5675e2aab026345f06560c01b6116c3565b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614801561140057506113ff67e31086c8d5ce86ea60c01b611815565b5b806114ad5750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156114ac57506114ab6772b58f74a12a5c6760c01b611815565b5b5b611502576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180611d24602c913960400191505060405180910390fd5b611516677a10899b08faa7f360c01b6116c3565b61152a67bb373fe3fa23200260c01b6116c3565b61153e67b89dd9afaec2096a60c01b6116c3565b61155267bb19253879085b5f60c01b6116c3565b6115666749a0b037f6cc722f60c01b6116c3565b8260008086815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506115ce67faa3933c3e8346f460c01b6116c3565b6115e267847aca86b396fc0160c01b6116c3565b837fd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d26684604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250505050565b61164a67f88f52150baac59560c01b6116c3565b61165e67b2a29dd08c9bb3c060c01b6116c3565b611672670e5fe7dc2fedb22c60c01b6116c3565b600061167f86868661083e565b905061169567fea2b112ffe9f66260c01b6116c3565b6116a967abd2fef41df14a0d60c01b6116c3565b6116b4818484611a1a565b505050505050565b6000919050565b50565b6116da67b17903bbeb444e4760c01b6116c3565b6116ee677f9022dab280f6c660c01b6116c3565b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611796676456df39b9a8dcde60c01b6116c3565b6117aa67597f2972801c6c1860c01b6116c3565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b600060019050919050565b611834675cb74efcf7b4f94b60c01b6116c3565b611848678e988af9f8e57dfd60c01b6116c3565b61185c678a9f9ab2e51d3dfc60c01b6116c3565b61186684846112ee565b61187a67d690fb1171a8a39460c01b6116c3565b61188e6795e8b780995311da60c01b6116c3565b611899848383611a1a565b50505050565b60006118b5674c96849f2f11d16f60c01b6116c3565b6118c9675c85d148057adfc760c01b6116c3565b6118dd675463f54b290c378460c01b6116c3565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600061198567d2eb6228dc3434b860c01b6116c3565b61199967c8925a4659a55e2360c01b6116c3565b6119ad676c42fb1c0510629c60c01b6116c3565b600073ffffffffffffffffffffffffffffffffffffffff1660008084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b611a2e675011b0a91f27726960c01b6116c3565b611a4267d7f40713044ecddf60c01b6116c3565b611a5667177444d8941447b360c01b6116c3565b60008084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611bb557611ad267720a9d94dd7b426860c01b6116c3565b611ae667eadc6e58b51eaf6c60c01b6116c3565b8160008085815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611b4e679433de5066f024ad60c01b6116c3565b611b6267026733b077e3f01160c01b6116c3565b827f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a083604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a2611bca565b611bc967b671c5abe4a8865160c01b6116c3565b5b611bde67b1449d9ae72db83c60c01b6116c3565b611bf267df7e552f1e3df70e60c01b6116c3565b60008084815260200190815260200160002060010160149054906101000a900467ffffffffffffffff1667ffffffffffffffff168167ffffffffffffffff1614611d0957611c4a67a0fc58a9d736e60360c01b6116c3565b611c5e67ecce33337b56dff760c01b6116c3565b8060008085815260200190815260200160002060010160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550611cae67fb4c10d0982e412f60c01b6116c3565b611cc26739c620525670447060c01b6116c3565b827f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa6882604051808267ffffffffffffffff16815260200191505060405180910390a2611d1e565b611d1d6759e493318464c1f160c01b6116c3565b5b50505056fe454e5352656769737472793a20726576657274656420627920617574686f7269736564206d6f646966696572a164736f6c634300060c000a"; type ENSRegistryConstructorParams = | [signer?: Signer] diff --git a/typings/factories/ENSReverseRegistrar__factory.ts b/typings/factories/ENSReverseRegistrar__factory.ts index df90031c..7addab65 100644 --- a/typings/factories/ENSReverseRegistrar__factory.ts +++ b/typings/factories/ENSReverseRegistrar__factory.ts @@ -40,6 +40,108 @@ const _abi = [ stateMutability: "view", type: "function", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_098c0657", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__c9f97d2d", + type: "bytes8", + }, + ], + name: "c_c9f97d2d", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_false098c0657", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__c9f97d2d", + type: "bytes8", + }, + ], + name: "c_falsec9f97d2d", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_true098c0657", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__c9f97d2d", + type: "bytes8", + }, + ], + name: "c_truec9f97d2d", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [ { @@ -181,7 +283,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b50326000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610df8806100606000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063485cc95511610066578063485cc955146101bc5780637b103999146102205780637cf8a2eb14610254578063bffbe61c14610272578063c47f0027146102ca57610093565b806304f3bcec146100985780630f5a5466146100cc5780631e83409a14610144578063392e53cd1461019c575b600080fd5b6100a0610399565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61012e600480360360408110156100e257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103bf565b6040518082815260200191505060405180910390f35b6101866004803603602081101561015a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103d3565b6040518082815260200191505060405180910390f35b6101a46103e7565b60405180821515815260200191505060405180910390f35b61021e600480360360408110156101d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061043d565b005b6102286105f5565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61025c61061b565b6040518082815260200191505060405180910390f35b6102b46004803603602081101561028857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610642565b6040518082815260200191505060405180910390f35b610383600480360360208110156102e057600080fd5b81019080803590602001906401000000008111156102fd57600080fd5b82018360208201111561030f57600080fd5b8035906020019184600183028401116401000000008311171561033157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506106bb565b6040518082815260200191505060405180910390f35b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006103cb83836107ef565b905092915050565b60006103e08260006107ef565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146104e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180610dbd602f913960400191505060405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e632604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b81565b60007f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b6106878373ffffffffffffffffffffffffffffffffffffffff16610d4d565b6040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209050919050565b6000806106ea30600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166107ef565b9050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637737221382856040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610781578082015181840152602081019050610766565b50505050905090810190601f1680156107ae5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156107ce57600080fd5b505af11580156107e2573d6000803e3d6000fd5b5050505080915050919050565b6000806108113373ffffffffffffffffffffffffffffffffffffffff16610d4d565b905060007f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b8260405160200180838152602001828152602001925050506040516020818303038152906040528051906020012090506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156108de57600080fd5b505afa1580156108f2573d6000803e3d6000fd5b505050506040513d602081101561090857600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610a315750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630178b8bf836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156109c657600080fd5b505afa1580156109da573d6000803e3d6000fd5b505050506040513d60208110156109f057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15610c13573073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b6757600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab59237f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b85306040518463ffffffff1660e01b8152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b158015610b2757600080fd5b505af1158015610b3b573d6000803e3d6000fd5b505050506040513d6020811015610b5157600080fd5b8101908080519060200190929190505050503090505b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a83876040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b158015610bfa57600080fd5b505af1158015610c0e573d6000803e3d6000fd5b505050505b8573ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d4157600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab59237f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b85896040518463ffffffff1660e01b8152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b158015610d0457600080fd5b505af1158015610d18573d6000803e3d6000fd5b505050506040513d6020811015610d2e57600080fd5b8101908080519060200190929190505050505b81935050505092915050565b6000807f303132333435363738396162636465660000000000000000000000000000000060285b6000811115610daa5760018103905081600f86161a815360108504945060018103905081600f86161a8153601085049450610d74565b5060286000209150508091505091905056fe496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742074686520696e697469616c697a6572a164736f6c634300060c000a"; + "0x608060405234801561001057600080fd5b5061002b67bcc9be562f8a4b0a60c01b6100a460201b60201c565b61004567579ae7209daca85260c01b6100a460201b60201c565b326000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061009f67a399ebea09360d3560c01b6100a760201b60201c565b6100aa565b50565b50565b6115e3806100b96000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80634d29954811610097578063c454330511610066578063c45433051461041d578063c47f00271461047c578063c74348c01461054b578063d84fa10c146105aa576100f5565b80634d299548146103145780637b103999146103735780637cf8a2eb146103a7578063bffbe61c146103c5576100f5565b80631e83409a116100d35780631e83409a146101ef578063392e53cd146102475780633e260b1314610267578063485cc955146102b0576100f5565b806304f3bcec146100fa578063061e6a5a1461012e5780630f5a546614610177575b600080fd5b610102610609565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101756004803603602081101561014457600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061062f565b005b6101d96004803603604081101561018d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610632565b6040518082815260200191505060405180910390f35b6102316004803603602081101561020557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610682565b6040518082815260200191505060405180910390f35b61024f6106d1565b60405180821515815260200191505060405180910390f35b6102ae6004803603602081101561027d57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610764565b005b610312600480360360408110156102c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610767565b005b61035b6004803603602081101561032a57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610a37565b60405180821515815260200191505060405180910390f35b61037b610a3e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103af610a64565b6040518082815260200191505060405180910390f35b610407600480360360208110156103db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a8b565b6040518082815260200191505060405180910390f35b6104646004803603602081101561043357600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b40565b60405180821515815260200191505060405180910390f35b6105356004803603602081101561049257600080fd5b81019080803590602001906401000000008111156104af57600080fd5b8201836020820111156104c157600080fd5b803590602001918460018302840111640100000000831117156104e357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610b4b565b6040518082815260200191505060405180910390f35b6105926004803603602081101561056157600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610d0c565b60405180821515815260200191505060405180910390f35b6105f1600480360360208110156105c057600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610d17565b60405180821515815260200191505060405180910390f35b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b50565b6000610648678d9a4ac5f4e4e48460c01b61062f565b61065c67d5715caf8f5a00af60c01b61062f565b610670678b87148bdb43cd2760c01b61062f565b61067a8383610d1e565b905092915050565b600061069867802b7699dc38571c60c01b61062f565b6106ab66af07c42e64946260c01b61062f565b6106bf67e2d84fe002c08a8960c01b61062f565b6106ca826000610d1e565b9050919050565b60006106e767e29fe2f351ca6b2760c01b610764565b6106fb676f5dd3f08b97747760c01b610764565b61070f673a9488d62818322a60c01b610764565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b50565b61077b676e55433e10791d8960c01b61062f565b61078f67d2ba19feb39e0b7f60c01b610764565b6107a3670c5ad53cdb9edd1560c01b610764565b6107b767b6b588d2ebb9ae6960c01b610764565b6107cb67c4ec9a90a885875260c01b610764565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161461086f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001806115a8602f913960400191505060405180910390fd5b61088367c3785ba1534db95460c01b610764565b61089767e4202927591248ef60c01b610764565b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506108ec67531cfa2817fbdc8660c01b610764565b61090067beff9d01c8e116a160c01b61062f565b610914678dad54bf39b6933060c01b61062f565b6109286782d24218338e77e360c01b61062f565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061097d673be3b5afe55773f460c01b61062f565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506109d26701520f419008b58e60c01b610764565b6109e66775364c04848b013b60c01b610764565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e632604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b6000919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b81565b6000610aa167d6bca8f1ea738a1f60c01b61062f565b610ab5670c71bc050b17c4c160c01b61062f565b610ac96785b58abe0136c50060c01b61062f565b7f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b610b0c8373ffffffffffffffffffffffffffffffffffffffff166114bc565b6040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209050919050565b600060019050919050565b6000610b6167c6387bb33702f25760c01b61062f565b610b7567f52dc71539f8371f60c01b61062f565b610b896795e699f5c471f2c160c01b61062f565b6000610bb730600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d1e565b9050610bcd67a6bc90be77a4c25f60c01b61062f565b610be1671d56c946afa642cc60c01b61062f565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637737221382856040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610c76578082015181840152602081019050610c5b565b50505050905090810190601f168015610ca35780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015610cc357600080fd5b505af1158015610cd7573d6000803e3d6000fd5b50505050610cef673ea2fa6739acc47a60c01b61062f565b610d0367179612b7219546fa60c01b61062f565b80915050919050565b600060019050919050565b6000919050565b6000610d34678fba7687037ff0ab60c01b61062f565b610d4867326f99af0097bd8d60c01b61062f565b610d5c67f93a3c734b04a2b860c01b61062f565b6000610d7d3373ffffffffffffffffffffffffffffffffffffffff166114bc565b9050610d93675777d3f0b5168a0260c01b61062f565b610da7677169c6b776203e3260c01b61062f565b60007f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b826040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209050610e11677372572d8a0bbee560c01b61062f565b610e2567670f6de6440f899e60c01b61062f565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610e9a57600080fd5b505afa158015610eae573d6000803e3d6000fd5b505050506040513d6020811015610ec457600080fd5b81019080805190602001909291905050509050610eeb67af10598235b6e68b60c01b61062f565b610eff67b6df3587186b09b660c01b61062f565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156110155750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630178b8bf836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610faa57600080fd5b505afa158015610fbe573d6000803e3d6000fd5b505050506040513d6020811015610fd457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156112c85761102e670a8b5142cbf3031c60c01b61062f565b611042673e693fc91f3b56ee60c01b61062f565b611056674284a8fe6ce6242060c01b61062f565b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146111db5761109d67f32eec28915eb55760c01b61062f565b6110b167215c62d59a05704560c01b61062f565b6110c5674b022e8bc635788c60c01b61062f565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab59237f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b85306040518463ffffffff1660e01b8152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b15801561118357600080fd5b505af1158015611197573d6000803e3d6000fd5b505050506040513d60208110156111ad57600080fd5b8101908080519060200190929190505050506111d367330e13943653410e60c01b61062f565b3090506111f0565b6111ef6796e8a699f95f13e260c01b61062f565b5b61120467ee2823989b48738560c01b61062f565b611218679ebccdd2975f0bab60c01b61062f565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a83876040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b1580156112ab57600080fd5b505af11580156112bf573d6000803e3d6000fd5b505050506112dd565b6112dc674921cfe0d7ebef4060c01b61062f565b5b6112f167720b3121f3f8e3ed60c01b61062f565b61130567adb69e3621680edb60c01b61062f565b8573ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146114735761134c67f7b8e5484c481e9860c01b61062f565b61136067f0d42aabdb004ef760c01b61062f565b6113746706d054ec7ccf763c60c01b61062f565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab59237f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b85896040518463ffffffff1660e01b8152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b15801561143257600080fd5b505af1158015611446573d6000803e3d6000fd5b505050506040513d602081101561145c57600080fd5b810190808051906020019092919050505050611488565b61148767b887de50faa5c22160c01b61062f565b5b61149c677fdd0f0a45805bcb60c01b61062f565b6114b067a7ee6975b58644a060c01b61062f565b81935050505092915050565b60006114d26749944f65c73f543d60c01b6115a4565b6114e6672e77f887ba8052d460c01b6115a4565b6114fa676cfd017771fa3bc760c01b6115a4565b6000611510679a313554b743bb2a60c01b6115a4565b7f303132333435363738396162636465660000000000000000000000000000000060285b600081111561156a5760018103905081600f86161a815360108504945060018103905081600f86161a8153601085049450611534565b50602860002091505061158767063a805e66eb937260c01b6115a4565b61159b67337071d34726b2ac60c01b6115a4565b80915050919050565b5056fe496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742074686520696e697469616c697a6572a164736f6c634300060c000a"; type ENSReverseRegistrarConstructorParams = | [signer?: Signer] diff --git a/typings/factories/ENSTextResolver__factory.ts b/typings/factories/ENSTextResolver__factory.ts index 8e2ba604..c70b7264 100644 --- a/typings/factories/ENSTextResolver__factory.ts +++ b/typings/factories/ENSTextResolver__factory.ts @@ -35,6 +35,108 @@ const _abi = [ name: "TextChanged", type: "event", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__7ffc1d72", + type: "bytes8", + }, + ], + name: "c_7ffc1d72", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__f395fef5", + type: "bytes8", + }, + ], + name: "c_f395fef5", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__7ffc1d72", + type: "bytes8", + }, + ], + name: "c_false7ffc1d72", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__f395fef5", + type: "bytes8", + }, + ], + name: "c_falsef395fef5", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__7ffc1d72", + type: "bytes8", + }, + ], + name: "c_true7ffc1d72", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__f395fef5", + type: "bytes8", + }, + ], + name: "c_truef395fef5", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [ { diff --git a/typings/factories/ERC20BurnableUpgradeable__factory.ts b/typings/factories/ERC20BurnableUpgradeable__factory.ts deleted file mode 100644 index dce0efde..00000000 --- a/typings/factories/ERC20BurnableUpgradeable__factory.ts +++ /dev/null @@ -1,344 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from "ethers"; -import { Provider } from "@ethersproject/providers"; -import type { - ERC20BurnableUpgradeable, - ERC20BurnableUpgradeableInterface, -} from "../ERC20BurnableUpgradeable"; - -const _abi = [ - { - 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: "uint8", - name: "version", - type: "uint8", - }, - ], - name: "Initialized", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - inputs: [ - { - 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: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "burnFrom", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "subtractedValue", - type: "uint256", - }, - ], - name: "decreaseAllowance", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "addedValue", - type: "uint256", - }, - ], - name: "increaseAllowance", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - 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: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -]; - -export class ERC20BurnableUpgradeable__factory { - static readonly abi = _abi; - static createInterface(): ERC20BurnableUpgradeableInterface { - return new utils.Interface(_abi) as ERC20BurnableUpgradeableInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): ERC20BurnableUpgradeable { - return new Contract( - address, - _abi, - signerOrProvider - ) as ERC20BurnableUpgradeable; - } -} diff --git a/typings/factories/ERC20Token__factory.ts b/typings/factories/ERC20Token__factory.ts index 83437628..97f3f406 100644 --- a/typings/factories/ERC20Token__factory.ts +++ b/typings/factories/ERC20Token__factory.ts @@ -124,6 +124,57 @@ const _abi = [ stateMutability: "view", type: "function", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__99a47378", + type: "bytes8", + }, + ], + name: "c_99a47378", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__99a47378", + type: "bytes8", + }, + ], + name: "c_false99a47378", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__99a47378", + type: "bytes8", + }, + ], + name: "c_true99a47378", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [], name: "decimals", diff --git a/typings/factories/ERC20Upgradeable__factory.ts b/typings/factories/ERC20Upgradeable__factory.ts deleted file mode 100644 index aab2e5d1..00000000 --- a/typings/factories/ERC20Upgradeable__factory.ts +++ /dev/null @@ -1,344 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { - ERC20Upgradeable, - ERC20UpgradeableInterface, -} from "../ERC20Upgradeable"; - -const _abi = [ - { - 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: "uint8", - name: "version", - type: "uint8", - }, - ], - name: "Initialized", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - inputs: [ - { - 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: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "subtractedValue", - type: "uint256", - }, - ], - name: "decreaseAllowance", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "addedValue", - type: "uint256", - }, - ], - name: "increaseAllowance", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - 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: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -]; - -const _bytecode = - "0x608060405234801561001057600080fd5b5061123c806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610b19565b60405180910390f35b6100e660048036038101906100e19190610bd4565b610308565b6040516100f39190610c2f565b60405180910390f35b61010461032b565b6040516101119190610c59565b60405180910390f35b610134600480360381019061012f9190610c74565b610335565b6040516101419190610c2f565b60405180910390f35b610152610364565b60405161015f9190610ce3565b60405180910390f35b610182600480360381019061017d9190610bd4565b61036d565b60405161018f9190610c2f565b60405180910390f35b6101b260048036038101906101ad9190610cfe565b6103a4565b6040516101bf9190610c59565b60405180910390f35b6101d06103ed565b6040516101dd9190610b19565b60405180910390f35b61020060048036038101906101fb9190610bd4565b61047f565b60405161020d9190610c2f565b60405180910390f35b610230600480360381019061022b9190610bd4565b6104f6565b60405161023d9190610c2f565b60405180910390f35b610260600480360381019061025b9190610d2b565b610519565b60405161026d9190610c59565b60405180910390f35b60606036805461028590610d9a565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190610d9a565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b6000806103136105a0565b90506103208185856105a8565b600191505092915050565b6000603554905090565b6000806103406105a0565b905061034d858285610771565b6103588585856107fd565b60019150509392505050565b60006012905090565b6000806103786105a0565b905061039981858561038a8589610519565b6103949190610dfa565b6105a8565b600191505092915050565b6000603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060603780546103fc90610d9a565b80601f016020809104026020016040519081016040528092919081815260200182805461042890610d9a565b80156104755780601f1061044a57610100808354040283529160200191610475565b820191906000526020600020905b81548152906001019060200180831161045857829003601f168201915b5050505050905090565b60008061048a6105a0565b905060006104988286610519565b9050838110156104dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d490610ea0565b60405180910390fd5b6104ea82868684036105a8565b60019250505092915050565b6000806105016105a0565b905061050e8185856107fd565b600191505092915050565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060e90610f32565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610686576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067d90610fc4565b60405180910390fd5b80603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107649190610c59565b60405180910390a3505050565b600061077d8484610519565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107f757818110156107e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e090611030565b60405180910390fd5b6107f684848484036105a8565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361086c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610863906110c2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d290611154565b60405180910390fd5b6108e6838383610a7f565b6000603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561096d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610964906111e6565b60405180910390fd5b818103603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a029190610dfa565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a669190610c59565b60405180910390a3610a79848484610a84565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610ac3578082015181840152602081019050610aa8565b60008484015250505050565b6000601f19601f8301169050919050565b6000610aeb82610a89565b610af58185610a94565b9350610b05818560208601610aa5565b610b0e81610acf565b840191505092915050565b60006020820190508181036000830152610b338184610ae0565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610b6b82610b40565b9050919050565b610b7b81610b60565b8114610b8657600080fd5b50565b600081359050610b9881610b72565b92915050565b6000819050919050565b610bb181610b9e565b8114610bbc57600080fd5b50565b600081359050610bce81610ba8565b92915050565b60008060408385031215610beb57610bea610b3b565b5b6000610bf985828601610b89565b9250506020610c0a85828601610bbf565b9150509250929050565b60008115159050919050565b610c2981610c14565b82525050565b6000602082019050610c446000830184610c20565b92915050565b610c5381610b9e565b82525050565b6000602082019050610c6e6000830184610c4a565b92915050565b600080600060608486031215610c8d57610c8c610b3b565b5b6000610c9b86828701610b89565b9350506020610cac86828701610b89565b9250506040610cbd86828701610bbf565b9150509250925092565b600060ff82169050919050565b610cdd81610cc7565b82525050565b6000602082019050610cf86000830184610cd4565b92915050565b600060208284031215610d1457610d13610b3b565b5b6000610d2284828501610b89565b91505092915050565b60008060408385031215610d4257610d41610b3b565b5b6000610d5085828601610b89565b9250506020610d6185828601610b89565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610db257607f821691505b602082108103610dc557610dc4610d6b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610e0582610b9e565b9150610e1083610b9e565b9250828201905080821115610e2857610e27610dcb565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000610e8a602583610a94565b9150610e9582610e2e565b604082019050919050565b60006020820190508181036000830152610eb981610e7d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000610f1c602483610a94565b9150610f2782610ec0565b604082019050919050565b60006020820190508181036000830152610f4b81610f0f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000610fae602283610a94565b9150610fb982610f52565b604082019050919050565b60006020820190508181036000830152610fdd81610fa1565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061101a601d83610a94565b915061102582610fe4565b602082019050919050565b600060208201905081810360008301526110498161100d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006110ac602583610a94565b91506110b782611050565b604082019050919050565b600060208201905081810360008301526110db8161109f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061113e602383610a94565b9150611149826110e2565b604082019050919050565b6000602082019050818103600083015261116d81611131565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006111d0602683610a94565b91506111db82611174565b604082019050919050565b600060208201905081810360008301526111ff816111c3565b905091905056fea2646970667358221220570c0e0d06a73dfa709fe533b769121e01b78900fa0907c7b1e500184231f38464736f6c63430008110033"; - -type ERC20UpgradeableConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: ERC20UpgradeableConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class ERC20Upgradeable__factory extends ContractFactory { - constructor(...args: ERC20UpgradeableConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - deploy( - overrides?: Overrides & { from?: string | Promise } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - getDeployTransaction( - overrides?: Overrides & { from?: string | Promise } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - attach(address: string): ERC20Upgradeable { - return super.attach(address) as ERC20Upgradeable; - } - connect(signer: Signer): ERC20Upgradeable__factory { - return super.connect(signer) as ERC20Upgradeable__factory; - } - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): ERC20UpgradeableInterface { - return new utils.Interface(_abi) as ERC20UpgradeableInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): ERC20Upgradeable { - return new Contract(address, _abi, signerOrProvider) as ERC20Upgradeable; - } -} diff --git a/typings/factories/ExternalAccountRegistry__factory.ts b/typings/factories/ExternalAccountRegistry__factory.ts index 1c8a466b..5cef9945 100644 --- a/typings/factories/ExternalAccountRegistry__factory.ts +++ b/typings/factories/ExternalAccountRegistry__factory.ts @@ -111,6 +111,57 @@ const _abi = [ stateMutability: "nonpayable", type: "function", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__9570ce98", + type: "bytes8", + }, + ], + name: "c_9570ce98", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__9570ce98", + type: "bytes8", + }, + ], + name: "c_false9570ce98", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__9570ce98", + type: "bytes8", + }, + ], + name: "c_true9570ce98", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [ { @@ -246,7 +297,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b50610fff806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806394000b021161005b57806394000b0214610227578063bb890d3f14610255578063d543c34a146102cf578063e278cfc6146102fd57610088565b806334d323a41461008d57806359b52ef8146101115780638a3133781461017f5780638ecc1365146101e3575b600080fd5b6100f9600480360360608110156100a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610341565b60405180821515815260200191505060405180910390f35b6101676004803603606081101561012757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919050505061040c565b60405180821515815260200191505060405180910390f35b6101cb6004803603604081101561019557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506104ab565b60405180821515815260200191505060405180910390f35b610225600480360360208110156101f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061053f565b005b6102536004803603602081101561023d57600080fd5b8101908080359060200190929190505050610860565b005b6102b76004803603604081101561026b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109f1565b60405180821515815260200191505060405180910390f35b6102fb600480360360208110156102e557600080fd5b8101908080359060200190929190505050610ab1565b005b61033f6004803603602081101561031357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cb2565b005b6000610403826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff16151515158152602001600182015481525050610eb190919063ffffffff16565b90509392505050565b60006104a2826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff16151515158152602001600182015481525050610eb190919063ffffffff16565b90509392505050565b60006105376000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008481526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff16151515158152602001600182015481525050610f00565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156105c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180610f14602d913960400191505060405180910390fd5b61067b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff16151515158152602001600182015481525050610f00565b156106d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180610f6e602d913960400191505060405180910390fd5b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff02191690831515021790555060008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055507f27e282f7712c5b4617277759c834b86d163dfc1aad25c8c3c5926a1c9e5644683382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b6108ea6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008381526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff16151515158152602001600182015481525050610f00565b61093f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180610fc7602c913960400191505060405180910390fd5b436000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000838152602001908152602001600020600101819055507f87dde712783ad4895642c7a875998317a71cf424a2444eb79545ce3795431ff93382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150565b6000610aa96000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff16151515158152602001600182015481525050610f00565b905092915050565b610b3b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008381526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff16151515158152602001600182015481525050610f00565b15610b91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180610f41602d913960400191505060405180910390fd5b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600083815260200190815260200160002060000160006101000a81548160ff02191690831515021790555060008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000838152602001908152602001600020600101819055507f4075b367eed0513a54aa39c287c66d6ae98e5df6f73ac087b26b8f89d05d1aa83382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150565b610d686000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff16151515158152602001600182015481525050610f00565b610dbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180610f9b602c913960400191505060405180910390fd5b436000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055507f1ce3cbbc43ee231e5b950332f2b0b9dd7d349291a3ee411ce5c5c7ed745661bb3382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b60008060009050836000015115610ef657600084602001511415610ed85760019050610ef5565b6000831415610eea5760019050610ef4565b8284602001511190505b5b5b8091505092915050565b6000610f0c8243610eb1565b905091905056fe45787465726e616c4163636f756e7452656769737472793a2063616e6e6f742061646420307830206f776e657245787465726e616c4163636f756e7452656769737472793a2070726f6f6620616c72656164792065786973747345787465726e616c4163636f756e7452656769737472793a206f776e657220616c72656164792065786973747345787465726e616c4163636f756e7452656769737472793a206f776e657220646f65736e277420657869737445787465726e616c4163636f756e7452656769737472793a2070726f6f6620646f65736e2774206578697374a164736f6c634300060c000a"; + "0x608060405234801561001057600080fd5b506116e1806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80638a313378116100715780638a313378146102a75780638ecc13651461030b57806394000b021461034f578063bb890d3f1461037d578063d543c34a146103f7578063e278cfc614610425576100a9565b806313c5d3d6146100ae5780632dd5e43b146100f757806334d323a414610156578063521a6d99146101da57806359b52ef814610239575b600080fd5b6100f5600480360360208110156100c457600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610469565b005b61013e6004803603602081101561010d57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061046c565b60405180821515815260200191505060405180910390f35b6101c26004803603606081101561016c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610473565b60405180821515815260200191505060405180910390f35b610221600480360360208110156101f057600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061057a565b60405180821515815260200191505060405180910390f35b61028f6004803603606081101561024f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050610585565b60405180821515815260200191505060405180910390f35b6102f3600480360360408110156102bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610660565b60405180821515815260200191505060405180910390f35b61034d6004803603602081101561032157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610730565b005b61037b6004803603602081101561036557600080fd5b8101908080359060200190929190505050610b55565b005b6103df6004803603604081101561039357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d86565b60405180821515815260200191505060405180910390f35b6104236004803603602081101561040d57600080fd5b8101908080359060200190929190505050610e82565b005b6104676004803603602081101561043b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611137565b005b50565b6000919050565b60006104896712aee2a4234e213b60c01b610469565b61049d677f608f86d5ed81d060c01b610469565b6104b167851440c1af22630b60c01b610469565b610571826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff161515151581526020016001820154815250506113d690919063ffffffff16565b90509392505050565b600060019050919050565b600061059b67b677e5dcabcfe2f660c01b610469565b6105af67cd87ea7aff21347260c01b610469565b6105c3679b34ee18ce08f67a60c01b610469565b610657826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff161515151581526020016001820154815250506113d690919063ffffffff16565b90509392505050565b600061067667f4ac95286becf70260c01b610469565b61068a6786eaaf2ebb14eef160c01b610469565b61069e6727010fec581f679c60c01b610469565b6107286000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008481526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff161515151581526020016001820154815250506115a3565b905092915050565b61074467f277242d0eb3a10360c01b610469565b61075867349a5dbd9608c67260c01b610469565b61076c67d8778712b69c370460c01b610469565b6107806779f0022f3961a6a560c01b610469565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610806576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001806115f6602d913960400191505060405180910390fd5b61081a67aa9935183f39be2760c01b610469565b61082e6732a7a8ca89eb668b60c01b610469565b610842671c75b5ac280b25d560c01b610469565b61085667f5c43a38f8aaa7ce60c01b610469565b61090c6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff161515151581526020016001820154815250506115a3565b15610962576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180611650602d913960400191505060405180910390fd5b61097667cb4e32d30cb58f8860c01b610469565b61098a673d458051ca59d16c60c01b610469565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff021916908315150217905550610a38676c020d93a455334f60c01b610469565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550610ad3675e067bbb4241b70e60c01b610469565b610ae7670a1cefa15605c64860c01b610469565b7f27e282f7712c5b4617277759c834b86d163dfc1aad25c8c3c5926a1c9e5644683382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b610b696731dd5d8e4a5787f560c01b610469565b610b7d679152dbe667f7fffa60c01b610469565b610b9167f82f8a54bc2852fe60c01b610469565b610ba567f2a3fac993b2ca5b60c01b610469565b610c2f6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008381526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff161515151581526020016001820154815250506115a3565b610c84576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806116a9602c913960400191505060405180910390fd5b610c9867dd541600e96ab23d60c01b610469565b610cac6733f4e10bff763a2060c01b610469565b436000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600083815260200190815260200160002060010181905550610d1a673f4a3f61667843d860c01b610469565b610d2e67ee08162d1a1a76b560c01b610469565b7f87dde712783ad4895642c7a875998317a71cf424a2444eb79545ce3795431ff93382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150565b6000610d9c67cf11ce1aab4e2dd660c01b610469565b610db067150bddeb94658af360c01b610469565b610dc467bfbdaa54aa93969660c01b610469565b610e7a6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff161515151581526020016001820154815250506115a3565b905092915050565b610e96673452968867b7db5e60c01b610469565b610eaa676cf088855730131a60c01b610469565b610ebe67cc56d769a632b81660c01b610469565b610ed2674395cfaf0f7bc35a60c01b610469565b610f5c6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008381526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff161515151581526020016001820154815250506115a3565b15610fb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180611623602d913960400191505060405180910390fd5b610fc6676295cb0ac9bf889960c01b610469565b610fda67585cbcf2bfe4569f60c01b610469565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600083815260200190815260200160002060000160006101000a81548160ff02191690831515021790555061105c6713473460f014e9a660c01b610469565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000838152602001908152602001600020600101819055506110cb677b5d22bf58f1654760c01b610469565b6110df6716be8639b573c58b60c01b610469565b7f4075b367eed0513a54aa39c287c66d6ae98e5df6f73ac087b26b8f89d05d1aa83382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150565b61114b67203984577370df2460c01b610469565b61115f67cc5e4453e3c9496860c01b610469565b6111736793a5b9a4a7fb0a9460c01b610469565b6111876772d6efaa0caace9160c01b610469565b61123d6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff161515151581526020016001820154815250506115a3565b611292576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061167d602c913960400191505060405180910390fd5b6112a667b2cd93d69430b42360c01b610469565b6112ba6711125f79ef0d0bb160c01b610469565b436000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555061135467b7eaa9480c8beab960c01b610469565b61136867ca228bd94735443360c01b610469565b7f1ce3cbbc43ee231e5b950332f2b0b9dd7d349291a3ee411ce5c5c7ed745661bb3382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b60006113ec679c9d1daabf83176160c01b6115f2565b611400674a60477fa1015d9d60c01b6115f2565b611414671d2dfd1cbc37881260c01b6115f2565b600061142a675c84658542d4247860c01b6115f2565b61143e676c38c63a8395bd4160c01b6115f2565b83600001511561155c5761145c673a129e7e3fa8299860c01b6115f2565b61147067d5d911350233c4aa60c01b6115f2565b6114846788aca451346a904360c01b6115f2565b6000846020015114156114c2576114a5671cab9521da0eae6e60c01b6115f2565b6114b9679a431a7af70a318b60c01b6115f2565b60019050611557565b6114d66728a02509a30cdf2f60c01b6115f2565b6114ea67a315ca16c55cdf1660c01b6115f2565b60008314156115245761150767e5e2fd7cbec5211b60c01b6115f2565b61151b676bc9eb4a60fdc77060c01b6115f2565b60019050611556565b611538670dbcda2f621ef14860c01b6115f2565b61154c67cbf2e8a46e9eb31e60c01b6115f2565b8284602001511190505b5b611571565b611570679312107b7e60296d60c01b6115f2565b5b611585676d1c114b386646c760c01b6115f2565b61159967b26d3c1cf974c30e60c01b6115f2565b8091505092915050565b60006115b9679cab3b0c44b8044060c01b6115f2565b6115cd67ca9af921644e3db460c01b6115f2565b6115e167fb2347240336566c60c01b6115f2565b6115eb82436113d6565b9050919050565b5056fe45787465726e616c4163636f756e7452656769737472793a2063616e6e6f742061646420307830206f776e657245787465726e616c4163636f756e7452656769737472793a2070726f6f6620616c72656164792065786973747345787465726e616c4163636f756e7452656769737472793a206f776e657220616c72656164792065786973747345787465726e616c4163636f756e7452656769737472793a206f776e657220646f65736e277420657869737445787465726e616c4163636f756e7452656769737472793a2070726f6f6620646f65736e2774206578697374a164736f6c634300060c000a"; type ExternalAccountRegistryConstructorParams = | [signer?: Signer] diff --git a/typings/factories/GatewayRecipientMock__factory.ts b/typings/factories/GatewayRecipientMock__factory.ts index 3aaed171..7bb7da80 100644 --- a/typings/factories/GatewayRecipientMock__factory.ts +++ b/typings/factories/GatewayRecipientMock__factory.ts @@ -45,6 +45,108 @@ const _abi = [ name: "Context", type: "event", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__d18be0f9", + type: "bytes8", + }, + ], + name: "c_d18be0f9", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__e67bae8c", + type: "bytes8", + }, + ], + name: "c_e67bae8c", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__d18be0f9", + type: "bytes8", + }, + ], + name: "c_falsed18be0f9", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__e67bae8c", + type: "bytes8", + }, + ], + name: "c_falsee67bae8c", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__d18be0f9", + type: "bytes8", + }, + ], + name: "c_trued18be0f9", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__e67bae8c", + type: "bytes8", + }, + ], + name: "c_truee67bae8c", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [], name: "emitContext", @@ -68,7 +170,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b506040516104bb3803806104bb8339818101604052602081101561003357600080fd5b81019080805190602001909291905050506100538161005960201b60201c565b5061009c565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610410806100ab6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063116191b61461003b5780636d0e77801461006f575b600080fd5b610043610079565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61007761009d565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f1b86fe2ccdffbf1a2c71e8eca215369d319e2c66c438a84d666fb2536ffbfb3a6100c6610152565b6100ce610163565b6100d6610174565b604051808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff168152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509550505050505060405180910390a1565b600061015e60286101bf565b905090565b600061016f60146101bf565b905090565b366000366000610182610254565b156101ab576000366000906028600036905003926101a2939291906103ae565b915091506101b3565b600036915091505b81819350935050509091565b600080600090506101ce610254565b1561024757600083600036905003905061023f600036839060148501926101f7939291906103ae565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610315565b91505061024b565b3390505b80915050919050565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561030e57602c60003690501015610309576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806103e26022913960400191505060405180910390fd5b600190505b8091505090565b600080601483511461038f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f42797465734c69623a20696e76616c69642064617461206c656e67746800000081525060200191505060405180910390fd5b6c01000000000000000000000000602084015104905080915050919050565b600080858511156103be57600080fd5b838611156103cb57600080fd5b600185028301915084860390509450949250505056fe47617465776179526563697069656e743a20696e76616c6964206d73672e64617461a164736f6c634300060c000a"; + "0x608060405234801561001057600080fd5b50604051610c62380380610c628339818101604052602081101561003357600080fd5b810190808051906020019092919050505061005e674f33f857671bcade60c01b6100c160201b60201c565b610078676daff44fec51189560c01b6100c460201b60201c565b6100926765821a2a6b9e96b660c01b6100c460201b60201c565b6100ac677affba52489dc8d160c01b6100c460201b60201c565b6100bb816100c760201b60201c565b5061013e565b50565b50565b6100e1670beab42e12728d3b60c01b6100c160201b60201c565b6100fb675ecbac840a5512ec60c01b6100c160201b60201c565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610b158061014d6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806381d7bced1161005b57806381d7bced146101895780639f106f7e146101e8578063ccf4d3ff14610247578063f0af07211461029057610088565b8063116191b61461008d578063385ee184146100c1578063692b0ad9146101205780636d0e77801461017f575b600080fd5b6100956102d9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610108600480360360208110156100d757600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506102fd565b60405180821515815260200191505060405180910390f35b6101676004803603602081101561013657600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610304565b60405180821515815260200191505060405180910390f35b61018761030b565b005b6101d06004803603602081101561019f57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506103fc565b60405180821515815260200191505060405180910390f35b61022f600480360360208110156101fe57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610407565b60405180821515815260200191505060405180910390f35b61028e6004803603602081101561025d57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610412565b005b6102d7600480360360208110156102a657600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610415565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000919050565b6000919050565b61031f67b20fd189f077e05860c01b610412565b61033367ec0b194b4a81094460c01b610412565b6103476762838e597a2e18b460c01b610412565b7f1b86fe2ccdffbf1a2c71e8eca215369d319e2c66c438a84d666fb2536ffbfb3a610370610418565b610378610465565b6103806104b2565b604051808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff168152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509550505050505060405180910390a1565b600060019050919050565b600060019050919050565b50565b50565b600061042e677ac614d5268cc8ac60c01b610415565b610442670a6b7ac33c94c4ed60c01b610415565b61045667e7ef433820a2765360c01b610415565b61046060286105d9565b905090565b600061047b67e6b9fb986a1ba5a160c01b610415565b61048f67e5f2b4fde85ab0e060c01b610415565b6104a3675a28d96f6aadd0b960c01b610415565b6104ad60146105d9565b905090565b3660006104c9678cde4d1c98ab793960c01b610415565b6104dd6774d9633c758f89e360c01b610415565b6104f167e6e7a205e7f71da860c01b610415565b3660006105086744d9d65c1c805efa60c01b610415565b61051c6736bb3dc184ff614b60c01b610415565b61052461076f565b156105755761053d6780767e9837f3e3e960c01b610415565b61055167cf3ec7dee0fd7cdd60c01b610415565b60003660009060286000369050039261056c93929190610ab3565b915091506105a5565b610589673c5b301410c0412c60c01b610415565b61059d6746f8f41b74f7388260c01b610415565b600036915091505b6105b9671404f1c53eef9bc560c01b610415565b6105cd67647e75d886adb5ab60c01b610415565b81819350935050509091565b60006105ef6787c8246a4b35d1f160c01b610415565b61060367976a1e8d41064d2460c01b610415565b610617671867d8bf077bb31160c01b610415565b600061062d67bdfeda5454a1273960c01b610415565b610641677709e048711a13c960c01b610415565b61064961076f565b156107125761066267d3c6f6b0bcac9b6e60c01b610415565b610676673b2573735f5d680260c01b610415565b61068a675089eb0622c78a2260c01b610415565b60008360003690500390506106a9674bc94a8e9a6ee57960c01b610415565b61070a600036839060148501926106c293929190610ab3565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061094e565b91505061073e565b610726677e45e81af2ec2edc60c01b610415565b61073a67391e31dbfdfb407e60c01b610415565b3390505b61075267c4042e2c7c2c999760c01b610415565b61076667fc44c5cccf2cd16760c01b610415565b80915050919050565b60006107856714ec9ba31585b6f760c01b610415565b6107996764d00f8ee4cbc0f460c01b610415565b6107ad6728aef4b71ffef7e260c01b610415565b60006107c3677b6cf6392b8d09d960c01b610415565b6107d767da655f124163f4bc60c01b610415565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561090a5761083f678c4556fd14dc507160c01b610415565b610853674811af4455ee520960c01b610415565b61086767ae36e4b52033411860c01b610415565b61087b67ffe63a27679b309260c01b610415565b602c600036905010156108d9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610ae76022913960400191505060405180910390fd5b6108ed67d1762b0b1ca636f360c01b610415565b6109016769c465f7e405b9f660c01b610415565b6001905061091f565b61091e6710f40798097af22060c01b610415565b5b610933671855328cbdf7411660c01b610415565b610947670e4f1457e534f9ac60c01b610415565b8091505090565b6000610964670df8d76b8cabf76a60c01b610ab0565b61097867e180fcce9e2bf4c560c01b610ab0565b61098c670dcb70abe8e8bb0b60c01b610ab0565b60006109a267c9f13cc22eb780e060c01b610ab0565b6109b667c60f8d891ff21de960c01b610ab0565b6109ca6782bb9e679e55c73460c01b610ab0565b6014835114610a41576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f42797465734c69623a20696e76616c69642064617461206c656e67746800000081525060200191505060405180910390fd5b610a55679ea304b1b6348ade60c01b610ab0565b610a6967a0049b4768bf518260c01b610ab0565b6c010000000000000000000000006020840151049050610a93671f4dc55703cfba1860c01b610ab0565b610aa767afb63a07e82275e260c01b610ab0565b80915050919050565b50565b60008085851115610ac357600080fd5b83861115610ad057600080fd5b600185028301915084860390509450949250505056fe47617465776179526563697069656e743a20696e76616c6964206d73672e64617461a164736f6c634300060c000a"; type GatewayRecipientMockConstructorParams = | [signer?: Signer] diff --git a/typings/factories/GatewayRecipient__factory.ts b/typings/factories/GatewayRecipient__factory.ts index b31fd930..24fdda62 100644 --- a/typings/factories/GatewayRecipient__factory.ts +++ b/typings/factories/GatewayRecipient__factory.ts @@ -10,6 +10,57 @@ import type { } from "../GatewayRecipient"; const _abi = [ + { + inputs: [ + { + internalType: "bytes8", + name: "c__d18be0f9", + type: "bytes8", + }, + ], + name: "c_d18be0f9", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__d18be0f9", + type: "bytes8", + }, + ], + name: "c_falsed18be0f9", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__d18be0f9", + type: "bytes8", + }, + ], + name: "c_trued18be0f9", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [], name: "gateway", diff --git a/typings/factories/GatewayV2__factory.ts b/typings/factories/GatewayV2__factory.ts index 34b74fac..e4f494aa 100644 --- a/typings/factories/GatewayV2__factory.ts +++ b/typings/factories/GatewayV2__factory.ts @@ -100,6 +100,210 @@ const _abi = [ stateMutability: "nonpayable", type: "function", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_098c0657", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__0b6945c4", + type: "bytes8", + }, + ], + name: "c_0b6945c4", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__33f6a84f", + type: "bytes8", + }, + ], + name: "c_33f6a84f", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__52615ca8", + type: "bytes8", + }, + ], + name: "c_52615ca8", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_false098c0657", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__0b6945c4", + type: "bytes8", + }, + ], + name: "c_false0b6945c4", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__33f6a84f", + type: "bytes8", + }, + ], + name: "c_false33f6a84f", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__52615ca8", + type: "bytes8", + }, + ], + name: "c_false52615ca8", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_true098c0657", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__0b6945c4", + type: "bytes8", + }, + ], + name: "c_true0b6945c4", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__33f6a84f", + type: "bytes8", + }, + ], + name: "c_true33f6a84f", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__52615ca8", + type: "bytes8", + }, + ], + name: "c_true52615ca8", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [], name: "chainId", @@ -585,7 +789,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b50326000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000469050806001819055505061315e8061006d6000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806387d31313116100b8578063b5021b161161007c578063b5021b1614610349578063d0f710d614610365578063d2c83b9a14610395578063d305d0db146103b3578063d9f13021146103cf578063f92c5f7c146103eb57610142565b806387d31313146102b95780639a8a0592146102d75780639f255626146102f5578063a526d83b14610311578063ac2a08cd1461032d57610142565b8063538901341161010a57806353890134146101e95780635afaa7bb14610205578063714041561461022157806373e5a13f1461023d57806376db2b4c1461026d578063867519c61461029d57610142565b80630c68ba2114610147578063231badaf14610177578063371aa71a14610193578063392e53cd146101af578063485cc955146101cd575b600080fd5b610161600480360381019061015c9190611e5b565b61041b565b60405161016e9190612b23565b60405180910390f35b610191600480360381019061018c9190611f03565b610471565b005b6101ad60048036038101906101a89190611f03565b61056c565b005b6101b761060c565b6040516101c49190612b23565b60405180910390f35b6101e760048036038101906101e29190612103565b610662565b005b61020360048036038101906101fe9190611fc2565b6107fa565b005b61021f600480360381019061021a919061202e565b610894565b005b61023b60048036038101906102369190611e5b565b610a6c565b005b61025760048036038101906102529190612180565b610c87565b6040516102649190612b3e565b60405180910390f35b6102876004803603810190610282919061213f565b610cac565b6040516102949190612b3e565b60405180910390f35b6102b760048036038101906102b29190611e84565b610cd6565b005b6102c1610ce7565b6040516102ce9190612bb9565b60405180910390f35b6102df610d0d565b6040516102ec9190612df4565b60405180910390f35b61030f600480360381019061030a9190611fc2565b610d13565b005b61032b60048036038101906103269190611e5b565b610d23565b005b61034760048036038101906103429190611f03565b610dbb565b005b610363600480360381019061035e9190611f03565b610e5b565b005b61037f600480360381019061037a91906120ab565b610f57565b60405161038c9190612b23565b60405180910390f35b61039d610fb0565b6040516103aa9190612b9e565b60405180910390f35b6103cd60048036038101906103c89190611e84565b610fd6565b005b6103e960048036038101906103e4919061202e565b611072565b005b61040560048036038101906104009190611e5b565b61110c565b6040516104129190612df4565b60405180910390f35b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484116104f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e990612c54565b60405180910390fd5b60006105128261050488888888611168565b6111cb90919063ffffffff16565b905084600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061056486828686611286565b505050505050565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166105f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ef90612cf4565b60405180910390fd5b6106058585858585610e5b565b5050505050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146106f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e790612c14565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060606107be816116f1565b507f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e6326040516107ee9190612a78565b60405180910390a15050565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610886576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087d90612cf4565b60405180910390fd5b6108908282610d13565b5050565b60008251116108d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cf90612c94565b60405180910390fd5b600080600090505b8351811015610a265760003073ffffffffffffffffffffffffffffffffffffffff1685838151811061090e57fe5b60200260200101516040516109239190612994565b6000604051808303816000865af19150503d8060008114610960576040519150601f19603f3d011682016040523d82523d6000602084013e610965565b606091505b5050905083156109b457806109af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a690612c34565b60405180910390fd5b6109ca565b8080156109bf575082155b156109c957600192505b5b7f361c14722cc344132c73396113f7164232448b09c544a149f09048648b43d872338684815181106109f857fe5b602002602001015183604051610a1093929190612abc565b60405180910390a15080806001019150506108e0565b5080610a67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5e90612dd4565b60405180910390fd5b505050565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aef90612cf4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415610b67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5e90612db4565b60405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610bf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bea90612d14565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fee943cdb81826d5909c559c6b1ae6908fcaf2dbc16c4b730346736b486283e8b3282604051610c7c929190612a93565b60405180910390a150565b6000610ca58260000151836020015184604001518560600151611168565b9050919050565b6000610ccf82600001518360200151846040015185606001518660800151611749565b9050919050565b610ce283338484611286565b505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b610d1f33338484611286565b5050565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da690612cf4565b60405180910390fd5b610db8816117af565b50565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610e47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3e90612cf4565b60405180910390fd5b610e548585858585610471565b5050505050565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548411610edc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed390612c54565b60405180910390fd5b6000610efd82610eef888888883a611749565b6111cb90919063ffffffff16565b905084600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f4f86828686611286565b505050505050565b6000610fa78484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611940565b90509392505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105990612cf4565b60405180910390fd5b61106d838383610cd6565b505050565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166110fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f590612cf4565b60405180910390fd5b6111088282610894565b5050565b60006111616001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ae90919063ffffffff16565b9050919050565b60006111c17f6848d0622081db2451400280dead7a739a080cb93852607c381af11e289769b286868661119a87611a03565b6040516020016111ad94939291906128f7565b604051602081830303815290604052611a66565b9050949350505050565b6000806000905060418351141561127c5760008060006020860151925060408601519150606086015160001a9050601b8160ff16101561120c57601b810190505b601b8160ff1614806112215750601c8160ff16145b1561127857600187828585604051600081526020016040526040516112499493929190612b59565b6020604051602081039080840390855afa15801561126b573d6000803e3d6000fd5b5050506020604051035193505b5050505b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156112f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ed90612c74565b60405180910390fd5b600082511161133a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133190612d94565b60405180910390fd5b815181511461137e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137590612cd4565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461155257600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb890d3f85856040518363ffffffff1660e01b815260040161140e929190612afa565b60206040518083038186803b15801561142657600080fd5b505afa15801561143a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145e9190612082565b806115125750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb890d3f85856040518363ffffffff1660e01b81526004016114c1929190612afa565b60206040518083038186803b1580156114d957600080fd5b505afa1580156114ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115119190612082565b5b611551576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154890612cb4565b60405180910390fd5b5b600080600090505b82518110156116e957600073ffffffffffffffffffffffffffffffffffffffff1684828151811061158757fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614156115e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dd90612bd4565b60405180910390fd5b8381815181106115f257fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1683828151811061161c57fe5b60200260200101518787604051602001611638939291906129ab565b6040516020818303038152906040526040516116549190612994565b6000604051808303816000865af19150503d8060008114611691576040519150601f19603f3d011682016040523d82523d6000602084013e611696565b606091505b505080925050816116dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d390612d34565b60405180910390fd5b808060010191505061155a565b505050505050565b60008151141561170957611704326117af565b611746565b60008151905060005b818110156117435761173683828151811061172957fe5b60200260200101516117af565b8080600101915050611712565b50505b50565b60006117a47f6f4e1b2b1e5e49f4269e19e16e67a00cb0a796d96d30be3e4b540d3732e8bcad87878761177b88611a03565b8760405160200161179095949392919061293d565b604051602081830303815290604052611a66565b905095945050505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561181f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181690612bf4565b60405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156118ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a390612d74565b60405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fbc3292102fa77e083913064b282926717cdfaede4d35f553d66366c0a3da755a3282604051611935929190612a93565b60405180910390a150565b60008061195683856111cb90919063ffffffff16565b9050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b6000808284019050838110156119f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f090612d54565b60405180910390fd5b8091505092915050565b60608060008351905060005b81811015611a5b5782858281518110611a2457fe5b6020026020010151604051602001611a3d9291906129e4565b60405160208183030381529060405292508080600101915050611a0f565b508192505050919050565b6000611a9f600154308585604051602001611a849493929190612a2e565b60405160208183030381529060405280519060200120611aa7565b905092915050565b600081604051602001611aba9190612a08565b604051602081830303815290604052805190602001209050919050565b600081359050611ae6816130c7565b92915050565b600082601f830112611afd57600080fd5b8135611b10611b0b82612e3c565b612e0f565b91508181835260208401935060208101905083856020840282011115611b3557600080fd5b60005b83811015611b655781611b4b8882611ad7565b845260208401935060208301925050600181019050611b38565b5050505092915050565b600082601f830112611b8057600080fd5b8135611b93611b8e82612e64565b612e0f565b9150818183526020840193506020810190508360005b83811015611bd95781358601611bbf8882611c6c565b845260208401935060208301925050600181019050611ba9565b5050505092915050565b600081359050611bf2816130de565b92915050565b600081519050611c07816130de565b92915050565b600081359050611c1c816130f5565b92915050565b60008083601f840112611c3457600080fd5b8235905067ffffffffffffffff811115611c4d57600080fd5b602083019150836001820283011115611c6557600080fd5b9250929050565b600082601f830112611c7d57600080fd5b8135611c90611c8b82612e8c565b612e0f565b91508082526020830160208301858383011115611cac57600080fd5b611cb783828461302f565b50505092915050565b600081359050611ccf8161310c565b92915050565b600081359050611ce481613123565b92915050565b600060a08284031215611cfc57600080fd5b611d0660a0612e0f565b90506000611d1684828501611ad7565b6000830152506020611d2a84828501611e46565b602083015250604082013567ffffffffffffffff811115611d4a57600080fd5b611d5684828501611aec565b604083015250606082013567ffffffffffffffff811115611d7657600080fd5b611d8284828501611b6f565b6060830152506080611d9684828501611e46565b60808301525092915050565b600060808284031215611db457600080fd5b611dbe6080612e0f565b90506000611dce84828501611ad7565b6000830152506020611de284828501611e46565b602083015250604082013567ffffffffffffffff811115611e0257600080fd5b611e0e84828501611aec565b604083015250606082013567ffffffffffffffff811115611e2e57600080fd5b611e3a84828501611b6f565b60608301525092915050565b600081359050611e558161313a565b92915050565b600060208284031215611e6d57600080fd5b6000611e7b84828501611ad7565b91505092915050565b600080600060608486031215611e9957600080fd5b6000611ea786828701611ad7565b935050602084013567ffffffffffffffff811115611ec457600080fd5b611ed086828701611aec565b925050604084013567ffffffffffffffff811115611eed57600080fd5b611ef986828701611b6f565b9150509250925092565b600080600080600060a08688031215611f1b57600080fd5b6000611f2988828901611ad7565b9550506020611f3a88828901611e46565b945050604086013567ffffffffffffffff811115611f5757600080fd5b611f6388828901611aec565b935050606086013567ffffffffffffffff811115611f8057600080fd5b611f8c88828901611b6f565b925050608086013567ffffffffffffffff811115611fa957600080fd5b611fb588828901611c6c565b9150509295509295909350565b60008060408385031215611fd557600080fd5b600083013567ffffffffffffffff811115611fef57600080fd5b611ffb85828601611aec565b925050602083013567ffffffffffffffff81111561201857600080fd5b61202485828601611b6f565b9150509250929050565b6000806040838503121561204157600080fd5b600083013567ffffffffffffffff81111561205b57600080fd5b61206785828601611b6f565b925050602061207885828601611be3565b9150509250929050565b60006020828403121561209457600080fd5b60006120a284828501611bf8565b91505092915050565b6000806000604084860312156120c057600080fd5b60006120ce86828701611c0d565b935050602084013567ffffffffffffffff8111156120eb57600080fd5b6120f786828701611c22565b92509250509250925092565b6000806040838503121561211657600080fd5b600061212485828601611cc0565b925050602061213585828601611cd5565b9150509250929050565b60006020828403121561215157600080fd5b600082013567ffffffffffffffff81111561216b57600080fd5b61217784828501611cea565b91505092915050565b60006020828403121561219257600080fd5b600082013567ffffffffffffffff8111156121ac57600080fd5b6121b884828501611da2565b91505092915050565b60006121cd83836121f7565b60208301905092915050565b6121e281612fb1565b82525050565b6121f181612f2e565b82525050565b61220081612f2e565b82525050565b61221761221282612f2e565b613071565b82525050565b600061222882612ec8565b6122328185612eeb565b935061223d83612eb8565b8060005b8381101561226e57815161225588826121c1565b975061226083612ede565b925050600181019050612241565b5085935050505092915050565b61228481612f40565b82525050565b61229381612f4c565b82525050565b6122aa6122a582612f4c565b613083565b82525050565b60006122bb82612ed3565b6122c58185612ef6565b93506122d581856020860161303e565b6122de816130a9565b840191505092915050565b60006122f482612ed3565b6122fe8185612f07565b935061230e81856020860161303e565b80840191505092915050565b61232381612fc3565b82525050565b61233281612fe7565b82525050565b6000612345601b83612f12565b91507f476174657761793a2063616e6e6f742073656e6420746f2030783000000000006000830152602082019050919050565b6000612385601c83612f23565b91507f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000830152601c82019050919050565b60006123c5602083612f12565b91507f477561726465643a2063616e6e6f74206164642030783020677561726469616e6000830152602082019050919050565b6000612405602f83612f12565b91507f496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742060008301527f74686520696e697469616c697a657200000000000000000000000000000000006020830152604082019050919050565b600061246b601783612f12565b91507f476174657761793a2062617463682072657665727465640000000000000000006000830152602082019050919050565b60006124ab603283612f12565b91507f476174657761793a206e6f6e6365206973206c6f776572207468616e2063757260008301527f72656e74206163636f756e74206e6f6e636500000000000000000000000000006020830152604082019050919050565b6000612511602583612f12565b91507f476174657761793a2063616e6e6f742073656e642066726f6d2030783020616360008301527f636f756e740000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612577602683612f12565b91507f476174657761793a2063616e6e6f742064656c656761746520656d707479206260008301527f61746368657300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006125dd602883612f12565b91507f476174657761793a2073656e646572206973206e6f7420746865206163636f7560008301527f6e74206f776e65720000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612643601683612f12565b91507f476174657761793a20696e76616c6964206261746368000000000000000000006000830152602082019050919050565b6000612683602683612f12565b91507f477561726465643a2074782e6f726967696e206973206e6f742074686520677560008301527f61726469616e00000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006126e9601f83612f12565b91507f477561726465643a20677561726469616e20646f65736e2774206578697374006000830152602082019050919050565b6000612729602383612f12565b91507f476174657761793a206261746368207472616e73616374696f6e20726576657260008301527f74656400000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061278f601e83612f12565b91507f536166654d6174684c69623a206164646974696f6e206f766572666c6f7700006000830152602082019050919050565b60006127cf602083612f12565b91507f477561726465643a20677561726469616e20616c7265616479206578697374736000830152602082019050919050565b600061280f602083612f12565b91507f476174657761793a2063616e6e6f742073656e6420656d7074792062617463686000830152602082019050919050565b600061284f601b83612f12565b91507f477561726465643a2063616e6e6f742072656d6f76652073656c6600000000006000830152602082019050919050565b600061288f601d83612f12565b91507f476174657761793a20616c6c20626174636865732072657665727465640000006000830152602082019050919050565b6128cb81612f9a565b82525050565b6128e26128dd82612f9a565b61309f565b82525050565b6128f181612fa4565b82525050565b60006129038287612206565b60148201915061291382866128d1565b602082019150612923828561221d565b915061292f82846122e9565b915081905095945050505050565b60006129498288612206565b60148201915061295982876128d1565b602082019150612969828661221d565b915061297582856122e9565b915061298182846128d1565b6020820191508190509695505050505050565b60006129a082846122e9565b915081905092915050565b60006129b782866122e9565b91506129c38285612206565b6014820191506129d38284612206565b601482019150819050949350505050565b60006129f082856122e9565b91506129fc82846122e9565b91508190509392505050565b6000612a1382612378565b9150612a1f8284612299565b60208201915081905092915050565b6000612a3a82876128d1565b602082019150612a4a8286612206565b601482019150612a5a8285612299565b602082019150612a6a82846122e9565b915081905095945050505050565b6000602082019050612a8d60008301846121d9565b92915050565b6000604082019050612aa860008301856121d9565b612ab560208301846121e8565b9392505050565b6000606082019050612ad160008301866121d9565b8181036020830152612ae381856122b0565b9050612af2604083018461227b565b949350505050565b6000604082019050612b0f60008301856121e8565b612b1c60208301846121e8565b9392505050565b6000602082019050612b38600083018461227b565b92915050565b6000602082019050612b53600083018461228a565b92915050565b6000608082019050612b6e600083018761228a565b612b7b60208301866128e8565b612b88604083018561228a565b612b95606083018461228a565b95945050505050565b6000602082019050612bb3600083018461231a565b92915050565b6000602082019050612bce6000830184612329565b92915050565b60006020820190508181036000830152612bed81612338565b9050919050565b60006020820190508181036000830152612c0d816123b8565b9050919050565b60006020820190508181036000830152612c2d816123f8565b9050919050565b60006020820190508181036000830152612c4d8161245e565b9050919050565b60006020820190508181036000830152612c6d8161249e565b9050919050565b60006020820190508181036000830152612c8d81612504565b9050919050565b60006020820190508181036000830152612cad8161256a565b9050919050565b60006020820190508181036000830152612ccd816125d0565b9050919050565b60006020820190508181036000830152612ced81612636565b9050919050565b60006020820190508181036000830152612d0d81612676565b9050919050565b60006020820190508181036000830152612d2d816126dc565b9050919050565b60006020820190508181036000830152612d4d8161271c565b9050919050565b60006020820190508181036000830152612d6d81612782565b9050919050565b60006020820190508181036000830152612d8d816127c2565b9050919050565b60006020820190508181036000830152612dad81612802565b9050919050565b60006020820190508181036000830152612dcd81612842565b9050919050565b60006020820190508181036000830152612ded81612882565b9050919050565b6000602082019050612e0960008301846128c2565b92915050565b6000604051905081810181811067ffffffffffffffff82111715612e3257600080fd5b8060405250919050565b600067ffffffffffffffff821115612e5357600080fd5b602082029050602081019050919050565b600067ffffffffffffffff821115612e7b57600080fd5b602082029050602081019050919050565b600067ffffffffffffffff821115612ea357600080fd5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000612f3982612f7a565b9050919050565b60008115159050919050565b6000819050919050565b6000612f6182612f2e565b9050919050565b6000612f7382612f2e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612fbc8261300b565b9050919050565b6000612fce82612fd5565b9050919050565b6000612fe082612f7a565b9050919050565b6000612ff282612ff9565b9050919050565b600061300482612f7a565b9050919050565b60006130168261301d565b9050919050565b600061302882612f7a565b9050919050565b82818337600083830152505050565b60005b8381101561305c578082015181840152602081019050613041565b8381111561306b576000848401525b50505050565b600061307c8261308d565b9050919050565b6000819050919050565b6000613098826130ba565b9050919050565b6000819050919050565b6000601f19601f8301169050919050565b60008160601b9050919050565b6130d081612f2e565b81146130db57600080fd5b50565b6130e781612f40565b81146130f257600080fd5b50565b6130fe81612f4c565b811461310957600080fd5b50565b61311581612f56565b811461312057600080fd5b50565b61312c81612f68565b811461313757600080fd5b50565b61314381612f9a565b811461314e57600080fd5b5056fea164736f6c634300060c000a"; + "0x60806040523480156200001157600080fd5b506200002e67bcc9be562f8a4b0a60c01b6200016160201b60201c565b6200004a67579ae7209daca85260c01b6200016160201b60201c565b326000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000a6676b19898ae2f7725060c01b6200016460201b60201c565b620000c2677c2d0c907f0deddc60c01b6200016460201b60201c565b620000de67f0d1a438b0305bb160c01b6200016460201b60201c565b6000620000fc6737bb5abaf3e7d9d360c01b6200016460201b60201c565b4690506200011b676f86a9c0c67bb39a60c01b6200016460201b60201c565b80600181905550506200013f67e6ad6dd6ee73072860c01b6200016760201b60201c565b6200015b674ac8a755b2af6d3f60c01b6200016a60201b60201c565b6200016d565b50565b50565b50565b50565b614ced806200017d6000396000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c806387d313131161011a578063bccb31c6116100ad578063d2c83b9a1161007c578063d2c83b9a14610619578063d305d0db14610637578063d84fa10c14610653578063d9f1302114610683578063f92c5f7c1461069f57610206565b8063bccb31c614610581578063bcd483641461059d578063c4543305146105b9578063d0f710d6146105e957610206565b8063a526d83b116100e9578063a526d83b146104fd578063ac2a08cd14610519578063ae1a7ece14610535578063b5021b161461056557610206565b806387d31313146104755780639a8a0592146104935780639f255626146104b1578063a3561e69146104cd57610206565b80633e260b131161019d5780635afaa7bb1161016c5780635afaa7bb146103c157806371404156146103dd57806373e5a13f146103f957806376db2b4c14610429578063867519c61461045957610206565b80633e260b131461033d578063485cc9551461035957806353890134146103755780635a06fb5f1461039157610206565b80632b49e989116101d95780632b49e989146102a35780632c4bbae6146102d3578063371aa71a14610303578063392e53cd1461031f57610206565b80630c68ba211461020b578063152ec1bc1461023b578063231badaf1461025757806329fbd95714610273575b600080fd5b6102256004803603810190610220919061397e565b6106cf565b604051610232919061466f565b60405180910390f35b61025560048036038101906102509190613c26565b610761565b005b610271600480360381019061026c9190613a26565b610764565b005b61028d60048036038101906102889190613c26565b610927565b60405161029a919061466f565b60405180910390f35b6102bd60048036038101906102b89190613c26565b610932565b6040516102ca919061466f565b60405180910390f35b6102ed60048036038101906102e89190613c26565b61093d565b6040516102fa919061466f565b60405180910390f35b61031d60048036038101906103189190613a26565b610944565b005b610327610ac0565b604051610334919061466f565b60405180910390f35b61035760048036038101906103529190613c26565b610b53565b005b610373600480360381019061036e9190613c4f565b610b56565b005b61038f600480360381019061038a9190613ae5565b610e56565b005b6103ab60048036038101906103a69190613c26565b610fcc565b6040516103b8919061466f565b60405180910390f35b6103db60048036038101906103d69190613b51565b610fd3565b005b6103f760048036038101906103f2919061397e565b611419565b005b610413600480360381019061040e9190613ccc565b6117c4565b604051610420919061468a565b60405180910390f35b610443600480360381019061043e9190613c8b565b611825565b604051610450919061468a565b60405180910390f35b610473600480360381019061046e91906139a7565b61188b565b005b61047d6118d8565b60405161048a9190614705565b60405180910390f35b61049b6118fe565b6040516104a89190614940565b60405180910390f35b6104cb60048036038101906104c69190613ae5565b611904565b005b6104e760048036038101906104e29190613c26565b611950565b6040516104f4919061466f565b60405180910390f35b6105176004803603810190610512919061397e565b611957565b005b610533600480360381019061052e9190613a26565b611acb565b005b61054f600480360381019061054a9190613c26565b611c47565b60405161055c919061466f565b60405180910390f35b61057f600480360381019061057a9190613a26565b611c52565b005b61059b60048036038101906105969190613c26565b611e16565b005b6105b760048036038101906105b29190613c26565b611e19565b005b6105d360048036038101906105ce9190613c26565b611e1c565b6040516105e0919061466f565b60405180910390f35b61060360048036038101906105fe9190613bce565b611e27565b604051610610919061466f565b60405180910390f35b610621611ebc565b60405161062e91906146ea565b60405180910390f35b610651600480360381019061064c91906139a7565b611ee2565b005b61066d60048036038101906106689190613c26565b61205a565b60405161067a919061466f565b60405180910390f35b61069d60048036038101906106989190613b51565b612061565b005b6106b960048036038101906106b4919061397e565b6121d7565b6040516106c69190614940565b60405180910390f35b60006106e5677ab52c65f999e01f60c01b611e16565b6106f96710268b7b424a1bd560c01b611e16565b61070d6713a157f311059a7b60c01b611e16565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b50565b610778672cb965356e53b62460c01b610761565b61078c6726d32791746dc3e760c01b610761565b6107a06716b60443ee3d484960c01b610761565b6107b467cec972bd94c2448360c01b610761565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548411610835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c906147a0565b60405180910390fd5b610849676885a737ccda6b5b60c01b610761565b61085d67b7ec0f056156fc5760c01b610761565b61087167fa7e965b6a90871e60c01b610761565b6000610891826108838888888861226f565b61230e90919063ffffffff16565b90506108a767598623896aa1bd8160c01b610761565b84600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108ff67c3db6fc8702a504560c01b610761565b61091367fbd88fe633d4bf3260c01b610761565b61091f86828686612616565b505050505050565b600060019050919050565b600060019050919050565b6000919050565b61095867f80918793645654b60c01b610761565b61096c67e0600b94c13d066760c01b611e16565b6109806755e8cedcdd449e2360c01b611e16565b61099467ab821ba7fedab67160c01b611e16565b6109a867c540fbd78e0e2a4960c01b611e16565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2b90614840565b60405180910390fd5b610a4867d014260b312542b460c01b611e16565b610a5c674e25985d1c99d1f260c01b611e16565b610a7067d9e2558f3071e89160c01b610761565b610a84673490315f4c7453b860c01b610761565b610a98675952ab5ca3321cf560c01b610761565b610aac679cb6b3466f5d6d7c60c01b610761565b610ab98585858585611c52565b5050505050565b6000610ad667e29fe2f351ca6b2760c01b610b53565b610aea676f5dd3f08b97747760c01b610b53565b610afe673a9488d62818322a60c01b610b53565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b50565b610b6a673697766a57f7a80b60c01b610761565b610b7e67d2ba19feb39e0b7f60c01b610b53565b610b92670c5ad53cdb9edd1560c01b610b53565b610ba667b6b588d2ebb9ae6960c01b610b53565b610bba67c4ec9a90a885875260c01b610b53565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614610c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3f90614760565b60405180910390fd5b610c5c67c3785ba1534db95460c01b610b53565b610c7067e4202927591248ef60c01b610b53565b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cc567531cfa2817fbdc8660c01b610b53565b610cd967bb0a8b65334dd2c460c01b610761565b610ced67b92403dbe97ab63260c01b610761565b610d01671b78f114fbb0b72060c01b610761565b81600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d5667b22295775e3c649e60c01b610761565b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610dab6730acc016638bd43a60c01b610761565b610dbf67c9a34505f7a2971960c01b610761565b6060610dd56739403c970cf16b0b60c01b610761565b610de9673890f2fd064539ca60c01b610761565b610df281612d63565b50610e076701520f419008b58e60c01b610b53565b610e1b6775364c04848b013b60c01b610b53565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e632604051610e4a91906145c4565b60405180910390a15050565b610e6a6706786e491e3250c160c01b610761565b610e7e67e0600b94c13d066760c01b611e16565b610e926755e8cedcdd449e2360c01b611e16565b610ea667ab821ba7fedab67160c01b611e16565b610eba67c540fbd78e0e2a4960c01b611e16565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3d90614840565b60405180910390fd5b610f5a67d014260b312542b460c01b611e16565b610f6e674e25985d1c99d1f260c01b611e16565b610f8267aed871277ddbb64c60c01b610761565b610f96671ec4a771e62fadf860c01b610761565b610faa67f2c24f3ab45357f160c01b610761565b610fbe674a9776de3de1749a60c01b610761565b610fc88282611904565b5050565b6000919050565b610fe76727e530a65c18cf7760c01b610761565b610ffb673479b3b9839be87b60c01b610761565b61100f67ddf24acef953714a60c01b610761565b61102367bb03e151ac9c27de60c01b610761565b6000825111611067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105e906147e0565b60405180910390fd5b61107b67fbecfcb237fc946360c01b610761565b61108f67e27ec692e947323360c01b610761565b6110a367f14d14fac430da9560c01b610761565b60006110b96705f410059ee1a0f960c01b610761565b6110cd6738b1b2fe2e9d053a60c01b610761565b60005b835181101561135b576110ed67c75e73eb292eb02a60c01b610761565b61110167b78b62351a90d44360c01b610761565b60003073ffffffffffffffffffffffffffffffffffffffff1685838151811061112657fe5b602002602001015160405161113b91906144e0565b6000604051808303816000865af19150503d8060008114611178576040519150601f19603f3d011682016040523d82523d6000602084013e61117d565b606091505b5050905061119567736c6d76b82a9add60c01b610761565b6111a967d2553c434ed3db3260c01b610761565b8315611258576111c367deebfac5c773826c60c01b610761565b6111d7679fb439c60501b49f60c01b610761565b6111eb67b3057f4bca04838360c01b610761565b6111ff6730ecce8cedfe20fe60c01b610761565b8061123f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123690614780565b60405180910390fd5b61125367d86dd5b82a9e593660c01b610761565b6112d7565b61126c67346fc3cb5711a6b460c01b610761565b611280673f97de6e927ba93d60c01b610761565b80801561128b575082155b156112c1576112a46771ca7e173b61f90360c01b610761565b6112b867da44f1125610870660c01b610761565b600192506112d6565b6112d5675690ff7de2cfd4dd60c01b610761565b5b5b6112eb677421f9109195b65260c01b610761565b6112ff6701974b34eaa9b13c60c01b610761565b7f361c14722cc344132c73396113f7164232448b09c544a149f09048648b43d8723386848151811061132d57fe5b60200260200101518360405161134593929190614608565b60405180910390a15080806001019150506110d0565b506113706784acc65a9eec5b5f60c01b610761565b61138467c73482fe07164bae60c01b610761565b806114005761139d67504c1c7b7326af2c60c01b610761565b6113b1670e7869282d8fda6f60c01b610761565b6113c56720080506722517aa60c01b610761565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f790614920565b60405180910390fd5b611414673bc70d3d4324861e60c01b610761565b505050565b61142d6747dd6d4e27a092d260c01b611e16565b61144167e0600b94c13d066760c01b611e16565b6114556755e8cedcdd449e2360c01b611e16565b61146967ab821ba7fedab67160c01b611e16565b61147d67c540fbd78e0e2a4960c01b611e16565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150090614840565b60405180910390fd5b61151d67d014260b312542b460c01b611e16565b611531674e25985d1c99d1f260c01b611e16565b61154567736984febec5fd2560c01b611e16565b61155967cbb923c66996310360c01b611e16565b61156d672c114aff1103564b60c01b611e16565b61158167a76a63e34be2bddb60c01b611e16565b61159567a220bc889ca09d2360c01b611e16565b8073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415611604576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fb90614900565b60405180910390fd5b611618679467d7af09c5944d60c01b611e16565b61162c67c28a58b1b15ad6de60c01b611e16565b61164067c70b0fecc7c6d3b160c01b611e16565b61165467e7892f9392d41a6760c01b611e16565b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166116e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d790614860565b60405180910390fd5b6116f4675a0de441d13969aa60c01b611e16565b611708674e473b0a29064fba60c01b611e16565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061177467e398e5606400274660c01b611e16565b6117886738c3bd156a3471c260c01b611e16565b7fee943cdb81826d5909c559c6b1ae6908fcaf2dbc16c4b730346736b486283e8b32826040516117b99291906145df565b60405180910390a150565b60006117da67b71cbc54b79642e460c01b610761565b6117ee671d727cf6c847c49660c01b610761565b61180267b20bfeafcd33afb660c01b610761565b61181e826000015183602001518460400151856060015161226f565b9050919050565b600061183b67b43ba9ef81a9b3fd60c01b610761565b61184f678dcdeb463de7515c60c01b610761565b6118636789a48b615adada4560c01b610761565b61188482600001518360200151846040015185606001518660800151612ebf565b9050919050565b61189f6790077d401774f15b60c01b610761565b6118b367dd8df7e804a647ab60c01b610761565b6118c767e91647c2d11d34f260c01b610761565b6118d383338484612616565b505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b61191867305e7d085ffadf5d60c01b610761565b61192c6754042eeb653cce4660c01b610761565b6119406774bf17ed00241c8560c01b610761565b61194c33338484612616565b5050565b6000919050565b61196b67c17b66a0b198af7b60c01b611e16565b61197f67e0600b94c13d066760c01b611e16565b6119936755e8cedcdd449e2360c01b611e16565b6119a767ab821ba7fedab67160c01b611e16565b6119bb67c540fbd78e0e2a4960c01b611e16565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3e90614840565b60405180910390fd5b611a5b67d014260b312542b460c01b611e16565b611a6f674e25985d1c99d1f260c01b611e16565b611a8367dfa24a8cc198350160c01b611e16565b611a9767f9907d82cd18ee0760c01b611e16565b611aab67dd37ee49f553c5a760c01b611e16565b611abf679ad66b1d98f77fdf60c01b611e16565b611ac881612f61565b50565b611adf6759a806c25eead63f60c01b610761565b611af367e0600b94c13d066760c01b611e16565b611b076755e8cedcdd449e2360c01b611e16565b611b1b67ab821ba7fedab67160c01b611e16565b611b2f67c540fbd78e0e2a4960c01b611e16565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb290614840565b60405180910390fd5b611bcf67d014260b312542b460c01b611e16565b611be3674e25985d1c99d1f260c01b611e16565b611bf767f9ea7b462cc4eda560c01b610761565b611c0b67d3d3cf6ca514249660c01b610761565b611c1f676ef2cd549351305b60c01b610761565b611c33672b1fcb01af64303060c01b610761565b611c408585858585610764565b5050505050565b600060019050919050565b611c666730a97bcc310e329660c01b610761565b611c7a67592cde26837dac1c60c01b610761565b611c8e67e369c1a0804a314e60c01b610761565b611ca2675e97b82ccfd1adc660c01b610761565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548411611d23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1a906147a0565b60405180910390fd5b611d3767bf862c95cc9f5d2260c01b610761565b611d4b67f9a3395c1202545060c01b610761565b611d5f677beaba84e36d3d4a60c01b610761565b6000611d8082611d72888888883a612ebf565b61230e90919063ffffffff16565b9050611d9667dc568d561866531460c01b610761565b84600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dee6768886f5dc5d732ec60c01b610761565b611e02672e35ca05a06d172160c01b610761565b611e0e86828686612616565b505050505050565b50565b50565b600060019050919050565b6000611e3d670fa739e07c029f9060c01b611e16565b611e5167406100042e7653bd60c01b611e16565b611e656784104632bda8198f60c01b611e16565b611eb38484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506131e2565b90509392505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611ef667313903b59a995d7660c01b610761565b611f0a67e0600b94c13d066760c01b611e16565b611f1e6755e8cedcdd449e2360c01b611e16565b611f3267ab821ba7fedab67160c01b611e16565b611f4667c540fbd78e0e2a4960c01b611e16565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611fd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc990614840565b60405180910390fd5b611fe667d014260b312542b460c01b611e16565b611ffa674e25985d1c99d1f260c01b611e16565b61200e671f7542edd3d74d2f60c01b610761565b612022677f6b1c92b6f5e5a960c01b610761565b61203667cad2aa7c334e8b3b60c01b610761565b61204a6703308feac1e8ee1360c01b610761565b61205583838361188b565b505050565b6000919050565b61207567fb2097e639da463260c01b610761565b61208967e0600b94c13d066760c01b611e16565b61209d6755e8cedcdd449e2360c01b611e16565b6120b167ab821ba7fedab67160c01b611e16565b6120c567c540fbd78e0e2a4960c01b611e16565b600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214890614840565b60405180910390fd5b61216567d014260b312542b460c01b611e16565b612179674e25985d1c99d1f260c01b611e16565b61218d670a8996d09423e9a560c01b610761565b6121a1674c210d2c1091800160c01b610761565b6121b56793370d1f34f52d6160c01b610761565b6121c967cf247f4dcde0a80d60c01b610761565b6121d38282610fd3565b5050565b60006121ed67905ee8ae82cae5cb60c01b610761565b612201672ee07bb43076d99160c01b610761565b61221567798fd982696fe97360c01b610761565b6122686001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132b590919063ffffffff16565b9050919050565b600061228567d6536873dad1c60260c01b610761565b612299673f091c2291af034760c01b610761565b6122ad676c51c993615d51fc60c01b610761565b6123047f6848d0622081db2451400280dead7a739a080cb93852607c381af11e289769b28686866122dd876133bf565b6040516020016122f09493929190614443565b6040516020818303038152906040526134eb565b9050949350505050565b6000612324670d75db982ec4597160c01b613568565b6123386725c2c60ab754182560c01b613568565b61234c673eb64a254569ed0660c01b613568565b600061236267fb2a2286066e15e460c01b613568565b61237667a440db11ec9e986d60c01b613568565b6041835114156125cf576123946704a5aada48e2763260c01b613568565b6123a8674b98cf1796e5c26660c01b613568565b6123bc67d2dfec7b159385fc60c01b613568565b60006123d26772c2a840621b4aa760c01b613568565b6123e667bfd411e6ba4d07c460c01b613568565b60006123fc67145d23f82764ba9960c01b613568565b61241067acdff958a9c6c5dd60c01b613568565b6000612426673b79e3a80932a6a160c01b613568565b6020860151925060408601519150606086015160001a9050612452679b0cdee01a57ea2f60c01b613568565b612466675dbf88583373227960c01b613568565b601b8160ff1610156124a557612486670dc9a1836eb51c3260c01b613568565b61249a677097d8456a6c3e1560c01b613568565b601b810190506124ba565b6124b96708b39c61216869e760c01b613568565b5b6124ce672ea4d6db7d2138c560c01b613568565b6124e2679ad3f461195a5eee60c01b613568565b601b8160ff16148015612505575061250467a24e972b59dc7d0560c01b61356b565b5b8061252f5750601c8160ff1614801561252e575061252d67934bee4849491d9560c01b61356b565b5b5b156125b257612548676d6a491fc6e072fa60c01b613568565b61255c67aecd1690d1de9f1c60c01b613568565b6001878285856040516000815260200160405260405161257f94939291906146a5565b6020604051602081039080840390855afa1580156125a1573d6000803e3d6000fd5b5050506020604051035193506125c7565b6125c667513fbc3b3a0ad1c060c01b613568565b5b5050506125e4565b6125e36723d6d78de386c96660c01b613568565b5b6125f86707d0c4f11e72cfc960c01b613568565b61260c67b9689b22f403636c60c01b613568565b8091505092915050565b61262a6772b534df044a3e6960c01b610761565b61263e67c402abc06978619960c01b610761565b612652679e09810371489d9f60c01b610761565b612666677e7daf08d9a58adb60c01b610761565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156126d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126cd906147c0565b60405180910390fd5b6126ea670b7cbb883e3651ec60c01b610761565b6126fe67d208ff6d7369e98860c01b610761565b61271267491a5cbad1055d5160c01b610761565b612726679e0ff894c768117960c01b610761565b600082511161276a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612761906148e0565b60405180910390fd5b61277e6745254922d222170960c01b610761565b6127926704e613e382681ef660c01b610761565b6127a6675557331c94961ac660c01b610761565b6127ba676a3e2fb0a667717a60c01b610761565b81518151146127fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f590614820565b60405180910390fd5b61281267f28a31992346aa2c60c01b610761565b612826676f88151307ba5cf160c01b610761565b61283a678b6e6de748ac3b0560c01b610761565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612aae57612881679b783d0da44a769760c01b610761565b612895672afe7fb31679725b60c01b610761565b6128a9675f21c809493b9d9c60c01b610761565b6128bd67c4c99b0c5a4bff8660c01b610761565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb890d3f85856040518363ffffffff1660e01b815260040161291a929190614646565b60206040518083038186803b15801561293257600080fd5b505afa158015612946573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061296a9190613ba5565b8015612986575061298567212d2ce404fd77a760c01b610932565b5b80612a565750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb890d3f85856040518363ffffffff1660e01b81526004016129e9929190614646565b60206040518083038186803b158015612a0157600080fd5b505afa158015612a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a399190613ba5565b8015612a555750612a5467d868be8222351b6f60c01b610932565b5b5b612a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8c90614800565b60405180910390fd5b612aa9670d7297c082be9ec360c01b610761565b612ac3565b612ac2671c02678189e2da5e60c01b610761565b5b612ad767220aa3d0956cdf3860c01b610761565b612aeb672ff29057ca2d5a4960c01b610761565b6000612b0167736a7a13fde31abc60c01b610761565b612b1567ad98f24f057dfa4760c01b610761565b60005b8251811015612d5b57612b35673a43fbce6290f8a460c01b610761565b612b496775aca6a5cf35ff4a60c01b610761565b612b5d67fd57b4ad4a413b6860c01b610761565b600073ffffffffffffffffffffffffffffffffffffffff16848281518110612b8157fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff161415612be0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bd790614720565b60405180910390fd5b612bf46767a6d9c274cadc9c60c01b610761565b612c0867cf1addfe3ca8b2bb60c01b610761565b838181518110612c1457fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16838281518110612c3e57fe5b60200260200101518787604051602001612c5a939291906144f7565b604051602081830303815290604052604051612c7691906144e0565b6000604051808303816000865af19150503d8060008114612cb3576040519150601f19603f3d011682016040523d82523d6000602084013e612cb8565b606091505b505080925050612cd267e11e02c50ac3af5a60c01b610761565b612ce66791115981e7972f5360c01b610761565b612cfa671e9de5dd0811b3c160c01b610761565b81612d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3190614880565b60405180910390fd5b612d4e678f29e428e7b0acbe60c01b610761565b8080600101915050612b18565b505050505050565b612d7767f4de5e8e73d6ad8760c01b611e16565b612d8b67db1ce0981035d84760c01b611e16565b612d9f67e97a0a25809a3f0960c01b611e16565b600081511415612df357612dbd67de11b839232da49160c01b611e16565b612dd167b59bd2ea0c1c89a260c01b611e16565b612de567652fe2786000e62060c01b611e16565b612dee32612f61565b612ebc565b612e0767ad5f6f13dddc2ad960c01b611e16565b612e1b672af46088979bcb2160c01b611e16565b612e2f6796cb81cf0bf6606d60c01b611e16565b600081519050612e49672f4c11881b8dca8c60c01b611e16565b612e5d67cec4e8db5057edad60c01b611e16565b60005b81811015612eb957612e7c671a5cc94c8b734dd960c01b611e16565b612e9067e437d14e98e20b2f60c01b611e16565b612eac838281518110612e9f57fe5b6020026020010151612f61565b8080600101915050612e60565b50505b50565b6000612ed5679ee7bdbf7c6900a460c01b610761565b612ee967f0e928808634a64d60c01b610761565b612efd674075c359d3dd889d60c01b610761565b612f567f6f4e1b2b1e5e49f4269e19e16e67a00cb0a796d96d30be3e4b540d3732e8bcad878787612f2d886133bf565b87604051602001612f42959493929190614489565b6040516020818303038152906040526134eb565b905095945050505050565b612f756703611a9e4063d8ea60c01b611e16565b612f8967ee1baacaa033494260c01b611e16565b612f9d6751e5840de998a97760c01b611e16565b612fb1676f82de74e2e2e03560c01b611e16565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415613021576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161301890614740565b60405180910390fd5b6130356717cb80dba7a8a0ea60c01b611e16565b61304967e2f8fabe2a63d8b660c01b611e16565b61305d677550a657f22d30dc60c01b611e16565b613071673c81d7073dbe6f3060c01b611e16565b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156130fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130f5906148c0565b60405180910390fd5b61311267bc5a1f0994a7f54e60c01b611e16565b613126679a7f014629c7374960c01b611e16565b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061319267d71c83e9f3188e9d60c01b611e16565b6131a667e4bfbd26cb5c77e660c01b611e16565b7fbc3292102fa77e083913064b282926717cdfaede4d35f553d66366c0a3da755a32826040516131d79291906145df565b60405180910390a150565b60006131f867fbe9af14abc78ca860c01b611e16565b61320c67bd3616cf00f8ad2b60c01b611e16565b613220670aad941719c9b69b60c01b611e16565b6000613235838561230e90919063ffffffff16565b905061324b6706f556c4601e7cd060c01b611e16565b61325f67344e7bee2db8345860c01b611e16565b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b60006132cb672797d9bbee8e685760c01b613576565b6132df67e25930aa3032662f60c01b613576565b6132f3673b804ace3fd44ea060c01b613576565b6000828401905061330e67e0d809daafe36a0460c01b613576565b61332267d0d7b021c1a6823260c01b613576565b6133366741f1099b5fa09b9360c01b613576565b83811015613379576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613370906148a0565b60405180910390fd5b61338d6728a352a27e50889560c01b613576565b6133a167f55e5f024a80111c60c01b613576565b6133b567d865abdcb752192460c01b613576565b8091505092915050565b60606133d5673c65cd0d57a86f4160c01b610761565b6133e96787729e023af7ebe860c01b610761565b6133fd673eeba47bfbe297d660c01b610761565b606061341367cde6576faf313c1560c01b610761565b613427670ea3dcc6c000079a60c01b610761565b600083519050613441672040a6450836597360c01b610761565b6134556779cc921107583db360c01b610761565b60005b818110156134b8576134746713ae3bb0a3004f3660c01b610761565b8285828151811061348157fe5b602002602001015160405160200161349a929190614530565b60405160208183030381529060405292508080600101915050613458565b506134cd674b78578d8503215f60c01b610761565b6134e167842cae5512e7a35c60c01b610761565b8192505050919050565b60006135016771b334e2e3162d2e60c01b611e19565b6135156729046581cf97a49460c01b611e19565b613529674f9e67c6b1f334b360c01b611e19565b613560600154308585604051602001613545949392919061457a565b60405160208183030381529060405280519060200120613579565b905092915050565b50565b600060019050919050565b50565b600061358f67f3d1beb9fba5b7be60c01b613568565b6135a3676cd81a1865d6353260c01b613568565b6135b7676810828c21da671e60c01b613568565b816040516020016135c89190614554565b604051602081830303815290604052805190602001209050919050565b6000813590506135f481614c3f565b92915050565b600082601f83011261360b57600080fd5b813561361e61361982614988565b61495b565b9150818183526020840193506020810190508385602084028201111561364357600080fd5b60005b83811015613673578161365988826135e5565b845260208401935060208301925050600181019050613646565b5050505092915050565b600082601f83011261368e57600080fd5b81356136a161369c826149b0565b61495b565b9150818183526020840193506020810190508360005b838110156136e757813586016136cd888261378f565b8452602084019350602083019250506001810190506136b7565b5050505092915050565b60008135905061370081614c56565b92915050565b60008151905061371581614c56565b92915050565b60008135905061372a81614c6d565b92915050565b60008135905061373f81614c84565b92915050565b60008083601f84011261375757600080fd5b8235905067ffffffffffffffff81111561377057600080fd5b60208301915083600182028301111561378857600080fd5b9250929050565b600082601f8301126137a057600080fd5b81356137b36137ae826149d8565b61495b565b915080825260208301602083018583830111156137cf57600080fd5b6137da838284614ba7565b50505092915050565b6000813590506137f281614c9b565b92915050565b60008135905061380781614cb2565b92915050565b600060a0828403121561381f57600080fd5b61382960a061495b565b90506000613839848285016135e5565b600083015250602061384d84828501613969565b602083015250604082013567ffffffffffffffff81111561386d57600080fd5b613879848285016135fa565b604083015250606082013567ffffffffffffffff81111561389957600080fd5b6138a58482850161367d565b60608301525060806138b984828501613969565b60808301525092915050565b6000608082840312156138d757600080fd5b6138e1608061495b565b905060006138f1848285016135e5565b600083015250602061390584828501613969565b602083015250604082013567ffffffffffffffff81111561392557600080fd5b613931848285016135fa565b604083015250606082013567ffffffffffffffff81111561395157600080fd5b61395d8482850161367d565b60608301525092915050565b60008135905061397881614cc9565b92915050565b60006020828403121561399057600080fd5b600061399e848285016135e5565b91505092915050565b6000806000606084860312156139bc57600080fd5b60006139ca868287016135e5565b935050602084013567ffffffffffffffff8111156139e757600080fd5b6139f3868287016135fa565b925050604084013567ffffffffffffffff811115613a1057600080fd5b613a1c8682870161367d565b9150509250925092565b600080600080600060a08688031215613a3e57600080fd5b6000613a4c888289016135e5565b9550506020613a5d88828901613969565b945050604086013567ffffffffffffffff811115613a7a57600080fd5b613a86888289016135fa565b935050606086013567ffffffffffffffff811115613aa357600080fd5b613aaf8882890161367d565b925050608086013567ffffffffffffffff811115613acc57600080fd5b613ad88882890161378f565b9150509295509295909350565b60008060408385031215613af857600080fd5b600083013567ffffffffffffffff811115613b1257600080fd5b613b1e858286016135fa565b925050602083013567ffffffffffffffff811115613b3b57600080fd5b613b478582860161367d565b9150509250929050565b60008060408385031215613b6457600080fd5b600083013567ffffffffffffffff811115613b7e57600080fd5b613b8a8582860161367d565b9250506020613b9b858286016136f1565b9150509250929050565b600060208284031215613bb757600080fd5b6000613bc584828501613706565b91505092915050565b600080600060408486031215613be357600080fd5b6000613bf18682870161371b565b935050602084013567ffffffffffffffff811115613c0e57600080fd5b613c1a86828701613745565b92509250509250925092565b600060208284031215613c3857600080fd5b6000613c4684828501613730565b91505092915050565b60008060408385031215613c6257600080fd5b6000613c70858286016137e3565b9250506020613c81858286016137f8565b9150509250929050565b600060208284031215613c9d57600080fd5b600082013567ffffffffffffffff811115613cb757600080fd5b613cc38482850161380d565b91505092915050565b600060208284031215613cde57600080fd5b600082013567ffffffffffffffff811115613cf857600080fd5b613d04848285016138c5565b91505092915050565b6000613d198383613d43565b60208301905092915050565b613d2e81614b29565b82525050565b613d3d81614a7a565b82525050565b613d4c81614a7a565b82525050565b613d63613d5e82614a7a565b614be9565b82525050565b6000613d7482614a14565b613d7e8185614a37565b9350613d8983614a04565b8060005b83811015613dba578151613da18882613d0d565b9750613dac83614a2a565b925050600181019050613d8d565b5085935050505092915050565b613dd081614a8c565b82525050565b613ddf81614a98565b82525050565b613df6613df182614a98565b614bfb565b82525050565b6000613e0782614a1f565b613e118185614a42565b9350613e21818560208601614bb6565b613e2a81614c21565b840191505092915050565b6000613e4082614a1f565b613e4a8185614a53565b9350613e5a818560208601614bb6565b80840191505092915050565b613e6f81614b3b565b82525050565b613e7e81614b5f565b82525050565b6000613e91601b83614a5e565b91507f476174657761793a2063616e6e6f742073656e6420746f2030783000000000006000830152602082019050919050565b6000613ed1601c83614a6f565b91507f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000830152601c82019050919050565b6000613f11602083614a5e565b91507f477561726465643a2063616e6e6f74206164642030783020677561726469616e6000830152602082019050919050565b6000613f51602f83614a5e565b91507f496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742060008301527f74686520696e697469616c697a657200000000000000000000000000000000006020830152604082019050919050565b6000613fb7601783614a5e565b91507f476174657761793a2062617463682072657665727465640000000000000000006000830152602082019050919050565b6000613ff7603283614a5e565b91507f476174657761793a206e6f6e6365206973206c6f776572207468616e2063757260008301527f72656e74206163636f756e74206e6f6e636500000000000000000000000000006020830152604082019050919050565b600061405d602583614a5e565b91507f476174657761793a2063616e6e6f742073656e642066726f6d2030783020616360008301527f636f756e740000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006140c3602683614a5e565b91507f476174657761793a2063616e6e6f742064656c656761746520656d707479206260008301527f61746368657300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000614129602883614a5e565b91507f476174657761793a2073656e646572206973206e6f7420746865206163636f7560008301527f6e74206f776e65720000000000000000000000000000000000000000000000006020830152604082019050919050565b600061418f601683614a5e565b91507f476174657761793a20696e76616c6964206261746368000000000000000000006000830152602082019050919050565b60006141cf602683614a5e565b91507f477561726465643a2074782e6f726967696e206973206e6f742074686520677560008301527f61726469616e00000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000614235601f83614a5e565b91507f477561726465643a20677561726469616e20646f65736e2774206578697374006000830152602082019050919050565b6000614275602383614a5e565b91507f476174657761793a206261746368207472616e73616374696f6e20726576657260008301527f74656400000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006142db601e83614a5e565b91507f536166654d6174684c69623a206164646974696f6e206f766572666c6f7700006000830152602082019050919050565b600061431b602083614a5e565b91507f477561726465643a20677561726469616e20616c7265616479206578697374736000830152602082019050919050565b600061435b602083614a5e565b91507f476174657761793a2063616e6e6f742073656e6420656d7074792062617463686000830152602082019050919050565b600061439b601b83614a5e565b91507f477561726465643a2063616e6e6f742072656d6f76652073656c6600000000006000830152602082019050919050565b60006143db601d83614a5e565b91507f476174657761793a20616c6c20626174636865732072657665727465640000006000830152602082019050919050565b61441781614b12565b82525050565b61442e61442982614b12565b614c17565b82525050565b61443d81614b1c565b82525050565b600061444f8287613d52565b60148201915061445f828661441d565b60208201915061446f8285613d69565b915061447b8284613e35565b915081905095945050505050565b60006144958288613d52565b6014820191506144a5828761441d565b6020820191506144b58286613d69565b91506144c18285613e35565b91506144cd828461441d565b6020820191508190509695505050505050565b60006144ec8284613e35565b915081905092915050565b60006145038286613e35565b915061450f8285613d52565b60148201915061451f8284613d52565b601482019150819050949350505050565b600061453c8285613e35565b91506145488284613e35565b91508190509392505050565b600061455f82613ec4565b915061456b8284613de5565b60208201915081905092915050565b6000614586828761441d565b6020820191506145968286613d52565b6014820191506145a68285613de5565b6020820191506145b68284613e35565b915081905095945050505050565b60006020820190506145d96000830184613d25565b92915050565b60006040820190506145f46000830185613d25565b6146016020830184613d34565b9392505050565b600060608201905061461d6000830186613d25565b818103602083015261462f8185613dfc565b905061463e6040830184613dc7565b949350505050565b600060408201905061465b6000830185613d34565b6146686020830184613d34565b9392505050565b60006020820190506146846000830184613dc7565b92915050565b600060208201905061469f6000830184613dd6565b92915050565b60006080820190506146ba6000830187613dd6565b6146c76020830186614434565b6146d46040830185613dd6565b6146e16060830184613dd6565b95945050505050565b60006020820190506146ff6000830184613e66565b92915050565b600060208201905061471a6000830184613e75565b92915050565b6000602082019050818103600083015261473981613e84565b9050919050565b6000602082019050818103600083015261475981613f04565b9050919050565b6000602082019050818103600083015261477981613f44565b9050919050565b6000602082019050818103600083015261479981613faa565b9050919050565b600060208201905081810360008301526147b981613fea565b9050919050565b600060208201905081810360008301526147d981614050565b9050919050565b600060208201905081810360008301526147f9816140b6565b9050919050565b600060208201905081810360008301526148198161411c565b9050919050565b6000602082019050818103600083015261483981614182565b9050919050565b60006020820190508181036000830152614859816141c2565b9050919050565b6000602082019050818103600083015261487981614228565b9050919050565b6000602082019050818103600083015261489981614268565b9050919050565b600060208201905081810360008301526148b9816142ce565b9050919050565b600060208201905081810360008301526148d98161430e565b9050919050565b600060208201905081810360008301526148f98161434e565b9050919050565b600060208201905081810360008301526149198161438e565b9050919050565b60006020820190508181036000830152614939816143ce565b9050919050565b6000602082019050614955600083018461440e565b92915050565b6000604051905081810181811067ffffffffffffffff8211171561497e57600080fd5b8060405250919050565b600067ffffffffffffffff82111561499f57600080fd5b602082029050602081019050919050565b600067ffffffffffffffff8211156149c757600080fd5b602082029050602081019050919050565b600067ffffffffffffffff8211156149ef57600080fd5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000614a8582614af2565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b6000614ad982614a7a565b9050919050565b6000614aeb82614a7a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000614b3482614b83565b9050919050565b6000614b4682614b4d565b9050919050565b6000614b5882614af2565b9050919050565b6000614b6a82614b71565b9050919050565b6000614b7c82614af2565b9050919050565b6000614b8e82614b95565b9050919050565b6000614ba082614af2565b9050919050565b82818337600083830152505050565b60005b83811015614bd4578082015181840152602081019050614bb9565b83811115614be3576000848401525b50505050565b6000614bf482614c05565b9050919050565b6000819050919050565b6000614c1082614c32565b9050919050565b6000819050919050565b6000601f19601f8301169050919050565b60008160601b9050919050565b614c4881614a7a565b8114614c5357600080fd5b50565b614c5f81614a8c565b8114614c6a57600080fd5b50565b614c7681614a98565b8114614c8157600080fd5b50565b614c8d81614aa2565b8114614c9857600080fd5b50565b614ca481614ace565b8114614caf57600080fd5b50565b614cbb81614ae0565b8114614cc657600080fd5b50565b614cd281614b12565b8114614cdd57600080fd5b5056fea164736f6c634300060c000a"; type GatewayV2ConstructorParams = | [signer?: Signer] diff --git a/typings/factories/Gateway__factory.ts b/typings/factories/Gateway__factory.ts index 153e4b60..1d8a2e57 100644 --- a/typings/factories/Gateway__factory.ts +++ b/typings/factories/Gateway__factory.ts @@ -49,6 +49,159 @@ const _abi = [ name: "Initialized", type: "event", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_098c0657", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__4b81551d", + type: "bytes8", + }, + ], + name: "c_4b81551d", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__52615ca8", + type: "bytes8", + }, + ], + name: "c_52615ca8", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_false098c0657", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__4b81551d", + type: "bytes8", + }, + ], + name: "c_false4b81551d", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__52615ca8", + type: "bytes8", + }, + ], + name: "c_false52615ca8", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_true098c0657", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__4b81551d", + type: "bytes8", + }, + ], + name: "c_true4b81551d", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__52615ca8", + type: "bytes8", + }, + ], + name: "c_true52615ca8", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [], name: "chainId", @@ -353,7 +506,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b50326000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600046905080600181905550506123f58061006d6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063867519c61161008c5780639f255626116100665780639f255626146101fe578063b5021b161461021a578063d2c83b9a14610236578063f92c5f7c14610254576100cf565b8063867519c6146101a657806387d31313146101c25780639a8a0592146101e0576100cf565b8063231badaf146100d4578063392e53cd146100f0578063485cc9551461010e5780635afaa7bb1461012a57806373e5a13f1461014657806376db2b4c14610176575b600080fd5b6100ee60048036038101906100e99190611438565b610284565b005b6100f861037f565b6040516101059190611e71565b60405180910390f35b610128600480360381019061012391906115e0565b6103d5565b005b610144600480360381019061013f9190611563565b610561565b005b610160600480360381019061015b919061165d565b610739565b60405161016d9190611e8c565b60405180910390f35b610190600480360381019061018b919061161c565b61075e565b60405161019d9190611e8c565b60405180910390f35b6101c060048036038101906101bb91906113b9565b610788565b005b6101ca610799565b6040516101d79190611f07565b60405180910390f35b6101e86107bf565b6040516101f591906120a2565b60405180910390f35b610218600480360381019061021391906114f7565b6107c5565b005b610234600480360381019061022f9190611438565b6107d5565b005b61023e6108d1565b60405161024b9190611eec565b60405180910390f35b61026e60048036038101906102699190611390565b6108f7565b60405161027b91906120a2565b60405180910390f35b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548411610305576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102fc90611f82565b60405180910390fd5b60006103258261031788888888610953565b6109b690919063ffffffff16565b905084600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061037786828686610a71565b505050505050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614610463576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045a90611f42565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e6326040516105559190611def565b60405180910390a15050565b60008251116105a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059c90611fc2565b60405180910390fd5b600080600090505b83518110156106f35760003073ffffffffffffffffffffffffffffffffffffffff168583815181106105db57fe5b60200260200101516040516105f09190611d0b565b6000604051808303816000865af19150503d806000811461062d576040519150601f19603f3d011682016040523d82523d6000602084013e610632565b606091505b505090508315610681578061067c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067390611f62565b60405180910390fd5b610697565b80801561068c575082155b1561069657600192505b5b7f361c14722cc344132c73396113f7164232448b09c544a149f09048648b43d872338684815181106106c557fe5b6020026020010151836040516106dd93929190611e0a565b60405180910390a15080806001019150506105ad565b5080610734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072b90612082565b60405180910390fd5b505050565b60006107578260000151836020015184604001518560600151610953565b9050919050565b600061078182600001518360200151846040015185606001518660800151610edc565b9050919050565b61079483338484610a71565b505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b6107d133338484610a71565b5050565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548411610856576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084d90611f82565b60405180910390fd5b600061087782610869888888883a610edc565b6109b690919063ffffffff16565b905084600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108c986828686610a71565b505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061094c6001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f4290919063ffffffff16565b9050919050565b60006109ac7f6848d0622081db2451400280dead7a739a080cb93852607c381af11e289769b286868661098587610f97565b6040516020016109989493929190611c6e565b604051602081830303815290604052610ffa565b9050949350505050565b60008060009050604183511415610a675760008060006020860151925060408601519150606086015160001a9050601b8160ff1610156109f757601b810190505b601b8160ff161480610a0c5750601c8160ff16145b15610a635760018782858560405160008152602001604052604051610a349493929190611ea7565b6020604051602081039080840390855afa158015610a56573d6000803e3d6000fd5b5050506020604051035193505b5050505b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610ae1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad890611fa2565b60405180910390fd5b6000825111610b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1c90612062565b60405180910390fd5b8151815114610b69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6090612002565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610d3d57600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb890d3f85856040518363ffffffff1660e01b8152600401610bf9929190611e48565b60206040518083038186803b158015610c1157600080fd5b505afa158015610c25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4991906115b7565b80610cfd5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb890d3f85856040518363ffffffff1660e01b8152600401610cac929190611e48565b60206040518083038186803b158015610cc457600080fd5b505afa158015610cd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfc91906115b7565b5b610d3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3390611fe2565b60405180910390fd5b5b600080600090505b8251811015610ed457600073ffffffffffffffffffffffffffffffffffffffff16848281518110610d7257fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff161415610dd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc890611f22565b60405180910390fd5b838181518110610ddd57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16838281518110610e0757fe5b60200260200101518787604051602001610e2393929190611d22565b604051602081830303815290604052604051610e3f9190611d0b565b6000604051808303816000865af19150503d8060008114610e7c576040519150601f19603f3d011682016040523d82523d6000602084013e610e81565b606091505b50508092505081610ec7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebe90612022565b60405180910390fd5b8080600101915050610d45565b505050505050565b6000610f377f6f4e1b2b1e5e49f4269e19e16e67a00cb0a796d96d30be3e4b540d3732e8bcad878787610f0e88610f97565b87604051602001610f23959493929190611cb4565b604051602081830303815290604052610ffa565b905095945050505050565b600080828401905083811015610f8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8490612042565b60405180910390fd5b8091505092915050565b60608060008351905060005b81811015610fef5782858281518110610fb857fe5b6020026020010151604051602001610fd1929190611d5b565b60405160208183030381529060405292508080600101915050610fa3565b508192505050919050565b60006110336001543085856040516020016110189493929190611da5565b6040516020818303038152906040528051906020012061103b565b905092915050565b60008160405160200161104e9190611d7f565b604051602081830303815290604052805190602001209050919050565b60008135905061107a81612375565b92915050565b600082601f83011261109157600080fd5b81356110a461109f826120ea565b6120bd565b915081818352602084019350602081019050838560208402820111156110c957600080fd5b60005b838110156110f957816110df888261106b565b8452602084019350602083019250506001810190506110cc565b5050505092915050565b600082601f83011261111457600080fd5b813561112761112282612112565b6120bd565b9150818183526020840193506020810190508360005b8381101561116d578135860161115388826111a1565b84526020840193506020830192505060018101905061113d565b5050505092915050565b6000813590506111868161238c565b92915050565b60008151905061119b8161238c565b92915050565b600082601f8301126111b257600080fd5b81356111c56111c08261213a565b6120bd565b915080825260208301602083018583830111156111e157600080fd5b6111ec8382846122dd565b50505092915050565b600081359050611204816123a3565b92915050565b600081359050611219816123ba565b92915050565b600060a0828403121561123157600080fd5b61123b60a06120bd565b9050600061124b8482850161106b565b600083015250602061125f8482850161137b565b602083015250604082013567ffffffffffffffff81111561127f57600080fd5b61128b84828501611080565b604083015250606082013567ffffffffffffffff8111156112ab57600080fd5b6112b784828501611103565b60608301525060806112cb8482850161137b565b60808301525092915050565b6000608082840312156112e957600080fd5b6112f360806120bd565b905060006113038482850161106b565b60008301525060206113178482850161137b565b602083015250604082013567ffffffffffffffff81111561133757600080fd5b61134384828501611080565b604083015250606082013567ffffffffffffffff81111561136357600080fd5b61136f84828501611103565b60608301525092915050565b60008135905061138a816123d1565b92915050565b6000602082840312156113a257600080fd5b60006113b08482850161106b565b91505092915050565b6000806000606084860312156113ce57600080fd5b60006113dc8682870161106b565b935050602084013567ffffffffffffffff8111156113f957600080fd5b61140586828701611080565b925050604084013567ffffffffffffffff81111561142257600080fd5b61142e86828701611103565b9150509250925092565b600080600080600060a0868803121561145057600080fd5b600061145e8882890161106b565b955050602061146f8882890161137b565b945050604086013567ffffffffffffffff81111561148c57600080fd5b61149888828901611080565b935050606086013567ffffffffffffffff8111156114b557600080fd5b6114c188828901611103565b925050608086013567ffffffffffffffff8111156114de57600080fd5b6114ea888289016111a1565b9150509295509295909350565b6000806040838503121561150a57600080fd5b600083013567ffffffffffffffff81111561152457600080fd5b61153085828601611080565b925050602083013567ffffffffffffffff81111561154d57600080fd5b61155985828601611103565b9150509250929050565b6000806040838503121561157657600080fd5b600083013567ffffffffffffffff81111561159057600080fd5b61159c85828601611103565b92505060206115ad85828601611177565b9150509250929050565b6000602082840312156115c957600080fd5b60006115d78482850161118c565b91505092915050565b600080604083850312156115f357600080fd5b6000611601858286016111f5565b92505060206116128582860161120a565b9150509250929050565b60006020828403121561162e57600080fd5b600082013567ffffffffffffffff81111561164857600080fd5b6116548482850161121f565b91505092915050565b60006020828403121561166f57600080fd5b600082013567ffffffffffffffff81111561168957600080fd5b611695848285016112d7565b91505092915050565b60006116aa83836116d4565b60208301905092915050565b6116bf8161225f565b82525050565b6116ce816121dc565b82525050565b6116dd816121dc565b82525050565b6116f46116ef826121dc565b61231f565b82525050565b600061170582612176565b61170f8185612199565b935061171a83612166565b8060005b8381101561174b578151611732888261169e565b975061173d8361218c565b92505060018101905061171e565b5085935050505092915050565b611761816121ee565b82525050565b611770816121fa565b82525050565b611787611782826121fa565b612331565b82525050565b600061179882612181565b6117a281856121a4565b93506117b28185602086016122ec565b6117bb81612357565b840191505092915050565b60006117d182612181565b6117db81856121b5565b93506117eb8185602086016122ec565b80840191505092915050565b61180081612271565b82525050565b61180f81612295565b82525050565b6000611822601b836121c0565b91507f476174657761793a2063616e6e6f742073656e6420746f2030783000000000006000830152602082019050919050565b6000611862601c836121d1565b91507f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000830152601c82019050919050565b60006118a2602f836121c0565b91507f496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742060008301527f74686520696e697469616c697a657200000000000000000000000000000000006020830152604082019050919050565b60006119086017836121c0565b91507f476174657761793a2062617463682072657665727465640000000000000000006000830152602082019050919050565b60006119486032836121c0565b91507f476174657761793a206e6f6e6365206973206c6f776572207468616e2063757260008301527f72656e74206163636f756e74206e6f6e636500000000000000000000000000006020830152604082019050919050565b60006119ae6025836121c0565b91507f476174657761793a2063616e6e6f742073656e642066726f6d2030783020616360008301527f636f756e740000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611a146026836121c0565b91507f476174657761793a2063616e6e6f742064656c656761746520656d707479206260008301527f61746368657300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611a7a6028836121c0565b91507f476174657761793a2073656e646572206973206e6f7420746865206163636f7560008301527f6e74206f776e65720000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611ae06016836121c0565b91507f476174657761793a20696e76616c6964206261746368000000000000000000006000830152602082019050919050565b6000611b206023836121c0565b91507f476174657761793a206261746368207472616e73616374696f6e20726576657260008301527f74656400000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611b86601e836121c0565b91507f536166654d6174684c69623a206164646974696f6e206f766572666c6f7700006000830152602082019050919050565b6000611bc66020836121c0565b91507f476174657761793a2063616e6e6f742073656e6420656d7074792062617463686000830152602082019050919050565b6000611c06601d836121c0565b91507f476174657761793a20616c6c20626174636865732072657665727465640000006000830152602082019050919050565b611c4281612248565b82525050565b611c59611c5482612248565b61234d565b82525050565b611c6881612252565b82525050565b6000611c7a82876116e3565b601482019150611c8a8286611c48565b602082019150611c9a82856116fa565b9150611ca682846117c6565b915081905095945050505050565b6000611cc082886116e3565b601482019150611cd08287611c48565b602082019150611ce082866116fa565b9150611cec82856117c6565b9150611cf88284611c48565b6020820191508190509695505050505050565b6000611d1782846117c6565b915081905092915050565b6000611d2e82866117c6565b9150611d3a82856116e3565b601482019150611d4a82846116e3565b601482019150819050949350505050565b6000611d6782856117c6565b9150611d7382846117c6565b91508190509392505050565b6000611d8a82611855565b9150611d968284611776565b60208201915081905092915050565b6000611db18287611c48565b602082019150611dc182866116e3565b601482019150611dd18285611776565b602082019150611de182846117c6565b915081905095945050505050565b6000602082019050611e0460008301846116b6565b92915050565b6000606082019050611e1f60008301866116b6565b8181036020830152611e31818561178d565b9050611e406040830184611758565b949350505050565b6000604082019050611e5d60008301856116c5565b611e6a60208301846116c5565b9392505050565b6000602082019050611e866000830184611758565b92915050565b6000602082019050611ea16000830184611767565b92915050565b6000608082019050611ebc6000830187611767565b611ec96020830186611c5f565b611ed66040830185611767565b611ee36060830184611767565b95945050505050565b6000602082019050611f0160008301846117f7565b92915050565b6000602082019050611f1c6000830184611806565b92915050565b60006020820190508181036000830152611f3b81611815565b9050919050565b60006020820190508181036000830152611f5b81611895565b9050919050565b60006020820190508181036000830152611f7b816118fb565b9050919050565b60006020820190508181036000830152611f9b8161193b565b9050919050565b60006020820190508181036000830152611fbb816119a1565b9050919050565b60006020820190508181036000830152611fdb81611a07565b9050919050565b60006020820190508181036000830152611ffb81611a6d565b9050919050565b6000602082019050818103600083015261201b81611ad3565b9050919050565b6000602082019050818103600083015261203b81611b13565b9050919050565b6000602082019050818103600083015261205b81611b79565b9050919050565b6000602082019050818103600083015261207b81611bb9565b9050919050565b6000602082019050818103600083015261209b81611bf9565b9050919050565b60006020820190506120b76000830184611c39565b92915050565b6000604051905081810181811067ffffffffffffffff821117156120e057600080fd5b8060405250919050565b600067ffffffffffffffff82111561210157600080fd5b602082029050602081019050919050565b600067ffffffffffffffff82111561212957600080fd5b602082029050602081019050919050565b600067ffffffffffffffff82111561215157600080fd5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b60006121e782612228565b9050919050565b60008115159050919050565b6000819050919050565b600061220f826121dc565b9050919050565b6000612221826121dc565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061226a826122b9565b9050919050565b600061227c82612283565b9050919050565b600061228e82612228565b9050919050565b60006122a0826122a7565b9050919050565b60006122b282612228565b9050919050565b60006122c4826122cb565b9050919050565b60006122d682612228565b9050919050565b82818337600083830152505050565b60005b8381101561230a5780820151818401526020810190506122ef565b83811115612319576000848401525b50505050565b600061232a8261233b565b9050919050565b6000819050919050565b600061234682612368565b9050919050565b6000819050919050565b6000601f19601f8301169050919050565b60008160601b9050919050565b61237e816121dc565b811461238957600080fd5b50565b612395816121ee565b81146123a057600080fd5b50565b6123ac81612204565b81146123b757600080fd5b50565b6123c381612216565b81146123ce57600080fd5b50565b6123da81612248565b81146123e557600080fd5b5056fea164736f6c634300060c000a"; + "0x60806040523480156200001157600080fd5b506200002e67bcc9be562f8a4b0a60c01b6200014560201b60201c565b6200004a67579ae7209daca85260c01b6200014560201b60201c565b326000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000a6676b19898ae2f7725060c01b6200014860201b60201c565b620000c2677c2d0c907f0deddc60c01b6200014860201b60201c565b620000de67f0d1a438b0305bb160c01b6200014860201b60201c565b6000620000fc6737bb5abaf3e7d9d360c01b6200014860201b60201c565b4690506200011b676f86a9c0c67bb39a60c01b6200014860201b60201c565b80600181905550506200013f677c1450e034caf90e60c01b6200014b60201b60201c565b6200014e565b50565b50565b50565b6134c9806200015e6000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80639a8a0592116100b8578063c3e315871161007c578063c3e3158714610371578063c4543305146103a1578063d2c83b9a146103d1578063d6de3a60146103ef578063d84fa10c1461040b578063f92c5f7c1461043b57610142565b80639a8a0592146102cf5780639f255626146102ed578063ae1a7ece14610309578063b5021b1614610339578063bcd483641461035557610142565b80635afaa7bb1161010a5780635afaa7bb146101e95780636a8477281461020557806373e5a13f1461023557806376db2b4c14610265578063867519c61461029557806387d31313146102b157610142565b8063231badaf146101475780632c4bbae614610163578063392e53cd146101935780633e260b13146101b1578063485cc955146101cd575b600080fd5b610161600480360381019061015c91906124a0565b61046b565b005b61017d60048036038101906101789190612648565b61062e565b60405161018a9190612f02565b60405180910390f35b61019b610635565b6040516101a89190612f02565b60405180910390f35b6101cb60048036038101906101c69190612648565b6106c8565b005b6101e760048036038101906101e29190612671565b6106cb565b005b61020360048036038101906101fe91906125cb565b61096f565b005b61021f600480360381019061021a9190612648565b610db5565b60405161022c9190612f02565b60405180910390f35b61024f600480360381019061024a91906126ee565b610dbc565b60405161025c9190612f1d565b60405180910390f35b61027f600480360381019061027a91906126ad565b610e1d565b60405161028c9190612f1d565b60405180910390f35b6102af60048036038101906102aa9190612421565b610e83565b005b6102b9610ed0565b6040516102c69190612f98565b60405180910390f35b6102d7610ef6565b6040516102e49190613133565b60405180910390f35b6103076004803603810190610302919061255f565b610efc565b005b610323600480360381019061031e9190612648565b610f48565b6040516103309190612f02565b60405180910390f35b610353600480360381019061034e91906124a0565b610f53565b005b61036f600480360381019061036a9190612648565b611117565b005b61038b60048036038101906103869190612648565b61111a565b6040516103989190612f02565b60405180910390f35b6103bb60048036038101906103b69190612648565b611125565b6040516103c89190612f02565b60405180910390f35b6103d9611130565b6040516103e69190612f7d565b60405180910390f35b61040960048036038101906104049190612648565b611156565b005b61042560048036038101906104209190612648565b611159565b6040516104329190612f02565b60405180910390f35b610455600480360381019061045091906123f8565b611160565b6040516104629190613133565b60405180910390f35b61047f676d2b441ca5b2d66f60c01b611156565b61049367cba441f73d5890c760c01b611156565b6104a767134063f4b41abd4260c01b611156565b6104bb674032e611215d082760c01b611156565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054841161053c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053390613013565b60405180910390fd5b61055067a9d439bfdf6eb1cc60c01b611156565b610564671f234de3a0d2f60460c01b611156565b61057867f304f663a1c4bbaf60c01b611156565b60006105988261058a888888886111f8565b61129790919063ffffffff16565b90506105ae6756b8cff0e930311760c01b611156565b84600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061060667ee6e52e5d015606460c01b611156565b61061a67bc70da3bfe9cf97760c01b611156565b6106268682868661159f565b505050505050565b6000919050565b600061064b67e29fe2f351ca6b2760c01b6106c8565b61065f676f5dd3f08b97747760c01b6106c8565b610673673a9488d62818322a60c01b6106c8565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b50565b6106df6795203fae258cd5a860c01b611156565b6106f367d2ba19feb39e0b7f60c01b6106c8565b610707670c5ad53cdb9edd1560c01b6106c8565b61071b67b6b588d2ebb9ae6960c01b6106c8565b61072f67c4ec9a90a885875260c01b6106c8565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146107bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b490612fd3565b60405180910390fd5b6107d167c3785ba1534db95460c01b6106c8565b6107e567e4202927591248ef60c01b6106c8565b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061083a67531cfa2817fbdc8660c01b6106c8565b61084e67d52395001d86cd9860c01b611156565b6108626748cf248005035c7260c01b611156565b610876670a50f00a10ef795e60c01b611156565b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506108cb67a40b8397769de3a960c01b611156565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506109206701520f419008b58e60c01b6106c8565b6109346775364c04848b013b60c01b6106c8565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e6326040516109639190612e80565b60405180910390a15050565b61098367cbe3a3b6e4a32fb560c01b611156565b61099767cee3ab3e7b19a5c460c01b611156565b6109ab67ad364c560a61b40260c01b611156565b6109bf678d9e04abff0f7afa60c01b611156565b6000825111610a03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fa90613053565b60405180910390fd5b610a17670fb165cf3195236b60c01b611156565b610a2b6726dade9b5adc877e60c01b611156565b610a3f672e7fc91247b2388a60c01b611156565b6000610a55679dfb6fb8f247e20f60c01b611156565b610a6967873d96ccafa2ea2460c01b611156565b60005b8351811015610cf757610a89673a6281b857c1883a60c01b611156565b610a9d67bb13b5f81353d86f60c01b611156565b60003073ffffffffffffffffffffffffffffffffffffffff16858381518110610ac257fe5b6020026020010151604051610ad79190612d9c565b6000604051808303816000865af19150503d8060008114610b14576040519150601f19603f3d011682016040523d82523d6000602084013e610b19565b606091505b50509050610b31673392a3ac8b79ec4760c01b611156565b610b4567c4bf08d594dff7aa60c01b611156565b8315610bf457610b5f6748ba6292bfbddc1260c01b611156565b610b736715e78cb2b9b4d50760c01b611156565b610b8767766a2b91bb03a82360c01b611156565b610b9b6761f9a7df4f4be02f60c01b611156565b80610bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd290612ff3565b60405180910390fd5b610bef671dd77e7c6333973b60c01b611156565b610c73565b610c086796fadd9814b4767c60c01b611156565b610c1c676b5b88a65ae31eeb60c01b611156565b808015610c27575082155b15610c5d57610c4067bad296d6579f896960c01b611156565b610c5467ca846dec5f0adb7160c01b611156565b60019250610c72565b610c7167c6e3aeb1a5181ce760c01b611156565b5b5b610c876740d2a01cdd1cac7860c01b611156565b610c9b676545d9424f37f96960c01b611156565b7f361c14722cc344132c73396113f7164232448b09c544a149f09048648b43d87233868481518110610cc957fe5b602002602001015183604051610ce193929190612e9b565b60405180910390a1508080600101915050610a6c565b50610d0c677728c6b8ac36981860c01b611156565b610d2067525bb1495be5234360c01b611156565b80610d9c57610d39675e3936a6ac769cc960c01b611156565b610d4d6752887c54c4be9b9e60c01b611156565b610d616749f1236db1207ec760c01b611156565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9390613113565b60405180910390fd5b610db0676fbce0a45d81c8a660c01b611156565b505050565b6000919050565b6000610dd267af82c1046377360460c01b611156565b610de6674039be855323d8d660c01b611156565b610dfa67cf045155f85786c160c01b611156565b610e1682600001518360200151846040015185606001516111f8565b9050919050565b6000610e3367e3b9509f75e5eb8f60c01b611156565b610e4767d5f865209da52da660c01b611156565b610e5b671deb6cb53ce04c8c60c01b611156565b610e7c82600001518360200151846040015185606001518660800151611cec565b9050919050565b610e9767c9e4754bee58077660c01b611156565b610eab6755041238e510c8a460c01b611156565b610ebf679b158f7ea217dd5060c01b611156565b610ecb8333848461159f565b505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b610f10677463f60ab55aa43c60c01b611156565b610f2467310201c2495c1a7060c01b611156565b610f38679792be76dd7fb25a60c01b611156565b610f443333848461159f565b5050565b600060019050919050565b610f6767e2e28a3fd543159560c01b611156565b610f7b67ecd11683dce0448160c01b611156565b610f8f675f914ba846473bb960c01b611156565b610fa3672f7ced2e8998afa060c01b611156565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548411611024576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101b90613013565b60405180910390fd5b611038677b910af083a9208f60c01b611156565b61104c67916f7b8e6d440ebc60c01b611156565b611060678027492c5b06d5cf60c01b611156565b600061108182611073888888883a611cec565b61129790919063ffffffff16565b905061109767e1c9417306b4124060c01b611156565b84600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110ef671b875e4d0564a09360c01b611156565b611103675c1861a0762d6a8760c01b611156565b61110f8682868661159f565b505050505050565b50565b600060019050919050565b600060019050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b50565b6000919050565b600061117667fc9e932269ec50dc60c01b611156565b61118a6725c1a24b83a9221a60c01b611156565b61119e678a8fbbe0a9c15aa760c01b611156565b6111f16001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d8e90919063ffffffff16565b9050919050565b600061120e67eda742b77289556460c01b611156565b611222674b697a77cafec65a60c01b611156565b611236676541c42e522f19c060c01b611156565b61128d7f6848d0622081db2451400280dead7a739a080cb93852607c381af11e289769b286868661126687611e98565b6040516020016112799493929190612cff565b604051602081830303815290604052611fc4565b9050949350505050565b60006112ad670d75db982ec4597160c01b612041565b6112c16725c2c60ab754182560c01b612041565b6112d5673eb64a254569ed0660c01b612041565b60006112eb67fb2a2286066e15e460c01b612041565b6112ff67a440db11ec9e986d60c01b612041565b6041835114156115585761131d6704a5aada48e2763260c01b612041565b611331674b98cf1796e5c26660c01b612041565b61134567d2dfec7b159385fc60c01b612041565b600061135b6772c2a840621b4aa760c01b612041565b61136f67bfd411e6ba4d07c460c01b612041565b600061138567145d23f82764ba9960c01b612041565b61139967acdff958a9c6c5dd60c01b612041565b60006113af673b79e3a80932a6a160c01b612041565b6020860151925060408601519150606086015160001a90506113db679b0cdee01a57ea2f60c01b612041565b6113ef675dbf88583373227960c01b612041565b601b8160ff16101561142e5761140f670dc9a1836eb51c3260c01b612041565b611423677097d8456a6c3e1560c01b612041565b601b81019050611443565b6114426708b39c61216869e760c01b612041565b5b611457672ea4d6db7d2138c560c01b612041565b61146b679ad3f461195a5eee60c01b612041565b601b8160ff1614801561148e575061148d67a24e972b59dc7d0560c01b612044565b5b806114b85750601c8160ff161480156114b757506114b667934bee4849491d9560c01b612044565b5b5b1561153b576114d1676d6a491fc6e072fa60c01b612041565b6114e567aecd1690d1de9f1c60c01b612041565b600187828585604051600081526020016040526040516115089493929190612f38565b6020604051602081039080840390855afa15801561152a573d6000803e3d6000fd5b505050602060405103519350611550565b61154f67513fbc3b3a0ad1c060c01b612041565b5b50505061156d565b61156c6723d6d78de386c96660c01b612041565b5b6115816707d0c4f11e72cfc960c01b612041565b61159567b9689b22f403636c60c01b612041565b8091505092915050565b6115b3673dc6b1fd578a592f60c01b611156565b6115c7675b12e7ee60d8c7a460c01b611156565b6115db6716dd37c4e900fda160c01b611156565b6115ef67aef774dd43d78e1260c01b611156565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561165f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165690613033565b60405180910390fd5b61167367bb8ef6bfca66485960c01b611156565b6116876777214430d6b2247660c01b611156565b61169b67cc7243b862e92dc960c01b611156565b6116af674b1049b37cc0441a60c01b611156565b60008251116116f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ea906130f3565b60405180910390fd5b61170767a401c78b6842967b60c01b611156565b61171b676bc409b80f9cc97560c01b611156565b61172f670c21a13c3f0af80f60c01b611156565b61174367df236f0cb85aa7a760c01b611156565b8151815114611787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177e90613093565b60405180910390fd5b61179b673b0d47612c5bfcb060c01b611156565b6117af677383a757a10ce6a660c01b611156565b6117c367d54972dcc54da96a60c01b611156565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611a375761180a67695f0a5ed6645cb160c01b611156565b61181e673c678a99acd09dfe60c01b611156565b611832672e9b649e87fb1bf160c01b611156565b61184667d21d499d67dd50dd60c01b611156565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb890d3f85856040518363ffffffff1660e01b81526004016118a3929190612ed9565b60206040518083038186803b1580156118bb57600080fd5b505afa1580156118cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f3919061261f565b801561190f575061190e67a6bf4e6eca47d89260c01b61111a565b5b806119df5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb890d3f85856040518363ffffffff1660e01b8152600401611972929190612ed9565b60206040518083038186803b15801561198a57600080fd5b505afa15801561199e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c2919061261f565b80156119de57506119dd678f8df1355d42245960c01b61111a565b5b5b611a1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1590613073565b60405180910390fd5b611a326707751d0d2332acbb60c01b611156565b611a4c565b611a4b678e9477de75c4b33960c01b611156565b5b611a606732451c5d20fa0b0e60c01b611156565b611a7467bde85699afe47a2560c01b611156565b6000611a8a670ac7e6b247a1b23660c01b611156565b611a9e67a4b54381933286a160c01b611156565b60005b8251811015611ce457611abe67e7a575dd079f50e060c01b611156565b611ad267dc63add401f9859960c01b611156565b611ae667c37bca055481b01060c01b611156565b600073ffffffffffffffffffffffffffffffffffffffff16848281518110611b0a57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff161415611b69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6090612fb3565b60405180910390fd5b611b7d67c419a2487f65256460c01b611156565b611b916756305d165003f7c060c01b611156565b838181518110611b9d57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16838281518110611bc757fe5b60200260200101518787604051602001611be393929190612db3565b604051602081830303815290604052604051611bff9190612d9c565b6000604051808303816000865af19150503d8060008114611c3c576040519150601f19603f3d011682016040523d82523d6000602084013e611c41565b606091505b505080925050611c5b670f9dfeab41fb8ea060c01b611156565b611c6f676d8a92db9e4d9eb760c01b611156565b611c836731620bc12623c2a460c01b611156565b81611cc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cba906130b3565b60405180910390fd5b611cd7678d59ec3587b5a94e60c01b611156565b8080600101915050611aa1565b505050505050565b6000611d02671ec04fa3e6433c7060c01b611156565b611d1667f636738c68fd79e260c01b611156565b611d2a6794bdd90ed43103ae60c01b611156565b611d837f6f4e1b2b1e5e49f4269e19e16e67a00cb0a796d96d30be3e4b540d3732e8bcad878787611d5a88611e98565b87604051602001611d6f959493929190612d45565b604051602081830303815290604052611fc4565b905095945050505050565b6000611da4672797d9bbee8e685760c01b61204f565b611db867e25930aa3032662f60c01b61204f565b611dcc673b804ace3fd44ea060c01b61204f565b60008284019050611de767e0d809daafe36a0460c01b61204f565b611dfb67d0d7b021c1a6823260c01b61204f565b611e0f6741f1099b5fa09b9360c01b61204f565b83811015611e52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e49906130d3565b60405180910390fd5b611e666728a352a27e50889560c01b61204f565b611e7a67f55e5f024a80111c60c01b61204f565b611e8e67d865abdcb752192460c01b61204f565b8091505092915050565b6060611eae673d52b345085804d360c01b611156565b611ec267938a3fc7b0db7b7560c01b611156565b611ed667efd64ece1fcae34460c01b611156565b6060611eec678e4f8d3e667dc68060c01b611156565b611f0067058d193f1566526e60c01b611156565b600083519050611f1a678b29a7b925d3ac0a60c01b611156565b611f2e67ba6e3e037213797660c01b611156565b60005b81811015611f9157611f4d6757304e9d85c5f61a60c01b611156565b82858281518110611f5a57fe5b6020026020010151604051602001611f73929190612dec565b60405160208183030381529060405292508080600101915050611f31565b50611fa6672f36155ab352e49460c01b611156565b611fba6720ea1b68fe8bdcf860c01b611156565b8192505050919050565b6000611fda6771b334e2e3162d2e60c01b611117565b611fee6729046581cf97a49460c01b611117565b612002674f9e67c6b1f334b360c01b611117565b61203960015430858560405160200161201e9493929190612e36565b60405160208183030381529060405280519060200120612052565b905092915050565b50565b600060019050919050565b50565b600061206867f3d1beb9fba5b7be60c01b612041565b61207c676cd81a1865d6353260c01b612041565b612090676810828c21da671e60c01b612041565b816040516020016120a19190612e10565b604051602081830303815290604052805190602001209050919050565b6000813590506120cd81613432565b92915050565b600082601f8301126120e457600080fd5b81356120f76120f28261317b565b61314e565b9150818183526020840193506020810190508385602084028201111561211c57600080fd5b60005b8381101561214c578161213288826120be565b84526020840193506020830192505060018101905061211f565b5050505092915050565b600082601f83011261216757600080fd5b813561217a612175826131a3565b61314e565b9150818183526020840193506020810190508360005b838110156121c057813586016121a68882612209565b845260208401935060208301925050600181019050612190565b5050505092915050565b6000813590506121d981613449565b92915050565b6000815190506121ee81613449565b92915050565b60008135905061220381613460565b92915050565b600082601f83011261221a57600080fd5b813561222d612228826131cb565b61314e565b9150808252602083016020830185838301111561224957600080fd5b61225483828461339a565b50505092915050565b60008135905061226c81613477565b92915050565b6000813590506122818161348e565b92915050565b600060a0828403121561229957600080fd5b6122a360a061314e565b905060006122b3848285016120be565b60008301525060206122c7848285016123e3565b602083015250604082013567ffffffffffffffff8111156122e757600080fd5b6122f3848285016120d3565b604083015250606082013567ffffffffffffffff81111561231357600080fd5b61231f84828501612156565b6060830152506080612333848285016123e3565b60808301525092915050565b60006080828403121561235157600080fd5b61235b608061314e565b9050600061236b848285016120be565b600083015250602061237f848285016123e3565b602083015250604082013567ffffffffffffffff81111561239f57600080fd5b6123ab848285016120d3565b604083015250606082013567ffffffffffffffff8111156123cb57600080fd5b6123d784828501612156565b60608301525092915050565b6000813590506123f2816134a5565b92915050565b60006020828403121561240a57600080fd5b6000612418848285016120be565b91505092915050565b60008060006060848603121561243657600080fd5b6000612444868287016120be565b935050602084013567ffffffffffffffff81111561246157600080fd5b61246d868287016120d3565b925050604084013567ffffffffffffffff81111561248a57600080fd5b61249686828701612156565b9150509250925092565b600080600080600060a086880312156124b857600080fd5b60006124c6888289016120be565b95505060206124d7888289016123e3565b945050604086013567ffffffffffffffff8111156124f457600080fd5b612500888289016120d3565b935050606086013567ffffffffffffffff81111561251d57600080fd5b61252988828901612156565b925050608086013567ffffffffffffffff81111561254657600080fd5b61255288828901612209565b9150509295509295909350565b6000806040838503121561257257600080fd5b600083013567ffffffffffffffff81111561258c57600080fd5b612598858286016120d3565b925050602083013567ffffffffffffffff8111156125b557600080fd5b6125c185828601612156565b9150509250929050565b600080604083850312156125de57600080fd5b600083013567ffffffffffffffff8111156125f857600080fd5b61260485828601612156565b9250506020612615858286016121ca565b9150509250929050565b60006020828403121561263157600080fd5b600061263f848285016121df565b91505092915050565b60006020828403121561265a57600080fd5b6000612668848285016121f4565b91505092915050565b6000806040838503121561268457600080fd5b60006126928582860161225d565b92505060206126a385828601612272565b9150509250929050565b6000602082840312156126bf57600080fd5b600082013567ffffffffffffffff8111156126d957600080fd5b6126e584828501612287565b91505092915050565b60006020828403121561270057600080fd5b600082013567ffffffffffffffff81111561271a57600080fd5b6127268482850161233f565b91505092915050565b600061273b8383612765565b60208301905092915050565b6127508161331c565b82525050565b61275f8161326d565b82525050565b61276e8161326d565b82525050565b6127856127808261326d565b6133dc565b82525050565b600061279682613207565b6127a0818561322a565b93506127ab836131f7565b8060005b838110156127dc5781516127c3888261272f565b97506127ce8361321d565b9250506001810190506127af565b5085935050505092915050565b6127f28161327f565b82525050565b6128018161328b565b82525050565b6128186128138261328b565b6133ee565b82525050565b600061282982613212565b6128338185613235565b93506128438185602086016133a9565b61284c81613414565b840191505092915050565b600061286282613212565b61286c8185613246565b935061287c8185602086016133a9565b80840191505092915050565b6128918161332e565b82525050565b6128a081613352565b82525050565b60006128b3601b83613251565b91507f476174657761793a2063616e6e6f742073656e6420746f2030783000000000006000830152602082019050919050565b60006128f3601c83613262565b91507f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000830152601c82019050919050565b6000612933602f83613251565b91507f496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742060008301527f74686520696e697469616c697a657200000000000000000000000000000000006020830152604082019050919050565b6000612999601783613251565b91507f476174657761793a2062617463682072657665727465640000000000000000006000830152602082019050919050565b60006129d9603283613251565b91507f476174657761793a206e6f6e6365206973206c6f776572207468616e2063757260008301527f72656e74206163636f756e74206e6f6e636500000000000000000000000000006020830152604082019050919050565b6000612a3f602583613251565b91507f476174657761793a2063616e6e6f742073656e642066726f6d2030783020616360008301527f636f756e740000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612aa5602683613251565b91507f476174657761793a2063616e6e6f742064656c656761746520656d707479206260008301527f61746368657300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612b0b602883613251565b91507f476174657761793a2073656e646572206973206e6f7420746865206163636f7560008301527f6e74206f776e65720000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612b71601683613251565b91507f476174657761793a20696e76616c6964206261746368000000000000000000006000830152602082019050919050565b6000612bb1602383613251565b91507f476174657761793a206261746368207472616e73616374696f6e20726576657260008301527f74656400000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612c17601e83613251565b91507f536166654d6174684c69623a206164646974696f6e206f766572666c6f7700006000830152602082019050919050565b6000612c57602083613251565b91507f476174657761793a2063616e6e6f742073656e6420656d7074792062617463686000830152602082019050919050565b6000612c97601d83613251565b91507f476174657761793a20616c6c20626174636865732072657665727465640000006000830152602082019050919050565b612cd381613305565b82525050565b612cea612ce582613305565b61340a565b82525050565b612cf98161330f565b82525050565b6000612d0b8287612774565b601482019150612d1b8286612cd9565b602082019150612d2b828561278b565b9150612d378284612857565b915081905095945050505050565b6000612d518288612774565b601482019150612d618287612cd9565b602082019150612d71828661278b565b9150612d7d8285612857565b9150612d898284612cd9565b6020820191508190509695505050505050565b6000612da88284612857565b915081905092915050565b6000612dbf8286612857565b9150612dcb8285612774565b601482019150612ddb8284612774565b601482019150819050949350505050565b6000612df88285612857565b9150612e048284612857565b91508190509392505050565b6000612e1b826128e6565b9150612e278284612807565b60208201915081905092915050565b6000612e428287612cd9565b602082019150612e528286612774565b601482019150612e628285612807565b602082019150612e728284612857565b915081905095945050505050565b6000602082019050612e956000830184612747565b92915050565b6000606082019050612eb06000830186612747565b8181036020830152612ec2818561281e565b9050612ed160408301846127e9565b949350505050565b6000604082019050612eee6000830185612756565b612efb6020830184612756565b9392505050565b6000602082019050612f1760008301846127e9565b92915050565b6000602082019050612f3260008301846127f8565b92915050565b6000608082019050612f4d60008301876127f8565b612f5a6020830186612cf0565b612f6760408301856127f8565b612f7460608301846127f8565b95945050505050565b6000602082019050612f926000830184612888565b92915050565b6000602082019050612fad6000830184612897565b92915050565b60006020820190508181036000830152612fcc816128a6565b9050919050565b60006020820190508181036000830152612fec81612926565b9050919050565b6000602082019050818103600083015261300c8161298c565b9050919050565b6000602082019050818103600083015261302c816129cc565b9050919050565b6000602082019050818103600083015261304c81612a32565b9050919050565b6000602082019050818103600083015261306c81612a98565b9050919050565b6000602082019050818103600083015261308c81612afe565b9050919050565b600060208201905081810360008301526130ac81612b64565b9050919050565b600060208201905081810360008301526130cc81612ba4565b9050919050565b600060208201905081810360008301526130ec81612c0a565b9050919050565b6000602082019050818103600083015261310c81612c4a565b9050919050565b6000602082019050818103600083015261312c81612c8a565b9050919050565b60006020820190506131486000830184612cca565b92915050565b6000604051905081810181811067ffffffffffffffff8211171561317157600080fd5b8060405250919050565b600067ffffffffffffffff82111561319257600080fd5b602082029050602081019050919050565b600067ffffffffffffffff8211156131ba57600080fd5b602082029050602081019050919050565b600067ffffffffffffffff8211156131e257600080fd5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000613278826132e5565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b60006132cc8261326d565b9050919050565b60006132de8261326d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061332782613376565b9050919050565b600061333982613340565b9050919050565b600061334b826132e5565b9050919050565b600061335d82613364565b9050919050565b600061336f826132e5565b9050919050565b600061338182613388565b9050919050565b6000613393826132e5565b9050919050565b82818337600083830152505050565b60005b838110156133c75780820151818401526020810190506133ac565b838111156133d6576000848401525b50505050565b60006133e7826133f8565b9050919050565b6000819050919050565b600061340382613425565b9050919050565b6000819050919050565b6000601f19601f8301169050919050565b60008160601b9050919050565b61343b8161326d565b811461344657600080fd5b50565b6134528161327f565b811461345d57600080fd5b50565b61346981613295565b811461347457600080fd5b50565b613480816132c1565b811461348b57600080fd5b50565b613497816132d3565b81146134a257600080fd5b50565b6134ae81613305565b81146134b957600080fd5b5056fea164736f6c634300060c000a"; type GatewayConstructorParams = | [signer?: Signer] diff --git a/typings/factories/GuardedMock__factory.ts b/typings/factories/GuardedMock__factory.ts index cabf7ee2..df36133e 100644 --- a/typings/factories/GuardedMock__factory.ts +++ b/typings/factories/GuardedMock__factory.ts @@ -68,6 +68,108 @@ const _abi = [ stateMutability: "nonpayable", type: "function", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__0b6945c4", + type: "bytes8", + }, + ], + name: "c_0b6945c4", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__d64e18df", + type: "bytes8", + }, + ], + name: "c_d64e18df", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__0b6945c4", + type: "bytes8", + }, + ], + name: "c_false0b6945c4", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__d64e18df", + type: "bytes8", + }, + ], + name: "c_falsed64e18df", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__0b6945c4", + type: "bytes8", + }, + ], + name: "c_true0b6945c4", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__d64e18df", + type: "bytes8", + }, + ], + name: "c_trued64e18df", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [ { @@ -127,7 +229,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b50604051610cfd380380610cfd8339818101604052602081101561003357600080fd5b810190808051604051939291908464010000000082111561005357600080fd5b8382019150602082018581111561006957600080fd5b825186602082028301116401000000008211171561008657600080fd5b8083526020830192505050908051906020019060200280838360005b838110156100bd5780820151818401526020810190506100a2565b505050509050016040525050506100d9816100df60201b60201c565b5061036a565b6000815114156100fd576100f83261014360201b60201c565b610140565b60008151905060005b8181101561013d5761013083828151811061011d57fe5b602002602001015161014360201b60201c565b8080600101915050610106565b50505b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156101e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f477561726465643a2063616e6e6f74206164642030783020677561726469616e81525060200191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156102a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f477561726465643a20677561726469616e20616c72656164792065786973747381525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fbc3292102fa77e083913064b282926717cdfaede4d35f553d66366c0a3da755a3282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b610984806103796000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630c68ba211461005157806371404156146100ab578063a526d83b146100ef578063d0f710d614610133575b600080fd5b6100936004803603602081101561006757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506101cc565b60405180821515815260200191505060405180910390f35b6100ed600480360360208110156100c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610221565b005b6101316004803603602081101561010557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104e7565b005b6101b46004803603604081101561014957600080fd5b81019080803590602001909291908035906020019064010000000081111561017057600080fd5b82018360208201111561018257600080fd5b803590602001918460018302840111640100000000831117156101a457600080fd5b9091929391929390505050610594565b60405180821515815260200191505060405180910390f35b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166102c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806109526026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415610364576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f477561726465643a2063616e6e6f742072656d6f76652073656c66000000000081525060200191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610422576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f477561726465643a20677561726469616e20646f65736e27742065786973740081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fee943cdb81826d5909c559c6b1ae6908fcaf2dbc16c4b730346736b486283e8b3282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610588576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806109526026913960400191505060405180910390fd5b610591816105ed565b50565b60006105e48484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610814565b90509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610690576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f477561726465643a2063616e6e6f74206164642030783020677561726469616e81525060200191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561074f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f477561726465643a20677561726469616e20616c72656164792065786973747381525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fbc3292102fa77e083913064b282926717cdfaede4d35f553d66366c0a3da755a3282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b60008061082a838561088190919063ffffffff16565b90506000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b600080600090506041835114156109475760008060006020860151925060408601519150606086015160001a9050601b8160ff1610156108c257601b810190505b601b8160ff1614806108d75750601c8160ff16145b156109435760018782858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610936573d6000803e3d6000fd5b5050506020604051035193505b5050505b809150509291505056fe477561726465643a2074782e6f726967696e206973206e6f742074686520677561726469616ea164736f6c634300060c000a"; + "0x60806040523480156200001157600080fd5b506040516200196538038062001965833981810160405260208110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b838201915060208201858111156200006f57600080fd5b82518660208202830111640100000000821117156200008d57600080fd5b8083526020830192505050908051906020019060200280838360005b83811015620000c6578082015181840152602081019050620000a9565b50505050905001604052505050620000ef67e6ad6dd6ee73072860c01b6200015b60201b60201c565b6200010b679c6d41472e0ebf9760c01b6200015e60201b60201c565b620001276734640e767a3e803060c01b6200015e60201b60201c565b6200014367e6e5ab40fefb047160c01b6200015e60201b60201c565b62000154816200016160201b60201c565b50620006b3565b50565b50565b6200017d67f4de5e8e73d6ad8760c01b6200015b60201b60201c565b6200019967db1ce0981035d84760c01b6200015b60201b60201c565b620001b567e97a0a25809a3f0960c01b6200015b60201b60201c565b6000815114156200022b57620001dc67de11b839232da49160c01b6200015b60201b60201c565b620001f867b59bd2ea0c1c89a260c01b6200015b60201b60201c565b6200021467652fe2786000e62060c01b6200015b60201b60201c565b62000225326200033a60201b60201c565b62000337565b6200024767ad5f6f13dddc2ad960c01b6200015b60201b60201c565b62000263672af46088979bcb2160c01b6200015b60201b60201c565b6200027f6796cb81cf0bf6606d60c01b6200015b60201b60201c565b600081519050620002a1672f4c11881b8dca8c60c01b6200015b60201b60201c565b620002bd67cec4e8db5057edad60c01b6200015b60201b60201c565b60005b818110156200033457620002e5671a5cc94c8b734dd960c01b6200015b60201b60201c565b6200030167e437d14e98e20b2f60c01b6200015b60201b60201c565b620003268382815181106200031257fe5b60200260200101516200033a60201b60201c565b8080600101915050620002c0565b50505b50565b620003566703611a9e4063d8ea60c01b6200015b60201b60201c565b6200037267ee1baacaa033494260c01b6200015b60201b60201c565b6200038e6751e5840de998a97760c01b6200015b60201b60201c565b620003aa676f82de74e2e2e03560c01b6200015b60201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156200044e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f477561726465643a2063616e6e6f74206164642030783020677561726469616e81525060200191505060405180910390fd5b6200046a6717cb80dba7a8a0ea60c01b6200015b60201b60201c565b6200048667e2f8fabe2a63d8b660c01b6200015b60201b60201c565b620004a2677550a657f22d30dc60c01b6200015b60201b60201c565b620004be673c81d7073dbe6f3060c01b6200015b60201b60201c565b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156200057e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f477561726465643a20677561726469616e20616c72656164792065786973747381525060200191505060405180910390fd5b6200059a67bc5a1f0994a7f54e60c01b6200015b60201b60201c565b620005b6679a7f014629c7374960c01b6200015b60201b60201c565b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200062967d71c83e9f3188e9d60c01b6200015b60201b60201c565b6200064567e4bfbd26cb5c77e660c01b6200015b60201b60201c565b7fbc3292102fa77e083913064b282926717cdfaede4d35f553d66366c0a3da755a3282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b6112a280620006c36000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063bccb31c611610066578063bccb31c614610243578063d0f710d61461028c578063db57b3d214610325578063e7446c3a14610384578063fd929834146103e35761009e565b80630c68ba21146100a357806329fbd957146100fd578063714041561461015c578063a3561e69146101a0578063a526d83b146101ff575b600080fd5b6100e5600480360360208110156100b957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061042c565b60405180821515815260200191505060405180910390f35b6101446004803603602081101561011357600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506104bd565b60405180821515815260200191505060405180910390f35b61019e6004803603602081101561017257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104c8565b005b6101e7600480360360208110156101b657600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061091e565b60405180821515815260200191505060405180910390f35b6102416004803603602081101561021557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610925565b005b61028a6004803603602081101561025957600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610aae565b005b61030d600480360360408110156102a257600080fd5b8101908080359060200190929190803590602001906401000000008111156102c957600080fd5b8201836020820111156102db57600080fd5b803590602001918460018302840111640100000000831117156102fd57600080fd5b9091929391929390505050610ab1565b60405180821515815260200191505060405180910390f35b61036c6004803603602081101561033b57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b46565b60405180821515815260200191505060405180910390f35b6103cb6004803603602081101561039a57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b51565b60405180821515815260200191505060405180910390f35b61042a600480360360208110156103f957600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b58565b005b6000610442677ab52c65f999e01f60c01b610aae565b6104566710268b7b424a1bd560c01b610aae565b61046a6713a157f311059a7b60c01b610aae565b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600060019050919050565b6104dc6747dd6d4e27a092d260c01b610aae565b6104f067e0600b94c13d066760c01b610aae565b6105046755e8cedcdd449e2360c01b610aae565b61051867ab821ba7fedab67160c01b610aae565b61052c67c540fbd78e0e2a4960c01b610aae565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166105cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806112706026913960400191505060405180910390fd5b6105e167d014260b312542b460c01b610aae565b6105f5674e25985d1c99d1f260c01b610aae565b61060967736984febec5fd2560c01b610aae565b61061d67cbb923c66996310360c01b610aae565b610631672c114aff1103564b60c01b610aae565b61064567a76a63e34be2bddb60c01b610aae565b61065967a220bc889ca09d2360c01b610aae565b8073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614156106fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f477561726465643a2063616e6e6f742072656d6f76652073656c66000000000081525060200191505060405180910390fd5b61070f679467d7af09c5944d60c01b610aae565b61072367c28a58b1b15ad6de60c01b610aae565b61073767c70b0fecc7c6d3b160c01b610aae565b61074b67e7892f9392d41a6760c01b610aae565b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f477561726465643a20677561726469616e20646f65736e27742065786973740081525060200191505060405180910390fd5b61081d675a0de441d13969aa60c01b610aae565b610831674e473b0a29064fba60c01b610aae565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061089c67e398e5606400274660c01b610aae565b6108b06738c3bd156a3471c260c01b610aae565b7fee943cdb81826d5909c559c6b1ae6908fcaf2dbc16c4b730346736b486283e8b3282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b6000919050565b61093967c17b66a0b198af7b60c01b610aae565b61094d67e0600b94c13d066760c01b610aae565b6109616755e8cedcdd449e2360c01b610aae565b61097567ab821ba7fedab67160c01b610aae565b61098967c540fbd78e0e2a4960c01b610aae565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806112706026913960400191505060405180910390fd5b610a3e67d014260b312542b460c01b610aae565b610a52674e25985d1c99d1f260c01b610aae565b610a6667dfa24a8cc198350160c01b610aae565b610a7a67f9907d82cd18ee0760c01b610aae565b610a8e67dd37ee49f553c5a760c01b610aae565b610aa2679ad66b1d98f77fdf60c01b610aae565b610aab81610b5b565b50565b50565b6000610ac7670fa739e07c029f9060c01b610aae565b610adb67406100042e7653bd60c01b610aae565b610aef6784104632bda8198f60c01b610aae565b610b3d8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610e72565b90509392505050565b600060019050919050565b6000919050565b50565b610b6f6703611a9e4063d8ea60c01b610aae565b610b8367ee1baacaa033494260c01b610aae565b610b976751e5840de998a97760c01b610aae565b610bab676f82de74e2e2e03560c01b610aae565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c4e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f477561726465643a2063616e6e6f74206164642030783020677561726469616e81525060200191505060405180910390fd5b610c626717cb80dba7a8a0ea60c01b610aae565b610c7667e2f8fabe2a63d8b660c01b610aae565b610c8a677550a657f22d30dc60c01b610aae565b610c9e673c81d7073dbe6f3060c01b610aae565b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610d5d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f477561726465643a20677561726469616e20616c72656164792065786973747381525060200191505060405180910390fd5b610d7167bc5a1f0994a7f54e60c01b610aae565b610d85679a7f014629c7374960c01b610aae565b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610df067d71c83e9f3188e9d60c01b610aae565b610e0467e4bfbd26cb5c77e660c01b610aae565b7fbc3292102fa77e083913064b282926717cdfaede4d35f553d66366c0a3da755a3282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b6000610e8867fbe9af14abc78ca860c01b610aae565b610e9c67bd3616cf00f8ad2b60c01b610aae565b610eb0670aad941719c9b69b60c01b610aae565b6000610ec58385610f4490919063ffffffff16565b9050610edb6706f556c4601e7cd060c01b610aae565b610eef67344e7bee2db8345860c01b610aae565b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b6000610f5a670d75db982ec4597160c01b611261565b610f6e6725c2c60ab754182560c01b611261565b610f82673eb64a254569ed0660c01b611261565b6000610f9867fb2a2286066e15e460c01b611261565b610fac67a440db11ec9e986d60c01b611261565b60418351141561121a57610fca6704a5aada48e2763260c01b611261565b610fde674b98cf1796e5c26660c01b611261565b610ff267d2dfec7b159385fc60c01b611261565b60006110086772c2a840621b4aa760c01b611261565b61101c67bfd411e6ba4d07c460c01b611261565b600061103267145d23f82764ba9960c01b611261565b61104667acdff958a9c6c5dd60c01b611261565b600061105c673b79e3a80932a6a160c01b611261565b6020860151925060408601519150606086015160001a9050611088679b0cdee01a57ea2f60c01b611261565b61109c675dbf88583373227960c01b611261565b601b8160ff1610156110db576110bc670dc9a1836eb51c3260c01b611261565b6110d0677097d8456a6c3e1560c01b611261565b601b810190506110f0565b6110ef6708b39c61216869e760c01b611261565b5b611104672ea4d6db7d2138c560c01b611261565b611118679ad3f461195a5eee60c01b611261565b601b8160ff1614801561113b575061113a67a24e972b59dc7d0560c01b611264565b5b806111655750601c8160ff16148015611164575061116367934bee4849491d9560c01b611264565b5b5b156111fd5761117e676d6a491fc6e072fa60c01b611261565b61119267aecd1690d1de9f1c60c01b611261565b60018782858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156111ec573d6000803e3d6000fd5b505050602060405103519350611212565b61121167513fbc3b3a0ad1c060c01b611261565b5b50505061122f565b61122e6723d6d78de386c96660c01b611261565b5b6112436707d0c4f11e72cfc960c01b611261565b61125767b9689b22f403636c60c01b611261565b8091505092915050565b50565b60006001905091905056fe477561726465643a2074782e6f726967696e206973206e6f742074686520677561726469616ea164736f6c634300060c000a"; type GuardedMockConstructorParams = | [signer?: Signer] diff --git a/typings/factories/Guarded__factory.ts b/typings/factories/Guarded__factory.ts index b1d00dcb..f86dfc34 100644 --- a/typings/factories/Guarded__factory.ts +++ b/typings/factories/Guarded__factory.ts @@ -58,6 +58,57 @@ const _abi = [ stateMutability: "nonpayable", type: "function", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__0b6945c4", + type: "bytes8", + }, + ], + name: "c_0b6945c4", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__0b6945c4", + type: "bytes8", + }, + ], + name: "c_false0b6945c4", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__0b6945c4", + type: "bytes8", + }, + ], + name: "c_true0b6945c4", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [ { diff --git a/typings/factories/HopFacet__factory.ts b/typings/factories/HopFacet__factory.ts index 1ed5b908..c923efae 100644 --- a/typings/factories/HopFacet__factory.ts +++ b/typings/factories/HopFacet__factory.ts @@ -133,6 +133,108 @@ const _abi = [ name: "HopTokenSwap", type: "event", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__9296fc39", + type: "bytes8", + }, + ], + name: "c_9296fc39", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__99127806", + type: "bytes8", + }, + ], + name: "c_99127806", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__9296fc39", + type: "bytes8", + }, + ], + name: "c_false9296fc39", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__99127806", + type: "bytes8", + }, + ], + name: "c_false99127806", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__9296fc39", + type: "bytes8", + }, + ], + name: "c_true9296fc39", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__99127806", + type: "bytes8", + }, + ], + name: "c_true99127806", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [ { @@ -219,7 +321,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b50611740806100206000396000f3fe6080604052600436106100295760003560e01c80635254f5a91461002e578063fbdfb9071461004a575b600080fd5b61004860048036038101906100439190610f83565b610073565b005b34801561005657600080fd5b50610071600480360381019061006c9190610fad565b610409565b005b600061007d61046a565b90506001816000015414156100be576040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600181600001819055506100e88260400160208101906100de9190610f31565b8360a00135610497565b600060016100f46104d5565b14156101145782600001602081019061010d9190610f31565b905061012a565b8260200160208101906101279190610f31565b90505b82608001356101376104e8565b141561016f576040517f4ac09ad300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101908360400160208101906101859190610f31565b828560a001356104f5565b60006101ad8460400160208101906101a89190610f31565b610660565b6101b85760006101be565b8360a001355b905060016101ca6104d5565b1415610272578173ffffffffffffffffffffffffffffffffffffffff1663deace8f58286608001358760600160208101906102059190610f31565b8860a001358961012001358a61014001356000806040518963ffffffff1660e01b815260040161023b9796959493929190611340565b6000604051808303818588803b15801561025457600080fd5b505af1158015610268573d6000803e3d6000fd5b505050505061031e565b8173ffffffffffffffffffffffffffffffffffffffff1663eea0d7b28286608001358760600160208101906102a79190610f31565b8860a001358960c001358a60e001358b61010001358c61012001358d61014001356040518a63ffffffff1660e01b81526004016102eb9897969594939291906113af565b6000604051808303818588803b15801561030457600080fd5b505af1158015610318573d6000803e3d6000fd5b50505050505b8360400160208101906103319190610f31565b73ffffffffffffffffffffffffffffffffffffffff1684606001602081019061035a9190610f31565b73ffffffffffffffffffffffffffffffffffffffff1685608001357f35ac5f1aa56e86e7f2e01562289e5bd298773763192f6433fde30f05932381738760000160208101906103a99190610f31565b8860200160208101906103bc9190610f31565b8960a001358a60c001358b60e001358c61010001358d61012001358e61014001356040516103f19897969594939291906111d7565b60405180910390a45050600081600001819055505050565b610411610698565b600061041b610733565b90508181600001819055507f09b9d2d59be87e537ec1f2f9325f524d04c29f20e2c60ce0c3c6435102c7882a61044f6104e8565b8360405161045e92919061142d565b60405180910390a15050565b6000807fc59b5acc5a6673a6c49ca2de898f87adbd9fdfdff36f689476b1c9e0c50964b490508091505090565b6104d18282600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610760565b5050565b60006104df610733565b60000154905090565b6000804690508091505090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561052f5761065b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610596576040517f63ba9bff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b81526004016105d3929190611177565b60206040518083038186803b1580156105eb57600080fd5b505afa1580156105ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106239190610fd6565b9050818110156106595761065884847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610884565b5b505b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6106a06109e2565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610731576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610728906112a0565b60405180910390fd5b565b6000807f82ac262a0ca73826b2defa6066a5cbdaefe5f87d412e3568bfc9bec85eaa985790508091505090565b600082141561079b576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80156107df578134146107da576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61087f565b60003414610818576040517e3f45b500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061082384610a0f565b905061083184333086610adb565b828161083c86610a0f565b6108469190611488565b1461087d576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b505050565b600081148061091d575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b81526004016108cb929190611177565b60206040518083038186803b1580156108e357600080fd5b505afa1580156108f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091b9190610fd6565b145b61095c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095390611320565b60405180910390fd5b6109dd8363095ea7b360e01b848460405160240161097b929190611255565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610bbb565b505050565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610ad2578173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a7d919061115c565b60206040518083038186803b158015610a9557600080fd5b505afa158015610aa9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610acd9190610fd6565b610ad4565b475b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610b42576040517fd1bebf0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ba9576040517f21f7434500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bb584848484610c82565b50505050565b6000610c1d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16610d0b9092919063ffffffff16565b9050600081511115610c7d5780806020019051810190610c3d9190610f5a565b610c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7390611300565b60405180910390fd5b5b505050565b610d05846323b872dd60e01b858585604051602401610ca3939291906111a0565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610bbb565b50505050565b6060610d1a8484600085610d23565b90509392505050565b606082471015610d68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5f906112c0565b60405180910390fd5b610d7185610e37565b610db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da7906112e0565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051610dd99190611145565b60006040518083038185875af1925050503d8060008114610e16576040519150601f19603f3d011682016040523d82523d6000602084013e610e1b565b606091505b5091509150610e2b828286610e5a565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60608315610e6a57829050610eba565b600083511115610e7d5782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb1919061127e565b60405180910390fd5b9392505050565b600081359050610ed0816116ee565b92915050565b600081519050610ee581611705565b92915050565b60006101608284031215610efe57600080fd5b81905092915050565b600081359050610f168161171c565b92915050565b600081519050610f2b8161171c565b92915050565b600060208284031215610f4357600080fd5b6000610f5184828501610ec1565b91505092915050565b600060208284031215610f6c57600080fd5b6000610f7a84828501610ed6565b91505092915050565b60006101608284031215610f9657600080fd5b6000610fa484828501610eeb565b91505092915050565b600060208284031215610fbf57600080fd5b6000610fcd84828501610f07565b91505092915050565b600060208284031215610fe857600080fd5b6000610ff684828501610f1c565b91505092915050565b611008816114bc565b82525050565b600061101982611456565b611023818561146c565b9350611033818560208601611516565b80840191505092915050565b61104881611504565b82525050565b600061105982611461565b6110638185611477565b9350611073818560208601611516565b61107c81611578565b840191505092915050565b6000611094602283611477565b915061109f82611589565b604082019050919050565b60006110b7602683611477565b91506110c2826115d8565b604082019050919050565b60006110da601d83611477565b91506110e582611627565b602082019050919050565b60006110fd602a83611477565b915061110882611650565b604082019050919050565b6000611120603683611477565b915061112b8261169f565b604082019050919050565b61113f816114fa565b82525050565b6000611151828461100e565b915081905092915050565b60006020820190506111716000830184610fff565b92915050565b600060408201905061118c6000830185610fff565b6111996020830184610fff565b9392505050565b60006060820190506111b56000830186610fff565b6111c26020830185610fff565b6111cf6040830184611136565b949350505050565b6000610100820190506111ed600083018b610fff565b6111fa602083018a610fff565b6112076040830189611136565b6112146060830188611136565b6112216080830187611136565b61122e60a0830186611136565b61123b60c0830185611136565b61124860e0830184611136565b9998505050505050505050565b600060408201905061126a6000830185610fff565b6112776020830184611136565b9392505050565b60006020820190508181036000830152611298818461104e565b905092915050565b600060208201905081810360008301526112b981611087565b9050919050565b600060208201905081810360008301526112d9816110aa565b9050919050565b600060208201905081810360008301526112f9816110cd565b9050919050565b60006020820190508181036000830152611319816110f0565b9050919050565b6000602082019050818103600083015261133981611113565b9050919050565b600060e082019050611355600083018a611136565b6113626020830189610fff565b61136f6040830188611136565b61137c6060830187611136565b6113896080830186611136565b61139660a0830185610fff565b6113a360c083018461103f565b98975050505050505050565b6000610100820190506113c5600083018b611136565b6113d2602083018a610fff565b6113df6040830189611136565b6113ec6060830188611136565b6113f96080830187611136565b61140660a0830186611136565b61141360c0830185611136565b61142060e0830184611136565b9998505050505050505050565b60006040820190506114426000830185611136565b61144f6020830184611136565b9392505050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b6000611493826114fa565b915061149e836114fa565b9250828210156114b1576114b0611549565b5b828203905092915050565b60006114c7826114da565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061150f826114fa565b9050919050565b60005b83811015611534578082015181840152602081019050611519565b83811115611543576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000601f19601f8301169050919050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b6116f7816114bc565b811461170257600080fd5b50565b61170e816114ce565b811461171957600080fd5b50565b611725816114fa565b811461173057600080fd5b5056fea164736f6c6343000804000a"; + "0x608060405234801561001057600080fd5b5061252d806100206000396000f3fe60806040526004361061007b5760003560e01c80635254f5a91161004e5780635254f5a91461014c5780639d2b482d14610168578063ac0d2b13146101a5578063fbdfb907146101e25761007b565b806314917f991461008057806314fe06e2146100a957806324fd21a3146100d25780634a6f22c41461010f575b600080fd5b34801561008c57600080fd5b506100a760048036038101906100a29190611cda565b61020b565b005b3480156100b557600080fd5b506100d060048036038101906100cb9190611cda565b61020e565b005b3480156100de57600080fd5b506100f960048036038101906100f49190611cda565b610211565b604051610106919061200d565b60405180910390f35b34801561011b57600080fd5b5061013660048036038101906101319190611cda565b61021c565b604051610143919061200d565b60405180910390f35b61016660048036038101906101619190611d03565b610227565b005b34801561017457600080fd5b5061018f600480360381019061018a9190611cda565b61093b565b60405161019c919061200d565b60405180910390f35b3480156101b157600080fd5b506101cc60048036038101906101c79190611cda565b610942565b6040516101d9919061200d565b60405180910390f35b3480156101ee57600080fd5b5061020960048036038101906102049190611d2d565b610949565b005b50565b50565b600060019050919050565b600060019050919050565b61023b67661bb951cdf53d8960c01b61020e565b61024f6770f43b674d4e55d060c01b61020b565b61026367fdb58b8d5e8c5bd260c01b61020b565b61027767f88563faceb9065260c01b61020b565b6000610281610a4a565b905061029767f5511ed184b06f9d60c01b61020b565b6102ab675fe6356e9bb02e7e60c01b61020b565b6001816000015414156102fe576102cc67c2bf72a01148a95560c01b61020b565b6040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103126759328cc6ac1a5b8460c01b61020b565b610326676585023ebf8de8b060c01b61020b565b600181600001819055506103446794e629fc71d8c79e60c01b61020b565b61035867f7c4c5ed2ed29b8760c01b61020e565b61036c672c8916768aa11a0d60c01b61020e565b61038067c0a65b1e3e76c5f160c01b61020e565b61039366682286c57c645760c01b61020e565b6103b38260400160208101906103a99190611c88565b8360a00135610ac8565b6103c7675aa064e00b20e53260c01b61020e565b6103db676629fd295d85650e60c01b61020e565b60006103f1672af44cf5d351024c60c01b61020e565b6104056753fbdf5eb662728e60c01b61020e565b600161040f610b42565b141561045757610429673bb93a90f35cab4360c01b61020e565b61043d67eeb9315c311e0c4a60c01b61020e565b8260000160208101906104509190611c88565b9050610495565b61046b67dae42f06ddcbf88760c01b61020e565b61047f67c33298c7d476a93160c01b61020e565b8260200160208101906104929190611c88565b90505b6104a96780516103bbb46bff60c01b61020e565b6104bd67495a4110dd564c7960c01b61020e565b82608001356104ca610b91565b141561052a576104e4672ad2e94f535bb7c360c01b61020e565b6104f867a071858ad800078d60c01b61020e565b6040517f4ac09ad300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61053e6771fbd3624530aca960c01b61020e565b610552677a27ef6a0f081e7460c01b61020e565b6105666751f57ad3e8af0ae660c01b61020e565b61058783604001602081019061057c9190611c88565b828560a00135610c17565b61059b6732bd3d5fb005932360c01b61020e565b6105af679ee94c753e40a9bd60c01b61020e565b60006105cc8460400160208101906105c79190611c88565b610eef565b80156105e857506105e7671c6cdb2e561b1b7a60c01b610211565b5b806106035750610602673aae476a62e89c5660c01b61093b565b5b61060e576000610614565b8360a001355b905061062a6705ffa9b8053bd55060c01b61020e565b61063e674c1bf98b0497add460c01b61020e565b6001610648610b42565b141561072c57610662675102be4bdc4b236560c01b61020e565b6106766792dcf2d8fc419e0b60c01b61020e565b61068a67c03078e49b8a444360c01b61020e565b8173ffffffffffffffffffffffffffffffffffffffff1663deace8f58286608001358760600160208101906106bf9190611c88565b8860a001358961012001358a61014001356000806040518963ffffffff1660e01b81526004016106f597969594939291906120ea565b6000604051808303818588803b15801561070e57600080fd5b505af1158015610722573d6000803e3d6000fd5b5050505050610814565b61074067fdf9a48dd9fc437a60c01b61020e565b61075467a7dee6e3ed91651860c01b61020e565b61076867f86051a336f1b40760c01b61020e565b8173ffffffffffffffffffffffffffffffffffffffff1663eea0d7b282866080013587606001602081019061079d9190611c88565b8860a001358960c001358a60e001358b61010001358c61012001358d61014001356040518a63ffffffff1660e01b81526004016107e1989796959493929190612159565b6000604051808303818588803b1580156107fa57600080fd5b505af115801561080e573d6000803e3d6000fd5b50505050505b61082867743931de60bec1cb60c01b61020e565b61083c670e27e12512b10ba560c01b61020e565b83604001602081019061084f9190611c88565b73ffffffffffffffffffffffffffffffffffffffff168460600160208101906108789190611c88565b73ffffffffffffffffffffffffffffffffffffffff1685608001357f35ac5f1aa56e86e7f2e01562289e5bd298773763192f6433fde30f05932381738760000160208101906108c79190611c88565b8860200160208101906108da9190611c88565b8960a001358a60c001358b60e001358c61010001358d61012001358e610140013560405161090f989796959493929190611f66565b60405180910390a4505061092d67441391ce80e99b6c60c01b61020b565b600081600001819055505050565b6000919050565b6000919050565b61095d67c5488db08bf3aa7e60c01b61020e565b61097167d7ab695f9ebcf25360c01b61020e565b61098567b16491a2c8df993a60c01b61020e565b61098d610f64565b6109a167239b563e050639e260c01b61020e565b6109b56751706ccc83c3e5bd60c01b61020e565b60006109bf611063565b90506109d5671994d64fd24a342e60c01b61020e565b8181600001819055506109f267495839473eebbf2060c01b61020e565b610a0667436eee75c6aa5af960c01b61020e565b7f09b9d2d59be87e537ec1f2f9325f524d04c29f20e2c60ce0c3c6435102c7882a610a2f610b91565b83604051610a3e9291906121d7565b60405180910390a15050565b6000610a6067fa11c344c1ec53a860c01b61020b565b610a74670fd7b7008acdbf5460c01b61020b565b610a88679fbd6d57c5d665d460c01b61020b565b60007fc59b5acc5a6673a6c49ca2de898f87adbd9fdfdff36f689476b1c9e0c50964b49050610ac167a9235c9a8268ed9060c01b61020b565b8091505090565b610adc6784e2b4191aab0e7160c01b6110e1565b610af067712f6b66126e0b6560c01b6110e1565b610b0467e5482082d9cb542560c01b6110e1565b610b3e8282600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146110e4565b5050565b6000610b586714c0c344270ea6ab60c01b61020e565b610b6c67a6bc01b0a9fd9f3460c01b61020e565b610b80673887afe91e7c57b060c01b61020e565b610b88611063565b60000154905090565b6000610ba7675f090b7904c6545560c01b61020e565b610bbb676dc269d1fb2d3c6560c01b61020e565b610bcf6705c0ac5722f1f16a60c01b61020e565b6000610be5673fd71ef25da613d360c01b61020e565b469050610bfc67e61d6ccc0a6fabcc60c01b61020e565b610c106717c21480dae85d1f60c01b61020e565b8091505090565b610c2b679ca08e8b0dc7164560c01b6110e1565b610c3f677404bbe72845116960c01b6110e1565b610c536753004255cfb9f81160c01b6110e1565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610cb557610c9c67bccf623436530fb560c01b6110e1565b610cb0672f1ccbe7cc38641160c01b6110e1565b610eea565b610cc9671d77c326e3bb51a560c01b6110e1565b610cdd677d550d58d944335060c01b6110e1565b610cf16726446e7a1db47a7260c01b6110e1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d6c57610d3a67480cbdcd365f7cb860c01b6110e1565b6040517f63ba9bff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d806750e20f5aa90611eb60c01b6110e1565b610d9467df7812970f50c3b160c01b6110e1565b610da867e21ae98e185ebeb360c01b6110e1565b60008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401610de5929190611f06565b60206040518083038186803b158015610dfd57600080fd5b505afa158015610e11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e359190611d56565b9050610e4b67de3d312e2c7294dc60c01b6110e1565b610e5f674e70391417d4424060c01b6110e1565b81811015610ed357610e7b675743a1c484c15d3e60c01b6110e1565b610e8f67bfb9af13a56e47bd60c01b6110e1565b610ea367995d48b5586277dc60c01b6110e1565b610ece84847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611410565b610ee8565b610ee767065587006cca868060c01b6110e1565b5b505b505050565b6000610f0567def6e9860ad508e960c01b6110e1565b610f19673a030cae1d937ded60c01b6110e1565b610f2d6766a8e87620041ca260c01b6110e1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b610f786721b40df6734b4e6460c01b61156e565b610f8c677276b6d1bbf7b68b60c01b61156e565b610fa067f8611dbcb55a1f7860c01b61156e565b610fb4676cedf54251a3375160c01b61156e565b610fbc611571565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461104d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110449061204a565b60405180910390fd5b61106167e452355b21bbd41e60c01b61156e565b565b600061107967049762d47eccc99560c01b61020e565b61108d677485aacd7ed494d760c01b61020e565b6110a1670dbb34693527921760c01b61020e565b60007f82ac262a0ca73826b2defa6066a5cbdaefe5f87d412e3568bfc9bec85eaa985790506110da67969465f63fd91b0960c01b61020e565b8091505090565b50565b6110f86739add2da1b0c35d560c01b6110e1565b61110c675c085b526ab8c57b60c01b6110e1565b61112067b3d2dd058c49644760c01b6110e1565b600082141561116f5761113d6705a8046c2df4f5c660c01b6110e1565b6040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611183678ef4e2c97a2bc62860c01b6110e1565b61119767cc697fa1840ca09660c01b6110e1565b6111ab6762088306b7db0d9360c01b6110e1565b8015611253576111c56796660f8106bc366160c01b6110e1565b6111d967fea9b8b23a82a46c60c01b6110e1565b6111ed671ab9f4b32ff9077960c01b6110e1565b81341461123a5761120867de026f7fec4a202a60c01b6110e1565b6040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61124e67deea53e0c61f3eb460c01b6110e1565b61140b565b6112676744732fb2539afe0860c01b6110e1565b61127b6745b5917460c8548c60c01b6110e1565b61128f67b61cda590281d4c760c01b6110e1565b600034146112dc576112ab670406a51ac2aeb89760c01b6110e1565b6040517e3f45b500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112f06771a45bb6142330f460c01b6110e1565b611304676aed5fceffb1a5b160c01b6110e1565b611318671d42f77a5125292a60c01b6110e1565b6000611323846115ef565b9050611339675f2f73f1308f917760c01b6110e1565b61134d67e372a3dad5ac62de60c01b6110e1565b6113598433308661172f565b61136d67102e84bf56110f4360c01b6110e1565b61138167de23d6438fcaff2e60c01b6110e1565b828161138c866115ef565b6113969190612232565b146113f5576113af67b59535ced511891360c01b6110e1565b6113c367b891075f773c113a60c01b6110e1565b6040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61140967ab2bee94dc1c87d160c01b6110e1565b505b505050565b60008114806114a9575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401611457929190611f06565b60206040518083038186803b15801561146f57600080fd5b505afa158015611483573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a79190611d56565b145b6114e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114df906120ca565b60405180910390fd5b6115698363095ea7b360e01b8484604051602401611507929190611fe4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506118eb565b505050565b50565b6000611587674f9afbb757d80e6360c01b61156e565b61159b674b823103125da15660c01b61156e565b6115af674ab715c231c1608d60c01b61156e565b60007fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90506115e867982d9bb86701efa860c01b61156e565b8091505090565b600061160567bb6d3fbf241bf67660c01b6110e1565b611619677ba8e1dcf768e44260c01b6110e1565b61162d674fd0fe73cee512ad60c01b6110e1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611679575061167867f6a472cb1776bcb560c01b6119b2565b5b80611694575061169367d904c8f1fbab9d1f60c01b6119bd565b5b611726578173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016116d19190611eeb565b60206040518083038186803b1580156116e957600080fd5b505afa1580156116fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117219190611d56565b611728565b475b9050919050565b61174367ef583e2039c405c960c01b6110e1565b61175767ace174e366a9f4fc60c01b6110e1565b61176b671bb3b9242bb58a1f60c01b6110e1565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156117e6576117b467434f07c0e3d2754a60c01b6110e1565b6040517fd1bebf0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6117fa679391395d4ba7d68d60c01b6110e1565b61180e671a151b621bcceb6460c01b6110e1565b611822671d62177db93f304360c01b6110e1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561189d5761186b67bfa6da5dd21dbe1f60c01b6110e1565b6040517f21f7434500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6118b167971e37aa923e816660c01b6110e1565b6118c5675dd2e235ffab1cbb60c01b6110e1565b6118d9670980a3febde5381660c01b6110e1565b6118e5848484846119c4565b50505050565b600061194d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611a4d9092919063ffffffff16565b90506000815111156119ad578080602001905181019061196d9190611cb1565b6119ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a3906120aa565b60405180910390fd5b5b505050565b600060019050919050565b6000919050565b611a47846323b872dd60e01b8585856040516024016119e593929190611f2f565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506118eb565b50505050565b6060611a5c8484600085611a65565b90509392505050565b606082471015611aaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa19061206a565b60405180910390fd5b611ab385611b79565b611af2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae99061208a565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051611b1b9190611ed4565b60006040518083038185875af1925050503d8060008114611b58576040519150601f19603f3d011682016040523d82523d6000602084013e611b5d565b606091505b5091509150611b6d828286611b9c565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60608315611bac57829050611bfc565b600083511115611bbf5782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf39190612028565b60405180910390fd5b9392505050565b600081359050611c12816124c4565b92915050565b600081519050611c27816124db565b92915050565b600081359050611c3c816124f2565b92915050565b60006101608284031215611c5557600080fd5b81905092915050565b600081359050611c6d81612509565b92915050565b600081519050611c8281612509565b92915050565b600060208284031215611c9a57600080fd5b6000611ca884828501611c03565b91505092915050565b600060208284031215611cc357600080fd5b6000611cd184828501611c18565b91505092915050565b600060208284031215611cec57600080fd5b6000611cfa84828501611c2d565b91505092915050565b60006101608284031215611d1657600080fd5b6000611d2484828501611c42565b91505092915050565b600060208284031215611d3f57600080fd5b6000611d4d84828501611c5e565b91505092915050565b600060208284031215611d6857600080fd5b6000611d7684828501611c73565b91505092915050565b611d8881612266565b82525050565b611d9781612278565b82525050565b6000611da882612200565b611db28185612216565b9350611dc28185602086016122ec565b80840191505092915050565b611dd7816122da565b82525050565b6000611de88261220b565b611df28185612221565b9350611e028185602086016122ec565b611e0b8161234e565b840191505092915050565b6000611e23602283612221565b9150611e2e8261235f565b604082019050919050565b6000611e46602683612221565b9150611e51826123ae565b604082019050919050565b6000611e69601d83612221565b9150611e74826123fd565b602082019050919050565b6000611e8c602a83612221565b9150611e9782612426565b604082019050919050565b6000611eaf603683612221565b9150611eba82612475565b604082019050919050565b611ece816122d0565b82525050565b6000611ee08284611d9d565b915081905092915050565b6000602082019050611f006000830184611d7f565b92915050565b6000604082019050611f1b6000830185611d7f565b611f286020830184611d7f565b9392505050565b6000606082019050611f446000830186611d7f565b611f516020830185611d7f565b611f5e6040830184611ec5565b949350505050565b600061010082019050611f7c600083018b611d7f565b611f89602083018a611d7f565b611f966040830189611ec5565b611fa36060830188611ec5565b611fb06080830187611ec5565b611fbd60a0830186611ec5565b611fca60c0830185611ec5565b611fd760e0830184611ec5565b9998505050505050505050565b6000604082019050611ff96000830185611d7f565b6120066020830184611ec5565b9392505050565b60006020820190506120226000830184611d8e565b92915050565b600060208201905081810360008301526120428184611ddd565b905092915050565b6000602082019050818103600083015261206381611e16565b9050919050565b6000602082019050818103600083015261208381611e39565b9050919050565b600060208201905081810360008301526120a381611e5c565b9050919050565b600060208201905081810360008301526120c381611e7f565b9050919050565b600060208201905081810360008301526120e381611ea2565b9050919050565b600060e0820190506120ff600083018a611ec5565b61210c6020830189611d7f565b6121196040830188611ec5565b6121266060830187611ec5565b6121336080830186611ec5565b61214060a0830185611d7f565b61214d60c0830184611dce565b98975050505050505050565b60006101008201905061216f600083018b611ec5565b61217c602083018a611d7f565b6121896040830189611ec5565b6121966060830188611ec5565b6121a36080830187611ec5565b6121b060a0830186611ec5565b6121bd60c0830185611ec5565b6121ca60e0830184611ec5565b9998505050505050505050565b60006040820190506121ec6000830185611ec5565b6121f96020830184611ec5565b9392505050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600061223d826122d0565b9150612248836122d0565b92508282101561225b5761225a61231f565b5b828203905092915050565b6000612271826122b0565b9050919050565b60008115159050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006122e5826122d0565b9050919050565b60005b8381101561230a5780820151818401526020810190506122ef565b83811115612319576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000601f19601f8301169050919050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b6124cd81612266565b81146124d857600080fd5b50565b6124e481612278565b81146124ef57600080fd5b50565b6124fb81612284565b811461250657600080fd5b50565b612512816122d0565b811461251d57600080fd5b5056fea164736f6c6343000804000a"; type HopFacetConstructorParams = | [signer?: Signer] diff --git a/typings/factories/IConnectorManager__factory.ts b/typings/factories/IConnectorManager__factory.ts deleted file mode 100644 index 5d77ccf5..00000000 --- a/typings/factories/IConnectorManager__factory.ts +++ /dev/null @@ -1,71 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from "ethers"; -import { Provider } from "@ethersproject/providers"; -import type { - IConnectorManager, - IConnectorManagerInterface, -} from "../IConnectorManager"; - -const _abi = [ - { - inputs: [], - name: "home", - outputs: [ - { - internalType: "contract IOutbox", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_potentialReplica", - type: "address", - }, - ], - name: "isReplica", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "localDomain", - outputs: [ - { - internalType: "uint32", - name: "", - type: "uint32", - }, - ], - stateMutability: "view", - type: "function", - }, -]; - -export class IConnectorManager__factory { - static readonly abi = _abi; - static createInterface(): IConnectorManagerInterface { - return new utils.Interface(_abi) as IConnectorManagerInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): IConnectorManager { - return new Contract(address, _abi, signerOrProvider) as IConnectorManager; - } -} diff --git a/typings/factories/IERC20MetadataUpgradeable__factory.ts b/typings/factories/IERC20MetadataUpgradeable__factory.ts deleted file mode 100644 index 6549eb63..00000000 --- a/typings/factories/IERC20MetadataUpgradeable__factory.ts +++ /dev/null @@ -1,252 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from "ethers"; -import { Provider } from "@ethersproject/providers"; -import type { - IERC20MetadataUpgradeable, - IERC20MetadataUpgradeableInterface, -} from "../IERC20MetadataUpgradeable"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - 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: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - 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: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -]; - -export class IERC20MetadataUpgradeable__factory { - static readonly abi = _abi; - static createInterface(): IERC20MetadataUpgradeableInterface { - return new utils.Interface(_abi) as IERC20MetadataUpgradeableInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): IERC20MetadataUpgradeable { - return new Contract( - address, - _abi, - signerOrProvider - ) as IERC20MetadataUpgradeable; - } -} diff --git a/typings/factories/IERC20Metadata__factory.ts b/typings/factories/IERC20Metadata__factory.ts deleted file mode 100644 index f955c5c3..00000000 --- a/typings/factories/IERC20Metadata__factory.ts +++ /dev/null @@ -1,248 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from "ethers"; -import { Provider } from "@ethersproject/providers"; -import type { - IERC20Metadata, - IERC20MetadataInterface, -} from "../IERC20Metadata"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - 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: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - 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: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -]; - -export class IERC20Metadata__factory { - static readonly abi = _abi; - static createInterface(): IERC20MetadataInterface { - return new utils.Interface(_abi) as IERC20MetadataInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): IERC20Metadata { - return new Contract(address, _abi, signerOrProvider) as IERC20Metadata; - } -} diff --git a/typings/factories/IERC20Upgradeable__factory.ts b/typings/factories/IERC20Upgradeable__factory.ts deleted file mode 100644 index 5e7d8c85..00000000 --- a/typings/factories/IERC20Upgradeable__factory.ts +++ /dev/null @@ -1,209 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from "ethers"; -import { Provider } from "@ethersproject/providers"; -import type { - IERC20Upgradeable, - IERC20UpgradeableInterface, -} from "../IERC20Upgradeable"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - 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: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -]; - -export class IERC20Upgradeable__factory { - static readonly abi = _abi; - static createInterface(): IERC20UpgradeableInterface { - return new utils.Interface(_abi) as IERC20UpgradeableInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): IERC20Upgradeable { - return new Contract(address, _abi, signerOrProvider) as IERC20Upgradeable; - } -} diff --git a/typings/factories/IOutbox__factory.ts b/typings/factories/IOutbox__factory.ts deleted file mode 100644 index eb1cd376..00000000 --- a/typings/factories/IOutbox__factory.ts +++ /dev/null @@ -1,94 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from "ethers"; -import { Provider } from "@ethersproject/providers"; -import type { IOutbox, IOutboxInterface } from "../IOutbox"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "messageHash", - type: "bytes32", - }, - { - indexed: true, - internalType: "uint256", - name: "leafIndex", - type: "uint256", - }, - { - indexed: true, - internalType: "uint64", - name: "destinationAndNonce", - type: "uint64", - }, - { - indexed: false, - internalType: "bytes32", - name: "committedRoot", - type: "bytes32", - }, - { - indexed: false, - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "Dispatch", - type: "event", - }, - { - inputs: [ - { - internalType: "uint32", - name: "_destinationDomain", - type: "uint32", - }, - { - internalType: "bytes32", - name: "_recipientAddress", - type: "bytes32", - }, - { - internalType: "bytes", - name: "_messageBody", - type: "bytes", - }, - ], - name: "dispatch", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -]; - -export class IOutbox__factory { - static readonly abi = _abi; - static createInterface(): IOutboxInterface { - return new utils.Interface(_abi) as IOutboxInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): IOutbox { - return new Contract(address, _abi, signerOrProvider) as IOutbox; - } -} diff --git a/typings/factories/IStableSwap__factory.ts b/typings/factories/IStableSwap__factory.ts deleted file mode 100644 index 7e4f20a2..00000000 --- a/typings/factories/IStableSwap__factory.ts +++ /dev/null @@ -1,837 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from "ethers"; -import { Provider } from "@ethersproject/providers"; -import type { IStableSwap, IStableSwapInterface } from "../IStableSwap"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "provider", - type: "address", - }, - { - indexed: false, - internalType: "uint256[]", - name: "tokenAmounts", - type: "uint256[]", - }, - { - indexed: false, - internalType: "uint256[]", - name: "fees", - type: "uint256[]", - }, - { - indexed: false, - internalType: "uint256", - name: "invariant", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "lpTokenSupply", - type: "uint256", - }, - ], - name: "AddLiquidity", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "newAdminFee", - type: "uint256", - }, - ], - name: "NewAdminFee", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "newSwapFee", - type: "uint256", - }, - ], - name: "NewSwapFee", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "newWithdrawFee", - type: "uint256", - }, - ], - name: "NewWithdrawFee", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "oldA", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "newA", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "initialTime", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "futureTime", - type: "uint256", - }, - ], - name: "RampA", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "provider", - type: "address", - }, - { - indexed: false, - internalType: "uint256[]", - name: "tokenAmounts", - type: "uint256[]", - }, - { - indexed: false, - internalType: "uint256", - name: "lpTokenSupply", - type: "uint256", - }, - ], - name: "RemoveLiquidity", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "provider", - type: "address", - }, - { - indexed: false, - internalType: "uint256[]", - name: "tokenAmounts", - type: "uint256[]", - }, - { - indexed: false, - internalType: "uint256[]", - name: "fees", - type: "uint256[]", - }, - { - indexed: false, - internalType: "uint256", - name: "invariant", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "lpTokenSupply", - type: "uint256", - }, - ], - name: "RemoveLiquidityImbalance", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "provider", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "lpTokenAmount", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "lpTokenSupply", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "boughtId", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "tokensBought", - type: "uint256", - }, - ], - name: "RemoveLiquidityOne", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "currentA", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "time", - type: "uint256", - }, - ], - name: "StopRampA", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "buyer", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "tokensSold", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "tokensBought", - type: "uint256", - }, - { - indexed: false, - internalType: "uint128", - name: "soldId", - type: "uint128", - }, - { - indexed: false, - internalType: "uint128", - name: "boughtId", - type: "uint128", - }, - ], - name: "TokenSwap", - type: "event", - }, - { - inputs: [ - { - internalType: "uint256[]", - name: "amounts", - type: "uint256[]", - }, - { - internalType: "uint256", - name: "minToMint", - type: "uint256", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "addLiquidity", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "calculateRemoveLiquidity", - outputs: [ - { - internalType: "uint256[]", - name: "", - type: "uint256[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "tokenAmount", - type: "uint256", - }, - { - internalType: "uint8", - name: "tokenIndex", - type: "uint8", - }, - ], - name: "calculateRemoveLiquidityOneToken", - outputs: [ - { - internalType: "uint256", - name: "availableTokenAmount", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint8", - name: "tokenIndexFrom", - type: "uint8", - }, - { - internalType: "uint8", - name: "tokenIndexTo", - type: "uint8", - }, - { - internalType: "uint256", - name: "dx", - type: "uint256", - }, - ], - name: "calculateSwap", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "assetIn", - type: "address", - }, - { - internalType: "address", - name: "assetOut", - type: "address", - }, - { - internalType: "uint256", - name: "amountIn", - type: "uint256", - }, - ], - name: "calculateSwapFromAddress", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint8", - name: "tokenIndexFrom", - type: "uint8", - }, - { - internalType: "uint8", - name: "tokenIndexTo", - type: "uint8", - }, - { - internalType: "uint256", - name: "dy", - type: "uint256", - }, - ], - name: "calculateSwapOut", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "assetIn", - type: "address", - }, - { - internalType: "address", - name: "assetOut", - type: "address", - }, - { - internalType: "uint256", - name: "amountOut", - type: "uint256", - }, - ], - name: "calculateSwapOutFromAddress", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256[]", - name: "amounts", - type: "uint256[]", - }, - { - internalType: "bool", - name: "deposit", - type: "bool", - }, - ], - name: "calculateTokenAmount", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "getA", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint8", - name: "index", - type: "uint8", - }, - ], - name: "getToken", - outputs: [ - { - internalType: "contract IERC20", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint8", - name: "index", - type: "uint8", - }, - ], - name: "getTokenBalance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "tokenAddress", - type: "address", - }, - ], - name: "getTokenIndex", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "getVirtualPrice", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "contract IERC20[]", - name: "pooledTokens", - type: "address[]", - }, - { - internalType: "uint8[]", - name: "decimals", - type: "uint8[]", - }, - { - internalType: "string", - name: "lpTokenName", - type: "string", - }, - { - internalType: "string", - name: "lpTokenSymbol", - type: "string", - }, - { - internalType: "uint256", - name: "a", - type: "uint256", - }, - { - internalType: "uint256", - name: "fee", - type: "uint256", - }, - { - internalType: "uint256", - name: "adminFee", - type: "uint256", - }, - { - internalType: "address", - name: "lpTokenTargetAddress", - type: "address", - }, - ], - name: "initialize", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "uint256[]", - name: "minAmounts", - type: "uint256[]", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "removeLiquidity", - outputs: [ - { - internalType: "uint256[]", - name: "", - type: "uint256[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256[]", - name: "amounts", - type: "uint256[]", - }, - { - internalType: "uint256", - name: "maxBurnAmount", - type: "uint256", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "removeLiquidityImbalance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "tokenAmount", - type: "uint256", - }, - { - internalType: "uint8", - name: "tokenIndex", - type: "uint8", - }, - { - internalType: "uint256", - name: "minAmount", - type: "uint256", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "removeLiquidityOneToken", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint8", - name: "tokenIndexFrom", - type: "uint8", - }, - { - internalType: "uint8", - name: "tokenIndexTo", - type: "uint8", - }, - { - internalType: "uint256", - name: "dx", - type: "uint256", - }, - { - internalType: "uint256", - name: "minDy", - type: "uint256", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "swap", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountIn", - type: "uint256", - }, - { - internalType: "address", - name: "assetIn", - type: "address", - }, - { - internalType: "address", - name: "assetOut", - type: "address", - }, - { - internalType: "uint256", - name: "minAmountOut", - type: "uint256", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "swapExact", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amountOut", - type: "uint256", - }, - { - internalType: "address", - name: "assetIn", - type: "address", - }, - { - internalType: "address", - name: "assetOut", - type: "address", - }, - { - internalType: "uint256", - name: "maxAmountIn", - type: "uint256", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - ], - name: "swapExactOut", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "payable", - type: "function", - }, -]; - -export class IStableSwap__factory { - static readonly abi = _abi; - static createInterface(): IStableSwapInterface { - return new utils.Interface(_abi) as IStableSwapInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): IStableSwap { - return new Contract(address, _abi, signerOrProvider) as IStableSwap; - } -} diff --git a/typings/factories/IStargateReceiver__factory.ts b/typings/factories/IStargateReceiver__factory.ts index a4aee01c..08ebd2bc 100644 --- a/typings/factories/IStargateReceiver__factory.ts +++ b/typings/factories/IStargateReceiver__factory.ts @@ -14,7 +14,7 @@ const _abi = [ inputs: [ { internalType: "uint16", - name: "_srcChainId", + name: "_chainId", type: "uint16", }, { diff --git a/typings/factories/IStargateRouterETH__factory.ts b/typings/factories/IStargateRouterETH__factory.ts new file mode 100644 index 00000000..1a1d894d --- /dev/null +++ b/typings/factories/IStargateRouterETH__factory.ts @@ -0,0 +1,66 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IStargateRouterETH, + IStargateRouterETHInterface, +} from "../IStargateRouterETH"; + +const _abi = [ + { + inputs: [], + name: "addLiquidityETH", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint16", + name: "dstChainId", + type: "uint16", + }, + { + internalType: "address payable", + name: "refundAddress", + type: "address", + }, + { + internalType: "bytes", + name: "to", + type: "bytes", + }, + { + internalType: "uint256", + name: "amountLD", + type: "uint256", + }, + { + internalType: "uint256", + name: "minAmountLD", + type: "uint256", + }, + ], + name: "swapETH", + outputs: [], + stateMutability: "payable", + type: "function", + }, +]; + +export class IStargateRouterETH__factory { + static readonly abi = _abi; + static createInterface(): IStargateRouterETHInterface { + return new utils.Interface(_abi) as IStargateRouterETHInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IStargateRouterETH { + return new Contract(address, _abi, signerOrProvider) as IStargateRouterETH; + } +} diff --git a/typings/factories/Initializable__factory.ts b/typings/factories/Initializable__factory.ts index c31c7164..ebaea1b2 100644 --- a/typings/factories/Initializable__factory.ts +++ b/typings/factories/Initializable__factory.ts @@ -20,6 +20,57 @@ const _abi = [ name: "Initialized", type: "event", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_098c0657", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_false098c0657", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_true098c0657", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [], name: "isInitialized", diff --git a/typings/factories/LPToken__factory.ts b/typings/factories/LPToken__factory.ts deleted file mode 100644 index 55011fd0..00000000 --- a/typings/factories/LPToken__factory.ts +++ /dev/null @@ -1,453 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { LPToken, LPTokenInterface } from "../LPToken"; - -const _abi = [ - { - 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: "uint8", - name: "version", - type: "uint8", - }, - ], - name: "Initialized", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "previousOwner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "OwnershipTransferred", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - 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: "address", - name: "account", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "burnFrom", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "subtractedValue", - type: "uint256", - }, - ], - name: "decreaseAllowance", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "addedValue", - type: "uint256", - }, - ], - name: "increaseAllowance", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - ], - name: "initialize", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "mint", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "name", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "owner", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "renounceOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "symbol", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "transferOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -]; - -const _bytecode = - "0x608060405234801561001057600080fd5b506127d4806100206000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a257806395d89b411161007157806395d89b41146102ba578063a457c2d7146102d8578063a9059cbb14610308578063dd62ed3e14610338578063f2fde38b146103685761010b565b806370a0823114610246578063715018a61461027657806379cc6790146102805780638da5cb5b1461029c5761010b565b8063313ce567116100de578063313ce567146101ac57806339509351146101ca57806340c10f19146101fa5780634cd88b76146102165761010b565b806306fdde0314610110578063095ea7b31461012e57806318160ddd1461015e57806323b872dd1461017c575b600080fd5b610118610384565b60405161012591906116cd565b60405180910390f35b61014860048036038101906101439190611797565b610416565b60405161015591906117f2565b60405180910390f35b610166610439565b604051610173919061181c565b60405180910390f35b61019660048036038101906101919190611837565b610443565b6040516101a391906117f2565b60405180910390f35b6101b4610472565b6040516101c191906118a6565b60405180910390f35b6101e460048036038101906101df9190611797565b61047b565b6040516101f191906117f2565b60405180910390f35b610214600480360381019061020f9190611797565b6104b2565b005b610230600480360381019061022b91906119f6565b61057f565b60405161023d91906117f2565b60405180910390f35b610260600480360381019061025b9190611a6e565b61062e565b60405161026d919061181c565b60405180910390f35b61027e610677565b005b61029a60048036038101906102959190611797565b6106ff565b005b6102a46107cc565b6040516102b19190611aaa565b60405180910390f35b6102c26107f6565b6040516102cf91906116cd565b60405180910390f35b6102f260048036038101906102ed9190611797565b610888565b6040516102ff91906117f2565b60405180910390f35b610322600480360381019061031d9190611797565b6108ff565b60405161032f91906117f2565b60405180910390f35b610352600480360381019061034d9190611ac5565b610922565b60405161035f919061181c565b60405180910390f35b610382600480360381019061037d9190611a6e565b6109a9565b005b60606036805461039390611b34565b80601f01602080910402602001604051908101604052809291908181526020018280546103bf90611b34565b801561040c5780601f106103e15761010080835404028352916020019161040c565b820191906000526020600020905b8154815290600101906020018083116103ef57829003601f168201915b5050505050905090565b600080610421610aa0565b905061042e818585610aa8565b600191505092915050565b6000603554905090565b60008061044e610aa0565b905061045b858285610c71565b610466858585610cfd565b60019150509392505050565b60006012905090565b600080610486610aa0565b90506104a78185856104988589610922565b6104a29190611b94565b610aa8565b600191505092915050565b6104ba610aa0565b73ffffffffffffffffffffffffffffffffffffffff166104d86107cc565b73ffffffffffffffffffffffffffffffffffffffff161461052e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052590611c14565b60405180910390fd5b60008103610571576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056890611c80565b60405180910390fd5b61057b8282610f7f565b5050565b60008061058c60016110df565b905080156105b0576001600060016101000a81548160ff0219169083151502179055505b6105b86111cf565b6105c28484611220565b6105ca611293565b6001915080156106275760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498600160405161061e9190611ce5565b60405180910390a15b5092915050565b6000603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61067f610aa0565b73ffffffffffffffffffffffffffffffffffffffff1661069d6107cc565b73ffffffffffffffffffffffffffffffffffffffff16146106f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ea90611c14565b60405180910390fd5b6106fd60006112f4565b565b610707610aa0565b73ffffffffffffffffffffffffffffffffffffffff166107256107cc565b73ffffffffffffffffffffffffffffffffffffffff161461077b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077290611c14565b60405180910390fd5b600081036107be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b590611d4c565b60405180910390fd5b6107c882826113ba565b5050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606037805461080590611b34565b80601f016020809104026020016040519081016040528092919081815260200182805461083190611b34565b801561087e5780601f106108535761010080835404028352916020019161087e565b820191906000526020600020905b81548152906001019060200180831161086157829003601f168201915b5050505050905090565b600080610893610aa0565b905060006108a18286610922565b9050838110156108e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108dd90611dde565b60405180910390fd5b6108f38286868403610aa8565b60019250505092915050565b60008061090a610aa0565b9050610917818585610cfd565b600191505092915050565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6109b1610aa0565b73ffffffffffffffffffffffffffffffffffffffff166109cf6107cc565b73ffffffffffffffffffffffffffffffffffffffff1614610a25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1c90611c14565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8b90611e70565b60405180910390fd5b610a9d816112f4565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0e90611f02565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7d90611f94565b60405180910390fd5b80603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c64919061181c565b60405180910390a3505050565b6000610c7d8484610922565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610cf75781811015610ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce090612000565b60405180910390fd5b610cf68484848403610aa8565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6390612092565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ddb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd290612124565b60405180910390fd5b610de6838383611592565b6000603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610e6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e64906121b6565b60405180910390fd5b818103603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f029190611b94565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610f66919061181c565b60405180910390a3610f79848484611610565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe590612222565b60405180910390fd5b610ffa60008383611592565b806035600082825461100c9190611b94565b9250508190555080603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110629190611b94565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516110c7919061181c565b60405180910390a36110db60008383611610565b5050565b60008060019054906101000a900460ff16156111565760018260ff1614801561110e575061110c30611615565b155b61114d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611144906122b4565b60405180910390fd5b600090506111ca565b8160ff1660008054906101000a900460ff1660ff16106111ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a2906122b4565b60405180910390fd5b816000806101000a81548160ff021916908360ff160217905550600190505b919050565b600060019054906101000a900460ff1661121e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121590612346565b60405180910390fd5b565b600060019054906101000a900460ff1661126f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126690612346565b60405180910390fd5b816036908161127e9190612508565b50806037908161128e9190612508565b505050565b600060019054906101000a900460ff166112e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d990612346565b60405180910390fd5b6112f26112ed610aa0565b6112f4565b565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611429576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114209061264c565b60405180910390fd5b61143582600083611592565b6000603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156114bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b3906126de565b60405180910390fd5b818103603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816035600082825461151491906126fe565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611579919061181c565b60405180910390a361158d83600084611610565b505050565b61159d838383611638565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361160b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116029061277e565b60405180910390fd5b505050565b505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561167757808201518184015260208101905061165c565b60008484015250505050565b6000601f19601f8301169050919050565b600061169f8261163d565b6116a98185611648565b93506116b9818560208601611659565b6116c281611683565b840191505092915050565b600060208201905081810360008301526116e78184611694565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061172e82611703565b9050919050565b61173e81611723565b811461174957600080fd5b50565b60008135905061175b81611735565b92915050565b6000819050919050565b61177481611761565b811461177f57600080fd5b50565b6000813590506117918161176b565b92915050565b600080604083850312156117ae576117ad6116f9565b5b60006117bc8582860161174c565b92505060206117cd85828601611782565b9150509250929050565b60008115159050919050565b6117ec816117d7565b82525050565b600060208201905061180760008301846117e3565b92915050565b61181681611761565b82525050565b6000602082019050611831600083018461180d565b92915050565b6000806000606084860312156118505761184f6116f9565b5b600061185e8682870161174c565b935050602061186f8682870161174c565b925050604061188086828701611782565b9150509250925092565b600060ff82169050919050565b6118a08161188a565b82525050565b60006020820190506118bb6000830184611897565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61190382611683565b810181811067ffffffffffffffff82111715611922576119216118cb565b5b80604052505050565b60006119356116ef565b905061194182826118fa565b919050565b600067ffffffffffffffff821115611961576119606118cb565b5b61196a82611683565b9050602081019050919050565b82818337600083830152505050565b600061199961199484611946565b61192b565b9050828152602081018484840111156119b5576119b46118c6565b5b6119c0848285611977565b509392505050565b600082601f8301126119dd576119dc6118c1565b5b81356119ed848260208601611986565b91505092915050565b60008060408385031215611a0d57611a0c6116f9565b5b600083013567ffffffffffffffff811115611a2b57611a2a6116fe565b5b611a37858286016119c8565b925050602083013567ffffffffffffffff811115611a5857611a576116fe565b5b611a64858286016119c8565b9150509250929050565b600060208284031215611a8457611a836116f9565b5b6000611a928482850161174c565b91505092915050565b611aa481611723565b82525050565b6000602082019050611abf6000830184611a9b565b92915050565b60008060408385031215611adc57611adb6116f9565b5b6000611aea8582860161174c565b9250506020611afb8582860161174c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611b4c57607f821691505b602082108103611b5f57611b5e611b05565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611b9f82611761565b9150611baa83611761565b9250828201905080821115611bc257611bc1611b65565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611bfe602083611648565b9150611c0982611bc8565b602082019050919050565b60006020820190508181036000830152611c2d81611bf1565b9050919050565b7f4c50546f6b656e3a2063616e6e6f74206d696e74203000000000000000000000600082015250565b6000611c6a601683611648565b9150611c7582611c34565b602082019050919050565b60006020820190508181036000830152611c9981611c5d565b9050919050565b6000819050919050565b6000819050919050565b6000611ccf611cca611cc584611ca0565b611caa565b61188a565b9050919050565b611cdf81611cb4565b82525050565b6000602082019050611cfa6000830184611cd6565b92915050565b7f4c50546f6b656e3a2063616e6e6f74206275726e203000000000000000000000600082015250565b6000611d36601683611648565b9150611d4182611d00565b602082019050919050565b60006020820190508181036000830152611d6581611d29565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611dc8602583611648565b9150611dd382611d6c565b604082019050919050565b60006020820190508181036000830152611df781611dbb565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611e5a602683611648565b9150611e6582611dfe565b604082019050919050565b60006020820190508181036000830152611e8981611e4d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611eec602483611648565b9150611ef782611e90565b604082019050919050565b60006020820190508181036000830152611f1b81611edf565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611f7e602283611648565b9150611f8982611f22565b604082019050919050565b60006020820190508181036000830152611fad81611f71565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611fea601d83611648565b9150611ff582611fb4565b602082019050919050565b6000602082019050818103600083015261201981611fdd565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061207c602583611648565b915061208782612020565b604082019050919050565b600060208201905081810360008301526120ab8161206f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061210e602383611648565b9150612119826120b2565b604082019050919050565b6000602082019050818103600083015261213d81612101565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006121a0602683611648565b91506121ab82612144565b604082019050919050565b600060208201905081810360008301526121cf81612193565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600061220c601f83611648565b9150612217826121d6565b602082019050919050565b6000602082019050818103600083015261223b816121ff565b9050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b600061229e602e83611648565b91506122a982612242565b604082019050919050565b600060208201905081810360008301526122cd81612291565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b6000612330602b83611648565b915061233b826122d4565b604082019050919050565b6000602082019050818103600083015261235f81612323565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026123c87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261238b565b6123d2868361238b565b95508019841693508086168417925050509392505050565b60006124056124006123fb84611761565b611caa565b611761565b9050919050565b6000819050919050565b61241f836123ea565b61243361242b8261240c565b848454612398565b825550505050565b600090565b61244861243b565b612453818484612416565b505050565b5b818110156124775761246c600082612440565b600181019050612459565b5050565b601f8211156124bc5761248d81612366565b6124968461237b565b810160208510156124a5578190505b6124b96124b18561237b565b830182612458565b50505b505050565b600082821c905092915050565b60006124df600019846008026124c1565b1980831691505092915050565b60006124f883836124ce565b9150826002028217905092915050565b6125118261163d565b67ffffffffffffffff81111561252a576125296118cb565b5b6125348254611b34565b61253f82828561247b565b600060209050601f8311600181146125725760008415612560578287015190505b61256a85826124ec565b8655506125d2565b601f19841661258086612366565b60005b828110156125a857848901518255600182019150602085019450602081019050612583565b868310156125c557848901516125c1601f8916826124ce565b8355505b6001600288020188555050505b505050505050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612636602183611648565b9150612641826125da565b604082019050919050565b6000602082019050818103600083015261266581612629565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006126c8602283611648565b91506126d38261266c565b604082019050919050565b600060208201905081810360008301526126f7816126bb565b9050919050565b600061270982611761565b915061271483611761565b925082820390508181111561272c5761272b611b65565b5b92915050565b7f4c50546f6b656e3a2063616e6e6f742073656e6420746f20697473656c660000600082015250565b6000612768601e83611648565b915061277382612732565b602082019050919050565b600060208201905081810360008301526127978161275b565b905091905056fea26469706673582212205283f0c2c21f76fe91a041cd217127f4146298d69e685b5b0469d8154e80f20464736f6c63430008110033"; - -type LPTokenConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: LPTokenConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class LPToken__factory extends ContractFactory { - constructor(...args: LPTokenConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - deploy( - overrides?: Overrides & { from?: string | Promise } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - getDeployTransaction( - overrides?: Overrides & { from?: string | Promise } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - attach(address: string): LPToken { - return super.attach(address) as LPToken; - } - connect(signer: Signer): LPToken__factory { - return super.connect(signer) as LPToken__factory; - } - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): LPTokenInterface { - return new utils.Interface(_abi) as LPTokenInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): LPToken { - return new Contract(address, _abi, signerOrProvider) as LPToken; - } -} diff --git a/typings/factories/LibAsset__factory.ts b/typings/factories/LibAsset__factory.ts index 1ea9a0cd..d7494b95 100644 --- a/typings/factories/LibAsset__factory.ts +++ b/typings/factories/LibAsset__factory.ts @@ -10,11 +10,11 @@ const _abi = [ inputs: [ { internalType: "bytes8", - name: "c__4e3cd818", + name: "c__724619c6", type: "bytes8", }, ], - name: "c_4e3cd818", + name: "c_724619c6", outputs: [], stateMutability: "pure", type: "function", @@ -23,11 +23,11 @@ const _abi = [ inputs: [ { internalType: "bytes8", - name: "c__4e3cd818", + name: "c__724619c6", type: "bytes8", }, ], - name: "c_false4e3cd818", + name: "c_false724619c6", outputs: [ { internalType: "bool", @@ -42,11 +42,11 @@ const _abi = [ inputs: [ { internalType: "bytes8", - name: "c__4e3cd818", + name: "c__724619c6", type: "bytes8", }, ], - name: "c_true4e3cd818", + name: "c_true724619c6", outputs: [ { internalType: "bool", @@ -60,7 +60,7 @@ const _abi = [ ]; const _bytecode = - "0x6101a5610053600b82828239805160001a607314610046577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061004b5760003560e01c8063658c96a914610050578063804207cf14610080578063f772e4af1461009c575b600080fd5b61006a600480360381019061006591906100f6565b6100cc565b604051610077919061012e565b60405180910390f35b61009a600480360381019061009591906100f6565b6100d3565b005b6100b660048036038101906100b191906100f6565b6100d6565b6040516100c3919061012e565b60405180910390f35b6000919050565b50565b600060019050919050565b6000813590506100f081610181565b92915050565b60006020828403121561010857600080fd5b6000610116848285016100e1565b91505092915050565b61012881610149565b82525050565b6000602082019050610143600083018461011f565b92915050565b60008115159050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b61018a81610155565b811461019557600080fd5b5056fea164736f6c6343000804000a"; + "0x6101a5610053600b82828239805160001a607314610046577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061004b5760003560e01c80631133eca214610050578063d9e8719e14610080578063e12842d3146100b0575b600080fd5b61006a600480360381019061006591906100f6565b6100cc565b604051610077919061012e565b60405180910390f35b61009a600480360381019061009591906100f6565b6100d3565b6040516100a7919061012e565b60405180910390f35b6100ca60048036038101906100c591906100f6565b6100de565b005b6000919050565b600060019050919050565b50565b6000813590506100f081610181565b92915050565b60006020828403121561010857600080fd5b6000610116848285016100e1565b91505092915050565b61012881610149565b82525050565b6000602082019050610143600083018461011f565b92915050565b60008115159050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b61018a81610155565b811461019557600080fd5b5056fea164736f6c6343000804000a"; type LibAssetConstructorParams = | [signer?: Signer] diff --git a/typings/factories/LibDiamond__factory.ts b/typings/factories/LibDiamond__factory.ts index 1cc70695..6f5a0899 100644 --- a/typings/factories/LibDiamond__factory.ts +++ b/typings/factories/LibDiamond__factory.ts @@ -67,10 +67,61 @@ const _abi = [ name: "OwnershipTransferred", type: "event", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__f9a76502", + type: "bytes8", + }, + ], + name: "c_f9a76502", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__f9a76502", + type: "bytes8", + }, + ], + name: "c_falsef9a76502", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__f9a76502", + type: "bytes8", + }, + ], + name: "c_truef9a76502", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, ]; const _bytecode = - "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e443216bcd038ab1823e4b419d4c6f195e30184d868d9d809f07908d8502743064736f6c63430008110033"; + "0x6101d7610053600b82828239805160001a607314610046577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061004b5760003560e01c806332446555146100505780637b7164e014610080578063968b8c8b1461009c575b600080fd5b61006a6004803603810190610065919061013e565b6100cc565b6040516100779190610186565b60405180910390f35b61009a6004803603810190610095919061013e565b6100d7565b005b6100b660048036038101906100b1919061013e565b6100da565b6040516100c39190610186565b60405180910390f35b600060019050919050565b50565b6000919050565b600080fd5b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b61011b816100e6565b811461012657600080fd5b50565b60008135905061013881610112565b92915050565b600060208284031215610154576101536100e1565b5b600061016284828501610129565b91505092915050565b60008115159050919050565b6101808161016b565b82525050565b600060208201905061019b6000830184610177565b9291505056fea2646970667358221220bd3ed9c770c81adfc18ce730de0b9c81b3318fa299d0960ffbc5ed6f9f672d7464736f6c63430008110033"; type LibDiamondConstructorParams = | [signer?: Signer] diff --git a/typings/factories/OwnableUpgradeable__factory.ts b/typings/factories/OwnableUpgradeable__factory.ts deleted file mode 100644 index 3100f92f..00000000 --- a/typings/factories/OwnableUpgradeable__factory.ts +++ /dev/null @@ -1,91 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from "ethers"; -import { Provider } from "@ethersproject/providers"; -import type { - OwnableUpgradeable, - OwnableUpgradeableInterface, -} from "../OwnableUpgradeable"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint8", - name: "version", - type: "uint8", - }, - ], - name: "Initialized", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "previousOwner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "OwnershipTransferred", - type: "event", - }, - { - inputs: [], - name: "owner", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "renounceOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "transferOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -]; - -export class OwnableUpgradeable__factory { - static readonly abi = _abi; - static createInterface(): OwnableUpgradeableInterface { - return new utils.Interface(_abi) as OwnableUpgradeableInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): OwnableUpgradeable { - return new Contract(address, _abi, signerOrProvider) as OwnableUpgradeable; - } -} diff --git a/typings/factories/OwnershipFacet__factory.ts b/typings/factories/OwnershipFacet__factory.ts index 7290589f..765e1a6f 100644 --- a/typings/factories/OwnershipFacet__factory.ts +++ b/typings/factories/OwnershipFacet__factory.ts @@ -9,6 +9,57 @@ import type { } from "../OwnershipFacet"; const _abi = [ + { + inputs: [ + { + internalType: "bytes8", + name: "c__2f222e9f", + type: "bytes8", + }, + ], + name: "c_2f222e9f", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__2f222e9f", + type: "bytes8", + }, + ], + name: "c_false2f222e9f", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__2f222e9f", + type: "bytes8", + }, + ], + name: "c_true2f222e9f", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [], name: "owner", @@ -38,7 +89,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b506103fd806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80638da5cb5b1461003b578063f2fde38b14610059575b600080fd5b610043610075565b60405161005091906102ab565b60405180910390f35b610073600480360381019061006e91906102f7565b610084565b005b600061007f610098565b905090565b61008c6100cb565b61009581610166565b50565b60006100a261023d565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6100d361023d565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610164576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015b906103a7565b60405180910390fd5b565b600061017061023d565b905060008160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006102958261026a565b9050919050565b6102a58161028a565b82525050565b60006020820190506102c0600083018461029c565b92915050565b600080fd5b6102d48161028a565b81146102df57600080fd5b50565b6000813590506102f1816102cb565b92915050565b60006020828403121561030d5761030c6102c6565b5b600061031b848285016102e2565b91505092915050565b600082825260208201905092915050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b6000610391602283610324565b915061039c82610335565b604082019050919050565b600060208201905081810360008301526103c081610384565b905091905056fea2646970667358221220f36d06e82e43b03b644ee35505424cb4798ec509840fa5dd4ab3863b4ebd66b364736f6c63430008110033"; + "0x608060405234801561001057600080fd5b50610776806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063433a40cc1461005c57806345a7077e1461008c5780638da5cb5b146100a8578063e673e274146100c6578063f2fde38b146100f6575b600080fd5b61007660048036038101906100719190610585565b610112565b60405161008391906105cd565b60405180910390f35b6100a660048036038101906100a19190610585565b610119565b005b6100b061011c565b6040516100bd9190610629565b60405180910390f35b6100e060048036038101906100db9190610585565b610153565b6040516100ed91906105cd565b60405180910390f35b610110600480360381019061010b9190610670565b61015e565b005b6000919050565b50565b60006101326703b0bbf0cc27d6d060c01b610119565b61014667ddcbd84332b09d5c60c01b610119565b61014e6101d6565b905090565b600060019050919050565b6101726794c7fe791cf6e26660c01b610119565b61018667ecce47dee557841060c01b610119565b61019a67e6e44605ff8269ab60c01b610119565b6101a2610231565b6101b66703d113e82bc56e6960c01b610119565b6101ca6740d917c23072919760c01b610119565b6101d381610330565b50565b60006101ec677d1d35fb9d60316160c01b6104a7565b610200671bba0af24121cdd160c01b6104a7565b6102086104aa565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6102456721b40df6734b4e6460c01b6104a7565b610259677276b6d1bbf7b68b60c01b6104a7565b61026d67f8611dbcb55a1f7860c01b6104a7565b610281676cedf54251a3375160c01b6104a7565b6102896104aa565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461031a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161031190610720565b60405180910390fd5b61032e67e452355b21bbd41e60c01b6104a7565b565b610344674f69fffccbea1a6060c01b6104a7565b61035867254a8afedf49a2bd60c01b6104a7565b61036c6764ae761eae80994a60c01b6104a7565b60006103766104aa565b905061038c6728cf10db04b3ce6a60c01b6104a7565b6103a067254c9c1d52a21ebf60c01b6104a7565b60008160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506103dd67f8cb9d02f213dad260c01b6104a7565b828260040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061043467320b257c7ea8cea760c01b6104a7565b61044867a1ef30c006aa278260c01b6104a7565b8273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b50565b60006104c0674f9afbb757d80e6360c01b6104a7565b6104d4674b823103125da15660c01b6104a7565b6104e8674ab715c231c1608d60c01b6104a7565b60007fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c905061052167982d9bb86701efa860c01b6104a7565b8091505090565b600080fd5b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b6105628161052d565b811461056d57600080fd5b50565b60008135905061057f81610559565b92915050565b60006020828403121561059b5761059a610528565b5b60006105a984828501610570565b91505092915050565b60008115159050919050565b6105c7816105b2565b82525050565b60006020820190506105e260008301846105be565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610613826105e8565b9050919050565b61062381610608565b82525050565b600060208201905061063e600083018461061a565b92915050565b61064d81610608565b811461065857600080fd5b50565b60008135905061066a81610644565b92915050565b60006020828403121561068657610685610528565b5b60006106948482850161065b565b91505092915050565b600082825260208201905092915050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b600061070a60228361069d565b9150610715826106ae565b604082019050919050565b60006020820190508181036000830152610739816106fd565b905091905056fea26469706673582212208059456773fa43aa47714f907ac29974f27210cf3e42cbe6a010339f2fef11cc64736f6c63430008110033"; type OwnershipFacetConstructorParams = | [signer?: Signer] diff --git a/typings/factories/PaymentDepositAccount__factory.ts b/typings/factories/PaymentDepositAccount__factory.ts index 28fa4d02..3dcd9846 100644 --- a/typings/factories/PaymentDepositAccount__factory.ts +++ b/typings/factories/PaymentDepositAccount__factory.ts @@ -20,6 +20,108 @@ const _abi = [ stateMutability: "payable", type: "constructor", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__495bfa8b", + type: "bytes8", + }, + ], + name: "c_495bfa8b", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__90f8af33", + type: "bytes8", + }, + ], + name: "c_90f8af33", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__495bfa8b", + type: "bytes8", + }, + ], + name: "c_false495bfa8b", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__90f8af33", + type: "bytes8", + }, + ], + name: "c_false90f8af33", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__495bfa8b", + type: "bytes8", + }, + ], + name: "c_true495bfa8b", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__90f8af33", + type: "bytes8", + }, + ], + name: "c_true90f8af33", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [], name: "controller", @@ -69,7 +171,7 @@ const _abi = [ ]; const _bytecode = - "0x6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103a4806100536000396000f3fe60806040526004361061002d5760003560e01c80633f579f4214610039578063f77c47911461016257610034565b3661003457005b600080fd5b34801561004557600080fd5b506100e76004803603606081101561005c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156100a357600080fd5b8201836020820111156100b557600080fd5b803590602001918460018302840111640100000000831117156100d757600080fd5b90919293919293905050506101a3565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561012757808201518184015260208101905061010c565b50505050905090810190601f1680156101545780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561016e57600080fd5b50610177610347565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b606060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610249576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061036c602c913960400191505060405180910390fd5b606060008673ffffffffffffffffffffffffffffffffffffffff1686868660405180838380828437808301925050509250505060006040518083038185875af1925050503d80600081146102b9576040519150601f19603f3d011682016040523d82523d6000602084013e6102be565b606091505b5080935081925050508061033a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4163636f756e743a207472616e73616374696f6e20726576657274656400000081525060200191505060405180910390fd5b8192505050949350505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fe436f6e74726f6c6c65643a206d73672e73656e646572206973206e6f742074686520636f6e74726f6c6c6572a164736f6c634300060c000a"; + "0x608060405261001e674c05ed6aa1cd281960c01b61009760201b60201c565b610038675db0dfd7018850c360c01b61009760201b60201c565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610092679098f39fea0730f660c01b61009a60201b60201c565b61009d565b50565b50565b61080c806100ac6000396000f3fe60806040526004361061007f5760003560e01c8063bd04d1391161004e578063bd04d139146102f8578063c478196d14610364578063d1c43eae146103ba578063f77c47911461041057610086565b806326bebb521461008b5780633f579f42146100f7578063550648ff1461022057806356c2fc6c1461028c57610086565b3661008657005b600080fd5b34801561009757600080fd5b506100df600480360360208110156100ae57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610451565b60405180821515815260200191505060405180910390f35b34801561010357600080fd5b506101a56004803603606081101561011a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561016157600080fd5b82018360208201111561017357600080fd5b8035906020019184600183028401116401000000008311171561019557600080fd5b9091929391929390505050610458565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e55780820151818401526020810190506101ca565b50505050905090810190601f1680156102125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022c57600080fd5b506102746004803603602081101561024357600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061078c565b60405180821515815260200191505060405180910390f35b34801561029857600080fd5b506102e0600480360360208110156102af57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610793565b60405180821515815260200191505060405180910390f35b34801561030457600080fd5b5061034c6004803603602081101561031b57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061079e565b60405180821515815260200191505060405180910390f35b34801561037057600080fd5b506103b86004803603602081101561038757600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107a9565b005b3480156103c657600080fd5b5061040e600480360360208110156103dd57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107ac565b005b34801561041c57600080fd5b506104256107af565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000919050565b606061046e6730a6ad52e198db9760c01b6107a9565b61048267f6266a592c249da560c01b6107ac565b6104966728279893f8537e1960c01b6107ac565b6104aa67d300d0a9ecbe6cac60c01b6107ac565b6104be678d5c0caa285e3ec560c01b6107ac565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610562576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806107d4602c913960400191505060405180910390fd5b6105766718b2e4dd03bc759a60c01b6107ac565b61058a67f8b65e28b897a44f60c01b6107ac565b61059e67a0e46df01f8c97cb60c01b6107a9565b6105b267aa5eebb2652f143c60c01b6107a9565b6105c6676d9ffa8149f3dea060c01b6107a9565b6105da678cb9bb07d4779f7e60c01b6107a9565b60606105f067f5ddfa157613111160c01b6107a9565b610604676c82c2c1207b3b7760c01b6107a9565b600061061a673ff4b340667b124160c01b6107a9565b8673ffffffffffffffffffffffffffffffffffffffff1686868660405180838380828437808301925050509250505060006040518083038185875af1925050503d8060008114610686576040519150601f19603f3d011682016040523d82523d6000602084013e61068b565b606091505b5080935081925050506106a86756fbd48014b71d8b60c01b6107a9565b6106bc67e31d8723036de13060c01b6107a9565b6106d067d6b834fbc1dbf84c60c01b6107a9565b80610743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4163636f756e743a207472616e73616374696f6e20726576657274656400000081525060200191505060405180910390fd5b61075767836ca2ae34585e2360c01b6107a9565b61076b67fc0747958022859a60c01b6107a9565b61077f67127f08829e3f368c60c01b6107a9565b8192505050949350505050565b6000919050565b600060019050919050565b600060019050919050565b50565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fe436f6e74726f6c6c65643a206d73672e73656e646572206973206e6f742074686520636f6e74726f6c6c6572a164736f6c634300060c000a"; type PaymentDepositAccountConstructorParams = | [signer?: Signer] diff --git a/typings/factories/PaymentRegistry__factory.ts b/typings/factories/PaymentRegistry__factory.ts index ca10e309..2aeeae34 100644 --- a/typings/factories/PaymentRegistry__factory.ts +++ b/typings/factories/PaymentRegistry__factory.ts @@ -321,6 +321,261 @@ const _abi = [ stateMutability: "nonpayable", type: "function", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_098c0657", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__0b6945c4", + type: "bytes8", + }, + ], + name: "c_0b6945c4", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__52615ca8", + type: "bytes8", + }, + ], + name: "c_52615ca8", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__d18be0f9", + type: "bytes8", + }, + ], + name: "c_d18be0f9", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__e6f7a58d", + type: "bytes8", + }, + ], + name: "c_e6f7a58d", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_false098c0657", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__0b6945c4", + type: "bytes8", + }, + ], + name: "c_false0b6945c4", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__52615ca8", + type: "bytes8", + }, + ], + name: "c_false52615ca8", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__d18be0f9", + type: "bytes8", + }, + ], + name: "c_falsed18be0f9", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__e6f7a58d", + type: "bytes8", + }, + ], + name: "c_falsee6f7a58d", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_true098c0657", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__0b6945c4", + type: "bytes8", + }, + ], + name: "c_true0b6945c4", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__52615ca8", + type: "bytes8", + }, + ], + name: "c_true52615ca8", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__d18be0f9", + type: "bytes8", + }, + ], + name: "c_trued18be0f9", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__e6f7a58d", + type: "bytes8", + }, + ], + name: "c_truee6f7a58d", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [], name: "chainId", @@ -913,7 +1168,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b5032600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060004690508060028190555050614c138061006e6000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80639130c06e116100de578063c36326e711610097578063da1b213d11610071578063da1b213d146104bb578063dc7d6c31146104d7578063df04338014610507578063e0fe396e146105235761018e565b8063c36326e71461043d578063d0f710d61461046d578063d2c83b9a1461049d5761018e565b80639130c06e146103915780639a85fae2146103ad5780639a8a0592146103c9578063a526d83b146103e7578063b0274a7314610403578063bdff4b3b1461041f5761018e565b80636121fcfc1161014b578063714041561161012557806371404156146102f757806384389a2b1461031357806387d31313146103435780638a1773ab146103615761018e565b80636121fcfc1461028f5780636524a947146102bf5780636866da52146102db5761018e565b80630c68ba2114610193578063116191b6146101c35780632e4f161e146101e15780632e7037a014610211578063392e53cd1461024157806360bf4df21461025f575b600080fd5b6101ad60048036038101906101a89190612f83565b61053f565b6040516101ba91906140a9565b60405180910390f35b6101cb610594565b6040516101d89190613e92565b60405180910390f35b6101fb60048036038101906101f69190612fe8565b6105ba565b60405161020891906140c4565b60405180910390f35b61022b600480360381019061022691906133f5565b6105d2565b60405161023891906140c4565b60405180910390f35b6102496105f2565b60405161025691906140a9565b60405180910390f35b61027960048036038101906102749190612f83565b61064a565b6040516102869190613e92565b60405180910390f35b6102a960048036038101906102a49190612f83565b61065c565b6040516102b691906140a9565b60405180910390f35b6102d960048036038101906102d49190612f83565b6106f7565b005b6102f560048036038101906102f0919061320c565b610703565b005b610311600480360381019061030c9190612f83565b610a28565b005b61032d6004803603810190610328919061341e565b610c40565b60405161033a91906140c4565b60405180910390f35b61034b610c6f565b6040516103589190614200565b60405180910390f35b61037b600480360381019061037691906132a1565b610c95565b604051610388919061449d565b60405180910390f35b6103ab60048036038101906103a69190612f83565b610cb5565b005b6103c760048036038101906103c2919061304b565b610fe9565b005b6103d16110f4565b6040516103de919061449d565b60405180910390f35b61040160048036038101906103fc9190612f83565b6110fa565b005b61041d60048036038101906104189190612f83565b611191565b005b6104276113ac565b604051610434919061449d565b60405180910390f35b61045760048036038101906104529190612fac565b6113b2565b604051610464919061449d565b60405180910390f35b610487600480360381019061048291906132ca565b61143c565b60405161049491906140a9565b60405180910390f35b6104a5611495565b6040516104b291906141e5565b60405180910390f35b6104d560048036038101906104d09190613121565b6114bb565b005b6104f160048036038101906104ec9190612fac565b6115c2565b6040516104fe919061449d565b60405180910390f35b610521600480360381019061051c919061304b565b61164c565b005b61053d60048036038101906105389190613363565b61174f565b005b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006105c885858585611955565b9050949350505050565b60006105eb82600001518360200151846040015161198e565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b6000610655826119e6565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff16600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b61070081611a84565b50565b600061070d611c94565b905060006107a3600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486611ca590919063ffffffff16565b9050600081116107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df9061435d565b60405180910390fd5b60006107f583888861198e565b90506108458186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611cd2565b610884576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087b9061447d565b60405180910390fd5b85600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109128388611d3f565b610980600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848985611efc565b7f95f66b073d65f18e43f6b76c7ab8557787f5f766d86cab7c9c76f41be9f8abc6600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848989604051610a179493929190613f51565b60405180910390a150505050505050565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ab3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aaa9061433d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415610b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b199061443d565b60405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610bad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba4906143dd565b60405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fee943cdb81826d5909c559c6b1ae6908fcaf2dbc16c4b730346736b486283e8b3282604051610c35929190613ec8565b60405180910390a150565b6000610c68826000015183602001518460400151856060015186608001518760a0015161218c565b9050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060086000838152602001908152602001600020600001549050919050565b6000610cbf611c94565b90506000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811415610d89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d80906142fd565b60405180910390fd5b42811115610dcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc39061437d565b60405180910390fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610f0d578173ffffffffffffffffffffffffffffffffffffffff16319050610f99565b8473ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401610f469190613e92565b60206040518083038186803b158015610f5e57600080fd5b505afa158015610f72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f969190613447565b90505b610fa582858784611efc565b7f5300d9a2838baade7cdc628c82cb80c1298853ba5f389d51e2b47330336aeffc82858784604051610fda9493929190613f51565b60405180910390a15050505050565b6000610ff3611c94565b905060008060006110928d858e8e8e8e8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506121ed565b9250925092506110ac826110a5866119e6565b8e84611efc565b7f771bc0494e1a2fcbef19a8762845000d8c4500454c756a7370c955e39ed60fd483826040516110dd929190614140565b60405180910390a150505050505050505050505050565b60025481565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117c9061433d565b60405180910390fd5b61118e81612691565b50565b600061119b611c94565b90506000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008114611264576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125b9061429d565b60405180910390fd5b61126d82611a84565b6112826006544261282090919063ffffffff16565b905080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fed3c8c6cdfc6d7b91dc9db3e1f54866587c26c3c3e0f9e32cd1944974be43a50600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683858460405161139f9493929190613f51565b60405180910390a1505050565b60065481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061148c8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611cd2565b90509392505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006114c5611c94565b905060008060006115648e858f8f8f8f8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506121ed565b92509250925061157782858f848d612875565b7f8b67efde501ee9cd0e771f7436554c44a5c076239ff3a6fbb397646a4689c0f283828b6040516115aa93929190614169565b60405180910390a15050505050505050505050505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000611656611c94565b905060008060006116f58d858e8e8e8e8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506121ed565b92509250925061170782858e84611efc565b7f6675346cd43846f7d47c310d39fb5c15bc7db66b3770338cdf1f133613a5ae988382604051611738929190614140565b60405180910390a150505050505050505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146117df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d69061427d565b60405180910390fd5b6000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008414156118bb576224ea006006819055506118c3565b836006819055505b61190d838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505061293a565b61191681612992565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e6326040516119459190613ead565b60405180910390a1505050505050565b60008484848460405160200161196e9493929190613cd9565b604051602081830303815290604052805190602001209050949350505050565b60006119dd7f3b3087c8f883f1f44cabe66444f5f9d96f69de6a88f364ea10959eef0331414a8585856040516020016119c993929190613d97565b6040516020818303038152906040526129d6565b90509392505050565b600080826040516020016119fa9190613cbe565b604051602081830303815290604052805190602001209050606060405180602001611a2490612cff565b6020820181038252601f19601f820116604052509050600060ff60f81b30848480519060200120604051602001611a5e9493929190613dd4565b6040516020818303038152906040528051906020012090508060001c9350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff16600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611c9157600081604051602001611b2e9190613cbe565b60405160208183030381529060405280519060200120905080604051611b5390612cff565b8190604051809103906000f5905080158015611b73573d6000803e3d6000fd5b50600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd80572c0f2f24f2d9d726d831bd860ed82b12bafaf01cfb6e4d38fb23c4347e9600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683604051611c87929190613ef1565b60405180910390a1505b50565b6000611ca06028612a17565b905090565b6000611cca8383604051806060016040528060218152602001614be660219139612aac565b905092915050565b600080611ce88385612b0190919063ffffffff16565b90506000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611eee576000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fa19281a6f3163da06f6b82f3ecf0130493c52aba23cdc2a312f652742f0d1801600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383604051611ee193929190613f1a565b60405180910390a1611ef8565b611ef782611a84565b5b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612016578373ffffffffffffffffffffffffffffffffffffffff16633f579f428483600067ffffffffffffffff81118015611f6757600080fd5b506040519080825280601f01601f191660200182016040528015611f9a5781602001600182028036833780820191505090505b506040518463ffffffff1660e01b8152600401611fb99392919061406b565b600060405180830381600087803b158015611fd357600080fd5b505af1158015611fe7573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906120109190613322565b50612186565b60608473ffffffffffffffffffffffffffffffffffffffff16633f579f4284600063a9059cbb60e01b8887604051602401612052929190614042565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518463ffffffff1660e01b81526004016120cd93929190614004565b600060405180830381600087803b1580156120e757600080fd5b505af11580156120fb573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906121249190613322565b905060008151111561218457808060200190518101906121449190613278565b612183576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217a9061431d565b60405180910390fd5b5b505b50505050565b60006121e17f745089e29f2abf28f618236a5dc04d214ac05ead3440ba532b69e9d160ba2e728888888888886040516020016121cd96959493929190613d27565b6040516020818303038152906040526129d6565b90509695505050505050565b6000806000806122018c8c8c8c8c8c61218c565b905060008651141561230057600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166359b52ef88d838b6040518463ffffffff1660e01b815260040161226c93929190613fcd565b60206040518083038186803b15801561228457600080fd5b505afa158015612298573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122bc9190613278565b6122fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f29061447d565b60405180910390fd5b6124f1565b60006123158783612b0190919063ffffffff16565b90508073ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff16146124ef57600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166334d323a48e838c6040518463ffffffff1660e01b81526004016123a993929190613f96565b60206040518083038186803b1580156123c157600080fd5b505afa1580156123d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f99190613278565b806124af5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166334d323a48e838c6040518463ffffffff1660e01b815260040161245e93929190613f96565b60206040518083038186803b15801561247657600080fd5b505afa15801561248a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ae9190613278565b5b6124ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e5906143bd565b60405180910390fd5b5b505b6124fb8186611cd2565b61253a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125319061447d565b60405180910390fd5b6125468c8c8c8c611955565b9350612571600860008681526020019081526020016000206000015488611ca590919063ffffffff16565b915060008214156125b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ae906142bd565b60405180910390fd5b8660086000868152602001908152602001600020600001819055506125dc8c8b611d3f565b600760008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1692507f0d1cb77d1fe491f98926195d0b885509da18bc305dd1489f45610237d971ed46848d8d8d8d8c60405161267a969594939291906140df565b60405180910390a150985098509895505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612701576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f89061425d565b60405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561278d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127849061441d565b60405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fbc3292102fa77e083913064b282926717cdfaede4d35f553d66366c0a3da755a3282604051612815929190613ec8565b60405180910390a150565b60008082840190508381101561286b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612862906143fd565b60405180910390fd5b8091505092915050565b600081116128b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128af9061423d565b60405180910390fd5b60006128cd8284611ca590919063ffffffff16565b905060008111612912576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129099061439d565b60405180910390fd5b61291e86868684611efc565b6129328661292b876119e6565b8685611efc565b505050505050565b6000815114156129525761294d32612691565b61298f565b60008151905060005b8181101561298c5761297f83828151811061297257fe5b6020026020010151612691565b808060010191505061295b565b50505b50565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000612a0f6002543085856040516020016129f49493929190613e48565b60405160208183030381529060405280519060200120612bbc565b905092915050565b60008060009050612a26612bec565b15612a9f576000836000369050039050612a9760003683906014850192612a4f9392919061455f565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612c99565b915050612aa3565b3390505b80915050919050565b6000838311158290612af4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aeb919061421b565b60405180910390fd5b5082840390509392505050565b60008060009050604183511415612bb25760008060006020860151925060408601519150606086015160001a9050601b8160ff161015612b4257601b810190505b601b8160ff161480612b575750601c8160ff16145b15612bae5760018782858560405160008152602001604052604051612b7f94939291906141a0565b6020604051602081039080840390855afa158015612ba1573d6000803e3d6000fd5b5050506020604051035193505b5050505b8091505092915050565b600081604051602001612bcf9190613e22565b604051602081830303815290604052805190602001209050919050565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415612c9257602c60003690501015612c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c84906142dd565b60405180910390fd5b600190505b8091505090565b6000806014835114612ce0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cd79061445d565b60405180910390fd5b6c01000000000000000000000000602084015104905080915050919050565b6103f7806147ef83390190565b600081359050612d1b81614764565b92915050565b60008083601f840112612d3357600080fd5b8235905067ffffffffffffffff811115612d4c57600080fd5b602083019150836020820283011115612d6457600080fd5b9250929050565b600081519050612d7a8161477b565b92915050565b600081359050612d8f81614792565b92915050565b60008083601f840112612da757600080fd5b8235905067ffffffffffffffff811115612dc057600080fd5b602083019150836001820283011115612dd857600080fd5b9250929050565b600082601f830112612df057600080fd5b8151612e03612dfe826144e5565b6144b8565b91508082526020830160208301858383011115612e1f57600080fd5b612e2a8382846146d1565b50505092915050565b600081359050612e42816147a9565b92915050565b600081359050612e57816147c0565b92915050565b600060608284031215612e6f57600080fd5b612e7960606144b8565b90506000612e8984828501612d0c565b6000830152506020612e9d84828501612d0c565b6020830152506040612eb184828501612f59565b60408301525092915050565b600060c08284031215612ecf57600080fd5b612ed960c06144b8565b90506000612ee984828501612d0c565b6000830152506020612efd84828501612d0c565b6020830152506040612f1184828501612d0c565b6040830152506060612f2584828501612d80565b6060830152506080612f3984828501612f59565b60808301525060a0612f4d84828501612f59565b60a08301525092915050565b600081359050612f68816147d7565b92915050565b600081519050612f7d816147d7565b92915050565b600060208284031215612f9557600080fd5b6000612fa384828501612d0c565b91505092915050565b60008060408385031215612fbf57600080fd5b6000612fcd85828601612d0c565b9250506020612fde85828601612d0c565b9150509250929050565b60008060008060808587031215612ffe57600080fd5b600061300c87828801612d0c565b945050602061301d87828801612d0c565b935050604061302e87828801612d0c565b925050606061303f87828801612d80565b91505092959194509250565b600080600080600080600080600060e08a8c03121561306957600080fd5b60006130778c828d01612d0c565b99505060206130888c828d01612d0c565b98505060406130998c828d01612d80565b97505060606130aa8c828d01612f59565b96505060806130bb8c828d01612f59565b95505060a08a013567ffffffffffffffff8111156130d857600080fd5b6130e48c828d01612d95565b945094505060c08a013567ffffffffffffffff81111561310357600080fd5b61310f8c828d01612d95565b92509250509295985092959850929598565b6000806000806000806000806000806101008b8d03121561314157600080fd5b600061314f8d828e01612d0c565b9a505060206131608d828e01612d0c565b99505060406131718d828e01612d80565b98505060606131828d828e01612f59565b97505060806131938d828e01612f59565b96505060a06131a48d828e01612f59565b95505060c08b013567ffffffffffffffff8111156131c157600080fd5b6131cd8d828e01612d95565b945094505060e08b013567ffffffffffffffff8111156131ec57600080fd5b6131f88d828e01612d95565b92509250509295989b9194979a5092959850565b6000806000806060858703121561322257600080fd5b600061323087828801612d0c565b945050602061324187828801612f59565b935050604085013567ffffffffffffffff81111561325e57600080fd5b61326a87828801612d95565b925092505092959194509250565b60006020828403121561328a57600080fd5b600061329884828501612d6b565b91505092915050565b6000602082840312156132b357600080fd5b60006132c184828501612d80565b91505092915050565b6000806000604084860312156132df57600080fd5b60006132ed86828701612d80565b935050602084013567ffffffffffffffff81111561330a57600080fd5b61331686828701612d95565b92509250509250925092565b60006020828403121561333457600080fd5b600082015167ffffffffffffffff81111561334e57600080fd5b61335a84828501612ddf565b91505092915050565b60008060008060008060a0878903121561337c57600080fd5b600061338a89828a01612e33565b965050602061339b89828a01612e48565b95505060406133ac89828a01612f59565b945050606087013567ffffffffffffffff8111156133c957600080fd5b6133d589828a01612d21565b935093505060806133e889828a01612d0c565b9150509295509295509295565b60006060828403121561340757600080fd5b600061341584828501612e5d565b91505092915050565b600060c0828403121561343057600080fd5b600061343e84828501612ebd565b91505092915050565b60006020828403121561345957600080fd5b600061346784828501612f6e565b91505092915050565b61347981614641565b82525050565b61348881614592565b82525050565b61349f61349a82614592565b614704565b82525050565b6134ae816145a4565b82525050565b6134c56134c0826145b0565b614716565b82525050565b6134d4816145dc565b82525050565b6134eb6134e6826145dc565b614720565b82525050565b60006134fc82614511565b6135068185614527565b93506135168185602086016146d1565b61351f81614746565b840191505092915050565b600061353582614511565b61353f8185614538565b935061354f8185602086016146d1565b80840191505092915050565b61356481614653565b82525050565b61357381614677565b82525050565b6135828161469b565b82525050565b60006135938261451c565b61359d8185614543565b93506135ad8185602086016146d1565b6135b681614746565b840191505092915050565b60006135ce602683614543565b91507f5061796d656e7452656769737472793a20696e76616c6964206465706f73697460008301527f2076616c756500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613634601c83614554565b91507f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000830152601c82019050919050565b6000613674602083614543565b91507f477561726465643a2063616e6e6f74206164642030783020677561726469616e6000830152602082019050919050565b60006136b4602f83614543565b91507f496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742060008301527f74686520696e697469616c697a657200000000000000000000000000000000006020830152604082019050919050565b600061371a602f83614543565b91507f5061796d656e7452656769737472793a206465706f736974206578697420616c60008301527f72656164792072657175657374656400000000000000000000000000000000006020830152604082019050919050565b6000613780602683614543565b91507f5061796d656e7452656769737472793a20696e76616c6964207061796d656e7460008301527f2076616c756500000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006137e6602283614543565b91507f47617465776179526563697069656e743a20696e76616c6964206d73672e646160008301527f74610000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061384c602b83614543565b91507f5061796d656e7452656769737472793a206465706f7369742065786974206e6f60008301527f74207265717565737465640000000000000000000000000000000000000000006020830152604082019050919050565b60006138b2602d83614543565b91507f5061796d656e7452656769737472793a204552433230546f6b656e207472616e60008301527f73666572207265766572746564000000000000000000000000000000000000006020830152604082019050919050565b6000613918602683614543565b91507f477561726465643a2074782e6f726967696e206973206e6f742074686520677560008301527f61726469616e00000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061397e601f83614543565b91507f5061796d656e7452656769737472793a20696e76616c696420616d6f756e74006000830152602082019050919050565b60006139be602483614543565b91507f5061796d656e7452656769737472793a206465706f7369742065786974206c6f60008301527f636b6564000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613a24602783614543565b91507f5061796d656e7452656769737472793a20696e76616c6964207769746864726160008301527f772076616c7565000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613a8a602983614543565b91507f5061796d656e7452656769737472793a20696e76616c69642073656e6465722060008301527f7369676e617475726500000000000000000000000000000000000000000000006020830152604082019050919050565b6000613af0601f83614543565b91507f477561726465643a20677561726469616e20646f65736e2774206578697374006000830152602082019050919050565b6000613b30601e83614543565b91507f536166654d6174684c69623a206164646974696f6e206f766572666c6f7700006000830152602082019050919050565b6000613b70602083614543565b91507f477561726465643a20677561726469616e20616c7265616479206578697374736000830152602082019050919050565b6000613bb0601b83614543565b91507f477561726465643a2063616e6e6f742072656d6f76652073656c6600000000006000830152602082019050919050565b6000613bf0601d83614543565b91507f42797465734c69623a20696e76616c69642064617461206c656e6774680000006000830152602082019050919050565b6000613c30602b83614543565b91507f5061796d656e7452656769737472793a20696e76616c6964206775617264696160008301527f6e207369676e61747572650000000000000000000000000000000000000000006020830152604082019050919050565b613c928161462a565b82525050565b613ca9613ca48261462a565b61473c565b82525050565b613cb881614634565b82525050565b6000613cca828461348e565b60148201915081905092915050565b6000613ce5828761348e565b601482019150613cf5828661348e565b601482019150613d05828561348e565b601482019150613d1582846134da565b60208201915081905095945050505050565b6000613d33828961348e565b601482019150613d43828861348e565b601482019150613d53828761348e565b601482019150613d6382866134da565b602082019150613d738285613c98565b602082019150613d838284613c98565b602082019150819050979650505050505050565b6000613da3828661348e565b601482019150613db3828561348e565b601482019150613dc38284613c98565b602082019150819050949350505050565b6000613de082876134b4565b600182019150613df0828661348e565b601482019150613e0082856134da565b602082019150613e1082846134da565b60208201915081905095945050505050565b6000613e2d82613627565b9150613e3982846134da565b60208201915081905092915050565b6000613e548287613c98565b602082019150613e64828661348e565b601482019150613e7482856134da565b602082019150613e84828461352a565b915081905095945050505050565b6000602082019050613ea7600083018461347f565b92915050565b6000602082019050613ec26000830184613470565b92915050565b6000604082019050613edd6000830185613470565b613eea602083018461347f565b9392505050565b6000604082019050613f06600083018561347f565b613f13602083018461347f565b9392505050565b6000606082019050613f2f600083018661347f565b613f3c602083018561347f565b613f49604083018461347f565b949350505050565b6000608082019050613f66600083018761347f565b613f73602083018661347f565b613f80604083018561347f565b613f8d6060830184613c89565b95945050505050565b6000606082019050613fab600083018661347f565b613fb8602083018561347f565b613fc56040830184613c89565b949350505050565b6000606082019050613fe2600083018661347f565b613fef60208301856134cb565b613ffc6040830184613c89565b949350505050565b6000606082019050614019600083018661347f565b6140266020830185613579565b818103604083015261403881846134f1565b9050949350505050565b6000604082019050614057600083018561347f565b6140646020830184613c89565b9392505050565b6000606082019050614080600083018661347f565b61408d6020830185613c89565b818103604083015261409f81846134f1565b9050949350505050565b60006020820190506140be60008301846134a5565b92915050565b60006020820190506140d960008301846134cb565b92915050565b600060c0820190506140f460008301896134cb565b614101602083018861347f565b61410e604083018761347f565b61411b606083018661347f565b61412860808301856134cb565b61413560a0830184613c89565b979650505050505050565b600060408201905061415560008301856134cb565b6141626020830184613c89565b9392505050565b600060608201905061417e60008301866134cb565b61418b6020830185613c89565b6141986040830184613c89565b949350505050565b60006080820190506141b560008301876134cb565b6141c26020830186613caf565b6141cf60408301856134cb565b6141dc60608301846134cb565b95945050505050565b60006020820190506141fa600083018461355b565b92915050565b6000602082019050614215600083018461356a565b92915050565b600060208201905081810360008301526142358184613588565b905092915050565b60006020820190508181036000830152614256816135c1565b9050919050565b6000602082019050818103600083015261427681613667565b9050919050565b60006020820190508181036000830152614296816136a7565b9050919050565b600060208201905081810360008301526142b68161370d565b9050919050565b600060208201905081810360008301526142d681613773565b9050919050565b600060208201905081810360008301526142f6816137d9565b9050919050565b600060208201905081810360008301526143168161383f565b9050919050565b60006020820190508181036000830152614336816138a5565b9050919050565b600060208201905081810360008301526143568161390b565b9050919050565b6000602082019050818103600083015261437681613971565b9050919050565b60006020820190508181036000830152614396816139b1565b9050919050565b600060208201905081810360008301526143b681613a17565b9050919050565b600060208201905081810360008301526143d681613a7d565b9050919050565b600060208201905081810360008301526143f681613ae3565b9050919050565b6000602082019050818103600083015261441681613b23565b9050919050565b6000602082019050818103600083015261443681613b63565b9050919050565b6000602082019050818103600083015261445681613ba3565b9050919050565b6000602082019050818103600083015261447681613be3565b9050919050565b6000602082019050818103600083015261449681613c23565b9050919050565b60006020820190506144b26000830184613c89565b92915050565b6000604051905081810181811067ffffffffffffffff821117156144db57600080fd5b8060405250919050565b600067ffffffffffffffff8211156144fc57600080fd5b601f19601f8301169050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000808585111561456f57600080fd5b8386111561457c57600080fd5b6001850283019150848603905094509492505050565b600061459d8261460a565b9050919050565b60008115159050919050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b60006145f182614592565b9050919050565b600061460382614592565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061464c826146ad565b9050919050565b600061465e82614665565b9050919050565b60006146708261460a565b9050919050565b600061468282614689565b9050919050565b60006146948261460a565b9050919050565b60006146a68261462a565b9050919050565b60006146b8826146bf565b9050919050565b60006146ca8261460a565b9050919050565b60005b838110156146ef5780820151818401526020810190506146d4565b838111156146fe576000848401525b50505050565b600061470f8261472a565b9050919050565b6000819050919050565b6000819050919050565b600061473582614757565b9050919050565b6000819050919050565b6000601f19601f8301169050919050565b60008160601b9050919050565b61476d81614592565b811461477857600080fd5b50565b614784816145a4565b811461478f57600080fd5b50565b61479b816145dc565b81146147a657600080fd5b50565b6147b2816145e6565b81146147bd57600080fd5b50565b6147c9816145f8565b81146147d457600080fd5b50565b6147e08161462a565b81146147eb57600080fd5b5056fe6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103a4806100536000396000f3fe60806040526004361061002d5760003560e01c80633f579f4214610039578063f77c47911461016257610034565b3661003457005b600080fd5b34801561004557600080fd5b506100e76004803603606081101561005c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156100a357600080fd5b8201836020820111156100b557600080fd5b803590602001918460018302840111640100000000831117156100d757600080fd5b90919293919293905050506101a3565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561012757808201518184015260208101905061010c565b50505050905090810190601f1680156101545780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561016e57600080fd5b50610177610347565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b606060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610249576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061036c602c913960400191505060405180910390fd5b606060008673ffffffffffffffffffffffffffffffffffffffff1686868660405180838380828437808301925050509250505060006040518083038185875af1925050503d80600081146102b9576040519150601f19603f3d011682016040523d82523d6000602084013e6102be565b606091505b5080935081925050508061033a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4163636f756e743a207472616e73616374696f6e20726576657274656400000081525060200191505060405180910390fd5b8192505050949350505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fe436f6e74726f6c6c65643a206d73672e73656e646572206973206e6f742074686520636f6e74726f6c6c6572a164736f6c634300060c000a536166654d6174684c69623a207375627472616374696f6e206f766572666c6f77a164736f6c634300060c000a"; + "0x60806040523480156200001157600080fd5b506200002e67e6ad6dd6ee73072860c01b6200017e60201b60201c565b6200004a67bcc9be562f8a4b0a60c01b6200018160201b60201c565b6200006667579ae7209daca85260c01b6200018160201b60201c565b32600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000c3676b19898ae2f7725060c01b6200018460201b60201c565b620000df677c2d0c907f0deddc60c01b6200018460201b60201c565b620000fb67f0d1a438b0305bb160c01b6200018460201b60201c565b6000620001196737bb5abaf3e7d9d360c01b6200018460201b60201c565b46905062000138676f86a9c0c67bb39a60c01b6200018460201b60201c565b80600281905550506200015c674f33f857671bcade60c01b6200018760201b60201c565b6200017867e4c156c896cf481860c01b6200018a60201b60201c565b6200018d565b50565b50565b50565b50565b50565b617d65806200019d6000396000f3fe60806040523480156200001157600080fd5b50600436106200028c5760003560e01c80639a8a05921162000165578063bdff4b3b11620000d5578063d84fa10c1162000093578063d84fa10c1462000889578063da1b213d14620008bf578063dc7d6c3114620008df578063df0433801462000915578063e0fe396e1462000935578063f0af07211462000955576200028c565b8063bdff4b3b14620007a3578063c36326e714620007c5578063c454330514620007fb578063d0f710d61462000831578063d2c83b9a1462000867576200028c565b8063b0274a731162000123578063b0274a7314620006ed578063b41d3df0146200070d578063b852e8861462000743578063bccb31c61462000763578063bcd483641462000783576200028c565b80639a8a059214620006095780639f106f7e146200062b578063a3561e691462000661578063a526d83b1462000697578063ae1a7ece14620006b7576200028c565b80636121fcfc116200020157806384389a2b11620001bf57806384389a2b146200053b57806387d3131314620005715780638a1773ab14620005935780639130c06e14620005c95780639a85fae214620005e9576200028c565b80636121fcfc146200046f5780636524a94714620004a55780636866da5214620004c5578063692b0ad914620004e557806371404156146200051b576200028c565b80632e4f161e116200024f5780632e4f161e146200038b5780632e7037a014620003c1578063392e53cd14620003f75780633e260b13146200041957806360bf4df21462000439576200028c565b80630c68ba211462000291578063116191b614620002c757806329fbd95714620002e95780632c4bbae6146200031f5780632ca595091462000355575b600080fd5b620002af6004803603810190620002a99190620059f7565b62000975565b604051620002be919062006c71565b60405180910390f35b620002d162000a0c565b604051620002e0919062006a24565b60405180910390f35b62000307600480360381019062000301919062005ddf565b62000a32565b60405162000316919062006c71565b60405180910390f35b6200033d600480360381019062000337919062005ddf565b62000a3d565b6040516200034c919062006c71565b60405180910390f35b6200037360048036038101906200036d919062005ddf565b62000a44565b60405162000382919062006c71565b60405180910390f35b620003a96004803603810190620003a3919062005a64565b62000a4f565b604051620003b8919062006c8e565b60405180910390f35b620003df6004803603810190620003d9919062005eee565b62000aab565b604051620003ee919062006c8e565b60405180910390f35b6200040162000b0f565b60405162000410919062006c71565b60405180910390f35b62000437600480360381019062000431919062005ddf565b62000baa565b005b620004576004803603810190620004519190620059f7565b62000bad565b60405162000466919062006a24565b60405180910390f35b6200048d6004803603810190620004879190620059f7565b62000c03565b6040516200049c919062006c71565b60405180910390f35b620004c36004803603810190620004bd9190620059f7565b62000ce1565b005b620004e36004803603810190620004dd919062005cb5565b62000d31565b005b620005036004803603810190620004fd919062005ddf565b6200124e565b60405162000512919062006c71565b60405180910390f35b620005396004803603810190620005339190620059f7565b62001255565b005b62000559600480360381019062000553919062005f1a565b62001630565b60405162000568919062006c8e565b60405180910390f35b6200057b620016a3565b6040516200058a919062006dec565b60405180910390f35b620005b16004803603810190620005ab919062005d55565b620016c9565b604051620005c09190620070b3565b60405180910390f35b620005e76004803603810190620005e19190620059f7565b6200172b565b005b62000607600480360381019062000601919062005ad0565b62001cdc565b005b6200061362001eb7565b604051620006229190620070b3565b60405180910390f35b62000649600480360381019062000643919062005ddf565b62001ebd565b60405162000658919062006c71565b60405180910390f35b6200067f600480360381019062000679919062005ddf565b62001ec8565b6040516200068e919062006c71565b60405180910390f35b620006b56004803603810190620006af9190620059f7565b62001ecf565b005b620006d56004803603810190620006cf919062005ddf565b6200205d565b604051620006e4919062006c71565b60405180910390f35b6200070b6004803603810190620007059190620059f7565b62002068565b005b6200072b600480360381019062000725919062005ddf565b620023d8565b6040516200073a919062006c71565b60405180910390f35b6200076160048036038101906200075b919062005ddf565b620023df565b005b6200078160048036038101906200077b919062005ddf565b620023e2565b005b620007a160048036038101906200079b919062005ddf565b620023e5565b005b620007ad620023e8565b604051620007bc9190620070b3565b60405180910390f35b620007e36004803603810190620007dd919062005a23565b620023ee565b604051620007f29190620070b3565b60405180910390f35b62000819600480360381019062000813919062005ddf565b620024b9565b60405162000828919062006c71565b60405180910390f35b6200084f600480360381019062000849919062005d81565b620024c4565b6040516200085e919062006c71565b60405180910390f35b6200087162002561565b60405162000880919062006dcf565b60405180910390f35b620008a76004803603810190620008a1919062005ddf565b62002587565b604051620008b6919062006c71565b60405180910390f35b620008dd6004803603810190620008d7919062005bb7565b6200258e565b005b620008fd6004803603810190620008f7919062005a23565b62002763565b6040516200090c9190620070b3565b60405180910390f35b6200093360048036038101906200092d919062005ad0565b6200282f565b005b6200095360048036038101906200094d919062005e50565b62002a00565b005b6200097360048036038101906200096d919062005ddf565b62002e21565b005b60006200098d677ab52c65f999e01f60c01b620023e2565b620009a36710268b7b424a1bd560c01b620023e2565b620009b96713a157f311059a7b60c01b620023e2565b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019050919050565b6000919050565b600060019050919050565b600062000a67677a11c1b4df1ca1f560c01b620023df565b62000a7d6722438b178f0ae90360c01b620023df565b62000a9367f4d0ae7810213f3860c01b620023df565b62000aa18585858562002e24565b9050949350505050565b600062000ac3678731a65e96e05a9060c01b620023df565b62000ad96757f3223bdadf332960c01b620023df565b62000aef67a29afa2db961065360c01b620023df565b62000b0882600001518360200151846040015162002ea1565b9050919050565b600062000b2767e29fe2f351ca6b2760c01b62000baa565b62000b3d676f5dd3f08b97747760c01b62000baa565b62000b53673a9488d62818322a60c01b62000baa565b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b50565b600062000bc567f6e1333f9d32e41160c01b620023df565b62000bdb67fdd9d53b8e33944460c01b620023df565b62000bf167698b486da51c956b60c01b620023df565b62000bfc8262002f3f565b9050919050565b600062000c1b677cc879258b9b8ce360c01b620023df565b62000c316745af80c83299f90360c01b620023df565b62000c4767e57f32ecefcae6cd60c01b620023df565b600073ffffffffffffffffffffffffffffffffffffffff16600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b62000cf767d0ced73497b7358460c01b620023df565b62000d0d67fbea73acffce279060c01b620023df565b62000d236770c90e3da20f7de760c01b620023df565b62000d2e81620030aa565b50565b62000d4767c0522379b364a6f360c01b620023df565b62000d5d675058ca825db00d7460c01b620023df565b62000d736782ed1bf7a8fcfd8360c01b620023df565b600062000d7f620033a4565b905062000d97674b653d1c8b6d592360c01b620023df565b62000dad676021df71f2b027d760c01b620023df565b600062000e43600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486620033f990919063ffffffff16565b905062000e5b673b5ac82d29c17eab60c01b620023df565b62000e7167e38d430a97e9424f60c01b620023df565b62000e87673beaf30c76a59ffa60c01b620023df565b6000811162000ecd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ec49062006f5f565b60405180910390fd5b62000ee3678eb8c265193ebb8560c01b620023df565b62000ef967de400f7d5441605260c01b620023df565b62000f0f673b1ce7a286e0eca760c01b620023df565b600062000f1e83888862002ea1565b905062000f3667560d1a6828b72dce60c01b620023df565b62000f4c67011239eb7c122c0760c01b620023df565b62000f62673a2c80a6aac4048460c01b620023df565b62000fb28186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506200346b565b62000ff4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000feb9062007091565b60405180910390fd5b6200100a6798c9308ac236396c60c01b620023df565b62001020679cfd1fa808aaac0e60c01b620023df565b85600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620010ba67fbb2fb2a9aacd34160c01b620023df565b620010d0679fe9956435bdbfe660c01b620023df565b620010dc838862003549565b620010f267d3c67012fd9edb9a60c01b620023df565b620011086719f7b46b98a45b5260c01b620023df565b62001178600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848985620037e8565b6200118e674ba2c71c2ee28c6b60c01b620023df565b620011a46717161c0e31e34fc360c01b620023df565b7f95f66b073d65f18e43f6b76c7ab8557787f5f766d86cab7c9c76f41be9f8abc6600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168489896040516200123d949392919062006af5565b60405180910390a150505050505050565b6000919050565b6200126b6747dd6d4e27a092d260c01b620023e2565b6200128167e0600b94c13d066760c01b620023e2565b620012976755e8cedcdd449e2360c01b620023e2565b620012ad67ab821ba7fedab67160c01b620023e2565b620012c367c540fbd78e0e2a4960c01b620023e2565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1662001351576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620013489062006f3d565b60405180910390fd5b6200136767d014260b312542b460c01b620023e2565b6200137d674e25985d1c99d1f260c01b620023e2565b6200139367736984febec5fd2560c01b620023e2565b620013a967cbb923c66996310360c01b620023e2565b620013bf672c114aff1103564b60c01b620023e2565b620013d567a76a63e34be2bddb60c01b620023e2565b620013eb67a220bc889ca09d2360c01b620023e2565b8073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614156200145d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162001454906200704d565b60405180910390fd5b62001473679467d7af09c5944d60c01b620023e2565b6200148967c28a58b1b15ad6de60c01b620023e2565b6200149f67c70b0fecc7c6d3b160c01b620023e2565b620014b567e7892f9392d41a6760c01b620023e2565b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1662001543576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200153a9062006fe7565b60405180910390fd5b62001559675a0de441d13969aa60c01b620023e2565b6200156f674e473b0a29064fba60c01b620023e2565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620015dc67e398e5606400274660c01b620023e2565b620015f26738c3bd156a3471c260c01b620023e2565b7fee943cdb81826d5909c559c6b1ae6908fcaf2dbc16c4b730346736b486283e8b32826040516200162592919062006a5e565b60405180910390a150565b60006200164867746e84890578918d60c01b620023df565b6200165e676d90e6054f970f8d60c01b620023df565b62001674674283df7d54888c2160c01b620023df565b6200169c826000015183602001518460400151856060015186608001518760a0015162003c0c565b9050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000620016e1674a92df0b2601d80060c01b620023df565b620016f76730e797ee2717b25c60c01b620023df565b6200170d6740cb4346e6f9bbb360c01b620023df565b60086000838152602001908152602001600020600001549050919050565b6200174167b773bc6ea061fbc160c01b620023df565b62001757671e47e14efabccbcb60c01b620023df565b6200176d671faed6e4e38b1a7560c01b620023df565b600062001779620033a4565b9050620017916736891da8159b98ba60c01b620023df565b620017a767178c9047312caef260c01b620023df565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050620018416733c36b59b7a185eb60c01b620023df565b6200185767c84ec4eb44f8e63760c01b620023df565b6200186d67d552fc88e56ef1b860c01b620023df565b6000811415620018b4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620018ab9062006ef9565b60405180910390fd5b620018ca672035200410c747a960c01b620023df565b620018e0670add31c7a189e6db60c01b620023df565b620018f667a6bab72803d7aef560c01b620023df565b6200190c67be9a2f69e7267e4560c01b620023df565b4281111562001952576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620019499062006f81565b60405180910390fd5b62001968677d0e00efaa9167ce60c01b620023df565b6200197e673caa302eebf3b18860c01b620023df565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062001a1967ba24a6bd0393831960c01b620023df565b62001a2f6738a30af50c05383160c01b620023df565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905062001aac67c1ba8f26af786bdf60c01b620023df565b62001ac267da5b0a8094a1696060c01b620023df565b600062001ada67da6c8b42a66d376960c01b620023df565b62001af067d731e57aebb3f92460c01b620023df565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141562001b725762001b3c677885fed62b0c85ce60c01b620023df565b62001b5267e57216c6dd319f5360c01b620023df565b8173ffffffffffffffffffffffffffffffffffffffff1631905062001c30565b62001b886751812ef4de4274a260c01b620023df565b62001b9e67b3b395a9758b968860c01b620023df565b8473ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b815260040162001bd9919062006a24565b60206040518083038186803b15801562001bf257600080fd5b505afa15801562001c07573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001c2d919062005f46565b90505b62001c466796229eb7fe105ae460c01b620023df565b62001c5c67ebeeb2b3f7b8192c60c01b620023df565b62001c6a82858784620037e8565b62001c8067e442679b547af84f60c01b620023df565b62001c96670e1c93412bd8455f60c01b620023df565b7f5300d9a2838baade7cdc628c82cb80c1298853ba5f389d51e2b47330336aeffc8285878460405162001ccd949392919062006af5565b60405180910390a15050505050565b62001cf2678547b4816985ff9f60c01b620023df565b62001d0867e91d0fa0d5165f1060c01b620023df565b62001d1e67ae27d5c6e5a1627860c01b620023df565b600062001d2a620033a4565b905062001d426726e48716281dd6cd60c01b620023df565b62001d58671f02d416ec828e0960c01b620023df565b600080600062001df78d858e8e8e8e8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505062003cb3565b92509250925062001e13673bb0e2de1af97a3b60c01b620023df565b62001e2967bba97aa553e93d0060c01b620023df565b62001e418262001e398662002f3f565b8e84620037e8565b62001e57674a2b86621f73c58e60c01b620023df565b62001e6d67f8b1d1f90ea6458860c01b620023df565b7f771bc0494e1a2fcbef19a8762845000d8c4500454c756a7370c955e39ed60fd4838260405162001ea092919062006d18565b60405180910390a150505050505050505050505050565b60025481565b600060019050919050565b6000919050565b62001ee567c17b66a0b198af7b60c01b620023e2565b62001efb67e0600b94c13d066760c01b620023e2565b62001f116755e8cedcdd449e2360c01b620023e2565b62001f2767ab821ba7fedab67160c01b620023e2565b62001f3d67c540fbd78e0e2a4960c01b620023e2565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1662001fcb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162001fc29062006f3d565b60405180910390fd5b62001fe167d014260b312542b460c01b620023e2565b62001ff7674e25985d1c99d1f260c01b620023e2565b6200200d67dfa24a8cc198350160c01b620023e2565b6200202367f9907d82cd18ee0760c01b620023e2565b6200203967dd37ee49f553c5a760c01b620023e2565b6200204f679ad66b1d98f77fdf60c01b620023e2565b6200205a8162004526565b50565b600060019050919050565b6200207e670469efd33c9235e360c01b620023df565b6200209467f0b2089551c0c81360c01b620023df565b620020aa6704d761f7374b77cd60c01b620023df565b6000620020b6620033a4565b9050620020ce67409657c6111ebeff60c01b620023df565b620020e4679358c4bdb889d18460c01b620023df565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506200217e67e923e341d617b92360c01b620023df565b6200219467b0e7ccea6c1aa7d260c01b620023df565b620021aa674d40fc3ef77568bb60c01b620023df565b60008114620021f0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620021e79062006e93565b60405180910390fd5b62002206679ebbb0402706d7af60c01b620023df565b6200221c6794c20c5a2ce1d39660c01b620023df565b6200223267beca2bc701238ab260c01b620023df565b6200223d82620030aa565b6200225367d033291f0eb9caf760c01b620023df565b6200226a60065442620047c590919063ffffffff16565b905062002282672aade004be31a38c60c01b620023df565b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200231c678164ea09279e604f60c01b620023df565b620023326789b93e679e8b87d160c01b620023df565b7fed3c8c6cdfc6d7b91dc9db3e1f54866587c26c3c3e0f9e32cd1944974be43a50600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16838584604051620023cb949392919062006af5565b60405180910390a1505050565b6000919050565b50565b50565b50565b60065481565b600062002405664a2219036fd2a460c01b620023df565b6200241b675e6e6d17fe704f9760c01b620023df565b6200243167dbbc56fd7f3b5f8960c01b620023df565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600060019050919050565b6000620024dc670fa739e07c029f9060c01b620023e2565b620024f267406100042e7653bd60c01b620023e2565b620025086784104632bda8198f60c01b620023e2565b620025588484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506200346b565b90509392505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000919050565b620025a46740bae9637fb2f02060c01b620023df565b620025ba67eb691ee8670228b060c01b620023df565b620025d0673992eecbf7059d7a60c01b620023df565b6000620025dc620033a4565b9050620025f467c38dab0c9cbfffc060c01b620023df565b6200260a67ff6eebe0f8a2088860c01b620023df565b6000806000620026a98e858f8f8f8f8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505062003cb3565b925092509250620026c5670d40206c41a9e9f160c01b620023df565b620026db6732a3f4b543a6d49960c01b620023df565b620026ea82858f848d620048e4565b6200270067b7953e396f06f2f860c01b620023df565b620027166730471e94ce6c1fb260c01b620023df565b7f8b67efde501ee9cd0e771f7436554c44a5c076239ff3a6fbb397646a4689c0f283828b6040516200274b9392919062006d45565b60405180910390a15050505050505050505050505050565b60006200277b67446e049345b6dc0360c01b620023df565b6200279167958de0fc09af695660c01b620023df565b620027a76792ae15897a87ccb760c01b620023df565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6200284567bcbd9780179cfb1660c01b620023df565b6200285b67318240a4eb8b00cb60c01b620023df565b6200287167fc5cdd89fca1b27160c01b620023df565b60006200287d620033a4565b90506200289567a03d83d93ca8d80260c01b620023df565b620028ab6743d46cb5e50ef82b60c01b620023df565b60008060006200294a8d858e8e8e8e8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505062003cb3565b92509250925062002966677ba957dbb80f30dd60c01b620023df565b6200297c67eb8cdd947a89fa6a60c01b620023df565b6200298a82858e84620037e8565b620029a0672efb5286ef6b799760c01b620023df565b620029b6679d0f67b91b85269360c01b620023df565b7f6675346cd43846f7d47c310d39fb5c15bc7db66b3770338cdf1f133613a5ae988382604051620029e992919062006d18565b60405180910390a150505050505050505050505050565b62002a16675d6a36075962234660c01b620023df565b62002a2c67d2ba19feb39e0b7f60c01b62000baa565b62002a42670c5ad53cdb9edd1560c01b62000baa565b62002a5867b6b588d2ebb9ae6960c01b62000baa565b62002a6e67c4ec9a90a885875260c01b62000baa565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161462002b01576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162002af89062006e71565b60405180910390fd5b62002b1767c3785ba1534db95460c01b62000baa565b62002b2d67e4202927591248ef60c01b62000baa565b6000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062002b8567531cfa2817fbdc8660c01b62000baa565b62002b9b67de26df4d387f673160c01b620023df565b62002bb1674ebd43ec99830d3060c01b620023df565b62002bc767bb152469ff2c92e660c01b620023df565b85600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062002c1e67d35d915692b00daa60c01b620023df565b84600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062002c7567a817395cf9ca065c60c01b620023df565b62002c8b678615344e6972361e60c01b620023df565b600084141562002cd15762002cab67629416985776820d60c01b620023df565b62002cc1678885a164a9f3ec4260c01b620023df565b6224ea0060068190555062002d05565b62002ce76716f8786f8b5ecdbf60c01b620023df565b62002cfd67be06e23d7dfb9f2a60c01b620023df565b836006819055505b62002d1b675fb68d901bcd3a4a60c01b620023df565b62002d31679a8ebcf09fa7f9b860c01b620023df565b62002d7d838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505062004b01565b62002d936721ac7ab39c91777260c01b620023df565b62002da9670a38c83eb402380960c01b620023df565b62002db48162004c80565b62002dca6701520f419008b58e60c01b62000baa565b62002de06775364c04848b013b60c01b62000baa565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e63260405162002e11919062006a41565b60405180910390a1505050505050565b50565b600062002e3c670600b8dacbc0f5b060c01b620023df565b62002e5267a51a8e2c949b38d860c01b620023df565b62002e68670995b3651a997c6e60c01b620023df565b8484848460405160200162002e8194939291906200683d565b604051602081830303815290604052805190602001209050949350505050565b600062002eb967ab0839cc447a85be60c01b620023df565b62002ecf6757963282530d51cf60c01b620023df565b62002ee567943633a1f102620860c01b620023df565b62002f367f3b3087c8f883f1f44cabe66444f5f9d96f69de6a88f364ea10959eef0331414a85858560405160200162002f21939291906200690f565b60405160208183030381529060405262004cf0565b90509392505050565b600062002f5767a6241f48aba60f2360c01b620023df565b62002f6d6760801bc25d3681f060c01b620023df565b62002f8367032311da4b2958a160c01b620023df565b60008260405160200162002f98919062006820565b60405160208183030381529060405280519060200120905062002fc667d57236925b01eaef60c01b620023df565b62002fdc678d10ddc344cfc56660c01b620023df565b60606040518060200162002ff09062005727565b6020820181038252601f19601f8201166040525090506200301c6783bd86ecf08f2dd360c01b620023df565b62003032675bccd458cea2ca7e60c01b620023df565b600060ff60f81b3084848051906020012060405160200162003058949392919062006952565b6040516020818303038152906040528051906020012090506200308667d2153fdf44ab7c8a60c01b620023df565b6200309c679430141534c0f6f160c01b620023df565b8060001c9350505050919050565b620030c06733e6264130761ab860c01b620023df565b620030d667211cfd602532dd7360c01b620023df565b620030ec673b14d30a708bc54460c01b620023df565b600073ffffffffffffffffffffffffffffffffffffffff16600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156200338a576200319a67f83ecc64c556d1f760c01b620023df565b620031b067f6e1d3201424c63f60c01b620023df565b620031c6676267bb6430c32dbe60c01b620023df565b600081604051602001620031db919062006820565b6040516020818303038152906040528051906020012090506200320967538e7ffac01a39d760c01b620023df565b80604051620032189062005727565b8190604051809103906000f590508015801562003239573d6000803e3d6000fd5b50600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620032d0679d112f9daf47871e60c01b620023df565b620032e667986a0454bcd99e2560c01b620023df565b7fd80572c0f2f24f2d9d726d831bd860ed82b12bafaf01cfb6e4d38fb23c4347e9600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040516200337b92919062006a8b565b60405180910390a150620033a1565b620033a067d3ab13cff696adf660c01b620023df565b5b50565b6000620033bc677ac614d5268cc8ac60c01b62002e21565b620033d2670a6b7ac33c94c4ed60c01b62002e21565b620033e867e7ef433820a2765360c01b62002e21565b620033f4602862004d77565b905090565b60006200341167e0716c1000d7d1da60c01b62004f2f565b62003427674e44df08c8f0b5bb60c01b62004f2f565b6200343d679b7e32e8ae0c005160c01b62004f2f565b62003463838360405180606001604052806021815260200162007d386021913962004f32565b905092915050565b60006200348367fbe9af14abc78ca860c01b620023e2565b6200349967bd3616cf00f8ad2b60c01b620023e2565b620034af670aad941719c9b69b60c01b620023e2565b6000620034c683856200502490919063ffffffff16565b9050620034de6706f556c4601e7cd060c01b620023e2565b620034f467344e7bee2db8345860c01b620023e2565b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b6200355f67b137a792eeffc94960c01b620023df565b62003575676cebd0716e109ec060c01b620023df565b6200358b67227b6ac9d83cb95360c01b620023df565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111562003796576200362a678791f8da1a3e1edf60c01b620023df565b6200364067a20c246c9c5e907f60c01b620023df565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620036db67f884f17fe3454b4f60c01b620023df565b620036f167c3d63cf5fa919f0460c01b620023df565b7fa19281a6f3163da06f6b82f3ecf0130493c52aba23cdc2a312f652742f0d1801600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383604051620037889392919062006ab8565b60405180910390a1620037e4565b620037ac6764fe4e265a60b8b260c01b620023df565b620037c267e8c510292ed038a160c01b620023df565b620037d86798a079e54e32501e60c01b620023df565b620037e382620030aa565b5b5050565b620037fe67425ae998c798c82e60c01b620023df565b6200381467e66cf7af275cf8b160c01b620023df565b6200382a67d8bd53129853df4f60c01b620023df565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562003990576200387667111891f7aa278fd260c01b620023df565b6200388c67241016650f63728860c01b620023df565b620038a2672a09400165e7657260c01b620023df565b8373ffffffffffffffffffffffffffffffffffffffff16633f579f428483600067ffffffffffffffff81118015620038d957600080fd5b506040519080825280601f01601f1916602001820160405280156200390d5781602001600182028036833780820191505090505b506040518463ffffffff1660e01b81526004016200392e9392919062006c2d565b600060405180830381600087803b1580156200394957600080fd5b505af11580156200395e573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019062003989919062005e0b565b5062003c06565b620039a6677b4ef9f87d72b7a960c01b620023df565b620039bc67a88798cd3aa7d74a60c01b620023df565b620039d267d91d0c8e6448665a60c01b620023df565b60608473ffffffffffffffffffffffffffffffffffffffff16633f579f4284600063a9059cbb60e01b888760405160240162003a1092919062006c00565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518463ffffffff1660e01b815260040162003a8d9392919062006bbc565b600060405180830381600087803b15801562003aa857600080fd5b505af115801562003abd573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019062003ae8919062005e0b565b905062003b0067048c8450ee4bf7b760c01b620023df565b62003b1667201720d43ce7357560c01b620023df565b60008151111562003bed5762003b376720ffb51a4023618960c01b620023df565b62003b4d674c5a559407f7467360c01b620023df565b62003b6367d18f03c9226f332260c01b620023df565b62003b79675a5ec2d22eeefafd60c01b620023df565b8080602001905181019062003b8f919062005d29565b62003bd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162003bc89062006f1b565b60405180910390fd5b62003be76742a84bad8afeeb5c60c01b620023df565b62003c04565b62003c03670fe67714ff92436960c01b620023df565b5b505b50505050565b600062003c246751a80809ea045ef460c01b620023df565b62003c3a671ae84f9badc6251360c01b620023df565b62003c5067e4da76a2a2a1edc760c01b620023df565b62003ca77f745089e29f2abf28f618236a5dc04d214ac05ead3440ba532b69e9d160ba2e7288888888888860405160200162003c929695949392919062006893565b60405160208183030381529060405262004cf0565b90509695505050505050565b600080600062003cce6713f01d9025565f3960c01b620023df565b62003ce467ae5fd9cd87222a2b60c01b620023df565b62003cfa67152227d79de099c160c01b620023df565b600062003d0c8c8c8c8c8c8c62003c0c565b905062003d2467904fdcf2e56cec1360c01b620023df565b62003d3a674cb6148653b6f05c60c01b620023df565b60008651141562003eb05762003d5b6788da320677cf5e7d60c01b620023df565b62003d7167031a875bca0aaab360c01b620023df565b62003d87673a5cc07e4b44a6d560c01b620023df565b62003d9d67016d2c61f6dd6c2d60c01b620023df565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166359b52ef88d838b6040518463ffffffff1660e01b815260040162003dfe9392919062006b7f565b60206040518083038186803b15801562003e1757600080fd5b505afa15801562003e2c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003e52919062005d29565b62003e94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162003e8b9062007091565b60405180910390fd5b62003eaa67e8aefadc281bef2d60c01b620023df565b620041ea565b62003ec667d1ebedc8c05d2dc060c01b620023df565b62003edc67608da72d0095b9d160c01b620023df565b62003ef267cb30b3cc980493e660c01b620023df565b600062003f0987836200502490919063ffffffff16565b905062003f2167b9f9dace39395bba60c01b620023df565b62003f376719d2e2b0100cef0c60c01b620023df565b8073ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff1614620041d15762003f8167cf4babd7c1f5517660c01b620023df565b62003f9767e7be9dc6df87f59460c01b620023df565b62003fad6754ffef844048aeac60c01b620023df565b62003fc3678bad387c237a9c8260c01b620023df565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166334d323a48e838c6040518463ffffffff1660e01b8152600401620040249392919062006b42565b60206040518083038186803b1580156200403d57600080fd5b505afa15801562004052573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004078919062005d29565b80156200409757506200409667e43e558222a48e9060c01b62000a44565b5b80620041735750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166334d323a48e838c6040518463ffffffff1660e01b8152600401620040ff9392919062006b42565b60206040518083038186803b1580156200411857600080fd5b505afa1580156200412d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004153919062005d29565b8015620041725750620041716774a6a859f68a407460c01b62000a44565b5b5b620041b5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620041ac9062006fc5565b60405180910390fd5b620041cb670428b6277130e17d60c01b620023df565b620041e8565b620041e767b01b02d7a8b0a1ed60c01b620023df565b5b505b620042006793fbbda3cd7202e460c01b620023df565b6200421667344b7c04098b91b760c01b620023df565b6200422c675b66ad7740fae35760c01b620023df565b6200423881866200346b565b6200427a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620042719062007091565b60405180910390fd5b62004290675aadace45521e33360c01b620023df565b620042a6677f35810285c6353c60c01b620023df565b620042b48c8c8c8c62002e24565b9350620042cc671f486a3a2a1f3c0860c01b620023df565b620042f7600860008681526020019081526020016000206000015488620033f990919063ffffffff16565b91506200430f67075543c764304fab60c01b620023df565b6200432567ce6ce88fc4a1598e60c01b620023df565b6200433b677d0e86c7ce33d4f660c01b620023df565b600082141562004382576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620043799062006eb5565b60405180910390fd5b620043986750c2bd53c8b3f1e260c01b620023df565b620043ae6728b9cf703bd950f660c01b620023df565b866008600086815260200190815260200160002060000181905550620043df672f82c89e17c153f160c01b620023df565b620043f5678e33b0f493a5625360c01b620023df565b620044018c8b62003549565b6200441767573964feb8c10ce960c01b620023df565b600760008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16925062004492675ae960e149ffdaca60c01b620023df565b620044a867b30c6d7c0b6f6ab860c01b620023df565b7f0d1cb77d1fe491f98926195d0b885509da18bc305dd1489f45610237d971ed46848d8d8d8d8c604051620044e39695949392919062006cab565b60405180910390a16200450167dafdb72d466fc30f60c01b620023df565b6200451767de0355caa72dcb9160c01b620023df565b50985098509895505050505050565b6200453c6703611a9e4063d8ea60c01b620023e2565b6200455267ee1baacaa033494260c01b620023e2565b620045686751e5840de998a97760c01b620023e2565b6200457e676f82de74e2e2e03560c01b620023e2565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620045f1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620045e89062006e4f565b60405180910390fd5b620046076717cb80dba7a8a0ea60c01b620023e2565b6200461d67e2f8fabe2a63d8b660c01b620023e2565b62004633677550a657f22d30dc60c01b620023e2565b62004649673c81d7073dbe6f3060c01b620023e2565b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615620046d8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620046cf906200702b565b60405180910390fd5b620046ee67bc5a1f0994a7f54e60c01b620023e2565b62004704679a7f014629c7374960c01b620023e2565b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200477167d71c83e9f3188e9d60c01b620023e2565b6200478767e4bfbd26cb5c77e660c01b620023e2565b7fbc3292102fa77e083913064b282926717cdfaede4d35f553d66366c0a3da755a3282604051620047ba92919062006a5e565b60405180910390a150565b6000620047dd672797d9bbee8e685760c01b62004f2f565b620047f367e25930aa3032662f60c01b62004f2f565b62004809673b804ace3fd44ea060c01b62004f2f565b600082840190506200482667e0d809daafe36a0460c01b62004f2f565b6200483c67d0d7b021c1a6823260c01b62004f2f565b620048526741f1099b5fa09b9360c01b62004f2f565b8381101562004898576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200488f9062007009565b60405180910390fd5b620048ae6728a352a27e50889560c01b62004f2f565b620048c467f55e5f024a80111c60c01b62004f2f565b620048da67d865abdcb752192460c01b62004f2f565b8091505092915050565b620048fa6795769c0422dd2f3760c01b620023df565b6200491067dd92d87d27b8031560c01b620023df565b6200492667fc7095cb44e42da760c01b620023df565b6200493c674d2f9244eb82daf860c01b620023df565b6000811162004982576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620049799062006e2d565b60405180910390fd5b6200499867cea04fa968fc503360c01b620023df565b620049ae6713ae60570dc4ced160c01b620023df565b620049c46752a28bf08a5df63560c01b620023df565b6000620049db8284620033f990919063ffffffff16565b9050620049f36763423272cdb2553660c01b620023df565b62004a096716f88c019291390f60c01b620023df565b62004a1f67be2b24391508025160c01b620023df565b6000811162004a65576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162004a5c9062006fa3565b60405180910390fd5b62004a7b6742c11e45abeb8eec60c01b620023df565b62004a9167f316021b46c8f80a60c01b620023df565b62004aa767d8f0bc071782644460c01b620023df565b62004ab586868684620037e8565b62004acb671a738fed97e4b59060c01b620023df565b62004ae1672c9b480f5094a0f660c01b620023df565b62004af98662004af18762002f3f565b8685620037e8565b505050505050565b62004b1767f4de5e8e73d6ad8760c01b620023e2565b62004b2d67db1ce0981035d84760c01b620023e2565b62004b4367e97a0a25809a3f0960c01b620023e2565b60008151141562004ba15762004b6467de11b839232da49160c01b620023e2565b62004b7a67b59bd2ea0c1c89a260c01b620023e2565b62004b9067652fe2786000e62060c01b620023e2565b62004b9b3262004526565b62004c7d565b62004bb767ad5f6f13dddc2ad960c01b620023e2565b62004bcd672af46088979bcb2160c01b620023e2565b62004be36796cb81cf0bf6606d60c01b620023e2565b60008151905062004bff672f4c11881b8dca8c60c01b620023e2565b62004c1567cec4e8db5057edad60c01b620023e2565b60005b8181101562004c7a5762004c37671a5cc94c8b734dd960c01b620023e2565b62004c4d67e437d14e98e20b2f60c01b620023e2565b62004c6c83828151811062004c5e57fe5b602002602001015162004526565b808060010191505062004c18565b50505b50565b62004c96670beab42e12728d3b60c01b62002e21565b62004cac675ecbac840a5512ec60c01b62002e21565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600062004d086771b334e2e3162d2e60c01b620023e5565b62004d1e6729046581cf97a49460c01b620023e5565b62004d34674f9e67c6b1f334b360c01b620023e5565b62004d6f60025430858560405160200162004d539493929190620069d2565b6040516020818303038152906040528051906020012062005370565b905092915050565b600062004d8f6787c8246a4b35d1f160c01b62002e21565b62004da567976a1e8d41064d2460c01b62002e21565b62004dbb671867d8bf077bb31160c01b62002e21565b600062004dd367bdfeda5454a1273960c01b62002e21565b62004de9677709e048711a13c960c01b62002e21565b62004df3620053e4565b1562004eca5762004e0f67d3c6f6b0bcac9b6e60c01b62002e21565b62004e25673b2573735f5d680260c01b62002e21565b62004e3b675089eb0622c78a2260c01b62002e21565b600083600036905003905062004e5c674bc94a8e9a6ee57960c01b62002e21565b62004ec16000368390601485019262004e789392919062007179565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050620055d0565b91505062004efa565b62004ee0677e45e81af2ec2edc60c01b62002e21565b62004ef667391e31dbfdfb407e60c01b62002e21565b3390505b62004f1067c4042e2c7c2c999760c01b62002e21565b62004f2667fc44c5cccf2cd16760c01b62002e21565b80915050919050565b50565b600062004f4a677d731b0c9f0e103a60c01b62004f2f565b62004f60672e44734f88495e8b60c01b62004f2f565b62004f76670d025d40fd1bee3e60c01b62004f2f565b62004f8c67025828287ef1fd1b60c01b62004f2f565b83831115829062004fd5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162004fcc919062006e09565b60405180910390fd5b5062004fec67e9c31dd44a0bf91260c01b62004f2f565b62005002675031ed2b8fb2561960c01b62004f2f565b6200501867301f4385f3c6735c60c01b62004f2f565b82840390509392505050565b60006200503c670d75db982ec4597160c01b62005716565b620050526725c2c60ab754182560c01b62005716565b62005068673eb64a254569ed0660c01b62005716565b60006200508067fb2a2286066e15e460c01b62005716565b6200509667a440db11ec9e986d60c01b62005716565b6041835114156200532357620050b76704a5aada48e2763260c01b62005716565b620050cd674b98cf1796e5c26660c01b62005716565b620050e367d2dfec7b159385fc60c01b62005716565b6000620050fb6772c2a840621b4aa760c01b62005716565b6200511167bfd411e6ba4d07c460c01b62005716565b60006200512967145d23f82764ba9960c01b62005716565b6200513f67acdff958a9c6c5dd60c01b62005716565b600062005157673b79e3a80932a6a160c01b62005716565b6020860151925060408601519150606086015160001a905062005185679b0cdee01a57ea2f60c01b62005716565b6200519b675dbf88583373227960c01b62005716565b601b8160ff161015620051e057620051be670dc9a1836eb51c3260c01b62005716565b620051d4677097d8456a6c3e1560c01b62005716565b601b81019050620051f7565b620051f66708b39c61216869e760c01b62005716565b5b6200520d672ea4d6db7d2138c560c01b62005716565b62005223679ad3f461195a5eee60c01b62005716565b601b8160ff161480156200524957506200524867a24e972b59dc7d0560c01b62005719565b5b80620052775750601c8160ff161480156200527657506200527567934bee4849491d9560c01b62005719565b5b5b15620053035762005293676d6a491fc6e072fa60c01b62005716565b620052a967aecd1690d1de9f1c60c01b62005716565b60018782858560405160008152602001604052604051620052ce949392919062006d82565b6020604051602081039080840390855afa158015620052f1573d6000803e3d6000fd5b5050506020604051035193506200531a565b6200531967513fbc3b3a0ad1c060c01b62005716565b5b5050506200533a565b620053396723d6d78de386c96660c01b62005716565b5b620053506707d0c4f11e72cfc960c01b62005716565b6200536667b9689b22f403636c60c01b62005716565b8091505092915050565b60006200538867f3d1beb9fba5b7be60c01b62005716565b6200539e676cd81a1865d6353260c01b62005716565b620053b4676810828c21da671e60c01b62005716565b81604051602001620053c79190620069a8565b604051602081830303815290604052805190602001209050919050565b6000620053fc6714ec9ba31585b6f760c01b62002e21565b620054126764d00f8ee4cbc0f460c01b62002e21565b620054286728aef4b71ffef7e260c01b62002e21565b600062005440677b6cf6392b8d09d960c01b62002e21565b6200545667da655f124163f4bc60c01b62002e21565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156200558657620054c3678c4556fd14dc507160c01b62002e21565b620054d9674811af4455ee520960c01b62002e21565b620054ef67ae36e4b52033411860c01b62002e21565b6200550567ffe63a27679b309260c01b62002e21565b602c6000369050101562005550576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620055479062006ed7565b60405180910390fd5b6200556667d1762b0b1ca636f360c01b62002e21565b6200557c6769c465f7e405b9f660c01b62002e21565b600190506200559d565b6200559c6710f40798097af22060c01b62002e21565b5b620055b3671855328cbdf7411660c01b62002e21565b620055c9670e4f1457e534f9ac60c01b62002e21565b8091505090565b6000620055e8670df8d76b8cabf76a60c01b62005724565b620055fe67e180fcce9e2bf4c560c01b62005724565b62005614670dcb70abe8e8bb0b60c01b62005724565b60006200562c67c9f13cc22eb780e060c01b62005724565b6200564267c60f8d891ff21de960c01b62005724565b620056586782bb9e679e55c73460c01b62005724565b60148351146200569f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162005696906200706f565b60405180910390fd5b620056b5679ea304b1b6348ade60c01b62005724565b620056cb67a0049b4768bf518260c01b62005724565b6c010000000000000000000000006020840151049050620056f7671f4dc55703cfba1860c01b62005724565b6200570d67afb63a07e82275e260c01b62005724565b80915050919050565b50565b600060019050919050565b50565b6108b8806200748083390190565b6000813590506200574681620073c9565b92915050565b60008083601f8401126200575f57600080fd5b8235905067ffffffffffffffff8111156200577957600080fd5b6020830191508360208202830111156200579257600080fd5b9250929050565b600081519050620057aa81620073e3565b92915050565b600081359050620057c181620073fd565b92915050565b600081359050620057d88162007417565b92915050565b60008083601f840112620057f157600080fd5b8235905067ffffffffffffffff8111156200580b57600080fd5b6020830191508360018202830111156200582457600080fd5b9250929050565b600082601f8301126200583d57600080fd5b8151620058546200584e82620070fe565b620070d0565b915080825260208301602083018583830111156200587157600080fd5b6200587e8382846200732f565b50505092915050565b600081359050620058988162007431565b92915050565b600081359050620058af816200744b565b92915050565b600060608284031215620058c857600080fd5b620058d46060620070d0565b90506000620058e68482850162005735565b6000830152506020620058fc8482850162005735565b60208301525060406200591284828501620059c9565b60408301525092915050565b600060c082840312156200593157600080fd5b6200593d60c0620070d0565b905060006200594f8482850162005735565b6000830152506020620059658482850162005735565b60208301525060406200597b8482850162005735565b60408301525060606200599184828501620057b0565b6060830152506080620059a784828501620059c9565b60808301525060a0620059bd84828501620059c9565b60a08301525092915050565b600081359050620059da8162007465565b92915050565b600081519050620059f18162007465565b92915050565b60006020828403121562005a0a57600080fd5b600062005a1a8482850162005735565b91505092915050565b6000806040838503121562005a3757600080fd5b600062005a478582860162005735565b925050602062005a5a8582860162005735565b9150509250929050565b6000806000806080858703121562005a7b57600080fd5b600062005a8b8782880162005735565b945050602062005a9e8782880162005735565b935050604062005ab18782880162005735565b925050606062005ac487828801620057b0565b91505092959194509250565b600080600080600080600080600060e08a8c03121562005aef57600080fd5b600062005aff8c828d0162005735565b995050602062005b128c828d0162005735565b985050604062005b258c828d01620057b0565b975050606062005b388c828d01620059c9565b965050608062005b4b8c828d01620059c9565b95505060a08a013567ffffffffffffffff81111562005b6957600080fd5b62005b778c828d01620057de565b945094505060c08a013567ffffffffffffffff81111562005b9757600080fd5b62005ba58c828d01620057de565b92509250509295985092959850929598565b6000806000806000806000806000806101008b8d03121562005bd857600080fd5b600062005be88d828e0162005735565b9a5050602062005bfb8d828e0162005735565b995050604062005c0e8d828e01620057b0565b985050606062005c218d828e01620059c9565b975050608062005c348d828e01620059c9565b96505060a062005c478d828e01620059c9565b95505060c08b013567ffffffffffffffff81111562005c6557600080fd5b62005c738d828e01620057de565b945094505060e08b013567ffffffffffffffff81111562005c9357600080fd5b62005ca18d828e01620057de565b92509250509295989b9194979a5092959850565b6000806000806060858703121562005ccc57600080fd5b600062005cdc8782880162005735565b945050602062005cef87828801620059c9565b935050604085013567ffffffffffffffff81111562005d0d57600080fd5b62005d1b87828801620057de565b925092505092959194509250565b60006020828403121562005d3c57600080fd5b600062005d4c8482850162005799565b91505092915050565b60006020828403121562005d6857600080fd5b600062005d7884828501620057b0565b91505092915050565b60008060006040848603121562005d9757600080fd5b600062005da786828701620057b0565b935050602084013567ffffffffffffffff81111562005dc557600080fd5b62005dd386828701620057de565b92509250509250925092565b60006020828403121562005df257600080fd5b600062005e0284828501620057c7565b91505092915050565b60006020828403121562005e1e57600080fd5b600082015167ffffffffffffffff81111562005e3957600080fd5b62005e47848285016200582b565b91505092915050565b60008060008060008060a0878903121562005e6a57600080fd5b600062005e7a89828a0162005887565b965050602062005e8d89828a016200589e565b955050604062005ea089828a01620059c9565b945050606087013567ffffffffffffffff81111562005ebe57600080fd5b62005ecc89828a016200574c565b9350935050608062005ee189828a0162005735565b9150509295509295509295565b60006060828403121562005f0157600080fd5b600062005f1184828501620058b5565b91505092915050565b600060c0828403121562005f2d57600080fd5b600062005f3d848285016200591e565b91505092915050565b60006020828403121562005f5957600080fd5b600062005f6984828501620059e0565b91505092915050565b62005f7d816200728f565b82525050565b62005f8e81620071ae565b82525050565b62005fa962005fa382620071ae565b62007365565b82525050565b62005fba81620071c2565b82525050565b62005fd562005fcf82620071ce565b62007379565b82525050565b62005fe681620071fa565b82525050565b6200600162005ffb82620071fa565b62007383565b82525050565b600062006014826200712b565b62006020818562007141565b9350620060328185602086016200732f565b6200603d81620073ab565b840191505092915050565b600062006055826200712b565b62006061818562007152565b9350620060738185602086016200732f565b80840191505092915050565b6200608a81620072a3565b82525050565b6200609b81620072cb565b82525050565b620060ac81620072f3565b82525050565b6000620060bf8262007136565b620060cb81856200715d565b9350620060dd8185602086016200732f565b620060e881620073ab565b840191505092915050565b6000620061026026836200715d565b91507f5061796d656e7452656769737472793a20696e76616c6964206465706f73697460008301527f2076616c756500000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006200616a601c836200716e565b91507f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000830152601c82019050919050565b6000620061ac6020836200715d565b91507f477561726465643a2063616e6e6f74206164642030783020677561726469616e6000830152602082019050919050565b6000620061ee602f836200715d565b91507f496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742060008301527f74686520696e697469616c697a657200000000000000000000000000000000006020830152604082019050919050565b600062006256602f836200715d565b91507f5061796d656e7452656769737472793a206465706f736974206578697420616c60008301527f72656164792072657175657374656400000000000000000000000000000000006020830152604082019050919050565b6000620062be6026836200715d565b91507f5061796d656e7452656769737472793a20696e76616c6964207061796d656e7460008301527f2076616c756500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000620063266022836200715d565b91507f47617465776179526563697069656e743a20696e76616c6964206d73672e646160008301527f74610000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006200638e602b836200715d565b91507f5061796d656e7452656769737472793a206465706f7369742065786974206e6f60008301527f74207265717565737465640000000000000000000000000000000000000000006020830152604082019050919050565b6000620063f6602d836200715d565b91507f5061796d656e7452656769737472793a204552433230546f6b656e207472616e60008301527f73666572207265766572746564000000000000000000000000000000000000006020830152604082019050919050565b60006200645e6026836200715d565b91507f477561726465643a2074782e6f726967696e206973206e6f742074686520677560008301527f61726469616e00000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000620064c6601f836200715d565b91507f5061796d656e7452656769737472793a20696e76616c696420616d6f756e74006000830152602082019050919050565b6000620065086024836200715d565b91507f5061796d656e7452656769737472793a206465706f7369742065786974206c6f60008301527f636b6564000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000620065706027836200715d565b91507f5061796d656e7452656769737472793a20696e76616c6964207769746864726160008301527f772076616c7565000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000620065d86029836200715d565b91507f5061796d656e7452656769737472793a20696e76616c69642073656e6465722060008301527f7369676e617475726500000000000000000000000000000000000000000000006020830152604082019050919050565b600062006640601f836200715d565b91507f477561726465643a20677561726469616e20646f65736e2774206578697374006000830152602082019050919050565b600062006682601e836200715d565b91507f536166654d6174684c69623a206164646974696f6e206f766572666c6f7700006000830152602082019050919050565b6000620066c46020836200715d565b91507f477561726465643a20677561726469616e20616c7265616479206578697374736000830152602082019050919050565b600062006706601b836200715d565b91507f477561726465643a2063616e6e6f742072656d6f76652073656c6600000000006000830152602082019050919050565b600062006748601d836200715d565b91507f42797465734c69623a20696e76616c69642064617461206c656e6774680000006000830152602082019050919050565b60006200678a602b836200715d565b91507f5061796d656e7452656769737472793a20696e76616c6964206775617264696160008301527f6e207369676e61747572650000000000000000000000000000000000000000006020830152604082019050919050565b620067ee8162007278565b82525050565b62006809620068038262007278565b620073a1565b82525050565b6200681a8162007282565b82525050565b60006200682e828462005f94565b60148201915081905092915050565b60006200684b828762005f94565b6014820191506200685d828662005f94565b6014820191506200686f828562005f94565b60148201915062006881828462005fec565b60208201915081905095945050505050565b6000620068a1828962005f94565b601482019150620068b3828862005f94565b601482019150620068c5828762005f94565b601482019150620068d7828662005fec565b602082019150620068e98285620067f4565b602082019150620068fb8284620067f4565b602082019150819050979650505050505050565b60006200691d828662005f94565b6014820191506200692f828562005f94565b601482019150620069418284620067f4565b602082019150819050949350505050565b600062006960828762005fc0565b60018201915062006972828662005f94565b60148201915062006984828562005fec565b60208201915062006996828462005fec565b60208201915081905095945050505050565b6000620069b5826200615b565b9150620069c3828462005fec565b60208201915081905092915050565b6000620069e08287620067f4565b602082019150620069f2828662005f94565b60148201915062006a04828562005fec565b60208201915062006a16828462006048565b915081905095945050505050565b600060208201905062006a3b600083018462005f83565b92915050565b600060208201905062006a58600083018462005f72565b92915050565b600060408201905062006a75600083018562005f72565b62006a84602083018462005f83565b9392505050565b600060408201905062006aa2600083018562005f83565b62006ab1602083018462005f83565b9392505050565b600060608201905062006acf600083018662005f83565b62006ade602083018562005f83565b62006aed604083018462005f83565b949350505050565b600060808201905062006b0c600083018762005f83565b62006b1b602083018662005f83565b62006b2a604083018562005f83565b62006b396060830184620067e3565b95945050505050565b600060608201905062006b59600083018662005f83565b62006b68602083018562005f83565b62006b776040830184620067e3565b949350505050565b600060608201905062006b96600083018662005f83565b62006ba5602083018562005fdb565b62006bb46040830184620067e3565b949350505050565b600060608201905062006bd3600083018662005f83565b62006be26020830185620060a1565b818103604083015262006bf6818462006007565b9050949350505050565b600060408201905062006c17600083018562005f83565b62006c266020830184620067e3565b9392505050565b600060608201905062006c44600083018662005f83565b62006c536020830185620067e3565b818103604083015262006c67818462006007565b9050949350505050565b600060208201905062006c88600083018462005faf565b92915050565b600060208201905062006ca5600083018462005fdb565b92915050565b600060c08201905062006cc2600083018962005fdb565b62006cd1602083018862005f83565b62006ce0604083018762005f83565b62006cef606083018662005f83565b62006cfe608083018562005fdb565b62006d0d60a0830184620067e3565b979650505050505050565b600060408201905062006d2f600083018562005fdb565b62006d3e6020830184620067e3565b9392505050565b600060608201905062006d5c600083018662005fdb565b62006d6b6020830185620067e3565b62006d7a6040830184620067e3565b949350505050565b600060808201905062006d99600083018762005fdb565b62006da860208301866200680f565b62006db7604083018562005fdb565b62006dc6606083018462005fdb565b95945050505050565b600060208201905062006de660008301846200607f565b92915050565b600060208201905062006e03600083018462006090565b92915050565b6000602082019050818103600083015262006e258184620060b2565b905092915050565b6000602082019050818103600083015262006e4881620060f3565b9050919050565b6000602082019050818103600083015262006e6a816200619d565b9050919050565b6000602082019050818103600083015262006e8c81620061df565b9050919050565b6000602082019050818103600083015262006eae8162006247565b9050919050565b6000602082019050818103600083015262006ed081620062af565b9050919050565b6000602082019050818103600083015262006ef28162006317565b9050919050565b6000602082019050818103600083015262006f14816200637f565b9050919050565b6000602082019050818103600083015262006f3681620063e7565b9050919050565b6000602082019050818103600083015262006f58816200644f565b9050919050565b6000602082019050818103600083015262006f7a81620064b7565b9050919050565b6000602082019050818103600083015262006f9c81620064f9565b9050919050565b6000602082019050818103600083015262006fbe8162006561565b9050919050565b6000602082019050818103600083015262006fe081620065c9565b9050919050565b60006020820190508181036000830152620070028162006631565b9050919050565b60006020820190508181036000830152620070248162006673565b9050919050565b600060208201905081810360008301526200704681620066b5565b9050919050565b600060208201905081810360008301526200706881620066f7565b9050919050565b600060208201905081810360008301526200708a8162006739565b9050919050565b60006020820190508181036000830152620070ac816200677b565b9050919050565b6000602082019050620070ca6000830184620067e3565b92915050565b6000604051905081810181811067ffffffffffffffff82111715620070f457600080fd5b8060405250919050565b600067ffffffffffffffff8211156200711657600080fd5b601f19601f8301169050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b600080858511156200718a57600080fd5b838611156200719857600080fd5b6001850283019150848603905094509492505050565b6000620071bb8262007258565b9050919050565b60008115159050919050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b60006200723d82620071ae565b9050919050565b60006200725182620071ae565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006200729c8262007307565b9050919050565b6000620072b082620072b7565b9050919050565b6000620072c48262007258565b9050919050565b6000620072d882620072df565b9050919050565b6000620072ec8262007258565b9050919050565b6000620073008262007278565b9050919050565b600062007314826200731b565b9050919050565b6000620073288262007258565b9050919050565b60005b838110156200734f57808201518184015260208101905062007332565b838111156200735f576000848401525b50505050565b600062007372826200738d565b9050919050565b6000819050919050565b6000819050919050565b60006200739a82620073bc565b9050919050565b6000819050919050565b6000601f19601f8301169050919050565b60008160601b9050919050565b620073d481620071ae565b8114620073e057600080fd5b50565b620073ee81620071c2565b8114620073fa57600080fd5b50565b6200740881620071fa565b81146200741457600080fd5b50565b620074228162007204565b81146200742e57600080fd5b50565b6200743c8162007230565b81146200744857600080fd5b50565b620074568162007244565b81146200746257600080fd5b50565b620074708162007278565b81146200747c57600080fd5b5056fe608060405261001e674c05ed6aa1cd281960c01b61009760201b60201c565b610038675db0dfd7018850c360c01b61009760201b60201c565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610092679098f39fea0730f660c01b61009a60201b60201c565b61009d565b50565b50565b61080c806100ac6000396000f3fe60806040526004361061007f5760003560e01c8063bd04d1391161004e578063bd04d139146102f8578063c478196d14610364578063d1c43eae146103ba578063f77c47911461041057610086565b806326bebb521461008b5780633f579f42146100f7578063550648ff1461022057806356c2fc6c1461028c57610086565b3661008657005b600080fd5b34801561009757600080fd5b506100df600480360360208110156100ae57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610451565b60405180821515815260200191505060405180910390f35b34801561010357600080fd5b506101a56004803603606081101561011a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561016157600080fd5b82018360208201111561017357600080fd5b8035906020019184600183028401116401000000008311171561019557600080fd5b9091929391929390505050610458565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e55780820151818401526020810190506101ca565b50505050905090810190601f1680156102125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022c57600080fd5b506102746004803603602081101561024357600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061078c565b60405180821515815260200191505060405180910390f35b34801561029857600080fd5b506102e0600480360360208110156102af57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610793565b60405180821515815260200191505060405180910390f35b34801561030457600080fd5b5061034c6004803603602081101561031b57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061079e565b60405180821515815260200191505060405180910390f35b34801561037057600080fd5b506103b86004803603602081101561038757600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107a9565b005b3480156103c657600080fd5b5061040e600480360360208110156103dd57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107ac565b005b34801561041c57600080fd5b506104256107af565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000919050565b606061046e6730a6ad52e198db9760c01b6107a9565b61048267f6266a592c249da560c01b6107ac565b6104966728279893f8537e1960c01b6107ac565b6104aa67d300d0a9ecbe6cac60c01b6107ac565b6104be678d5c0caa285e3ec560c01b6107ac565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610562576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806107d4602c913960400191505060405180910390fd5b6105766718b2e4dd03bc759a60c01b6107ac565b61058a67f8b65e28b897a44f60c01b6107ac565b61059e67a0e46df01f8c97cb60c01b6107a9565b6105b267aa5eebb2652f143c60c01b6107a9565b6105c6676d9ffa8149f3dea060c01b6107a9565b6105da678cb9bb07d4779f7e60c01b6107a9565b60606105f067f5ddfa157613111160c01b6107a9565b610604676c82c2c1207b3b7760c01b6107a9565b600061061a673ff4b340667b124160c01b6107a9565b8673ffffffffffffffffffffffffffffffffffffffff1686868660405180838380828437808301925050509250505060006040518083038185875af1925050503d8060008114610686576040519150601f19603f3d011682016040523d82523d6000602084013e61068b565b606091505b5080935081925050506106a86756fbd48014b71d8b60c01b6107a9565b6106bc67e31d8723036de13060c01b6107a9565b6106d067d6b834fbc1dbf84c60c01b6107a9565b80610743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4163636f756e743a207472616e73616374696f6e20726576657274656400000081525060200191505060405180910390fd5b61075767836ca2ae34585e2360c01b6107a9565b61076b67fc0747958022859a60c01b6107a9565b61077f67127f08829e3f368c60c01b6107a9565b8192505050949350505050565b6000919050565b600060019050919050565b600060019050919050565b50565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fe436f6e74726f6c6c65643a206d73672e73656e646572206973206e6f742074686520636f6e74726f6c6c6572a164736f6c634300060c000a536166654d6174684c69623a207375627472616374696f6e206f766572666c6f77a164736f6c634300060c000a"; type PaymentRegistryConstructorParams = | [signer?: Signer] diff --git a/typings/factories/PersonalAccountImplementationV1__factory.ts b/typings/factories/PersonalAccountImplementationV1__factory.ts index 137484ba..afec1433 100644 --- a/typings/factories/PersonalAccountImplementationV1__factory.ts +++ b/typings/factories/PersonalAccountImplementationV1__factory.ts @@ -27,6 +27,210 @@ const _abi = [ name: "Initialized", type: "event", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_098c0657", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__28344ffb", + type: "bytes8", + }, + ], + name: "c_28344ffb", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__2860b96a", + type: "bytes8", + }, + ], + name: "c_2860b96a", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__4467154e", + type: "bytes8", + }, + ], + name: "c_4467154e", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_false098c0657", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__28344ffb", + type: "bytes8", + }, + ], + name: "c_false28344ffb", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__2860b96a", + type: "bytes8", + }, + ], + name: "c_false2860b96a", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__4467154e", + type: "bytes8", + }, + ], + name: "c_false4467154e", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_true098c0657", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__28344ffb", + type: "bytes8", + }, + ], + name: "c_true28344ffb", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__2860b96a", + type: "bytes8", + }, + ], + name: "c_true2860b96a", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__4467154e", + type: "bytes8", + }, + ], + name: "c_true4467154e", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [ { @@ -252,7 +456,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b50326000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610caa806100606000396000f3fe608060405234801561001057600080fd5b50600436106100925760003560e01c8063249cb3fa11610066578063249cb3fa1461047c578063392e53cd146104de5780637b103999146104fe578063c4d66de814610532578063f23a6e611461057657610092565b806223de2914610097578063150b7a02146101cf5780631626ba7e146102c557806320c13b0b1461037b575b600080fd5b6101cd600480360360c08110156100ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561013457600080fd5b82018360208201111561014657600080fd5b8035906020019184600183028401116401000000008311171561016857600080fd5b90919293919293908035906020019064010000000081111561018957600080fd5b82018360208201111561019b57600080fd5b803590602001918460018302840111640100000000831117156101bd57600080fd5b9091929391929390505050610676565b005b610290600480360360808110156101e557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561024c57600080fd5b82018360208201111561025e57600080fd5b8035906020019184600183028401116401000000008311171561028057600080fd5b9091929391929390505050610680565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b610346600480360360408110156102db57600080fd5b81019080803590602001909291908035906020019064010000000081111561030257600080fd5b82018360208201111561031457600080fd5b8035906020019184600183028401116401000000008311171561033657600080fd5b9091929391929390505050610695565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b6104476004803603604081101561039157600080fd5b81019080803590602001906401000000008111156103ae57600080fd5b8201836020820111156103c057600080fd5b803590602001918460018302840111640100000000831117156103e257600080fd5b90919293919293908035906020019064010000000081111561040357600080fd5b82018360208201111561041557600080fd5b8035906020019184600183028401116401000000008311171561043757600080fd5b90919293919293905050506107f9565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b6104c86004803603604081101561049257600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061098a565b6040518082815260200191505060405180910390f35b6104e6610a66565b60405180821515815260200191505060405180910390f35b610506610abc565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105746004803603602081101561054857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ae2565b005b610641600480360360a081101561058c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001906401000000008111156105fd57600080fd5b82018360208201111561060f57600080fd5b8035906020019184600183028401116401000000008311171561063157600080fd5b9091929391929390505050610c58565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b5050505050505050565b600063150b7a0260e01b905095945050505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1e382ce308686866040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509550505050505060206040518083038186803b15801561075c57600080fd5b505afa158015610770573d6000803e3d6000fd5b505050506040513d602081101561078657600080fd5b81019080805190602001909291905050506107a85763ffffffff60e01b6107f0565b60405160200180807f697356616c69645369676e617475726528627974657333322c62797465732900815250601f019050604051602081830303815290604052805190602001205b90509392505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663124e9eb330878787876040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff16815260200180602001806020018381038352878782818152602001925080828437600081840152601f19601f8201169050808301925050508381038252858582818152602001925080828437600081840152601f19601f82011690508083019250505097505050505050505060206040518083038186803b1580156108ec57600080fd5b505afa158015610900573d6000803e3d6000fd5b505050506040513d602081101561091657600080fd5b81019080805190602001909291905050506109385763ffffffff60e01b610980565b60405160200180807f697356616c69645369676e61747572652862797465732c627974657329000000815250601d019050604051602081830303815290604052805190602001205b9050949350505050565b60008060405160200180807f455243373737546f6b656e73526563697069656e74000000000000000000000081525060150190506040516020818303038152906040528051906020012084148015610a0d57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610a5c5760405160200180807f455243313832305f4143434550545f4d4147494300000000000000000000000081525060140190506040516020818303038152906040528051906020012090505b8091505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614610b86576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180610c6f602f913960400191505060405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e632604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600063f23a6e6160e01b9050969550505050505056fe496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742074686520696e697469616c697a6572a164736f6c634300060c000a"; + "0x608060405234801561001057600080fd5b5061002b67bcc9be562f8a4b0a60c01b6100be60201b60201c565b61004567579ae7209daca85260c01b6100be60201b60201c565b326000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061009f6729f26e2a831f76bd60c01b6100c160201b60201c565b6100b9676ec03405cf524b4d60c01b6100c460201b60201c565b6100c7565b50565b50565b50565b61153f806100d66000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c80637b103999116100b8578063b8919b571161007c578063b8919b571461088c578063c4543305146108eb578063c4d66de81461094a578063d77d07021461098e578063d84fa10c146109d7578063f23a6e6114610a3657610136565b80637b103999146107085780638116df491461073c57806387bfe79d1461079b578063a42ea708146107fa578063b851f6f91461084357610136565b8063221523e5116100ff578063221523e51461057f578063249cb3fa146105de578063392e53cd146106405780633e260b131461066057806344f9c9ec146106a957610136565b806223de291461013b5780630effa61f14610273578063150b7a02146102d25780631626ba7e146103c857806320c13b0b1461047e575b600080fd5b610271600480360360c081101561015157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156101d857600080fd5b8201836020820111156101ea57600080fd5b8035906020019184600183028401116401000000008311171561020c57600080fd5b90919293919293908035906020019064010000000081111561022d57600080fd5b82018360208201111561023f57600080fd5b8035906020019184600183028401116401000000008311171561026157600080fd5b9091929391929390505050610b36565b005b6102ba6004803603602081101561028957600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b54565b60405180821515815260200191505060405180910390f35b610393600480360360808110156102e857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561034f57600080fd5b82018360208201111561036157600080fd5b8035906020019184600183028401116401000000008311171561038357600080fd5b9091929391929390505050610b5f565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b610449600480360360408110156103de57600080fd5b81019080803590602001909291908035906020019064010000000081111561040557600080fd5b82018360208201111561041757600080fd5b8035906020019184600183028401116401000000008311171561043957600080fd5b9091929391929390505050610bb0565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b61054a6004803603604081101561049457600080fd5b81019080803590602001906401000000008111156104b157600080fd5b8201836020820111156104c357600080fd5b803590602001918460018302840111640100000000831117156104e557600080fd5b90919293919293908035906020019064010000000081111561050657600080fd5b82018360208201111561051857600080fd5b8035906020019184600183028401116401000000008311171561053a57600080fd5b9091929391929390505050610d87565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b6105c66004803603602081101561059557600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610f8b565b60405180821515815260200191505060405180910390f35b61062a600480360360408110156105f457600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f92565b6040518082815260200191505060405180910390f35b61064861113c565b60405180821515815260200191505060405180910390f35b6106a76004803603602081101561067657600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506111cf565b005b6106f0600480360360208110156106bf57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506111d2565b60405180821515815260200191505060405180910390f35b6107106111dd565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107836004803603602081101561075257600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611203565b60405180821515815260200191505060405180910390f35b6107e2600480360360208110156107b157600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061120e565b60405180821515815260200191505060405180910390f35b6108416004803603602081101561081057600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611215565b005b61088a6004803603602081101561085957600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611218565b005b6108d3600480360360208110156108a257600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061121b565b60405180821515815260200191505060405180910390f35b6109326004803603602081101561090157600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611222565b60405180821515815260200191505060405180910390f35b61098c6004803603602081101561096057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061122d565b005b6109d5600480360360208110156109a457600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506114a7565b005b610a1e600480360360208110156109ed57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506114aa565b60405180821515815260200191505060405180910390f35b610b01600480360360a0811015610a4c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190640100000000811115610abd57600080fd5b820183602082011115610acf57600080fd5b80359060200191846001830284011164010000000083111715610af157600080fd5b90919293919293905050506114b1565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b610b4a67ce47c0f946eadb1860c01b611218565b5050505050505050565b600060019050919050565b6000610b7567b827fecf1e33001460c01b611218565b610b8967b3558d27713bcbc360c01b611218565b610b9d67ca5809ab03b36cc360c01b611218565b63150b7a0260e01b905095945050505050565b6000610bc667d15cb231db01bd9560c01b611218565b610bda67cf444c026e53d2b560c01b611218565b610bee67feb865187e703ce360c01b611218565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1e382ce308686866040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509550505050505060206040518083038186803b158015610cb357600080fd5b505afa158015610cc7573d6000803e3d6000fd5b505050506040513d6020811015610cdd57600080fd5b81019080805190602001909291905050508015610d0a5750610d0967dcb61cbea4e09a8a60c01b610b54565b5b80610d255750610d2467597b2a0b23f7987b60c01b61121b565b5b610d365763ffffffff60e01b610d7e565b60405160200180807f697356616c69645369676e617475726528627974657333322c62797465732900815250601f019050604051602081830303815290604052805190602001205b90509392505050565b6000610d9d679d53a108f4152ee460c01b611218565b610db1678f46380630213e2760c01b611218565b610dc5670444693b6dda2f5360c01b611218565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663124e9eb330878787876040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff16815260200180602001806020018381038352878782818152602001925080828437600081840152601f19601f8201169050808301925050508381038252858582818152602001925080828437600081840152601f19601f82011690508083019250505097505050505050505060206040518083038186803b158015610eb657600080fd5b505afa158015610eca573d6000803e3d6000fd5b505050506040513d6020811015610ee057600080fd5b81019080805190602001909291905050508015610f0d5750610f0c67597e334f5a972f1e60c01b610b54565b5b80610f285750610f2767624be475bd07a4c360c01b61121b565b5b610f395763ffffffff60e01b610f81565b60405160200180807f697356616c69645369676e61747572652862797465732c627974657329000000815250601d019050604051602081830303815290604052805190602001205b9050949350505050565b6000919050565b6000610fa8674fa492bc3d866f9660c01b611218565b610fbc67f11658511bdad90960c01b611218565b610fd067aea7b4d1358b312860c01b611218565b6000610fe667c7d74f3aaa7aa17a60c01b611218565b610ffa670b029f119a0e101260c01b611218565b60405160200180807f455243373737546f6b656e73526563697069656e7400000000000000000000008152506015019050604051602081830303815290604052805190602001208414801561107a57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156110f55761109367159f49977ceb711e60c01b611218565b6110a767a1697c883c2b4d5f60c01b611218565b60405160200180807f455243313832305f4143434550545f4d41474943000000000000000000000000815250601401905060405160208183030381529060405280519060200120905061110a565b6111096740bc089d08a45f7660c01b611218565b5b61111e675edb1ebe087f56d760c01b611218565b61113267b6341297d7ddf48460c01b611218565b8091505092915050565b600061115267e29fe2f351ca6b2760c01b6111cf565b611166676f5dd3f08b97747760c01b6111cf565b61117a673a9488d62818322a60c01b6111cf565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b50565b600060019050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019050919050565b6000919050565b50565b50565b6000919050565b600060019050919050565b611241678fa2e2799025577f60c01b611218565b61125567d2ba19feb39e0b7f60c01b6111cf565b611269670c5ad53cdb9edd1560c01b6111cf565b61127d67b6b588d2ebb9ae6960c01b6111cf565b61129167c4ec9a90a885875260c01b6111cf565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180611504602f913960400191505060405180910390fd5b61134967c3785ba1534db95460c01b6111cf565b61135d67e4202927591248ef60c01b6111cf565b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506113b267531cfa2817fbdc8660c01b6111cf565b6113c6670fe7483554c7d7f060c01b611218565b6113da671ba251afbdd08eb960c01b611218565b6113ee67e4b4698cdfd724ee60c01b611218565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506114436701520f419008b58e60c01b6111cf565b6114576775364c04848b013b60c01b6111cf565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e632604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b50565b6000919050565b60006114c76773b65ea4d003e8c060c01b611218565b6114db67efee7b06625db93660c01b611218565b6114ef6733114e923245121260c01b611218565b63f23a6e6160e01b9050969550505050505056fe496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742074686520696e697469616c697a6572a164736f6c634300060c000a"; type PersonalAccountImplementationV1ConstructorParams = | [signer?: Signer] diff --git a/typings/factories/PersonalAccountRegistry__factory.ts b/typings/factories/PersonalAccountRegistry__factory.ts index 709c0a69..c74aa37f 100644 --- a/typings/factories/PersonalAccountRegistry__factory.ts +++ b/typings/factories/PersonalAccountRegistry__factory.ts @@ -292,6 +292,312 @@ const _abi = [ stateMutability: "nonpayable", type: "function", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_098c0657", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__0b6945c4", + type: "bytes8", + }, + ], + name: "c_0b6945c4", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__279b00a1", + type: "bytes8", + }, + ], + name: "c_279b00a1", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__9649d652", + type: "bytes8", + }, + ], + name: "c_9649d652", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__bf6efb80", + type: "bytes8", + }, + ], + name: "c_bf6efb80", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__d18be0f9", + type: "bytes8", + }, + ], + name: "c_d18be0f9", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_false098c0657", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__0b6945c4", + type: "bytes8", + }, + ], + name: "c_false0b6945c4", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__279b00a1", + type: "bytes8", + }, + ], + name: "c_false279b00a1", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__9649d652", + type: "bytes8", + }, + ], + name: "c_false9649d652", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__bf6efb80", + type: "bytes8", + }, + ], + name: "c_falsebf6efb80", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__d18be0f9", + type: "bytes8", + }, + ], + name: "c_falsed18be0f9", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_true098c0657", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__0b6945c4", + type: "bytes8", + }, + ], + name: "c_true0b6945c4", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__279b00a1", + type: "bytes8", + }, + ], + name: "c_true279b00a1", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__9649d652", + type: "bytes8", + }, + ], + name: "c_true9649d652", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__bf6efb80", + type: "bytes8", + }, + ], + name: "c_truebf6efb80", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__d18be0f9", + type: "bytes8", + }, + ], + name: "c_trued18be0f9", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [ { @@ -657,7 +963,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b5032600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506144d1806100616000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806390482d72116100b8578063d0f710d61161007c578063d0f710d61461075e578063da9fc1ae146107f7578063db63f5821461083b578063e1e382ce1461089f578063e5c7278f14610958578063f4876c7414610a1b57610142565b806390482d7214610545578063a526d83b146105fe578063bb890d3f14610642578063cade6a5d146106bc578063d089e11a1461072a57610142565b80631a8414031161010a5780631a841403146103515780633164b5e1146103bf57806334d323a414610419578063392e53cd1461049d57806343013c24146104bd578063714041561461050157610142565b80630900f010146101475780630c68ba211461018b57806311464fbe146101e5578063116191b614610219578063124e9eb31461024d575b600080fd5b6101896004803603602081101561015d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a7f565b005b6101cd600480360360208110156101a157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b2e565b60405180821515815260200191505060405180910390f35b6101ed610b83565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610221610ba9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103396004803603606081101561026357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156102a057600080fd5b8201836020820111156102b257600080fd5b803590602001918460018302840111640100000000831117156102d457600080fd5b9091929391929390803590602001906401000000008111156102f557600080fd5b82018360208201111561030757600080fd5b8035906020019184600183028401116401000000008311171561032957600080fd5b9091929391929390505050610bcf565b60405180821515815260200191505060405180910390f35b6103bd6004803603606081101561036757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c88565b005b610401600480360360208110156103d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ef3565b60405180821515815260200191505060405180910390f35b6104856004803603606081101561042f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f4c565b60405180821515815260200191505060405180910390f35b6104a561103a565b60405180821515815260200191505060405180910390f35b6104ff600480360360208110156104d357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611092565b005b6105436004803603602081101561051757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110aa565b005b6105fc6004803603606081101561055b57600080fd5b810190808035906020019064010000000081111561057857600080fd5b82018360208201111561058a57600080fd5b803590602001918460208302840111640100000000831117156105ac57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611370565b005b6106406004803603602081101561061457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611508565b005b6106a46004803603604081101561065857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115b5565b60405180821515815260200191505060405180910390f35b6106fe600480360360208110156106d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115c9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107326115db565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107df6004803603604081101561077457600080fd5b81019080803590602001909291908035906020019064010000000081111561079b57600080fd5b8201836020820111156107ad57600080fd5b803590602001918460018302840111640100000000831117156107cf57600080fd5b9091929391929390505050611601565b60405180821515815260200191505060405180910390f35b6108396004803603602081101561080d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061165a565b005b61089d6004803603604081101561085157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611670565b005b610940600480360360608110156108b557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156108fc57600080fd5b82018360208201111561090e57600080fd5b8035906020019184600183028401116401000000008311171561093057600080fd5b9091929391929390505050611905565b60405180821515815260200191505060405180910390f35b610a196004803603608081101561096e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156109d557600080fd5b8201836020820111156109e757600080fd5b80359060200191846001830284011164010000000083111715610a0957600080fd5b9091929391929390505050611971565b005b610a7d60048036036040811015610a3157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119de565b005b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610b20576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806143e46026913960400191505060405180910390fd5b610b2b816001611d0d565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610c7d86610c7885858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610c6a89898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611e4e565b611fb790919063ffffffff16565b612087565b905095945050505050565b610c918361223e565b50610c9b83612685565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d2f57610d29833283600067ffffffffffffffff81118015610cee57600080fd5b506040519080825280601f01601f191660200182016040528015610d215781602001600182028036833780820191505090505b506000612786565b50610e5d565b6060610dd38484600063a9059cbb60e01b3287604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506000612786565b9050600081511115610e5b57808060200190516020811015610df457600080fd5b8101908080519060200190929190505050610e5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603581526020018061440a6035913960400191505060405180910390fd5b5b505b7feb5511fbef89123439f12682f0e9d0fc9696913b26eee55434c77d62c30aa7ca83328484604051808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200194505050505060405180910390a1505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff169050919050565b60008060009050610f5d8585612087565b15610f6b576001905061102f565b61102c83600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff16151515158152602001600182015481525050612c5490919063ffffffff16565b90505b809150509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b61109b8161223e565b506110a7816001612ca3565b50565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661114b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806143e46026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614156111ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f477561726465643a2063616e6e6f742072656d6f76652073656c66000000000081525060200191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166112ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f477561726465643a20677561726469616e20646f65736e27742065786973740081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fee943cdb81826d5909c559c6b1ae6908fcaf2dbc16c4b730346736b486283e8b3282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611416576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180614318602f913960400191505060405180910390fd5b6000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506114a2848480806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050612f05565b6114ac3083612f5d565b6114b581612f77565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e632604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150505050565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166115a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806143e46026913960400191505060405180910390fd5b6115b281612fbb565b50565b60006115c18383612087565b905092915050565b60006115d4826131e2565b9050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006116518484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050613238565b90509392505050565b6116638161223e565b5061166d81612685565b50565b600061167b8361223e565b90508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611702576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806143b9602b913960400191505060405180910390fd5b6117b9600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff161515151581526020016001820154815250506132a5565b61180e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806142b7602c913960400191505060405180910390fd5b43600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055507f1ce3cbbc43ee231e5b950332f2b0b9dd7d349291a3ee411ce5c5c7ed745661bb8383604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1505050565b60006119678561196285858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505087611fb790919063ffffffff16565b612087565b9050949350505050565b61197a8561223e565b5061198485612685565b6119d685858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506001612786565b505050505050565b6119e78261223e565b50600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611a6e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180614498602d913960400191505060405180910390fd5b611b25600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff161515151581526020016001820154815250506132a5565b15611b7b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018061446b602d913960400191505060405180910390fd5b6001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055507f27e282f7712c5b4617277759c834b86d163dfc1aad25c8c3c5926a1c9e5644688282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b81526020018061421e603b913960400191505060405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508015611e4a577f70d9f5a076620216a6050e493f3ce69749de0b68fa4b839ba2518660ba8b9cf0600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5050565b6000611e5a82516132b8565b826040516020018082805190602001908083835b60208310611e915780518252602082019150602081019050602083039250611e6e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405260405160200180807f19457468657265756d205369676e6564204d6573736167653a0a000000000000815250601a0183805190602001908083835b60208310611f235780518252602082019150602081019050602083039250611f00565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310611f745780518252602082019150602081019050602083039250611f51565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052805190602001209050919050565b6000806000905060418351141561207d5760008060006020860151925060408601519150606086015160001a9050601b8160ff161015611ff857601b810190505b601b8160ff16148061200d5750601c8160ff16145b156120795760018782858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561206c573d6000803e3d6000fd5b5050506020604051035193505b5050505b8091505092915050565b600080600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16156121ac576000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154149050612234565b6000801b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154141561223357612202836131e2565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161490505b5b8091505092915050565b6000806122496133ff565b9050600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16156123c0576000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154146123bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806142596038913960400191505060405180910390fd5b61267c565b6000801b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101541461245d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806142596038913960400191505060405180910390fd5b600081604051602001808273ffffffffffffffffffffffffffffffffffffffff1660601b81526014019150506040516020818303038152906040528051906020012090506124aa81613410565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461252d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806142596038913960400191505060405180910390fd5b80600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055506001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055507f27e282f7712c5b4617277759c834b86d163dfc1aad25c8c3c5926a1c9e5644688483604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1505b80915050919050565b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff1661278357612726600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546001613606565b506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055505b50565b6060600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561280e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806143476025913960400191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415612893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061443f602c913960400191505060405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415612918576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806142916026913960400191505060405180910390fd5b60608673ffffffffffffffffffffffffffffffffffffffff16633f579f428787876040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156129aa57808201518184015260208101905061298f565b50505050905090810190601f1680156129d75780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156129f857600080fd5b505af1158015612a0c573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015612a3657600080fd5b8101908080516040519392919084640100000000821115612a5657600080fd5b83820191506020820185811115612a6c57600080fd5b8251866001820283011164010000000082111715612a8957600080fd5b8083526020830192505050908051906020019080838360005b83811015612abd578082015181840152602081019050612aa2565b50505050905090810190601f168015612aea5780820380516001836020036101000a031916815260200191505b5060405250505090508215612c47577f99eeae1fb8801e2e878e060ec5e5b3557b3c4f8106e35d88cb573f293dae4e248787878785604051808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015612ba1578082015181840152602081019050612b86565b50505050905090810190601f168015612bce5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015612c07578082015181840152602081019050612bec565b50505050905090810190601f168015612c345780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a15b8091505095945050505050565b60008060009050836000015115612c9957600084602001511415612c7b5760019050612c98565b6000831415612c8d5760019050612c97565b8284602001511190505b5b5b8091505092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b815260040160206040518083038186803b158015612d2257600080fd5b505afa158015612d36573d6000803e3d6000fd5b505050506040513d6020811015612d4c57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff161415612dca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018061438e602b913960400191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663d784d426600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015612e5557600080fd5b505af1158015612e69573d6000803e3d6000fd5b505050508015612f01577feec27cdb8bd6f55c2c537deb52ab094a2437e85ef5197e6f064f90bff3ff563f82600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15b5050565b600081511415612f1d57612f1832612fbb565b612f5a565b60008151905060005b81811015612f5757612f4a838281518110612f3d57fe5b6020026020010151612fbb565b8080600101915050612f26565b50505b50565b612f6882600061375a565b612f73816000611d0d565b5050565b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561305e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f477561726465643a2063616e6e6f74206164642030783020677561726469616e81525060200191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561311d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f477561726465643a20677561726469616e20616c72656164792065786973747381525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fbc3292102fa77e083913064b282926717cdfaede4d35f553d66366c0a3da755a3282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b60008082604051602001808273ffffffffffffffffffffffffffffffffffffffff1660601b815260140191505060405160208183030381529060405280519060200120905061323081613410565b915050919050565b60008061324e8385611fb790919063ffffffff16565b90506000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b60006132b18243612c54565b9050919050565b60606000821415613300576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506133fa565b600082905060005b6000821461332a578080600101915050600a828161332257fe5b049150613308565b60608167ffffffffffffffff8111801561334357600080fd5b506040519080825280601f01601f1916602001820160405280156133765781602001600182028036833780820191505090505b50905060006001830390508593505b600084146133f257600a848161339757fe5b0660300160f81b828280600190039350815181106133b157fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84816133ea57fe5b049350613385565b819450505050505b919050565b600061340b601461389b565b905090565b600060606040518060200161342490613a8c565b6020820181038252601f19601f82011660405250600060a01b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600060a01b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516020018086805190602001908083835b602083106134be578051825260208201915060208101905060208303925061349b565b6001836020036101000a0380198251168184511680821785525050505050509050018573ffffffffffffffffffffffffffffffffffffffff19168152600c018473ffffffffffffffffffffffffffffffffffffffff1660601b81526014018373ffffffffffffffffffffffffffffffffffffffff19168152600c018273ffffffffffffffffffffffffffffffffffffffff1660601b8152601401955050505050506040516020818303038152906040529050600060ff60f81b3085848051906020012060405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018473ffffffffffffffffffffffffffffffffffffffff1660601b81526014018381526020018281526020019450505050506040516020818303038152906040528051906020012090508060001c92505050919050565b60008083600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161365c90613a8c565b808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff168152602001925050508190604051809103906000f59050801580156136b9573d6000803e3d6000fd5b5090508215613750577f2682a218602b9036c9869f006c5405ee4a1a65267653eb7e286123e5e1afde4c81600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156137e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806142e36035913960400191505060405180910390fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508015613897577f02e3c47057b8dc27a0929d3c394c314c73aa002d46939c31c9f71d1e77e86c10600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5050565b600080600090506138aa613930565b1561392357600083600036905003905061391b600036839060148501926138d393929190613a99565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506139f3565b915050613927565b3390505b80915050919050565b600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156139ec57602c600036905010156139e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061436c6022913960400191505060405180910390fd5b600190505b8091505090565b6000806014835114613a6d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f42797465734c69623a20696e76616c69642064617461206c656e67746800000081525060200191505060405180910390fd5b6c01000000000000000000000000602084015104905080915050919050565b61075180613acd83390190565b60008085851115613aa957600080fd5b83861115613ab657600080fd5b600185028301915084860390509450949250505056fe608060405234801561001057600080fd5b506040516107513803806107518339818101604052604081101561003357600080fd5b810190808051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050610630806101216000396000f3fe60806040526004361061004e5760003560e01c80633f579f42146100be5780635c60da1b146101e75780637b10399914610228578063d784d42614610269578063f77c4791146102ba57610055565b3661005557005b34801561006157600080fd5b50600080369050146100bc576000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050368060008037600080826000855af43d806000803e81600081146100b757816000f35b816000fd5b005b3480156100ca57600080fd5b5061016c600480360360608110156100e157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561012857600080fd5b82018360208201111561013a57600080fd5b8035906020019184600183028401116401000000008311171561015c57600080fd5b90919293919293905050506102fb565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ac578082015181840152602081019050610191565b50505050905090810190601f1680156101d95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101f357600080fd5b506101fc61049f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561023457600080fd5b5061023d6104c5565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561027557600080fd5b506102b86004803603602081101561028c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104eb565b005b3480156102c657600080fd5b506102cf6105d3565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b606060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806105f8602c913960400191505060405180910390fd5b606060008673ffffffffffffffffffffffffffffffffffffffff1686868660405180838380828437808301925050509250505060006040518083038185875af1925050503d8060008114610411576040519150601f19603f3d011682016040523d82523d6000602084013e610416565b606091505b50809350819250505080610492576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4163636f756e743a207472616e73616374696f6e20726576657274656400000081525060200191505060405180910390fd5b8192505050949350505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461058f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806105f8602c913960400191505060405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fe436f6e74726f6c6c65643a206d73672e73656e646572206973206e6f742074686520636f6e74726f6c6c6572a164736f6c634300060c000a4163636f756e74436f6e74726f6c6c65723a2063616e6e6f7420736574206163636f756e7420496d706c656d656e746174696f6e20746f20307830506572736f6e616c4163636f756e7452656769737472793a2073656e646572206973206e6f7420746865206163636f756e74206f776e65724163636f756e74436f6e74726f6c6c65723a2063616e6e6f742073656e6420746f2073656c66506572736f6e616c4163636f756e7452656769737472793a206f776e657220646f65736e27742065786973744163636f756e74436f6e74726f6c6c65723a2063616e6e6f7420736574206163636f756e7420726567697374727920746f20307830496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742074686520696e697469616c697a65724163636f756e74436f6e74726f6c6c65723a2063616e6e6f742073656e6420746f2030783047617465776179526563697069656e743a20696e76616c6964206d73672e646174614163636f756e74436f6e74726f6c6c65723a206163636f756e7420616c7265616479207570677261646564506572736f6e616c4163636f756e7452656769737472793a2063616e6e6f742072656d6f76652073656c66477561726465643a2074782e6f726967696e206973206e6f742074686520677561726469616e506572736f6e616c4163636f756e7452656769737472793a204552433230546f6b656e207472616e736665722072657665727465644163636f756e74436f6e74726f6c6c65723a2063616e6e6f742073656e6420746f20636f6e74726f6c6c6572506572736f6e616c4163636f756e7452656769737472793a206f776e657220616c726561647920657869737473506572736f6e616c4163636f756e7452656769737472793a2063616e6e6f742061646420307830206f776e6572a164736f6c634300060c000a"; + "0x60806040523480156200001157600080fd5b506200002e67e6ad6dd6ee73072860c01b6200010160201b60201c565b6200004a67f9592435f5b5ea8c60c01b6200010460201b60201c565b6200006667bcc9be562f8a4b0a60c01b6200010760201b60201c565b6200008267579ae7209daca85260c01b6200010760201b60201c565b32600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000df674f33f857671bcade60c01b6200010a60201b60201c565b620000fb67545494087376439e60c01b6200010d60201b60201c565b62000110565b50565b50565b50565b50565b50565b617d4b80620001206000396000f3fe60806040523480156200001157600080fd5b5060043610620002805760003560e01c8063964f672a1162000159578063d089e11a11620000c9578063e1e382ce1162000087578063e1e382ce1462000fd0578063e5c7278f146200108f578063f0af07211462001158578063f0e97b3314620011a4578063f4876c7414620012065762000280565b8063d089e11a1462000deb578063d0f710d61462000e21578063d84fa10c1462000ec0578063da9fc1ae1462000f22578063db63f5821462000f695762000280565b8063ad8bbdec1162000117578063ad8bbdec1462000bed578063bb890d3f1462000c4f578063bccb31c61462000ccc578063c45433051462000d18578063cade6a5d1462000d7a5762000280565b8063964f672a1462000a3457806399066bc61462000a965780639f106f7e1462000ae2578063a3561e691462000b44578063a526d83b1462000ba65762000280565b806334d323a411620001f5578063614b6c8211620001b3578063614b6c821462000808578063692b0ad9146200086a5780637140415614620008cc57806382fa0d1e146200091357806390482d7214620009755762000280565b806334d323a41462000680578063392e53cd14620007075780633e260b13146200072957806343013c2414620007755780635db3fe3914620007bc5762000280565b8063124e9eb31162000243578063124e9eb314620003e15780631a84140314620004ee5780631aa316db146200055f57806329fbd95714620005c15780633164b5e114620006235762000280565b80630900f01014620002855780630c68ba2114620002cc57806311464fbe1462000329578063116191b6146200035f578063117921d91462000395575b600080fd5b620002ca600480360360208110156200029d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200126d565b005b6200031160048036036020811015620002e457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062001412565b60405180821515815260200191505060405180910390f35b62000333620014a9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b62000369620014cf565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b620003df60048036036020811015620003ad57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050620014f5565b005b620004d660048036036060811015620003f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156200043757600080fd5b8201836020820111156200044a57600080fd5b803590602001918460018302840111640100000000831117156200046d57600080fd5b9091929391929390803590602001906401000000008111156200048f57600080fd5b820183602082011115620004a257600080fd5b80359060200191846001830284011164010000000083111715620004c557600080fd5b9091929391929390505050620014f8565b60405180821515815260200191505060405180910390f35b6200055d600480360360608110156200050657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050620015f9565b005b620005a9600480360360208110156200057757600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062001a74565b60405180821515815260200191505060405180910390f35b6200060b60048036036020811015620005d957600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062001a7f565b60405180821515815260200191505060405180910390f35b62000668600480360360208110156200063b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062001a8a565b60405180821515815260200191505060405180910390f35b620006ef600480360360608110156200069857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505062001b25565b60405180821515815260200191505060405180910390f35b6200071162001d08565b60405180821515815260200191505060405180910390f35b62000773600480360360208110156200074157600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062001da3565b005b620007ba600480360360208110156200078d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062001da6565b005b6200080660048036036020811015620007d457600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062001e30565b005b62000852600480360360208110156200082057600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062001e33565b60405180821515815260200191505060405180910390f35b620008b4600480360360208110156200088257600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062001e3e565b60405180821515815260200191505060405180910390f35b6200091160048036036020811015620008e457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062001e45565b005b6200095d600480360360208110156200092b57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050620022c7565b60405180821515815260200191505060405180910390f35b62000a32600480360360608110156200098d57600080fd5b8101908080359060200190640100000000811115620009ab57600080fd5b820183602082011115620009be57600080fd5b80359060200191846020830284011164010000000083111715620009e157600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050620022d2565b005b62000a7e6004803603602081101562000a4c57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050620025fe565b60405180821515815260200191505060405180910390f35b62000ae06004803603602081101562000aae57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062002605565b005b62000b2c6004803603602081101562000afa57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062002608565b60405180821515815260200191505060405180910390f35b62000b8e6004803603602081101562000b5c57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062002613565b60405180821515815260200191505060405180910390f35b62000beb6004803603602081101562000bbe57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200261a565b005b62000c376004803603602081101562000c0557600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050620027bd565b60405180821515815260200191505060405180910390f35b62000cb46004803603604081101562000c6757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050620027c4565b60405180821515815260200191505060405180910390f35b62000d166004803603602081101562000ce457600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506200281c565b005b62000d626004803603602081101562000d3057600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506200281f565b60405180821515815260200191505060405180910390f35b62000dbf6004803603602081101562000d9257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200282a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b62000df562002880565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b62000ea86004803603604081101562000e3957600080fd5b81019080803590602001909291908035906020019064010000000081111562000e6157600080fd5b82018360208201111562000e7457600080fd5b8035906020019184600183028401116401000000008311171562000e9757600080fd5b9091929391929390505050620028a6565b60405180821515815260200191505060405180910390f35b62000f0a6004803603602081101562000ed857600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062002943565b60405180821515815260200191505060405180910390f35b62000f676004803603602081101562000f3a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200294a565b005b62000fce6004803603604081101562000f8157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050620029d2565b005b620010776004803603606081101562000fe857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156200103057600080fd5b8201836020820111156200104357600080fd5b803590602001918460018302840111640100000000831117156200106657600080fd5b909192939192939050505062002da3565b60405180821515815260200191505060405180910390f35b6200115660048036036080811015620010a757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156200110f57600080fd5b8201836020820111156200112257600080fd5b803590602001918460018302840111640100000000831117156200114557600080fd5b909192939192939050505062002e55565b005b620011a2600480360360208110156200117057600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062002f62565b005b620011ee60048036036020811015620011bc57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505062002f65565b60405180821515815260200191505060405180910390f35b6200126b600480360360408110156200121e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062002f6c565b005b6200128367e18aef04d0a3e7fd60c01b620014f5565b6200129967e0600b94c13d066760c01b6200281c565b620012af6755e8cedcdd449e2360c01b6200281c565b620012c567ab821ba7fedab67160c01b6200281c565b620012db67c540fbd78e0e2a4960c01b6200281c565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166200137e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018062007c5e6026913960400191505060405180910390fd5b6200139467d014260b312542b460c01b6200281c565b620013aa674e25985d1c99d1f260c01b6200281c565b620013c067bde425c8c34183d160c01b620014f5565b620013d66716dfdb0ce3bf1a4060c01b620014f5565b620013ec6770d8631575aaca4460c01b620014f5565b62001402674fc959c4242125e760c01b620014f5565b6200140f816001620033ed565b50565b60006200142a677ab52c65f999e01f60c01b6200281c565b620014406710268b7b424a1bd560c01b6200281c565b620014566713a157f311059a7b60c01b6200281c565b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b50565b60006200151067949773e889da548b60c01b620014f5565b6200152667f5190637de1d985760c01b620014f5565b6200153c671283ba3d6ea74c0a60c01b620014f5565b620015ee86620015e885858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050620015d989898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506200363f565b620037f290919063ffffffff16565b62003b51565b905095945050505050565b6200160f6775afb3da4fd8e1a760c01b620014f5565b6200162567bfa2decb6c19dc2d60c01b620014f5565b6200163b67f4a1ea1f4f5b73f860c01b620014f5565b620016468362003e48565b506200165d67ed9e75bb5506131060c01b620014f5565b620016736715149635d91133b360c01b620014f5565b6200167e83620044ee565b6200169467103a19a679a70be660c01b620014f5565b620016aa67966e805ee7f4488860c01b620014f5565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200178657620016f667b550661105a5e6c160c01b620014f5565b6200170c6778466374c5e817e760c01b620014f5565b6200172267f69688cc9cb79e3e60c01b620014f5565b6200177f833283600067ffffffffffffffff811180156200174257600080fd5b506040519080825280601f01601f191660200182016040528015620017765781602001600182028036833780820191505090505b506000620046a7565b50620019b2565b6200179c676d2f127c6cbded8b60c01b620014f5565b620017b267c55f6a870f441ea360c01b620014f5565b620017c867e6169000db7124bb60c01b620014f5565b60606200186e8484600063a9059cbb60e01b3287604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506000620046a7565b90506200188667101f3d9ea840d48460c01b620014f5565b6200189c674738e61390960d2160c01b620014f5565b6000815111156200199957620018bd6767f3391e72f7277c60c01b620014f5565b620018d367a2cad286bddc35c860c01b620014f5565b620018e967268be481c9d59d1d60c01b620014f5565b620018ff67983f6fa6c3ed02a760c01b620014f5565b8080602001905160208110156200191557600080fd5b81019080805190602001909291905050506200197d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603581526020018062007c846035913960400191505060405180910390fd5b6200199367dd178cef5d9f784360c01b620014f5565b620019b0565b620019af6755daecce03b98ded60c01b620014f5565b5b505b620019c867a40448aea0b9209a60c01b620014f5565b620019de671253b49880e9934960c01b620014f5565b7feb5511fbef89123439f12682f0e9d0fc9696913b26eee55434c77d62c30aa7ca83328484604051808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200194505050505060405180910390a1505050565b600060019050919050565b600060019050919050565b600062001aa267708237df46d4591860c01b620014f5565b62001ab867d221cc5f2e35948d60c01b620014f5565b62001ace6765dfcb590b568f9b60c01b620014f5565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff169050919050565b600062001b3d6732cd5b0dba9710d060c01b620014f5565b62001b53673020761b9813024460c01b620014f5565b62001b6967878b732ad1f1d98060c01b620014f5565b600062001b8167607ee862765df6de60c01b620014f5565b62001b976756ffa96c87add8b460c01b620014f5565b62001ba3858562003b51565b1562001bdf5762001bbf67714b36fd9436b49d60c01b620014f5565b62001bd5673b53315bebb8e15660c01b620014f5565b6001905062001cd1565b62001bf56713be24a30d0dcecd60c01b620014f5565b62001c0b67b87ae6f22a7b024e60c01b620014f5565b62001cce83600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff1615151515815260200160018201548152505062004d8e90919063ffffffff16565b90505b62001ce7673aff67691d44290e60c01b620014f5565b62001cfd67b3bc166758e3426460c01b620014f5565b809150509392505050565b600062001d2067e29fe2f351ca6b2760c01b62001da3565b62001d36676f5dd3f08b97747760c01b62001da3565b62001d4c673a9488d62818322a60c01b62001da3565b600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b50565b62001dbc67e5e772a16aa01e8160c01b620014f5565b62001dd267e47d8686f2af7ef060c01b620014f5565b62001de8678349c7ebd0a81a5f60c01b620014f5565b62001df38162003e48565b5062001e0a670afc4f30eeb71fbf60c01b620014f5565b62001e2067571c5a8b2b0a8b8460c01b620014f5565b62001e2d81600162004f87565b50565b50565b600060019050919050565b6000919050565b62001e5b6747dd6d4e27a092d260c01b6200281c565b62001e7167e0600b94c13d066760c01b6200281c565b62001e876755e8cedcdd449e2360c01b6200281c565b62001e9d67ab821ba7fedab67160c01b6200281c565b62001eb367c540fbd78e0e2a4960c01b6200281c565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1662001f56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018062007c5e6026913960400191505060405180910390fd5b62001f6c67d014260b312542b460c01b6200281c565b62001f82674e25985d1c99d1f260c01b6200281c565b62001f9867736984febec5fd2560c01b6200281c565b62001fae67cbb923c66996310360c01b6200281c565b62001fc4672c114aff1103564b60c01b6200281c565b62001fda67a76a63e34be2bddb60c01b6200281c565b62001ff067a220bc889ca09d2360c01b6200281c565b8073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16141562002093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f477561726465643a2063616e6e6f742072656d6f76652073656c66000000000081525060200191505060405180910390fd5b620020a9679467d7af09c5944d60c01b6200281c565b620020bf67c28a58b1b15ad6de60c01b6200281c565b620020d567c70b0fecc7c6d3b160c01b6200281c565b620020eb67e7892f9392d41a6760c01b6200281c565b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16620021aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f477561726465643a20677561726469616e20646f65736e27742065786973740081525060200191505060405180910390fd5b620021c0675a0de441d13969aa60c01b6200281c565b620021d6674e473b0a29064fba60c01b6200281c565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200224367e398e5606400274660c01b6200281c565b620022596738c3bd156a3471c260c01b6200281c565b7fee943cdb81826d5909c559c6b1ae6908fcaf2dbc16c4b730346736b486283e8b3282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b600060019050919050565b620022e8672d986a70dd19978660c01b620014f5565b620022fe67d2ba19feb39e0b7f60c01b62001da3565b62002314670c5ad53cdb9edd1560c01b62001da3565b6200232a67b6b588d2ebb9ae6960c01b62001da3565b6200234067c4ec9a90a885875260c01b62001da3565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614620023e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018062007b92602f913960400191505060405180910390fd5b620023fe67c3785ba1534db95460c01b62001da3565b6200241467e4202927591248ef60c01b62001da3565b6000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200246c67531cfa2817fbdc8660c01b62001da3565b620024826710d2ca647caa13ef60c01b620014f5565b6200249867c5e1073362bb30bb60c01b620014f5565b620024ae677c2fc0c623f34f1760c01b620014f5565b620024c46754d9e88ab3a297b760c01b620014f5565b62002510848480806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505062005315565b6200252667521fd40cd7f8760560c01b620014f5565b6200253c67b4edb6f6ff7b15b260c01b620014f5565b62002548308362005494565b6200255e677d8bd3a05f4b6b6a60c01b620014f5565b6200257467544450e83605438c60c01b620014f5565b6200257f8162005520565b620025956701520f419008b58e60c01b62001da3565b620025ab6775364c04848b013b60c01b62001da3565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e632604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150505050565b6000919050565b50565b600060019050919050565b6000919050565b6200263067c17b66a0b198af7b60c01b6200281c565b6200264667e0600b94c13d066760c01b6200281c565b6200265c6755e8cedcdd449e2360c01b6200281c565b6200267267ab821ba7fedab67160c01b6200281c565b6200268867c540fbd78e0e2a4960c01b6200281c565b6000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166200272b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018062007c5e6026913960400191505060405180910390fd5b6200274167d014260b312542b460c01b6200281c565b62002757674e25985d1c99d1f260c01b6200281c565b6200276d67dfa24a8cc198350160c01b6200281c565b6200278367f9907d82cd18ee0760c01b6200281c565b6200279967dd37ee49f553c5a760c01b6200281c565b620027af679ad66b1d98f77fdf60c01b6200281c565b620027ba8162005590565b50565b6000919050565b6000620027dc67d9f40698cdafefb460c01b620014f5565b620027f26706b914512d0ddf8e60c01b620014f5565b6200280867a9eddccc515ae51b60c01b620014f5565b62002814838362003b51565b905092915050565b50565b600060019050919050565b60006200284267f4a161f24085f2cc60c01b620014f5565b62002858678a467a5966a6113a60c01b620014f5565b6200286e67f2898d9b947f10d060c01b620014f5565b6200287982620058c1565b9050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000620028be670fa739e07c029f9060c01b6200281c565b620028d467406100042e7653bd60c01b6200281c565b620028ea6784104632bda8198f60c01b6200281c565b6200293a8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505062005988565b90509392505050565b6000919050565b6200296067460bc733531e770560c01b620014f5565b62002976675843065cd6ecf36860c01b620014f5565b6200298c671760cefe6a10da7a60c01b620014f5565b620029978162003e48565b50620029ae67d2b7b08e8476a44960c01b620014f5565b620029c467c4108caade9b50e360c01b620014f5565b620029cf81620044ee565b50565b620029e86770b9d781bcb926b460c01b620014f5565b620029fe67906727e01f6aa85e60c01b620014f5565b62002a146701b827d310cfe11d60c01b620014f5565b600062002a218362003e48565b905062002a3967626a661a01a7804b60c01b620014f5565b62002a4f6728cca11810d21b3960c01b620014f5565b62002a6567a8027d9ed3c4801060c01b620014f5565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562002aec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018062007c33602b913960400191505060405180910390fd5b62002b02671d64f04a0cbd3c2d60c01b620014f5565b62002b186780125257db4855f560c01b620014f5565b62002b2e67786a66558108b48b60c01b620014f5565b62002b4467b83a54420a7a78ee60c01b620014f5565b62002bfd600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff1615151515815260200160018201548152505062005a66565b62002c54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018062007b31602c913960400191505060405180910390fd5b62002c6a67fbd8a228a8f1f77a60c01b620014f5565b62002c8067899e8aec8c945fb560c01b620014f5565b43600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555062002d1d673e58acdf3e6c170360c01b620014f5565b62002d3367038fa1c859cd9e2860c01b620014f5565b7f1ce3cbbc43ee231e5b950332f2b0b9dd7d349291a3ee411ce5c5c7ed745661bb8383604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1505050565b600062002dbb67f8f2e3448d3c936160c01b620014f5565b62002dd167fcd5fc1ac915e2fb60c01b620014f5565b62002de7670820634ea29c7b1160c01b620014f5565b62002e4b8562002e4585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505087620037f290919063ffffffff16565b62003b51565b9050949350505050565b62002e6b67789d2f75e275428460c01b620014f5565b62002e8167981f928ed5e6e9a660c01b620014f5565b62002e97675777f12d09d3b93a60c01b620014f5565b62002ea28562003e48565b5062002eb967fdda32926cab7ac260c01b620014f5565b62002ecf675a6b0b5b15d49fb960c01b620014f5565b62002eda85620044ee565b62002ef067ac231b274a94695760c01b620014f5565b62002f066777f4d02982ad96d560c01b620014f5565b62002f5a85858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506001620046a7565b505050505050565b50565b6000919050565b62002f82671841f1f0bc650a6e60c01b620014f5565b62002f9867d8cb12991a5557fe60c01b620014f5565b62002fae6766398dce8b66c4fe60c01b620014f5565b62002fb98262003e48565b5062002fd067afd5a8ab9f2a3d3460c01b620014f5565b62002fe66722266b293d95abe960c01b620014f5565b62002ffc67a6d9c03b61572e3660c01b620014f5565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141562003084576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018062007d12602d913960400191505060405180910390fd5b6200309a67c9382b55067e211d60c01b620014f5565b620030b0679801b864b284677360c01b620014f5565b620030c667b4f021d294e5e22e60c01b620014f5565b620030dc6767e346a0d6fd8cf760c01b620014f5565b62003195600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff1615151515815260200160018201548152505062005a66565b15620031ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018062007ce5602d913960400191505060405180910390fd5b6200320367443905483164659760c01b620014f5565b62003219676f97ea8f4384dd9d60c01b620014f5565b6001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff021916908315150217905550620032ca67d470191cde7d771860c01b620014f5565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055506200336867304924367638439560c01b620014f5565b6200337e67618ec03a4906a7d860c01b620014f5565b7f27e282f7712c5b4617277759c834b86d163dfc1aad25c8c3c5926a1c9e5644688282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15050565b620034036763a6d6dd8a86352960c01b62001e30565b62003419678eeff62892cd112860c01b62001e30565b6200342f6781019a5110a6fd2560c01b62001e30565b620034456799570e869b77f36060c01b62001e30565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620034cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b81526020018062007a98603b913960400191505060405180910390fd5b620034e367e6730257a24a5d4d60c01b62001e30565b620034f9675137d05a035c900560c01b62001e30565b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062003550676635cb5a489007f160c01b62001e30565b620035666779ff21fdd4bb44bc60c01b62001e30565b801562003624576200358367ce1bdfd86d0ca23360c01b62001e30565b62003599677479b0cc253e30c560c01b62001e30565b620035af67a2b46e4941f5d4f860c01b62001e30565b7f70d9f5a076620216a6050e493f3ce69749de0b68fa4b839ba2518660ba8b9cf0600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a16200363b565b6200363a6725a77b732bce9b0960c01b62001e30565b5b5050565b600062003657676caf41065fc97a4260c01b62005abd565b6200366d679f00e9579a814efe60c01b62005abd565b62003683678bbf08d0403adc3f60c01b62005abd565b6200368f825162005ac0565b826040516020018082805190602001908083835b60208310620036c85780518252602082019150602081019050602083039250620036a3565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405260405160200180807f19457468657265756d205369676e6564204d6573736167653a0a000000000000815250601a0183805190602001908083835b602083106200375c578051825260208201915060208101905060208303925062003737565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310620037af57805182526020820191506020810190506020830392506200378a565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052805190602001209050919050565b60006200380a670d75db982ec4597160c01b62005e4f565b620038206725c2c60ab754182560c01b62005e4f565b62003836673eb64a254569ed0660c01b62005e4f565b60006200384e67fb2a2286066e15e460c01b62005e4f565b6200386467a440db11ec9e986d60c01b62005e4f565b60418351141562003b0457620038856704a5aada48e2763260c01b62005e4f565b6200389b674b98cf1796e5c26660c01b62005e4f565b620038b167d2dfec7b159385fc60c01b62005e4f565b6000620038c96772c2a840621b4aa760c01b62005e4f565b620038df67bfd411e6ba4d07c460c01b62005e4f565b6000620038f767145d23f82764ba9960c01b62005e4f565b6200390d67acdff958a9c6c5dd60c01b62005e4f565b600062003925673b79e3a80932a6a160c01b62005e4f565b6020860151925060408601519150606086015160001a905062003953679b0cdee01a57ea2f60c01b62005e4f565b62003969675dbf88583373227960c01b62005e4f565b601b8160ff161015620039ae576200398c670dc9a1836eb51c3260c01b62005e4f565b620039a2677097d8456a6c3e1560c01b62005e4f565b601b81019050620039c5565b620039c46708b39c61216869e760c01b62005e4f565b5b620039db672ea4d6db7d2138c560c01b62005e4f565b620039f1679ad3f461195a5eee60c01b62005e4f565b601b8160ff1614801562003a17575062003a1667a24e972b59dc7d0560c01b62005e52565b5b8062003a455750601c8160ff1614801562003a44575062003a4367934bee4849491d9560c01b62005e52565b5b5b1562003ae45762003a61676d6a491fc6e072fa60c01b62005e4f565b62003a7767aecd1690d1de9f1c60c01b62005e4f565b60018782858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801562003ad2573d6000803e3d6000fd5b50505060206040510351935062003afb565b62003afa67513fbc3b3a0ad1c060c01b62005e4f565b5b50505062003b1b565b62003b1a6723d6d78de386c96660c01b62005e4f565b5b62003b316707d0c4f11e72cfc960c01b62005e4f565b62003b4767b9689b22f403636c60c01b62005e4f565b8091505092915050565b600062003b6967afadb8a88820edae60c01b620014f5565b62003b7f67f59e6215910c93b460c01b620014f5565b62003b956709a5fd36e15c669560c01b620014f5565b600062003bad678d799f22bb2ad76d60c01b620014f5565b62003bc36740ac51f5da79cb2a60c01b620014f5565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff161562003d135762003c6f67a198f4bcf4ffdda660c01b620014f5565b62003c8567c11e5f9124ff6fdd60c01b620014f5565b6000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015414905062003e12565b62003d2967b8d118ba40c4c5e960c01b620014f5565b62003d3f6710bf881bc6e450cc60c01b620014f5565b6000801b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154141562003dfa5762003da36741130ed6b4861b3560c01b620014f5565b62003db967af61ecb384104a6f60c01b620014f5565b62003dc483620058c1565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614905062003e11565b62003e10672ec87586bd7b51b360c01b620014f5565b5b5b62003e286784dc6662a5d1368560c01b620014f5565b62003e3e67ddc6079ede57a7aa60c01b620014f5565b8091505092915050565b600062003e60678aabea3e2c6bca2560c01b620014f5565b62003e766712cfd887af96e54d60c01b620014f5565b62003e8c673829699bd0916c2060c01b620014f5565b600062003e9862005e5d565b905062003eb067104a97d11b31d29660c01b620014f5565b62003ec667973fbaa3edacc7ce60c01b620014f5565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff1615620040ad5762003f7267b94995b6887eba2d60c01b620014f5565b62003f886748c3d00df978d7f560c01b620014f5565b62003f9e67abc28d2563ef0dff60c01b620014f5565b62003fb467e01714a3962c522a60c01b620014f5565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101541462004091576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603881526020018062007ad36038913960400191505060405180910390fd5b620040a7679499ad56ecdbb2db60c01b620014f5565b620044b9565b620040c367357bc6b129a900b460c01b620014f5565b620040d9671674f1ee1ae0d08b60c01b620014f5565b620040ef676ff03a2c654a99d260c01b620014f5565b6200410567785fda09b7c53a4760c01b620014f5565b6000801b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015414620041a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603881526020018062007ad36038913960400191505060405180910390fd5b620041ba67954b2c179a5d688660c01b620014f5565b620041d0674f269f509bbb534a60c01b620014f5565b620041e667e68180d41a3493f560c01b620014f5565b600081604051602001808273ffffffffffffffffffffffffffffffffffffffff1660601b81526014019150506040516020818303038152906040528051906020012090506200424067bdaaa82eb4dda39960c01b620014f5565b620042566765cf1f9f13f20afb60c01b620014f5565b6200426c678c4ee105f3022bf460c01b620014f5565b620042778162005eb2565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614620042fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603881526020018062007ad36038913960400191505060405180910390fd5b62004312678013dbf8a9e452ae60c01b620014f5565b6200432867d88d2e044dab125860c01b620014f5565b80600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550620043856720f9f84d359edc0660c01b620014f5565b6001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff02191690831515021790555062004436679e1ca48701df546460c01b620014f5565b6200444c67c3772f0565efb24f60c01b620014f5565b7f27e282f7712c5b4617277759c834b86d163dfc1aad25c8c3c5926a1c9e5644688483604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1505b620044cf67ca67e5de902a827d60c01b620014f5565b620044e567d7e2ed585989010260c01b620014f5565b80915050919050565b62004504670ba7a4c1489fca3460c01b620014f5565b6200451a67651acfe85e858e5460c01b620014f5565b62004530675151ef5b0651bcd760c01b620014f5565b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff166200468d576200459b679231e89a19a99aca60c01b620014f5565b620045b0666f3f3d70558f5960c01b620014f5565b620045c6678e10a66544cc428160c01b620014f5565b62004615600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600162006146565b506200462c67c689dcb05f1e851d60c01b620014f5565b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff021916908315150217905550620046a4565b620046a36756b574c458e1b11860c01b620014f5565b5b50565b6060620046bf67d03cbc512208c19360c01b62001e30565b620046d567f0724c2f605051ae60c01b62001e30565b620046eb672c1f163d378fb1c760c01b62001e30565b62004701676e332d1ea295ad6760c01b62001e30565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141562004789576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018062007bc16025913960400191505060405180910390fd5b6200479f6734003fde0e365df960c01b62001e30565b620047b5676f78eb7775d96ac060c01b62001e30565b620047cb6762ea15fa7f97e6d860c01b62001e30565b620047e167c1e60fa2c652db9260c01b62001e30565b3073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141562004868576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018062007cb9602c913960400191505060405180910390fd5b6200487e67c4c441efc53987a460c01b62001e30565b62004894670a4409d86344b6de60c01b62001e30565b620048aa67f30c8cf3d7c2007160c01b62001e30565b620048c0677b93c54c10ec39b960c01b62001e30565b8573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141562004947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018062007b0b6026913960400191505060405180910390fd5b6200495d67d0eadcda5ce01ef660c01b62001e30565b620049736708e5898037826a0e60c01b62001e30565b62004989679eda6876d502675260c01b62001e30565b60608673ffffffffffffffffffffffffffffffffffffffff16633f579f428787876040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101562004a1d57808201518184015260208101905062004a00565b50505050905090810190601f16801562004a4b5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801562004a6d57600080fd5b505af115801562004a82573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101562004aad57600080fd5b810190808051604051939291908464010000000082111562004ace57600080fd5b8382019150602082018581111562004ae557600080fd5b825186600182028301116401000000008211171562004b0357600080fd5b8083526020830192505050908051906020019080838360005b8381101562004b3957808201518184015260208101905062004b1c565b50505050905090810190601f16801562004b675780820380516001836020036101000a031916815260200191505b50604052505050905062004b866787669d68dca3195b60c01b62001e30565b62004b9c673ac670a41bf75b6a60c01b62001e30565b821562004d3e5762004bb967d53a5613f66004c060c01b62001e30565b62004bcf67fefbdbb940a6f1de60c01b62001e30565b62004be5678bc5a3cf9a4cc9b860c01b62001e30565b7f99eeae1fb8801e2e878e060ec5e5b3557b3c4f8106e35d88cb573f293dae4e248787878785604051808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101562004c8f57808201518184015260208101905062004c72565b50505050905090810190601f16801562004cbd5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101562004cf857808201518184015260208101905062004cdb565b50505050905090810190601f16801562004d265780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a162004d55565b62004d54674b9471e9fc68f75f60c01b62001e30565b5b62004d6b6744627d43ccecd7f160c01b62001e30565b62004d816717d248a7372779a660c01b62001e30565b8091505095945050505050565b600062004da6679c9d1daabf83176160c01b62006397565b62004dbc674a60477fa1015d9d60c01b62006397565b62004dd2671d2dfd1cbc37881260c01b62006397565b600062004dea675c84658542d4247860c01b62006397565b62004e00676c38c63a8395bd4160c01b62006397565b83600001511562004f3a5762004e21673a129e7e3fa8299860c01b62006397565b62004e3767d5d911350233c4aa60c01b62006397565b62004e4d6788aca451346a904360c01b62006397565b60008460200151141562004e915762004e71671cab9521da0eae6e60c01b62006397565b62004e87679a431a7af70a318b60c01b62006397565b6001905062004f34565b62004ea76728a02509a30cdf2f60c01b62006397565b62004ebd67a315ca16c55cdf1660c01b62006397565b600083141562004efd5762004edd67e5e2fd7cbec5211b60c01b62006397565b62004ef3676bc9eb4a60fdc77060c01b62006397565b6001905062004f33565b62004f13670dbcda2f621ef14860c01b62006397565b62004f2967cbf2e8a46e9eb31e60c01b62006397565b8284602001511190505b5b62004f51565b62004f50679312107b7e60296d60c01b62006397565b5b62004f67676d1c114b386646c760c01b62006397565b62004f7d67b26d3c1cf974c30e60c01b62006397565b8091505092915050565b62004f9d671e986652550cd6b760c01b62001e30565b62004fb36712f52b022ec7e94e60c01b62001e30565b62004fc967d13332898fe9198160c01b62001e30565b62004fdf677771d5f99d0f0ea860c01b62001e30565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200505f57600080fd5b505afa15801562005074573d6000803e3d6000fd5b505050506040513d60208110156200508b57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614156200510b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018062007c08602b913960400191505060405180910390fd5b62005121671d9e65030376f52a60c01b62001e30565b6200513767de7455456727db8960c01b62001e30565b6200514d671ad3abe77081920060c01b62001e30565b8173ffffffffffffffffffffffffffffffffffffffff1663d784d426600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015620051d957600080fd5b505af1158015620051ee573d6000803e3d6000fd5b5050505062005208672dc6faf1b96e638260c01b62001e30565b6200521e673ac280b3b6cdcef460c01b62001e30565b8015620052fa576200523b674cef15a637c5d09560c01b62001e30565b6200525167a51c2a16f15f5aee60c01b62001e30565b620052676739bd33583f67f11d60c01b62001e30565b7feec27cdb8bd6f55c2c537deb52ab094a2437e85ef5197e6f064f90bff3ff563f82600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a162005311565b6200531067a8db68da35e394a360c01b62001e30565b5b5050565b6200532b67f4de5e8e73d6ad8760c01b6200281c565b6200534167db1ce0981035d84760c01b6200281c565b6200535767e97a0a25809a3f0960c01b6200281c565b600081511415620053b5576200537867de11b839232da49160c01b6200281c565b6200538e67b59bd2ea0c1c89a260c01b6200281c565b620053a467652fe2786000e62060c01b6200281c565b620053af3262005590565b62005491565b620053cb67ad5f6f13dddc2ad960c01b6200281c565b620053e1672af46088979bcb2160c01b6200281c565b620053f76796cb81cf0bf6606d60c01b6200281c565b60008151905062005413672f4c11881b8dca8c60c01b6200281c565b6200542967cec4e8db5057edad60c01b6200281c565b60005b818110156200548e576200544b671a5cc94c8b734dd960c01b6200281c565b6200546167e437d14e98e20b2f60c01b6200281c565b620054808382815181106200547257fe5b602002602001015162005590565b80806001019150506200542c565b50505b50565b620054aa671af942b4819087fc60c01b62001e30565b620054c0670f0a44d9ed8d066760c01b62001e30565b620054d667af6f6ca5a19aa0c460c01b62001e30565b620054e38260006200639a565b620054f967dd02c4093239d2e360c01b62001e30565b6200550f674754410ba216543b60c01b62001e30565b6200551c816000620033ed565b5050565b62005536670beab42e12728d3b60c01b62002f62565b6200554c675ecbac840a5512ec60c01b62002f62565b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b620055a66703611a9e4063d8ea60c01b6200281c565b620055bc67ee1baacaa033494260c01b6200281c565b620055d26751e5840de998a97760c01b6200281c565b620055e8676f82de74e2e2e03560c01b6200281c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156200568c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f477561726465643a2063616e6e6f74206164642030783020677561726469616e81525060200191505060405180910390fd5b620056a26717cb80dba7a8a0ea60c01b6200281c565b620056b867e2f8fabe2a63d8b660c01b6200281c565b620056ce677550a657f22d30dc60c01b6200281c565b620056e4673c81d7073dbe6f3060c01b6200281c565b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615620057a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f477561726465643a20677561726469616e20616c72656164792065786973747381525060200191505060405180910390fd5b620057ba67bc5a1f0994a7f54e60c01b6200281c565b620057d0679a7f014629c7374960c01b6200281c565b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200583d67d71c83e9f3188e9d60c01b6200281c565b6200585367e4bfbd26cb5c77e660c01b6200281c565b7fbc3292102fa77e083913064b282926717cdfaede4d35f553d66366c0a3da755a3282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b6000620058d967371a9b64621a2c3d60c01b620014f5565b620058ef676a9989a74d1b4b0b60c01b620014f5565b620059056764d7e3a68d8c5bb760c01b620014f5565b600082604051602001808273ffffffffffffffffffffffffffffffffffffffff1660601b81526014019150506040516020818303038152906040528051906020012090506200595f6788a53d430ff364e660c01b620014f5565b62005975673cb194ec28165cb960c01b620014f5565b620059808162005eb2565b915050919050565b6000620059a067fbe9af14abc78ca860c01b6200281c565b620059b667bd3616cf00f8ad2b60c01b6200281c565b620059cc670aad941719c9b69b60c01b6200281c565b6000620059e38385620037f290919063ffffffff16565b9050620059fb6706f556c4601e7cd060c01b6200281c565b62005a1167344e7bee2db8345860c01b6200281c565b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b600062005a7e679cab3b0c44b8044060c01b62006397565b62005a9467ca9af921644e3db460c01b62006397565b62005aaa67fb2347240336566c60c01b62006397565b62005ab6824362004d8e565b9050919050565b50565b606062005ad867e3a0abd5bcd9be4560c01b620065ec565b62005aee676f4ac71b01df0db160c01b620065ec565b62005b046721d33336b8b2843560c01b620065ec565b600082141562005b8e5762005b246799734a524846f5ea60c01b620065ec565b62005b3a6786ec3af2b5204b2d60c01b620065ec565b62005b50675f049c9df345fcb860c01b620065ec565b6040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905062005e4a565b62005ba4674e123f29ad8e63ae60c01b620065ec565b62005bba678a02b86c6f5ae79060c01b620065ec565b62005bd067aef6cecdbdb7f12260c01b620065ec565b600082905062005beb675ee403aa4c2e194160c01b620065ec565b62005c0167c9a686dccda57deb60c01b620065ec565b600062005c196770f6e6f301963e5060c01b620065ec565b62005c2f67cec46452a4c2007960c01b620065ec565b5b6000821462005c815762005c4f67a2c57d3c793a6eb760c01b620065ec565b808060010191505062005c6d677b9437f81985d6c960c01b620065ec565b600a828162005c7857fe5b04915062005c30565b62005c97675b6ccf3f6790a03260c01b620065ec565b62005cad67c5942845ca4d8bd160c01b620065ec565b60608167ffffffffffffffff8111801562005cc757600080fd5b506040519080825280601f01601f19166020018201604052801562005cfb5781602001600182028036833780820191505090505b50905062005d1467f47605e8a1a97a4f60c01b620065ec565b62005d2a67fb23949ab383488b60c01b620065ec565b600060018303905062005d4867f586ddddd202275b60c01b620065ec565b85935062005d61670a29638383e5bbf260c01b620065ec565b62005d7767417a1c155b8c8d7860c01b620065ec565b5b6000841462005e165762005d976730db4ddbb2bce57560c01b620065ec565b600a848162005da257fe5b0660300160f81b8282806001900393508151811062005dbd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535062005e026753f1af39e9b748c960c01b620065ec565b600a848162005e0d57fe5b04935062005d78565b62005e2c674d1eb2df4daf6cff60c01b620065ec565b62005e42677ce056f455b7e7f260c01b620065ec565b819450505050505b919050565b50565b600060019050919050565b600062005e7567e6b9fb986a1ba5a160c01b62002f62565b62005e8b67e5f2b4fde85ab0e060c01b62002f62565b62005ea1675a28d96f6aadd0b960c01b62002f62565b62005ead6014620065ef565b905090565b600062005eca67834d7dcd68b198b060c01b62001e30565b62005ee0673ff175921f5f538960c01b62001e30565b62005ef66701ee97873b03827f60c01b62001e30565b60606040518060200162005f0a9062006b22565b6020820181038252601f19601f82011660405250600060a01b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600060a01b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516020018086805190602001908083835b6020831062005fa6578051825260208201915060208101905060208303925062005f81565b6001836020036101000a0380198251168184511680821785525050505050509050018573ffffffffffffffffffffffffffffffffffffffff19168152600c018473ffffffffffffffffffffffffffffffffffffffff1660601b81526014018373ffffffffffffffffffffffffffffffffffffffff19168152600c018273ffffffffffffffffffffffffffffffffffffffff1660601b81526014019550505050505060405160208183030381529060405290506200606e67c5994a000b72ff9b60c01b62001e30565b62006084673303398cfdf0748c60c01b62001e30565b600060ff60f81b3085848051906020012060405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018473ffffffffffffffffffffffffffffffffffffffff1660601b81526014018381526020018281526020019450505050506040516020818303038152906040528051906020012090506200612367d5638e0e835e9fc260c01b62001e30565b620061396765b94d8c76f4fb1960c01b62001e30565b8060001c92505050919050565b60006200615e6769d35e844fb436a560c01b62001e30565b6200617467d05843a5b30ee56160c01b62001e30565b6200618a676a5949dc1605b72d60c01b62001e30565b600083600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051620061e19062006b22565b808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff168152602001925050508190604051809103906000f59050801580156200623f573d6000803e3d6000fd5b50905062006258671fbc5a34026c932160c01b62001e30565b6200626e6729f16a915d858e6660c01b62001e30565b82156200634a576200628b674ad44f27dbd7e2bf60c01b62001e30565b620062a1671948a2809685e8a560c01b62001e30565b620062b7674e798983ba62ea2160c01b62001e30565b7f2682a218602b9036c9869f006c5405ee4a1a65267653eb7e286123e5e1afde4c81600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a162006361565b620063606753f95733749efee660c01b62001e30565b5b620063776713228e0b40e520f960c01b62001e30565b6200638d679f460b7957fd280860c01b62001e30565b8091505092915050565b50565b620063b06757e53bb83d0ee18c60c01b62001e30565b620063c6674b6db0292681de8060c01b62001e30565b620063dc67634dbba0de15713160c01b62001e30565b620063f26716603faf2a4da76360c01b62001e30565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200647a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603581526020018062007b5d6035913960400191505060405180910390fd5b6200649067fdb2085a5ff3fca060c01b62001e30565b620064a6677c845799041d8f7d60c01b62001e30565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620064fd67cb55668fb6fee71c60c01b62001e30565b6200651367372f88a4084cef5b60c01b62001e30565b8015620065d15762006530671b487ad986e5d06660c01b62001e30565b6200654667734c16c2ea37d8f760c01b62001e30565b6200655c670feaed23a94b80cf60c01b62001e30565b7f02e3c47057b8dc27a0929d3c394c314c73aa002d46939c31c9f71d1e77e86c10600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1620065e8565b620065e767b56e759927012ec660c01b62001e30565b5b5050565b50565b6000620066076787c8246a4b35d1f160c01b62002f62565b6200661d67976a1e8d41064d2460c01b62002f62565b62006633671867d8bf077bb31160c01b62002f62565b60006200664b67bdfeda5454a1273960c01b62002f62565b62006661677709e048711a13c960c01b62002f62565b6200666b620067a7565b1562006742576200668767d3c6f6b0bcac9b6e60c01b62002f62565b6200669d673b2573735f5d680260c01b62002f62565b620066b3675089eb0622c78a2260c01b62002f62565b6000836000369050039050620066d4674bc94a8e9a6ee57960c01b62002f62565b6200673960003683906014850192620066f09392919062006b30565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050620069a8565b91505062006772565b62006758677e45e81af2ec2edc60c01b62002f62565b6200676e67391e31dbfdfb407e60c01b62002f62565b3390505b6200678867c4042e2c7c2c999760c01b62002f62565b6200679e67fc44c5cccf2cd16760c01b62002f62565b80915050919050565b6000620067bf6714ec9ba31585b6f760c01b62002f62565b620067d56764d00f8ee4cbc0f460c01b62002f62565b620067eb6728aef4b71ffef7e260c01b62002f62565b600062006803677b6cf6392b8d09d960c01b62002f62565b6200681967da655f124163f4bc60c01b62002f62565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156200695e5762006886678c4556fd14dc507160c01b62002f62565b6200689c674811af4455ee520960c01b62002f62565b620068b267ae36e4b52033411860c01b62002f62565b620068c867ffe63a27679b309260c01b62002f62565b602c6000369050101562006928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018062007be66022913960400191505060405180910390fd5b6200693e67d1762b0b1ca636f360c01b62002f62565b620069546769c465f7e405b9f660c01b62002f62565b6001905062006975565b620069746710f40798097af22060c01b62002f62565b5b6200698b671855328cbdf7411660c01b62002f62565b620069a1670e4f1457e534f9ac60c01b62002f62565b8091505090565b6000620069c0670df8d76b8cabf76a60c01b62006b1f565b620069d667e180fcce9e2bf4c560c01b62006b1f565b620069ec670dcb70abe8e8bb0b60c01b62006b1f565b600062006a0467c9f13cc22eb780e060c01b62006b1f565b62006a1a67c60f8d891ff21de960c01b62006b1f565b62006a306782bb9e679e55c73460c01b62006b1f565b601483511462006aa8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f42797465734c69623a20696e76616c69642064617461206c656e67746800000081525060200191505060405180910390fd5b62006abe679ea304b1b6348ade60c01b62006b1f565b62006ad467a0049b4768bf518260c01b62006b1f565b6c01000000000000000000000000602084015104905062006b00671f4dc55703cfba1860c01b62006b1f565b62006b1667afb63a07e82275e260c01b62006b1f565b80915050919050565b50565b610f328062006b6683390190565b6000808585111562006b4157600080fd5b8386111562006b4f57600080fd5b600185028301915084860390509450949250505056fe608060405234801561001057600080fd5b50604051610f32380380610f328339818101604052604081101561003357600080fd5b810190808051906020019092919080519060200190929190505050610068674c05ed6aa1cd281960c01b61019960201b60201c565b610082675db0dfd7018850c360c01b61019960201b60201c565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506100dc6727cd07b305f6130f60c01b61019c60201b60201c565b6100f6673763e953c2595ed960c01b61019c60201b60201c565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610151679802ebbc23dba3ba60c01b61019c60201b60201c565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505061019f565b50565b50565b610d84806101ae6000396000f3fe6080604052600436106100e15760003560e01c80635c60da1b1161007f578063a42ea70811610059578063a42ea7081461067a578063d1c43eae146106d0578063d784d42614610726578063f77c479114610777576100e8565b80635c60da1b1461058c5780637b103999146105cd5780638f9bda6e1461060e576100e8565b80633f579f42116100bb5780633f579f421461031f57806344f9c9ec14610448578063550648ff146104b457806356c2fc6c14610520576100e8565b806310b90163146101f1578063221523e51461025d57806325afd90f146102c9576100e8565b366100e857005b3480156100f457600080fd5b5061010967d1c166158a76fd7860c01b6107b8565b61011d670a4a924f04604fe560c01b6107b8565b610131670ec1ea2f1a11078060c01b6107b8565b600080369050146101db57610150670366ed24f6d51c0d60c01b6107b8565b61016467583b5ef5a1a2fce260c01b6107b8565b61017867726acafc478ad1f860c01b6107b8565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506101b3673d8591565072bf1f60c01b6107b8565b368060008037600080826000855af43d806000803e81600081146101d657816000f35b816000fd5b6101ef67967eae13d5222be260c01b6107b8565b005b3480156101fd57600080fd5b506102456004803603602081101561021457600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107bb565b60405180821515815260200191505060405180910390f35b34801561026957600080fd5b506102b16004803603602081101561028057600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107c2565b60405180821515815260200191505060405180910390f35b3480156102d557600080fd5b5061031d600480360360208110156102ec57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107b8565b005b34801561032b57600080fd5b506103cd6004803603606081101561034257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561038957600080fd5b82018360208201111561039b57600080fd5b803590602001918460018302840111640100000000831117156103bd57600080fd5b90919293919293905050506107c9565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561040d5780820151818401526020810190506103f2565b50505050905090810190601f16801561043a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561045457600080fd5b5061049c6004803603602081101561046b57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610afd565b60405180821515815260200191505060405180910390f35b3480156104c057600080fd5b50610508600480360360208110156104d757600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b08565b60405180821515815260200191505060405180910390f35b34801561052c57600080fd5b506105746004803603602081101561054357600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b0f565b60405180821515815260200191505060405180910390f35b34801561059857600080fd5b506105a1610b1a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105d957600080fd5b506105e2610b40565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561061a57600080fd5b506106626004803603602081101561063157600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b66565b60405180821515815260200191505060405180910390f35b34801561068657600080fd5b506106ce6004803603602081101561069d57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b71565b005b3480156106dc57600080fd5b50610724600480360360208110156106f357600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610b74565b005b34801561073257600080fd5b506107756004803603602081101561074957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b77565b005b34801561078357600080fd5b5061078c610d27565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b50565b6000919050565b6000919050565b60606107df6715e98a49f265557060c01b6107b8565b6107f367f6266a592c249da560c01b610b74565b6108076728279893f8537e1960c01b610b74565b61081b67d300d0a9ecbe6cac60c01b610b74565b61082f678d5c0caa285e3ec560c01b610b74565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180610d4c602c913960400191505060405180910390fd5b6108e76718b2e4dd03bc759a60c01b610b74565b6108fb67f8b65e28b897a44f60c01b610b74565b61090f67390c85347f6e2a2360c01b6107b8565b61092367d2a3446ca25e972660c01b6107b8565b61093767aca9b4091d5a9bc860c01b6107b8565b61094b67cce790cad14eb25260c01b6107b8565b606061096167b3adbec8c64c374360c01b6107b8565b6109756791d717b4dffb179d60c01b6107b8565b600061098b67310ff00dd2ac011060c01b6107b8565b8673ffffffffffffffffffffffffffffffffffffffff1686868660405180838380828437808301925050509250505060006040518083038185875af1925050503d80600081146109f7576040519150601f19603f3d011682016040523d82523d6000602084013e6109fc565b606091505b508093508192505050610a1967a450d3c3f63b6d4d60c01b6107b8565b610a2d679a3e7d330ffc414560c01b6107b8565b610a41671925c722e30d4f6d60c01b6107b8565b80610ab4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4163636f756e743a207472616e73616374696f6e20726576657274656400000081525060200191505060405180910390fd5b610ac867a7fa168288301d1c60c01b6107b8565b610adc6745320fb16320fa4a60c01b6107b8565b610af06779ce6fa2117b3f1e60c01b6107b8565b8192505050949350505050565b600060019050919050565b6000919050565b600060019050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019050919050565b50565b50565b610b8b6735cfec4d4a3972f660c01b6107b8565b610b9f67f6266a592c249da560c01b610b74565b610bb36728279893f8537e1960c01b610b74565b610bc767d300d0a9ecbe6cac60c01b610b74565b610bdb678d5c0caa285e3ec560c01b610b74565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180610d4c602c913960400191505060405180910390fd5b610c936718b2e4dd03bc759a60c01b610b74565b610ca767f8b65e28b897a44f60c01b610b74565b610cbb67dbd823a6f693c9e360c01b6107b8565b610ccf6759af4a1e64a734ae60c01b6107b8565b610ce367123d1e7dcae181d060c01b6107b8565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fe436f6e74726f6c6c65643a206d73672e73656e646572206973206e6f742074686520636f6e74726f6c6c6572a164736f6c634300060c000a4163636f756e74436f6e74726f6c6c65723a2063616e6e6f7420736574206163636f756e7420496d706c656d656e746174696f6e20746f20307830506572736f6e616c4163636f756e7452656769737472793a2073656e646572206973206e6f7420746865206163636f756e74206f776e65724163636f756e74436f6e74726f6c6c65723a2063616e6e6f742073656e6420746f2073656c66506572736f6e616c4163636f756e7452656769737472793a206f776e657220646f65736e27742065786973744163636f756e74436f6e74726f6c6c65723a2063616e6e6f7420736574206163636f756e7420726567697374727920746f20307830496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742074686520696e697469616c697a65724163636f756e74436f6e74726f6c6c65723a2063616e6e6f742073656e6420746f2030783047617465776179526563697069656e743a20696e76616c6964206d73672e646174614163636f756e74436f6e74726f6c6c65723a206163636f756e7420616c7265616479207570677261646564506572736f6e616c4163636f756e7452656769737472793a2063616e6e6f742072656d6f76652073656c66477561726465643a2074782e6f726967696e206973206e6f742074686520677561726469616e506572736f6e616c4163636f756e7452656769737472793a204552433230546f6b656e207472616e736665722072657665727465644163636f756e74436f6e74726f6c6c65723a2063616e6e6f742073656e6420746f20636f6e74726f6c6c6572506572736f6e616c4163636f756e7452656769737472793a206f776e657220616c726561647920657869737473506572736f6e616c4163636f756e7452656769737472793a2063616e6e6f742061646420307830206f776e6572a164736f6c634300060c000a"; type PersonalAccountRegistryConstructorParams = | [signer?: Signer] diff --git a/typings/factories/ReentrancyGuard__factory.ts b/typings/factories/ReentrancyGuard__factory.ts index d29f2d6a..2db476b8 100644 --- a/typings/factories/ReentrancyGuard__factory.ts +++ b/typings/factories/ReentrancyGuard__factory.ts @@ -15,6 +15,57 @@ const _abi = [ name: "ReentrancyError", type: "error", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__9296fc39", + type: "bytes8", + }, + ], + name: "c_9296fc39", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__9296fc39", + type: "bytes8", + }, + ], + name: "c_false9296fc39", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__9296fc39", + type: "bytes8", + }, + ], + name: "c_true9296fc39", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, ]; export class ReentrancyGuard__factory { diff --git a/typings/factories/SGReceiver__factory.ts b/typings/factories/SGReceiver__factory.ts new file mode 100644 index 00000000..27e254f2 --- /dev/null +++ b/typings/factories/SGReceiver__factory.ts @@ -0,0 +1,128 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { SGReceiver, SGReceiverInterface } from "../SGReceiver"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_sgRouter", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "token", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "StargateReceivedOnDestination", + type: "event", + }, + { + inputs: [ + { + internalType: "uint16", + name: "", + type: "uint16", + }, + { + internalType: "bytes", + name: "", + type: "bytes", + }, + { + internalType: "uint256", + name: "", + type: "uint256", + }, + { + internalType: "address", + name: "_token", + type: "address", + }, + { + internalType: "uint256", + name: "_amountLD", + type: "uint256", + }, + { + internalType: "bytes", + name: "_payload", + type: "bytes", + }, + ], + name: "sgReceive", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50604051610c55380380610c558339818101604052810190610032919061008d565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506100ff565b600081519050610087816100e8565b92915050565b60006020828403121561009f57600080fd5b60006100ad84828501610078565b91505092915050565b60006100c1826100c8565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6100f1816100b6565b81146100fc57600080fd5b50565b610b478061010e6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063ab8236f314610030575b600080fd5b61004a60048036038101906100459190610585565b61004c565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146100da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100d1906107d4565b60405180910390fd5b6000818060200190518101906100f09190610533565b905061011d81848673ffffffffffffffffffffffffffffffffffffffff1661015f9092919063ffffffff16565b7fa99538de04029bcd6cc1a8af32ebefef188052f963f80ab67b7fc49e23d0cd4c848460405161014e929190610769565b60405180910390a150505050505050565b6101e08363a9059cbb60e01b848460405160240161017e929190610769565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506101e5565b505050565b6000610247826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166102ac9092919063ffffffff16565b90506000815111156102a75780806020019051810190610267919061055c565b6102a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161029d90610814565b60405180910390fd5b5b505050565b60606102bb84846000856102c4565b90509392505050565b606082471015610309576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610300906107b4565b60405180910390fd5b610312856103d8565b610351576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610348906107f4565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161037a9190610752565b60006040518083038185875af1925050503d80600081146103b7576040519150601f19603f3d011682016040523d82523d6000602084013e6103bc565b606091505b50915091506103cc8282866103fb565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6060831561040b5782905061045b565b60008351111561041e5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104529190610792565b60405180910390fd5b9392505050565b600061047561047084610859565b610834565b90508281526020810184848401111561048d57600080fd5b610498848285610924565b509392505050565b6000813590506104af81610ac7565b92915050565b6000815190506104c481610ade565b92915050565b6000815190506104d981610af5565b92915050565b600082601f8301126104f057600080fd5b8135610500848260208601610462565b91505092915050565b60008135905061051881610b0c565b92915050565b60008135905061052d81610b23565b92915050565b60006020828403121561054557600080fd5b6000610553848285016104b5565b91505092915050565b60006020828403121561056e57600080fd5b600061057c848285016104ca565b91505092915050565b60008060008060008060c0878903121561059e57600080fd5b60006105ac89828a01610509565b965050602087013567ffffffffffffffff8111156105c957600080fd5b6105d589828a016104df565b95505060406105e689828a0161051e565b94505060606105f789828a016104a0565b935050608061060889828a0161051e565b92505060a087013567ffffffffffffffff81111561062557600080fd5b61063189828a016104df565b9150509295509295509295565b610647816108bc565b82525050565b60006106588261088a565b61066281856108a0565b9350610672818560208601610933565b80840191505092915050565b600061068982610895565b61069381856108ab565b93506106a3818560208601610933565b6106ac816109c6565b840191505092915050565b60006106c46026836108ab565b91506106cf826109d7565b604082019050919050565b60006106e7601f836108ab565b91506106f282610a26565b602082019050919050565b600061070a601d836108ab565b915061071582610a4f565b602082019050919050565b600061072d602a836108ab565b915061073882610a78565b604082019050919050565b61074c8161091a565b82525050565b600061075e828461064d565b915081905092915050565b600060408201905061077e600083018561063e565b61078b6020830184610743565b9392505050565b600060208201905081810360008301526107ac818461067e565b905092915050565b600060208201905081810360008301526107cd816106b7565b9050919050565b600060208201905081810360008301526107ed816106da565b9050919050565b6000602082019050818103600083015261080d816106fd565b9050919050565b6000602082019050818103600083015261082d81610720565b9050919050565b600061083e61084f565b905061084a8282610966565b919050565b6000604051905090565b600067ffffffffffffffff82111561087457610873610997565b5b61087d826109c6565b9050602081019050919050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b60006108c7826108fa565b9050919050565b60006108d9826108fa565b9050919050565b60008115159050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015610951578082015181840152602081019050610936565b83811115610960576000848401525b50505050565b61096f826109c6565b810181811067ffffffffffffffff8211171561098e5761098d610997565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f53746172676174653a3a206f6e6c7920737461726761746520726f7574657200600082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b610ad0816108bc565b8114610adb57600080fd5b50565b610ae7816108ce565b8114610af257600080fd5b50565b610afe816108e0565b8114610b0957600080fd5b50565b610b15816108ec565b8114610b2057600080fd5b50565b610b2c8161091a565b8114610b3757600080fd5b5056fea164736f6c6343000804000a"; + +type SGReceiverConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: SGReceiverConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class SGReceiver__factory extends ContractFactory { + constructor(...args: SGReceiverConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + deploy( + _sgRouter: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(_sgRouter, overrides || {}) as Promise; + } + getDeployTransaction( + _sgRouter: string, + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(_sgRouter, overrides || {}); + } + attach(address: string): SGReceiver { + return super.attach(address) as SGReceiver; + } + connect(signer: Signer): SGReceiver__factory { + return super.connect(signer) as SGReceiver__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): SGReceiverInterface { + return new utils.Interface(_abi) as SGReceiverInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): SGReceiver { + return new Contract(address, _abi, signerOrProvider) as SGReceiver; + } +} diff --git a/typings/factories/SafeMathLib__factory.ts b/typings/factories/SafeMathLib__factory.ts index 1ddde6aa..4f04d495 100644 --- a/typings/factories/SafeMathLib__factory.ts +++ b/typings/factories/SafeMathLib__factory.ts @@ -10,11 +10,11 @@ const _abi = [ inputs: [ { internalType: "bytes8", - name: "c__329dc82e", + name: "c__da111b5b", type: "bytes8", }, ], - name: "c_329dc82e", + name: "c_da111b5b", outputs: [], stateMutability: "pure", type: "function", @@ -23,11 +23,11 @@ const _abi = [ inputs: [ { internalType: "bytes8", - name: "c__329dc82e", + name: "c__da111b5b", type: "bytes8", }, ], - name: "c_false329dc82e", + name: "c_falseda111b5b", outputs: [ { internalType: "bool", @@ -42,11 +42,11 @@ const _abi = [ inputs: [ { internalType: "bytes8", - name: "c__329dc82e", + name: "c__da111b5b", type: "bytes8", }, ], - name: "c_true329dc82e", + name: "c_trueda111b5b", outputs: [ { internalType: "bool", @@ -60,7 +60,7 @@ const _abi = [ ]; const _bytecode = - "0x610179610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061004b5760003560e01c80634cf8faef146100505780635e02548614610099578063d054104b146100f8575b600080fd5b6100976004803603602081101561006657600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610157565b005b6100e0600480360360208110156100af57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061015a565b60405180821515815260200191505060405180910390f35b61013f6004803603602081101561010e57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610165565b60405180821515815260200191505060405180910390f35b50565b600060019050919050565b600091905056fea164736f6c634300060c000a"; + "0x610179610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061004b5760003560e01c8063449b69d514610050578063c5ed9dae146100af578063ff375344146100f8575b600080fd5b6100976004803603602081101561006657600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610157565b60405180821515815260200191505060405180910390f35b6100f6600480360360208110156100c557600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061015e565b005b61013f6004803603602081101561010e57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610161565b60405180821515815260200191505060405180910390f35b6000919050565b50565b60006001905091905056fea164736f6c634300060c000a"; type SafeMathLibConstructorParams = | [signer?: Signer] diff --git a/typings/factories/SignatureValidator__factory.ts b/typings/factories/SignatureValidator__factory.ts index e92fd3a0..dd3d799c 100644 --- a/typings/factories/SignatureValidator__factory.ts +++ b/typings/factories/SignatureValidator__factory.ts @@ -10,6 +10,57 @@ import type { } from "../SignatureValidator"; const _abi = [ + { + inputs: [ + { + internalType: "bytes8", + name: "c__52615ca8", + type: "bytes8", + }, + ], + name: "c_52615ca8", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__52615ca8", + type: "bytes8", + }, + ], + name: "c_false52615ca8", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__52615ca8", + type: "bytes8", + }, + ], + name: "c_true52615ca8", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [], name: "chainId", diff --git a/typings/factories/StargateFacet__factory.ts b/typings/factories/StargateFacet__factory.ts index 882a57f5..894d054b 100644 --- a/typings/factories/StargateFacet__factory.ts +++ b/typings/factories/StargateFacet__factory.ts @@ -6,59 +6,59 @@ import { Provider, TransactionRequest } from "@ethersproject/providers"; import type { StargateFacet, StargateFacetInterface } from "../StargateFacet"; const _abi = [ - { - inputs: [], - name: "InvalidAmount", - type: "error", - }, - { - inputs: [], - name: "InvalidConfig", - type: "error", - }, - { - inputs: [], - name: "InvalidSourcePoolId", - type: "error", - }, { inputs: [], name: "ReentrancyError", type: "error", }, - { - inputs: [], - name: "SenderNotStargateRouter", - type: "error", - }, - { - inputs: [], - name: "StargateRouterAddressZero", - type: "error", - }, { anonymous: false, inputs: [ { indexed: false, - internalType: "uint16", + internalType: "uint256", name: "chainId", + type: "uint256", + }, + { + indexed: false, + internalType: "uint16", + name: "lzChainId", type: "uint16", }, + ], + name: "LzChainIdSet", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "from", + type: "address", + }, { indexed: false, internalType: "address", - name: "token", + name: "to", type: "address", }, { indexed: false, - internalType: "uint16", - name: "poolId", - type: "uint16", + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "chainIdTo", + type: "uint256", }, ], - name: "SGAddedPool", + name: "StargateETHSwap", type: "event", }, { @@ -67,17 +67,23 @@ const _abi = [ { indexed: false, internalType: "address", - name: "stargate", + name: "stargateRouter", type: "address", }, { indexed: false, - internalType: "uint16", + internalType: "address", + name: "stargateETHRouter", + type: "address", + }, + { + indexed: false, + internalType: "uint256", name: "chainId", - type: "uint16", + type: "uint256", }, ], - name: "SGInitialized", + name: "StargateInitialized", type: "event", }, { @@ -96,30 +102,18 @@ const _abi = [ type: "uint256", }, ], - name: "SGReceivedOnDestination", + name: "StargateReceivedOnDestination", type: "event", }, { anonymous: false, inputs: [ - { - indexed: false, - internalType: "string", - name: "bridgeUsed", - type: "string", - }, { indexed: false, internalType: "address", name: "fromToken", type: "address", }, - { - indexed: false, - internalType: "address", - name: "toToken", - type: "address", - }, { indexed: false, internalType: "address", @@ -140,161 +134,130 @@ const _abi = [ }, { indexed: false, - internalType: "uint16", + internalType: "uint256", name: "chainIdTo", - type: "uint16", + type: "uint256", }, ], - name: "SGTransferStarted", + name: "StargateTokenSwap", type: "event", }, { - anonymous: false, inputs: [ { - indexed: false, - internalType: "address", - name: "newAddress", - type: "address", + internalType: "bytes8", + name: "c__8de507f8", + type: "bytes8", }, ], - name: "SGUpdatedRouter", - type: "event", + name: "c_8de507f8", + outputs: [], + stateMutability: "pure", + type: "function", }, { - anonymous: false, inputs: [ { - indexed: false, - internalType: "uint256", - name: "newSlippage", - type: "uint256", + internalType: "bytes8", + name: "c__9296fc39", + type: "bytes8", }, ], - name: "SGUpdatedSlippageTolerance", - type: "event", + name: "c_9296fc39", + outputs: [], + stateMutability: "pure", + type: "function", }, { inputs: [ { - internalType: "uint16", - name: "_chainId", - type: "uint16", - }, - { - internalType: "address", - name: "_token", - type: "address", + internalType: "bytes8", + name: "c__8de507f8", + type: "bytes8", }, + ], + name: "c_false8de507f8", + outputs: [ { - internalType: "uint16", - name: "_poolId", - type: "uint16", + internalType: "bool", + name: "", + type: "bool", }, ], - name: "sgAddPool", - outputs: [], - stateMutability: "nonpayable", + stateMutability: "pure", type: "function", }, { inputs: [ { - components: [ - { - internalType: "uint256", - name: "qty", - type: "uint256", - }, - { - internalType: "address", - name: "fromToken", - type: "address", - }, - { - internalType: "address", - name: "toToken", - type: "address", - }, - { - internalType: "uint16", - name: "dstChainId", - type: "uint16", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "address", - name: "destStargateComposed", - type: "address", - }, - ], - internalType: "struct StargateFacet.StargateData", - name: "_sgData", - type: "tuple", + internalType: "bytes8", + name: "c__9296fc39", + type: "bytes8", }, ], - name: "sgBridgeTokens", - outputs: [], - stateMutability: "payable", + name: "c_false9296fc39", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", type: "function", }, { inputs: [ { - internalType: "uint16", - name: "_destChain", - type: "uint16", + internalType: "bytes8", + name: "c__8de507f8", + type: "bytes8", }, + ], + name: "c_true8de507f8", + outputs: [ { - internalType: "address", - name: "_receiver", - type: "address", + internalType: "bool", + name: "", + type: "bool", }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ { - internalType: "address", - name: "_router", - type: "address", + internalType: "bytes8", + name: "c__9296fc39", + type: "bytes8", }, ], - name: "sgCalculateFees", + name: "c_true9296fc39", outputs: [ { - internalType: "uint256", + internalType: "bool", name: "", - type: "uint256", + type: "bool", }, ], - stateMutability: "view", + stateMutability: "pure", type: "function", }, { inputs: [ { - internalType: "uint16", + internalType: "uint256", name: "_chainId", - type: "uint16", - }, - { - internalType: "address", - name: "_token", - type: "address", - }, - { - internalType: "uint16", - name: "_poolId", - type: "uint16", + type: "uint256", }, ], - name: "sgCheckPoolId", + name: "getLzChainId", outputs: [ { - internalType: "bool", + internalType: "uint16", name: "", - type: "bool", + type: "uint16", }, ], stateMutability: "view", @@ -308,12 +271,34 @@ const _abi = [ type: "address", }, { - internalType: "uint16", + internalType: "address", + name: "_stargateEthRouter", + type: "address", + }, + { + internalType: "uint256", name: "_chainId", - type: "uint16", + type: "uint256", + }, + { + components: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "uint16", + name: "layerZeroChainId", + type: "uint16", + }, + ], + internalType: "struct StargateFacet.ChainIdConfig[]", + name: "_chainIdConfigs", + type: "tuple[]", }, ], - name: "sgInitialize", + name: "initStargate", outputs: [], stateMutability: "nonpayable", type: "function", @@ -322,36 +307,35 @@ const _abi = [ inputs: [ { internalType: "uint256", - name: "_amount", + name: "_chainId", type: "uint256", }, - ], - name: "sgMinAmountOut", - outputs: [ { - internalType: "uint256", - name: "", - type: "uint256", + internalType: "uint16", + name: "_lzChainId", + type: "uint16", }, ], - stateMutability: "view", + name: "setLzChainId", + outputs: [], + stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint16", - name: "_chainId", + name: "", type: "uint16", }, { internalType: "bytes", - name: "_srcAddress", + name: "", type: "bytes", }, { internalType: "uint256", - name: "_nonce", + name: "", type: "uint256", }, { @@ -361,7 +345,7 @@ const _abi = [ }, { internalType: "uint256", - name: "amountLD", + name: "_amountLD", type: "uint256", }, { @@ -378,22 +362,99 @@ const _abi = [ { inputs: [ { - internalType: "uint16", - name: "_chainId", - type: "uint16", + components: [ + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "uint256", + name: "dstChainId", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint16", + name: "slippage", + type: "uint16", + }, + ], + internalType: "struct StargateFacet.StargateETHData", + name: "_data", + type: "tuple", }, + ], + name: "stargateETHTransfer", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ { - internalType: "address", - name: "_token", + components: [ + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "address", + name: "bridgeToken", + type: "address", + }, + { + internalType: "uint256", + name: "dstChainId", + type: "uint256", + }, + { + internalType: "uint16", + name: "srcPoolId", + type: "uint16", + }, + { + internalType: "uint16", + name: "dstPoolId", + type: "uint16", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint16", + name: "slippage", + type: "uint16", + }, + { + internalType: "address", + name: "destStargateComposed", + type: "address", + }, + ], + internalType: "struct StargateFacet.StargateData", + name: "_data", + type: "tuple", + }, + { + internalType: "contract IStargateRouter", + name: "_router", type: "address", }, ], - name: "sgRetrievePoolId", + name: "stargateFees", outputs: [ { - internalType: "uint16", + internalType: "uint256", name: "", - type: "uint16", + type: "uint256", }, ], stateMutability: "view", @@ -402,33 +463,62 @@ const _abi = [ { inputs: [ { - internalType: "address", - name: "_newAddress", - type: "address", - }, - ], - name: "sgUpdateRouter", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "_newSlippage", - type: "uint256", + components: [ + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "address", + name: "bridgeToken", + type: "address", + }, + { + internalType: "uint256", + name: "dstChainId", + type: "uint256", + }, + { + internalType: "uint16", + name: "srcPoolId", + type: "uint16", + }, + { + internalType: "uint16", + name: "dstPoolId", + type: "uint16", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint16", + name: "slippage", + type: "uint16", + }, + { + internalType: "address", + name: "destStargateComposed", + type: "address", + }, + ], + internalType: "struct StargateFacet.StargateData", + name: "_data", + type: "tuple", }, ], - name: "sgUpdateSlippageTolerance", + name: "stargateTokenTransfer", outputs: [], - stateMutability: "nonpayable", + stateMutability: "payable", type: "function", }, ]; const _bytecode = - "0x608060405234801561001057600080fd5b506125df806100206000396000f3fe6080604052600436106100915760003560e01c8063498ee46911610059578063498ee469146101925780634be85c35146101bb578063618c3f29146101e4578063ab8236f314610221578063b8c06ccc1461024a57610091565b80631f8097fb14610096578063217aabb7146100b25780632a8dcdb7146100db57806342d910c614610118578063430dbc3a14610155575b600080fd5b6100b060048036038101906100ab91906117a5565b610273565b005b3480156100be57600080fd5b506100d960048036038101906100d49190611961565b610734565b005b3480156100e757600080fd5b5061010260048036038101906100fd9190611859565b61078c565b60405161010f9190611d9e565b60405180910390f35b34801561012457600080fd5b5061013f600480360381019061013a919061180a565b610824565b60405161014c9190612049565b60405180910390f35b34801561016157600080fd5b5061017c600480360381019061017791906117ce565b610936565b6040516101899190611eef565b60405180910390f35b34801561019e57600080fd5b506101b960048036038101906101b49190611740565b6109b5565b005b3480156101c757600080fd5b506101e260048036038101906101dd91906116ee565b610c66565b005b3480156101f057600080fd5b5061020b60048036038101906102069190611961565b610d5f565b6040516102189190612049565b60405180910390f35b34801561022d57600080fd5b50610248600480360381019061024391906118a8565b610d9e565b005b34801561025657600080fd5b50610271600480360381019061026c9190611859565b610f1c565b005b600061027d610fe6565b90506001816000015414156102be576040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600181600001819055506000826000015111610306576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16826020015173ffffffffffffffffffffffffffffffffffffffff1614806103755750600073ffffffffffffffffffffffffffffffffffffffff16826040015173ffffffffffffffffffffffffffffffffffffffff16145b806103b05750600073ffffffffffffffffffffffffffffffffffffffff16826080015173ffffffffffffffffffffffffffffffffffffffff16145b806103eb5750600073ffffffffffffffffffffffffffffffffffffffff168260a0015173ffffffffffffffffffffffffffffffffffffffff16145b15610422576040517f35be3ac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061042c611013565b905060006104508260000160149054906101000a900461ffff168560200151610936565b905060008161ffff161415610491576040517f7790ca9900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006104a585606001518660400151610936565b905060006104e0866060015187608001518660000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610824565b905060006104f18760000151610d5f565b905060008760a0015160405160200161050a9190611c9f565b6040516020818303038152906040529050600088608001516040516020016105329190611cd1565b604051602081830303815290604052905061057833308b600001518c6020015173ffffffffffffffffffffffffffffffffffffffff16611040909392919063ffffffff16565b6105cf8760000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168a600001518b6020015173ffffffffffffffffffffffffffffffffffffffff166110c99092919063ffffffff16565b8660000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fbf10fc858b606001518989338f600001518a604051806060016040528062030d408152602001600081526020016040518060400160405280600281526020017f30780000000000000000000000000000000000000000000000000000000000008152508152508b8b6040518b63ffffffff1660e01b815260040161069899989796959493929190611fa7565b6000604051808303818588803b1580156106b157600080fd5b505af11580156106c5573d6000803e3d6000fd5b50505050507f7a72e6f4a3d77f8a5a6c536a973421c5bf00107f9aec7995661537673b8be08789602001518a60400151338c608001518d600001518e6060015160405161071796959493929190611e1b565b60405180910390a150505050505050600081600001819055505050565b61073c611227565b6000610746611013565b90508181600201819055507f45934903f6b10aff9d3435b8362d284d95d14ca68e8554f05f04c7856a6003c0826040516107809190612049565b60405180910390a15050565b600080610797611013565b90508261ffff168160030160008761ffff1661ffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff1661ffff161461081757600061081a565b60015b9150509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff16630a512369866001876040516020016108579190611c9f565b604051602081830303815290604052604051806060016040528062030d408152602001600081526020016040518060400160405280600281526020017f30780000000000000000000000000000000000000000000000000000000000008152508152506040518563ffffffff1660e01b81526004016108d99493929190611f41565b604080518083038186803b1580156108f057600080fd5b505afa158015610904573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092891906119b3565b509050809150509392505050565b600080610941611013565b90508060030160008561ffff1661ffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff1691505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a1c576040517f35be3ac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a24611227565b6000610a2e611013565b9050828160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818160000160146101000a81548161ffff021916908361ffff16021790555060328160020181905550610abd600173a0b86991c6218b36c1d19d4a2e9eb0ce3606eb486001610f1c565b610ade600173dac17f958d2ee523a2206206994597c13d831ec76002610f1c565b610aff60027355d398326f99059ff775485246999027b31979556002610f1c565b610b20600273e9e7cea3dedca5984780bafc599bd69add087d566005610f1c565b610b41600673b97ef9ef8734c71904d8002f8b6bc66dd9c48a6e6001610f1c565b610b626006739702230a8ea53601f5cd2dc00fdbc13d4df4a8c76002610f1c565b610b836009732791bca1f2de4661ed88a30c99a7a9449aa841746001610f1c565b610ba4600973c2132d05d31c914a87c6611c10748aeb04b58e8f6002610f1c565b610bc5600a73ff970a61a04b1ca14834a43f5de4533ebddb5cc86001610f1c565b610be6600a73fd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb96002610f1c565b610c07600b737f5c764cbc14f9669b88837ca1490cca17c316076001610f1c565b610c28600c7304068da6c83afcfa0e13ba15a6696662335d5b756001610f1c565b7fc8ec31998a27444f477c01de93c393769fd4fc017fb63163f71f8a8ab72ccd508383604051610c59929190611d4c565b60405180910390a1505050565b610c6e611227565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cd5576040517f3911c65500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610cdf611013565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9ac04272c4559bf7459414abb5568dc1df58ab649f0af4afd1510074f5cc2fec82604051610d539190611cd1565b60405180910390a15050565b600080610d6a611013565b90506127108160020154612710610d819190612199565b84610d8c919061213f565b610d96919061210e565b915050919050565b6000610da8611013565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e33576040517fdade3c7100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082806020019051810190610e499190611717565b90508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82866040518363ffffffff1660e01b8152600401610e86929190611d75565b602060405180830381600087803b158015610ea057600080fd5b505af1158015610eb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed8919061177c565b507f827e3293895509ef037b7438d4e009f37ad7b2562a14695d9dfd9cb0659842188585604051610f0a929190611d75565b60405180910390a15050505050505050565b610f24611227565b6000610f2e611013565b9050818160030160008661ffff1661ffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548161ffff021916908361ffff1602179055507f85adba3a23dc45072c12199244adfbf4c1d736a46ac453eb732f4e5158af5867848484604051610fd893929190611f0a565b60405180910390a150505050565b6000807fc59b5acc5a6673a6c49ca2de898f87adbd9fdfdff36f689476b1c9e0c50964b490508091505090565b6000807fbaeadb48cbcf0176d6c6ac156b0140abe0fb28a100a9a6a8b5df37e55693b1c890508091505090565b6110c3846323b872dd60e01b85858560405160240161106193929190611d15565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506112c2565b50505050565b6000811480611162575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401611110929190611cec565b60206040518083038186803b15801561112857600080fd5b505afa15801561113c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611160919061198a565b145b6111a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119890611ecf565b60405180910390fd5b6112228363095ea7b360e01b84846040516024016111c0929190611d75565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506112c2565b505050565b61122f611389565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b790611ddb565b60405180910390fd5b565b6000611324826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166113b69092919063ffffffff16565b90506000815111156113845780806020019051810190611344919061177c565b611383576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137a90611eaf565b60405180910390fd5b5b505050565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b60606113c584846000856113ce565b90509392505050565b606082471015611413576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140a90611dfb565b60405180910390fd5b61141c856114e2565b61145b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145290611e8f565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516114849190611cba565b60006040518083038185875af1925050503d80600081146114c1576040519150601f19603f3d011682016040523d82523d6000602084013e6114c6565b606091505b50915091506114d6828286611505565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6060831561151557829050611565565b6000835111156115285782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155c9190611db9565b60405180910390fd5b9392505050565b600061157f61157a84612089565b612064565b90508281526020810184848401111561159757600080fd5b6115a2848285612266565b509392505050565b6000813590506115b98161255f565b92915050565b6000815190506115ce81612576565b92915050565b6000815190506115e38161258d565b92915050565b600082601f8301126115fa57600080fd5b813561160a84826020860161156c565b91505092915050565b600060c0828403121561162557600080fd5b61162f60c0612064565b9050600061163f848285016116c4565b6000830152506020611653848285016115aa565b6020830152506040611667848285016115aa565b604083015250606061167b848285016116af565b606083015250608061168f848285016115aa565b60808301525060a06116a3848285016115aa565b60a08301525092915050565b6000813590506116be816125a4565b92915050565b6000813590506116d3816125bb565b92915050565b6000815190506116e8816125bb565b92915050565b60006020828403121561170057600080fd5b600061170e848285016115aa565b91505092915050565b60006020828403121561172957600080fd5b6000611737848285016115bf565b91505092915050565b6000806040838503121561175357600080fd5b6000611761858286016115aa565b9250506020611772858286016116af565b9150509250929050565b60006020828403121561178e57600080fd5b600061179c848285016115d4565b91505092915050565b600060c082840312156117b757600080fd5b60006117c584828501611613565b91505092915050565b600080604083850312156117e157600080fd5b60006117ef858286016116af565b9250506020611800858286016115aa565b9150509250929050565b60008060006060848603121561181f57600080fd5b600061182d868287016116af565b935050602061183e868287016115aa565b925050604061184f868287016115aa565b9150509250925092565b60008060006060848603121561186e57600080fd5b600061187c868287016116af565b935050602061188d868287016115aa565b925050604061189e868287016116af565b9150509250925092565b60008060008060008060c087890312156118c157600080fd5b60006118cf89828a016116af565b965050602087013567ffffffffffffffff8111156118ec57600080fd5b6118f889828a016115e9565b955050604061190989828a016116c4565b945050606061191a89828a016115aa565b935050608061192b89828a016116c4565b92505060a087013567ffffffffffffffff81111561194857600080fd5b61195489828a016115e9565b9150509295509295509295565b60006020828403121561197357600080fd5b6000611981848285016116c4565b91505092915050565b60006020828403121561199c57600080fd5b60006119aa848285016116d9565b91505092915050565b600080604083850312156119c657600080fd5b60006119d4858286016116d9565b92505060206119e5858286016116d9565b9150509250929050565b6119f8816121df565b82525050565b611a07816121cd565b82525050565b611a1e611a19826121cd565b6122d9565b82525050565b611a2d816121f1565b82525050565b6000611a3e826120ba565b611a4881856120d0565b9350611a58818560208601612275565b611a618161238a565b840191505092915050565b6000611a77826120ba565b611a8181856120e1565b9350611a91818560208601612275565b611a9a8161238a565b840191505092915050565b6000611ab0826120ba565b611aba81856120f2565b9350611aca818560208601612275565b80840191505092915050565b611adf81612242565b82525050565b6000611af0826120c5565b611afa81856120fd565b9350611b0a818560208601612275565b611b138161238a565b840191505092915050565b6000611b2b6022836120fd565b9150611b36826123a8565b604082019050919050565b6000611b4e6002836120e1565b9150611b59826123f7565b602082019050919050565b6000611b716026836120fd565b9150611b7c82612420565b604082019050919050565b6000611b946008836120fd565b9150611b9f8261246f565b602082019050919050565b6000611bb7601d836120fd565b9150611bc282612498565b602082019050919050565b6000611bda602a836120fd565b9150611be5826124c1565b604082019050919050565b6000611bfd6036836120fd565b9150611c0882612510565b604082019050919050565b6000606083016000830151611c2b6000860182611c81565b506020830151611c3e6020860182611c81565b5060408301518482036040860152611c568282611a33565b9150508091505092915050565b611c6c816121fd565b82525050565b611c7b81612254565b82525050565b611c8a8161222b565b82525050565b611c998161222b565b82525050565b6000611cab8284611a0d565b60148201915081905092915050565b6000611cc68284611aa5565b915081905092915050565b6000602082019050611ce660008301846119fe565b92915050565b6000604082019050611d0160008301856119fe565b611d0e60208301846119fe565b9392505050565b6000606082019050611d2a60008301866119fe565b611d3760208301856119fe565b611d446040830184611c90565b949350505050565b6000604082019050611d6160008301856119fe565b611d6e6020830184611c63565b9392505050565b6000604082019050611d8a60008301856119fe565b611d976020830184611c90565b9392505050565b6000602082019050611db36000830184611a24565b92915050565b60006020820190508181036000830152611dd38184611ae5565b905092915050565b60006020820190508181036000830152611df481611b1e565b9050919050565b60006020820190508181036000830152611e1481611b64565b9050919050565b600060e0820190508181036000830152611e3481611b87565b9050611e4360208301896119fe565b611e5060408301886119fe565b611e5d60608301876119fe565b611e6a60808301866119fe565b611e7760a0830185611c90565b611e8460c0830184611c63565b979650505050505050565b60006020820190508181036000830152611ea881611baa565b9050919050565b60006020820190508181036000830152611ec881611bcd565b9050919050565b60006020820190508181036000830152611ee881611bf0565b9050919050565b6000602082019050611f046000830184611c63565b92915050565b6000606082019050611f1f6000830186611c63565b611f2c60208301856119fe565b611f396040830184611c63565b949350505050565b600060a082019050611f566000830187611c63565b611f636020830186611ad6565b8181036040830152611f758185611a6c565b90508181036060830152611f8881611b41565b90508181036080830152611f9c8184611c13565b905095945050505050565b600061012082019050611fbd600083018c611c63565b611fca602083018b611c72565b611fd7604083018a611c72565b611fe460608301896119ef565b611ff16080830188611c90565b611ffe60a0830187611c90565b81810360c08301526120108186611c13565b905081810360e08301526120248185611a6c565b90508181036101008301526120398184611a6c565b90509a9950505050505050505050565b600060208201905061205e6000830184611c90565b92915050565b600061206e61207f565b905061207a82826122a8565b919050565b6000604051905090565b600067ffffffffffffffff8211156120a4576120a361235b565b5b6120ad8261238a565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006121198261222b565b91506121248361222b565b9250826121345761213361232c565b5b828204905092915050565b600061214a8261222b565b91506121558361222b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561218e5761218d6122fd565b5b828202905092915050565b60006121a48261222b565b91506121af8361222b565b9250828210156121c2576121c16122fd565b5b828203905092915050565b60006121d88261220b565b9050919050565b60006121ea8261220b565b9050919050565b60008115159050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061224d82612235565b9050919050565b600061225f826121fd565b9050919050565b82818337600083830152505050565b60005b83811015612293578082015181840152602081019050612278565b838111156122a2576000848401525b50505050565b6122b18261238a565b810181811067ffffffffffffffff821117156122d0576122cf61235b565b5b80604052505050565b60006122e4826122eb565b9050919050565b60006122f68261239b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b7f3078000000000000000000000000000000000000000000000000000000000000600082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f7374617267617465000000000000000000000000000000000000000000000000600082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b612568816121cd565b811461257357600080fd5b50565b61257f816121df565b811461258a57600080fd5b50565b612596816121f1565b81146125a157600080fd5b50565b6125ad816121fd565b81146125b857600080fd5b50565b6125c48161222b565b81146125cf57600080fd5b5056fea164736f6c6343000804000a"; + "0x60a060405261271060809081525034801561001957600080fd5b50608051613c5361004a6000396000818161091b015281816109530152818161174001526117780152613c536000f3fe6080604052600436106100c25760003560e01c8063839408ac1161007f578063ab8236f311610059578063ab8236f31461025a578063ac0d2b1314610283578063e08e5071146102c0578063ffa47670146102fd576100c2565b8063839408ac146101f9578063940c9dee146102155780639b250ded1461023e576100c2565b806314917f99146100c757806316016d03146100f0578063264e6c9b1461012d578063295d4d411461016a57806332a7ab5d146101935780634a6f22c4146101bc575b600080fd5b3480156100d357600080fd5b506100ee60048036038101906100e99190612548565b61033a565b005b3480156100fc57600080fd5b5061011760048036038101906101129190612548565b61033d565b6040516101249190612590565b60405180910390f35b34801561013957600080fd5b50610154600480360381019061014f9190612640565b610344565b604051610161919061269b565b60405180910390f35b34801561017657600080fd5b50610191600480360381019061018c919061271c565b6104e7565b005b34801561019f57600080fd5b506101ba60048036038101906101b59190612548565b610609565b005b3480156101c857600080fd5b506101e360048036038101906101de9190612548565b61060c565b6040516101f09190612590565b60405180910390f35b610213600480360381019061020e919061275c565b610617565b005b34801561022157600080fd5b5061023c6004803603810190610237919061281b565b610d0c565b005b610258600480360381019061025391906128c2565b61104b565b005b34801561026657600080fd5b50610281600480360381019061027c9190612a30565b61190d565b005b34801561028f57600080fd5b506102aa60048036038101906102a59190612548565b611ae3565b6040516102b79190612590565b60405180910390f35b3480156102cc57600080fd5b506102e760048036038101906102e29190612af5565b611aea565b6040516102f49190612b31565b60405180910390f35b34801561030957600080fd5b50610324600480360381019061031f9190612548565b611c4d565b6040516103319190612590565b60405180910390f35b50565b6000919050565b600061035a676b6a1706fc40421f60c01b610609565b61036e67a17253b2deeb069060c01b610609565b61038267ccc986379c4d80f160c01b610609565b60008273ffffffffffffffffffffffffffffffffffffffff16630a5123696103ad8660400135611aea565b60018760e00160208101906103c29190612b4c565b6040516020016103d29190612bc1565b6040516020818303038152906040528860a00160208101906103f49190612b4c565b6040516020016104049190612beb565b60405160208183030381529060405260405180606001604052806207a12081526020016000815260200160006040516020016104409190612bc1565b6040516020818303038152906040528152506040518663ffffffff1660e01b8152600401610472959493929190612d80565b6040805180830381865afa15801561048e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b29190612dfd565b5090506104c967e102f2c572cf40f860c01b610609565b6104dd6716e95b907e1816a560c01b610609565b8091505092915050565b6104fb67988e490ae4c703d260c01b610609565b61050f676f8f307cb7de9ab860c01b610609565b6105236758da89dc13ce7b8860c01b610609565b61052b611c58565b61053f676a22c727528aee5e60c01b610609565b61055367108c5580da60d05260c01b610609565b600061055d611d57565b905061057367f670e362f8950d9d60c01b610609565b8181600301600085815260200190815260200160002060006101000a81548161ffff021916908361ffff1602179055506105b7675bcc90cec163367d60c01b610609565b6105cb674c56ade916095c4060c01b610609565b7f50cfe49eeb0e0291ed2de7bb42b55c6edb09463f1e8d96e373069cf1430e33fc83836040516105fc929190612e3d565b60405180910390a1505050565b50565b600060019050919050565b61062b6718ed4b83c401710460c01b610609565b61063f6770f43b674d4e55d060c01b61033a565b61065367fdb58b8d5e8c5bd260c01b61033a565b61066767f88563faceb9065260c01b61033a565b6000610671611dd5565b905061068767f5511ed184b06f9d60c01b61033a565b61069b675fe6356e9bb02e7e60c01b61033a565b60018160000154036106ed576106bb67c2bf72a01148a95560c01b61033a565b6040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107016759328cc6ac1a5b8460c01b61033a565b610715676585023ebf8de8b060c01b61033a565b600181600001819055506107336794e629fc71d8c79e60c01b61033a565b610747672881a2aec321239260c01b610609565b61075b67dd2c0f1b8d09895b60c01b610609565b61076f67cd6a1ff81758e0f760c01b610609565b6107836782429254fa8269b060c01b610609565b61079767a0f691c89b27008d60c01b610609565b60008260000135116107de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d590612ec3565b60405180910390fd5b6107f2677ebf072840a4d95f60c01b610609565b61080667fed74be637eda80b60c01b610609565b61081a676eb83bf20210390c60c01b610609565b6000610824611e53565b905061083a678182ad2943df89e460c01b610609565b61084e677425dff707a185d960c01b610609565b600061085a8483610344565b9050610870674404183e17d9e74c60c01b610609565b610884673bd291009b8078c860c01b610609565b610898670f089b8f5498528860c01b610609565b803410156108db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d290612f55565b60405180910390fd5b6108ef67820939dc08b273dd60c01b610609565b61090367c4e73b662355a21b60c01b610609565b61091767a3a1bb2ef1bf1ec660c01b610609565b60007f00000000000000000000000000000000000000000000000000000000000000008560c001602081019061094d9190612f75565b61ffff167f000000000000000000000000000000000000000000000000000000000000000061097c9190612fd1565b866000013561098b9190613005565b6109959190613076565b90506109ab67cc171d672a2a38cf60c01b610609565b6109bf673cb3bfc2ae73be4260c01b610609565b60008560e00160208101906109d49190612b4c565b6040516020016109e49190612bc1565b6040516020818303038152906040529050610a09670ddeef3ed113f00660c01b610609565b610a1d674e97eb2217c77f0f60c01b610609565b60008660a0016020810190610a329190612b4c565b604051602001610a429190612beb565b6040516020818303038152906040529050610a67674dab0ce8baf9c74160c01b610609565b610a7b67b7bb61978f9d97e560c01b610609565b610abe333089600001358a6020016020810190610a989190612b4c565b73ffffffffffffffffffffffffffffffffffffffff16611ec2909392919063ffffffff16565b610ad26708c58c8607868d6660c01b610609565b610ae6672a5fdb16657578a160c01b610609565b610b27858860000135896020016020810190610b029190612b4c565b73ffffffffffffffffffffffffffffffffffffffff16611f4b9092919063ffffffff16565b610b3b67fb60f2f8d21dd4f560c01b610609565b610b4f672e33f0d6552af9c760c01b610609565b8473ffffffffffffffffffffffffffffffffffffffff16639fbf10fc85610b798a60400135611aea565b8a6060016020810190610b8c9190612f75565b8b6080016020810190610b9f9190612f75565b338d600001358a60405180606001604052806207a1208152602001600081526020016040518060400160405280600281526020017f30780000000000000000000000000000000000000000000000000000000000008152508152508b8b6040518b63ffffffff1660e01b8152600401610c20999897969594939291906130f9565b6000604051808303818588803b158015610c3957600080fd5b505af1158015610c4d573d6000803e3d6000fd5b5050505050610c6667bab67b428018644460c01b610609565b610c7a6706ce641916e6cc2c60c01b610609565b7f0e95200cdc1da2112676781af663a51503f29bb3e511cfaa660977d2580be1d0876020016020810190610cae9190612b4c565b338960a0016020810190610cc29190612b4c565b8a600001358b60400135604051610cdd95949392919061319b565b60405180910390a15050505050610cfe67441391ce80e99b6c60c01b61033a565b600081600001819055505050565b610d2067dc78b0b6dcb719a660c01b610609565b610d34671ad991e745fcd88760c01b610609565b610d4867fbb408854cfb5ba560c01b610609565b610d5c671bab65bc473a358060c01b610609565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610dcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc290613260565b60405180910390fd5b610ddf67e238d996e1c6a29b60c01b610609565b610df367346f91eeb5fc6c6260c01b610609565b610e076759434cdfca46912960c01b610609565b610e0f611c58565b610e23672f925d4afc29a3a260c01b610609565b610e3767e89ae70bcfd142a660c01b610609565b6000610e41611d57565b9050610e5767ec5bab896690566660c01b610609565b858160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610eae670c86ec52c985f76e60c01b610609565b848160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f0567230957ad1da75ff460c01b610609565b838160020181905550610f2267f53cb1bb6c6a5c5860c01b610609565b610f36674dbd10ddc78689da60c01b610609565b60005b83839050811015610fdf57610f58677766d8e0fe7ffd4b60c01b610609565b838382818110610f6b57610f6a613280565b5b9050604002016020016020810190610f839190612f75565b826003016000868685818110610f9c57610f9b613280565b5b90506040020160000135815260200190815260200160002060006101000a81548161ffff021916908361ffff16021790555080610fd8906132af565b9050610f39565b50610ff467eea98b178fd576e060c01b610609565b611008672f4996614d79aa5760c01b610609565b7ff4ec21f4fb595315ed445181b8973d6ebb853009bd6593a82fbbeadab2efc9b086868660405161103b939291906132f7565b60405180910390a1505050505050565b61105f677b6b1c7fc9e8a18560c01b610609565b6110736770f43b674d4e55d060c01b61033a565b61108767fdb58b8d5e8c5bd260c01b61033a565b61109b67f88563faceb9065260c01b61033a565b60006110a5611dd5565b90506110bb67f5511ed184b06f9d60c01b61033a565b6110cf675fe6356e9bb02e7e60c01b61033a565b6001816000015403611121576110ef67c2bf72a01148a95560c01b61033a565b6040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111356759328cc6ac1a5b8460c01b61033a565b611149676585023ebf8de8b060c01b61033a565b600181600001819055506111676794e629fc71d8c79e60c01b61033a565b61117b6755ebe8d99bfab0e660c01b610609565b61118f6783c099c3d6920eee60c01b610609565b6111a3677b2d23df6c743c1660c01b610609565b6111b7670e1bf95028b3562660c01b610609565b60006111c161209a565b90506111d767826a8031febc47a560c01b610609565b6111eb67e55f748511272f7660c01b610609565b6111ff6797ef46cfb2e1f1d860c01b610609565b60018114801561121f575061121e67b9defce38c448c0160c01b611c4d565b5b80611263575061a4b18114801561124657506112456744e394d95fc655b860c01b611c4d565b5b80156112625750611261676db8cef885766f1060c01b611c4d565b5b5b8061128a5750600a8114801561128957506112886791823fee38b54f9160c01b611c4d565b5b5b6112c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c0906133a0565b60405180910390fd5b6112dd67c9884dd7993613aa60c01b610609565b6112f167ce6b46409cb3036260c01b610609565b611305678e4e74cf10e6efcd60c01b610609565b61131967f1661058e39d604460c01b610609565b6001836020013514801561133d575061133c67d994b9fff3faf3d060c01b611c4d565b5b80611385575061a4b183602001351480156113685750611367678522fbcee38e3f2b60c01b611c4d565b5b80156113845750611383673d7f2a1cdc796c6b60c01b611c4d565b5b5b806113b05750600a83602001351480156113af57506113ae67a0b23bb6c5a2034d60c01b611c4d565b5b5b6113ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e690613432565b60405180910390fd5b61140367634ee426de357fec60c01b610609565b61141767671a1c703a7e255060c01b610609565b61142b671b85965e9b09a19360c01b610609565b61143f673e51b130d02414f960c01b610609565b60003411611482576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114799061349e565b60405180910390fd5b611496675475f5afcea4234f60c01b610609565b6114aa675be0e357a87433b260c01b610609565b6114be6714bd332749c6464c60c01b610609565b6114d267824e0feb461fd68b60c01b610609565b6000836000013511611519576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151090612ec3565b60405180910390fd5b61152d675aead8b9e4a94ad660c01b610609565b6115416715642c51226fe7e860c01b610609565b61155567bf6afb6d248e364260c01b610609565b611569675814d8dff7797ece60c01b610609565b826000013534116115af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a690613530565b60405180910390fd5b6115c367a7838bcc3dcf6f4960c01b610609565b6115d7674b87efcc48a2f6f860c01b610609565b6115eb67b577870ea07885de60c01b610609565b60006115f56120e9565b905061160b67504c44f964d09bda60c01b610609565b61161f67b629ff5fe4b6bbfb60c01b610609565b6116336791136c08444782d460c01b610609565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611699906135c2565b60405180910390fd5b6116b667945f14428689a58760c01b610609565b6116ca6709e6dbebddbfaf8160c01b610609565b6116de67506d17b653e10f7c60c01b610609565b60008460400160208101906116f39190612b4c565b6040516020016117039190612bc1565b60405160208183030381529060405290506117286779683220dd60860f60c01b610609565b61173c67c5d6139a64abbcc360c01b610609565b60007f00000000000000000000000000000000000000000000000000000000000000008660600160208101906117729190612f75565b61ffff167f00000000000000000000000000000000000000000000000000000000000000006117a19190612fd1565b87600001356117b09190613005565b6117ba9190613076565b90506117d067edccaf14a309f8b960c01b610609565b6117e467dfd394e8ca55834a60c01b610609565b8273ffffffffffffffffffffffffffffffffffffffff16631114cd2a3461180e8960200135611aea565b33868b60000135876040518763ffffffff1660e01b81526004016118369594939291906135e2565b6000604051808303818588803b15801561184f57600080fd5b505af1158015611863573d6000803e3d6000fd5b505050505061187c678f9ff857a7f5aa9860c01b610609565b611890679c044cacc1ce321260c01b610609565b7f2bedf250e292271a6dbcf3e289b75c4218a8494e721aabc2b475c22d8816f1d2338760400160208101906118c59190612b4c565b886000013589602001356040516118df949392919061363c565b60405180910390a1505050506118ff67441391ce80e99b6c60c01b61033a565b600081600001819055505050565b61192167c3456030a1bbb0e360c01b610609565b611935670b715fd8e1f8669860c01b610609565b61194967b53fdb9756ae99c460c01b610609565b61195d67de50a656d8824a5b60c01b610609565b611965611e53565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c9906136cd565b60405180910390fd5b6119e66704131b314593100d60c01b610609565b6119fa677fc8dbefdd35b0e460c01b610609565b611a0e6748055bde4d58675260c01b610609565b600081806020019051810190611a249190613719565b9050611a3a675e435c4e6f42509860c01b610609565b611a4e675b92b8826195634960c01b610609565b611a7981848673ffffffffffffffffffffffffffffffffffffffff166121589092919063ffffffff16565b611a8d67cf796a2db721527860c01b610609565b611aa167582a53062f53745760c01b610609565b7fa99538de04029bcd6cc1a8af32ebefef188052f963f80ab67b7fc49e23d0cd4c8484604051611ad2929190613746565b60405180910390a150505050505050565b6000919050565b6000611b0067a57cd9c6b9c41c6a60c01b610609565b611b14674f07f9242ebfa41160c01b610609565b611b28677a529f509caba1b060c01b610609565b6000611b32611d57565b9050611b48678fefb47c1559ea4b60c01b610609565b611b5c67d18e9683e19854f960c01b610609565b600081600301600085815260200190815260200160002060009054906101000a900461ffff169050611b9867e3c404249a55474b60c01b610609565b611bac67fbcd6388192b0a2f60c01b610609565b611bc0678530e22ceaeb424960c01b610609565b60008161ffff1603611c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfe906137e1565b60405180910390fd5b611c1b670c18b96b58e103a860c01b610609565b611c2f67f817d71c659e66ef60c01b610609565b611c43673ae9ed46966d707860c01b610609565b8092505050919050565b600060019050919050565b611c6c6721b40df6734b4e6460c01b6121de565b611c80677276b6d1bbf7b68b60c01b6121de565b611c9467f8611dbcb55a1f7860c01b6121de565b611ca8676cedf54251a3375160c01b6121de565b611cb06121e1565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3890613873565b60405180910390fd5b611d5567e452355b21bbd41e60c01b6121de565b565b6000611d6d67b34d90284ae0e9ef60c01b610609565b611d81672ed81e52c23168e360c01b610609565b611d9567e2ec83ce9578657560c01b610609565b60007fbaeadb48cbcf0176d6c6ac156b0140abe0fb28a100a9a6a8b5df37e55693b1c89050611dce670edd023654e5f17260c01b610609565b8091505090565b6000611deb67fa11c344c1ec53a860c01b61033a565b611dff670fd7b7008acdbf5460c01b61033a565b611e13679fbd6d57c5d665d460c01b61033a565b60007fc59b5acc5a6673a6c49ca2de898f87adbd9fdfdff36f689476b1c9e0c50964b49050611e4c67a9235c9a8268ed9060c01b61033a565b8091505090565b6000611e6967fd4dc90c18680f3060c01b610609565b611e7d6793e4e41457cec23060c01b610609565b611e9167f074c466862371b560c01b610609565b611e99611d57565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611f45846323b872dd60e01b858585604051602401611ee3939291906132f7565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061225f565b50505050565b6000811480611fd5575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401611f92929190613893565b602060405180830381865afa158015611faf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd391906138bc565b145b612014576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200b9061395b565b60405180910390fd5b6120958363095ea7b360e01b8484604051602401612033929190613746565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061225f565b505050565b60006120b067d1228306a9aa7ca160c01b610609565b6120c467a36f2b778691a42060c01b610609565b6120d86768a861b45d12e14460c01b610609565b6120e0611d57565b60020154905090565b60006120ff67ef5c638aa66eb48260c01b610609565b612113675a88d7efbd851a3e60c01b610609565b61212767cceaffc246b2acc960c01b610609565b61212f611d57565b60010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6121d98363a9059cbb60e01b8484604051602401612177929190613746565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061225f565b505050565b50565b60006121f7674f9afbb757d80e6360c01b6121de565b61220b674b823103125da15660c01b6121de565b61221f674ab715c231c1608d60c01b6121de565b60007fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c905061225867982d9bb86701efa860c01b6121de565b8091505090565b60006122c1826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166123269092919063ffffffff16565b905060008151111561232157808060200190518101906122e191906139a7565b612320576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231790613a46565b60405180910390fd5b5b505050565b6060612335848460008561233e565b90509392505050565b606082471015612383576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237a90613ad8565b60405180910390fd5b61238c85612452565b6123cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c290613b44565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516123f49190613ba0565b60006040518083038185875af1925050503d8060008114612431576040519150601f19603f3d011682016040523d82523d6000602084013e612436565b606091505b5091509150612446828286612475565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60608315612485578290506124d5565b6000835111156124985782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124cc9190613bfb565b60405180910390fd5b9392505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b612525816124f0565b811461253057600080fd5b50565b6000813590506125428161251c565b92915050565b60006020828403121561255e5761255d6124e6565b5b600061256c84828501612533565b91505092915050565b60008115159050919050565b61258a81612575565b82525050565b60006020820190506125a56000830184612581565b92915050565b600080fd5b600061010082840312156125c7576125c66125ab565b5b81905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125fb826125d0565b9050919050565b600061260d826125f0565b9050919050565b61261d81612602565b811461262857600080fd5b50565b60008135905061263a81612614565b92915050565b6000806101208385031215612658576126576124e6565b5b6000612666858286016125b0565b9250506101006126788582860161262b565b9150509250929050565b6000819050919050565b61269581612682565b82525050565b60006020820190506126b0600083018461268c565b92915050565b6126bf81612682565b81146126ca57600080fd5b50565b6000813590506126dc816126b6565b92915050565b600061ffff82169050919050565b6126f9816126e2565b811461270457600080fd5b50565b600081359050612716816126f0565b92915050565b60008060408385031215612733576127326124e6565b5b6000612741858286016126cd565b925050602061275285828601612707565b9150509250929050565b60006101008284031215612773576127726124e6565b5b6000612781848285016125b0565b91505092915050565b612793816125f0565b811461279e57600080fd5b50565b6000813590506127b08161278a565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126127db576127da6127b6565b5b8235905067ffffffffffffffff8111156127f8576127f76127bb565b5b602083019150836040820283011115612814576128136127c0565b5b9250929050565b600080600080600060808688031215612837576128366124e6565b5b6000612845888289016127a1565b9550506020612856888289016127a1565b9450506040612867888289016126cd565b935050606086013567ffffffffffffffff811115612888576128876124eb565b5b612894888289016127c5565b92509250509295509295909350565b6000608082840312156128b9576128b86125ab565b5b81905092915050565b6000608082840312156128d8576128d76124e6565b5b60006128e6848285016128a3565b91505092915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61293d826128f4565b810181811067ffffffffffffffff8211171561295c5761295b612905565b5b80604052505050565b600061296f6124dc565b905061297b8282612934565b919050565b600067ffffffffffffffff82111561299b5761299a612905565b5b6129a4826128f4565b9050602081019050919050565b82818337600083830152505050565b60006129d36129ce84612980565b612965565b9050828152602081018484840111156129ef576129ee6128ef565b5b6129fa8482856129b1565b509392505050565b600082601f830112612a1757612a166127b6565b5b8135612a278482602086016129c0565b91505092915050565b60008060008060008060c08789031215612a4d57612a4c6124e6565b5b6000612a5b89828a01612707565b965050602087013567ffffffffffffffff811115612a7c57612a7b6124eb565b5b612a8889828a01612a02565b9550506040612a9989828a016126cd565b9450506060612aaa89828a016127a1565b9350506080612abb89828a016126cd565b92505060a087013567ffffffffffffffff811115612adc57612adb6124eb565b5b612ae889828a01612a02565b9150509295509295509295565b600060208284031215612b0b57612b0a6124e6565b5b6000612b19848285016126cd565b91505092915050565b612b2b816126e2565b82525050565b6000602082019050612b466000830184612b22565b92915050565b600060208284031215612b6257612b616124e6565b5b6000612b70848285016127a1565b91505092915050565b60008160601b9050919050565b6000612b9182612b79565b9050919050565b6000612ba382612b86565b9050919050565b612bbb612bb6826125f0565b612b98565b82525050565b6000612bcd8284612baa565b60148201915081905092915050565b612be5816125f0565b82525050565b6000602082019050612c006000830184612bdc565b92915050565b6000819050919050565b600060ff82169050919050565b6000819050919050565b6000612c42612c3d612c3884612c06565b612c1d565b612c10565b9050919050565b612c5281612c27565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c92578082015181840152602081019050612c77565b60008484015250505050565b6000612ca982612c58565b612cb38185612c63565b9350612cc3818560208601612c74565b612ccc816128f4565b840191505092915050565b612ce081612682565b82525050565b600082825260208201905092915050565b6000612d0282612c58565b612d0c8185612ce6565b9350612d1c818560208601612c74565b612d25816128f4565b840191505092915050565b6000606083016000830151612d486000860182612cd7565b506020830151612d5b6020860182612cd7565b5060408301518482036040860152612d738282612cf7565b9150508091505092915050565b600060a082019050612d956000830188612b22565b612da26020830187612c49565b8181036040830152612db48186612c9e565b90508181036060830152612dc88185612c9e565b90508181036080830152612ddc8184612d30565b90509695505050505050565b600081519050612df7816126b6565b92915050565b60008060408385031215612e1457612e136124e6565b5b6000612e2285828601612de8565b9250506020612e3385828601612de8565b9150509250929050565b6000604082019050612e52600083018561268c565b612e5f6020830184612b22565b9392505050565b600082825260208201905092915050565b7f53746172676174653a3a20696e76616c6964207175616e746974790000000000600082015250565b6000612ead601b83612e66565b9150612eb882612e77565b602082019050919050565b60006020820190508181036000830152612edc81612ea0565b9050919050565b7f53746172676174653a3a206d73672e76616c7565206e6f7420656e6f7567682060008201527f746f20706179206272696467696e672066656500000000000000000000000000602082015250565b6000612f3f603383612e66565b9150612f4a82612ee3565b604082019050919050565b60006020820190508181036000830152612f6e81612f32565b9050919050565b600060208284031215612f8b57612f8a6124e6565b5b6000612f9984828501612707565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612fdc82612682565b9150612fe783612682565b9250828203905081811115612fff57612ffe612fa2565b5b92915050565b600061301082612682565b915061301b83612682565b925082820261302981612682565b915082820484148315176130405761303f612fa2565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061308182612682565b915061308c83612682565b92508261309c5761309b613047565b5b828204905092915050565b60006130c26130bd6130b8846126e2565b612c1d565b612682565b9050919050565b6130d2816130a7565b82525050565b60006130e3826125d0565b9050919050565b6130f3816130d8565b82525050565b60006101208201905061310f600083018c612b22565b61311c602083018b6130c9565b613129604083018a6130c9565b61313660608301896130ea565b613143608083018861268c565b61315060a083018761268c565b81810360c08301526131628186612d30565b905081810360e08301526131768185612c9e565b905081810361010083015261318b8184612c9e565b90509a9950505050505050505050565b600060a0820190506131b06000830188612bdc565b6131bd6020830187612bdc565b6131ca6040830186612bdc565b6131d7606083018561268c565b6131e4608083018461268c565b9695505050505050565b7f53746172676174653a3a20696e76616c696420726f757465722061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061324a602183612e66565b9150613255826131ee565b604082019050919050565b600060208201905081810360008301526132798161323d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006132ba82612682565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132ec576132eb612fa2565b5b600182019050919050565b600060608201905061330c6000830186612bdc565b6133196020830185612bdc565b613326604083018461268c565b949350505050565b7f53746172676174653a3a2043616e6e6f74206469726563746c7920627269646760008201527f65204554482066726f6d207468697320636861696e0000000000000000000000602082015250565b600061338a603583612e66565b91506133958261332e565b604082019050919050565b600060208201905081810360008301526133b98161337d565b9050919050565b7f53746172676174653a3a2043616e6e6f74206469726563746c7920627269646760008201527f652045544820746f207468697320636861696e00000000000000000000000000602082015250565b600061341c603383612e66565b9150613427826133c0565b604082019050919050565b6000602082019050818103600083015261344b8161340f565b9050919050565b7f53746172676174653a3a206d73672e76616c7565207265717569726564000000600082015250565b6000613488601d83612e66565b915061349382613452565b602082019050919050565b600060208201905081810360008301526134b78161347b565b9050919050565b7f53746172676174653a206e6f206665657320616464656420666f72204554482060008201527f7472616e73666572000000000000000000000000000000000000000000000000602082015250565b600061351a602883612e66565b9150613525826134be565b604082019050919050565b600060208201905081810360008301526135498161350d565b9050919050565b7f53746172676174653a3a20455448207472616e73666572206e6f74206176616960008201527f6c61626c65000000000000000000000000000000000000000000000000000000602082015250565b60006135ac602583612e66565b91506135b782613550565b604082019050919050565b600060208201905081810360008301526135db8161359f565b9050919050565b600060a0820190506135f76000830188612b22565b61360460208301876130ea565b81810360408301526136168186612c9e565b9050613625606083018561268c565b613632608083018461268c565b9695505050505050565b60006080820190506136516000830187612bdc565b61365e6020830186612bdc565b61366b604083018561268c565b613678606083018461268c565b95945050505050565b7f53746172676174653a3a206f6e6c7920737461726761746520726f7574657200600082015250565b60006136b7601f83612e66565b91506136c282613681565b602082019050919050565b600060208201905081810360008301526136e6816136aa565b9050919050565b6136f6816130d8565b811461370157600080fd5b50565b600081519050613713816136ed565b92915050565b60006020828403121561372f5761372e6124e6565b5b600061373d84828501613704565b91505092915050565b600060408201905061375b6000830185612bdc565b613768602083018461268c565b9392505050565b7f53746172676174653a3a20636861696e206e6f742061737369676e6564206c6160008201527f796572207a65726f20636861696e206964000000000000000000000000000000602082015250565b60006137cb603183612e66565b91506137d68261376f565b604082019050919050565b600060208201905081810360008301526137fa816137be565b9050919050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b600061385d602283612e66565b915061386882613801565b604082019050919050565b6000602082019050818103600083015261388c81613850565b9050919050565b60006040820190506138a86000830185612bdc565b6138b56020830184612bdc565b9392505050565b6000602082840312156138d2576138d16124e6565b5b60006138e084828501612de8565b91505092915050565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b6000613945603683612e66565b9150613950826138e9565b604082019050919050565b6000602082019050818103600083015261397481613938565b9050919050565b61398481612575565b811461398f57600080fd5b50565b6000815190506139a18161397b565b92915050565b6000602082840312156139bd576139bc6124e6565b5b60006139cb84828501613992565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000613a30602a83612e66565b9150613a3b826139d4565b604082019050919050565b60006020820190508181036000830152613a5f81613a23565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b6000613ac2602683612e66565b9150613acd82613a66565b604082019050919050565b60006020820190508181036000830152613af181613ab5565b9050919050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000613b2e601d83612e66565b9150613b3982613af8565b602082019050919050565b60006020820190508181036000830152613b5d81613b21565b9050919050565b600081905092915050565b6000613b7a82612c58565b613b848185613b64565b9350613b94818560208601612c74565b80840191505092915050565b6000613bac8284613b6f565b915081905092915050565b600081519050919050565b6000613bcd82613bb7565b613bd78185612e66565b9350613be7818560208601612c74565b613bf0816128f4565b840191505092915050565b60006020820190508181036000830152613c158184613bc2565b90509291505056fea264697066735822122090655d77560fbdcd4e095f3dfc930a3e7db070b320dc9b637744ec84d85af1ca64736f6c63430008110033"; type StargateFacetConstructorParams = | [signer?: Signer] diff --git a/typings/factories/StringsLib__factory.ts b/typings/factories/StringsLib__factory.ts index 5d41a7f4..ea093efe 100644 --- a/typings/factories/StringsLib__factory.ts +++ b/typings/factories/StringsLib__factory.ts @@ -10,11 +10,11 @@ const _abi = [ inputs: [ { internalType: "bytes8", - name: "c__1044b449", + name: "c__2404d709", type: "bytes8", }, ], - name: "c_1044b449", + name: "c_2404d709", outputs: [], stateMutability: "pure", type: "function", @@ -23,11 +23,11 @@ const _abi = [ inputs: [ { internalType: "bytes8", - name: "c__1044b449", + name: "c__2404d709", type: "bytes8", }, ], - name: "c_false1044b449", + name: "c_false2404d709", outputs: [ { internalType: "bool", @@ -42,11 +42,11 @@ const _abi = [ inputs: [ { internalType: "bytes8", - name: "c__1044b449", + name: "c__2404d709", type: "bytes8", }, ], - name: "c_true1044b449", + name: "c_true2404d709", outputs: [ { internalType: "bool", @@ -60,7 +60,7 @@ const _abi = [ ]; const _bytecode = - "0x610179610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061004b5760003560e01c80633f392c63146100505780634879156e14610099578063a33684d7146100f8575b600080fd5b6100976004803603602081101561006657600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610157565b005b6100e0600480360360208110156100af57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061015a565b60405180821515815260200191505060405180910390f35b61013f6004803603602081101561010e57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610165565b60405180821515815260200191505060405180910390f35b50565b600060019050919050565b600091905056fea164736f6c634300060c000a"; + "0x610179610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061004b5760003560e01c8063370ecc2114610050578063376808be146100af5780635c302c761461010e575b600080fd5b6100976004803603602081101561006657600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610157565b60405180821515815260200191505060405180910390f35b6100f6600480360360208110156100c557600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610162565b60405180821515815260200191505060405180910390f35b6101556004803603602081101561012457600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610169565b005b600060019050919050565b6000919050565b5056fea164736f6c634300060c000a"; type StringsLibConstructorParams = | [signer?: Signer] diff --git a/typings/factories/SwapUtils__factory.ts b/typings/factories/SwapUtils__factory.ts deleted file mode 100644 index c8600303..00000000 --- a/typings/factories/SwapUtils__factory.ts +++ /dev/null @@ -1,299 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { SwapUtils, SwapUtilsInterface } from "../SwapUtils"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "key", - type: "bytes32", - }, - { - indexed: true, - internalType: "address", - name: "provider", - type: "address", - }, - { - indexed: false, - internalType: "uint256[]", - name: "tokenAmounts", - type: "uint256[]", - }, - { - indexed: false, - internalType: "uint256[]", - name: "fees", - type: "uint256[]", - }, - { - indexed: false, - internalType: "uint256", - name: "invariant", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "lpTokenSupply", - type: "uint256", - }, - ], - name: "AddLiquidity", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "key", - type: "bytes32", - }, - { - indexed: false, - internalType: "uint256", - name: "newAdminFee", - type: "uint256", - }, - ], - name: "NewAdminFee", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "key", - type: "bytes32", - }, - { - indexed: false, - internalType: "uint256", - name: "newSwapFee", - type: "uint256", - }, - ], - name: "NewSwapFee", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "key", - type: "bytes32", - }, - { - indexed: true, - internalType: "address", - name: "provider", - type: "address", - }, - { - indexed: false, - internalType: "uint256[]", - name: "tokenAmounts", - type: "uint256[]", - }, - { - indexed: false, - internalType: "uint256", - name: "lpTokenSupply", - type: "uint256", - }, - ], - name: "RemoveLiquidity", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "key", - type: "bytes32", - }, - { - indexed: true, - internalType: "address", - name: "provider", - type: "address", - }, - { - indexed: false, - internalType: "uint256[]", - name: "tokenAmounts", - type: "uint256[]", - }, - { - indexed: false, - internalType: "uint256[]", - name: "fees", - type: "uint256[]", - }, - { - indexed: false, - internalType: "uint256", - name: "invariant", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "lpTokenSupply", - type: "uint256", - }, - ], - name: "RemoveLiquidityImbalance", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "key", - type: "bytes32", - }, - { - indexed: true, - internalType: "address", - name: "provider", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "lpTokenAmount", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "lpTokenSupply", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "boughtId", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "tokensBought", - type: "uint256", - }, - ], - name: "RemoveLiquidityOne", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "key", - type: "bytes32", - }, - { - indexed: true, - internalType: "address", - name: "buyer", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "tokensSold", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "tokensBought", - type: "uint256", - }, - { - indexed: false, - internalType: "uint128", - name: "soldId", - type: "uint128", - }, - { - indexed: false, - internalType: "uint128", - name: "boughtId", - type: "uint128", - }, - ], - name: "TokenSwap", - type: "event", - }, -]; - -const _bytecode = - "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fe3255418198d05cb59f80673e371c7cbe2ccb41266274a70918938b377ab77a64736f6c63430008110033"; - -type SwapUtilsConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: SwapUtilsConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class SwapUtils__factory extends ContractFactory { - constructor(...args: SwapUtilsConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - deploy( - overrides?: Overrides & { from?: string | Promise } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - getDeployTransaction( - overrides?: Overrides & { from?: string | Promise } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - attach(address: string): SwapUtils { - return super.attach(address) as SwapUtils; - } - connect(signer: Signer): SwapUtils__factory { - return super.connect(signer) as SwapUtils__factory; - } - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): SwapUtilsInterface { - return new utils.Interface(_abi) as SwapUtilsInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): SwapUtils { - return new Contract(address, _abi, signerOrProvider) as SwapUtils; - } -} diff --git a/typings/factories/TypedMemView__factory.ts b/typings/factories/TypedMemView__factory.ts deleted file mode 100644 index 16815f3f..00000000 --- a/typings/factories/TypedMemView__factory.ts +++ /dev/null @@ -1,138 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { TypedMemView, TypedMemViewInterface } from "../TypedMemView"; - -const _abi = [ - { - inputs: [ - { - internalType: "uint256", - name: "actual", - type: "uint256", - }, - { - internalType: "uint256", - name: "expected", - type: "uint256", - }, - ], - name: "TypedMemView__assertType_typeAssertionFailed", - type: "error", - }, - { - inputs: [], - name: "TypedMemView__assertValid_validityAssertionFailed", - type: "error", - }, - { - inputs: [], - name: "TypedMemView__index_indexMoreThan32Bytes", - type: "error", - }, - { - inputs: [ - { - internalType: "uint256", - name: "loc", - type: "uint256", - }, - { - internalType: "uint256", - name: "len", - type: "uint256", - }, - { - internalType: "uint256", - name: "index", - type: "uint256", - }, - { - internalType: "uint256", - name: "slice", - type: "uint256", - }, - ], - name: "TypedMemView__index_overrun", - type: "error", - }, - { - inputs: [], - name: "TypedMemView__unsafeCopyTo_identityOOG", - type: "error", - }, - { - inputs: [], - name: "TypedMemView__unsafeCopyTo_invalidPointer", - type: "error", - }, - { - inputs: [], - name: "TypedMemView__unsafeCopyTo_nullPointer", - type: "error", - }, - { - inputs: [], - name: "NULL", - outputs: [ - { - internalType: "bytes29", - name: "", - type: "bytes29", - }, - ], - stateMutability: "view", - type: "function", - }, -]; - -const _bytecode = - "0x60fe610052600b82828239805160001a607314610045577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361060335760003560e01c8063f26be3fc146038575b600080fd5b603e6052565b6040516049919060af565b60405180910390f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000081565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000082169050919050565b60a9816076565b82525050565b600060208201905060c2600083018460a2565b9291505056fea2646970667358221220b4c6d51394dd56dea414ace3c64f6f6657812e662d881bbae525d54dbb571f8364736f6c63430008110033"; - -type TypedMemViewConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: TypedMemViewConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class TypedMemView__factory extends ContractFactory { - constructor(...args: TypedMemViewConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - deploy( - overrides?: Overrides & { from?: string | Promise } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - getDeployTransaction( - overrides?: Overrides & { from?: string | Promise } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - attach(address: string): TypedMemView { - return super.attach(address) as TypedMemView; - } - connect(signer: Signer): TypedMemView__factory { - return super.connect(signer) as TypedMemView__factory; - } - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): TypedMemViewInterface { - return new utils.Interface(_abi) as TypedMemViewInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): TypedMemView { - return new Contract(address, _abi, signerOrProvider) as TypedMemView; - } -} diff --git a/typings/factories/WrappedWeiToken__factory.ts b/typings/factories/WrappedWeiToken__factory.ts index 3a7946fe..39915699 100644 --- a/typings/factories/WrappedWeiToken__factory.ts +++ b/typings/factories/WrappedWeiToken__factory.ts @@ -170,6 +170,210 @@ const _abi = [ stateMutability: "view", type: "function", }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_098c0657", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__42d24766", + type: "bytes8", + }, + ], + name: "c_42d24766", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__99a47378", + type: "bytes8", + }, + ], + name: "c_99a47378", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__d18be0f9", + type: "bytes8", + }, + ], + name: "c_d18be0f9", + outputs: [], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_false098c0657", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__42d24766", + type: "bytes8", + }, + ], + name: "c_false42d24766", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__99a47378", + type: "bytes8", + }, + ], + name: "c_false99a47378", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__d18be0f9", + type: "bytes8", + }, + ], + name: "c_falsed18be0f9", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__098c0657", + type: "bytes8", + }, + ], + name: "c_true098c0657", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__42d24766", + type: "bytes8", + }, + ], + name: "c_true42d24766", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__99a47378", + type: "bytes8", + }, + ], + name: "c_true99a47378", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes8", + name: "c__d18be0f9", + type: "bytes8", + }, + ], + name: "c_trued18be0f9", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [], name: "decimals", @@ -423,7 +627,7 @@ const _abi = [ ]; const _bytecode = - "0x60806040523480156200001157600080fd5b50326000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600b81526020017f5772617070656420576569000000000000000000000000000000000000000000815250600190805190602001906200009f929190620000f4565b506040518060400160405280600481526020017f575745490000000000000000000000000000000000000000000000000000000081525060029080519060200190620000ed929190620000f4565b506200019a565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200013757805160ff191683800117855562000168565b8280016001018555821562000168579182015b82811115620001675782518255916020019190600101906200014a565b5b5090506200017791906200017b565b5090565b5b80821115620001965760008160009055506001016200017c565b5090565b6120b080620001aa6000396000f3fe6080604052600436106101235760003560e01c806356a3b64b116100a0578063a9059cbb11610064578063a9059cbb1461065f578063b760faf9146106d0578063ca9add8f14610714578063dd62ed3e14610765578063f55647e0146107ea5761013b565b806356a3b64b146104d557806370a08231146104ec578063834ff73914610551578063853828b6146105b857806395d89b41146105cf5761013b565b806323b872dd116100e757806323b872dd146103085780632e1a7d4d14610399578063313ce567146103d4578063392e53cd14610402578063462d0b2e1461042f5761013b565b806306fdde0314610140578063095ea7b3146101d0578063116191b61461024157806318160ddd14610282578063205c2878146102ad5761013b565b3661013b57610139610133610801565b34610810565b005b600080fd5b34801561014c57600080fd5b50610155610a26565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561019557808201518184015260208101905061017a565b50505050905090810190601f1680156101c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101dc57600080fd5b50610229600480360360408110156101f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ac4565b60405180821515815260200191505060405180910390f35b34801561024d57600080fd5b50610256610ae2565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561028e57600080fd5b50610297610b08565b6040518082815260200191505060405180910390f35b3480156102b957600080fd5b50610306600480360360408110156102d057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b0e565b005b34801561031457600080fd5b506103816004803603606081101561032b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b24565b60405180821515815260200191505060405180910390f35b3480156103a557600080fd5b506103d2600480360360208110156103bc57600080fd5b8101908080359060200190929190505050610be1565b005b3480156103e057600080fd5b506103e9610bfd565b604051808260ff16815260200191505060405180910390f35b34801561040e57600080fd5b50610417610c10565b60405180821515815260200191505060405180910390f35b34801561043b57600080fd5b506104d36004803603604081101561045257600080fd5b810190808035906020019064010000000081111561046f57600080fd5b82018360208201111561048157600080fd5b803590602001918460208302840111640100000000831117156104a357600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c66565b005b3480156104e157600080fd5b506104ea610e05565b005b3480156104f857600080fd5b5061053b6004803603602081101561050f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e17565b6040518082815260200191505060405180910390f35b34801561055d57600080fd5b506105a06004803603602081101561057457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e60565b60405180821515815260200191505060405180910390f35b3480156105c457600080fd5b506105cd610eb6565b005b3480156105db57600080fd5b506105e4610f0f565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610624578082015181840152602081019050610609565b50505050905090810190601f1680156106515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561066b57600080fd5b506106b86004803603604081101561068257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fad565b60405180821515815260200191505060405180910390f35b610712600480360360208110156106e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fcb565b005b34801561072057600080fd5b506107636004803603602081101561073757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fd8565b005b34801561077157600080fd5b506107d46004803603604081101561078857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611032565b6040518082815260200191505060405180910390f35b3480156107f657600080fd5b506107ff6110b9565b005b600061080b61120f565b905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610896576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611fb66026913960400191505060405180910390fd5b6000811161090c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4552433230546f6b656e3a2063616e6e6f74206d696e7420302076616c75650081525060200191505060405180910390fd5b61095e81600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461122090919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109b68160045461122090919063ffffffff16565b6004819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610abc5780601f10610a9157610100808354040283529160200191610abc565b820191906000526020600020905b815481529060010190602001808311610a9f57829003601f168201915b505050505081565b6000610ad8610ad1610801565b84846112a8565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b610b20610b19610801565b838361149f565b5050565b600080610b2f610801565b9050610b3c858585611538565b610bd58582610bd086600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ab90919063ffffffff16565b6112a8565b60019150509392505050565b610bfa610bec610801565b610bf4610801565b8361149f565b50565b600360009054906101000a900460ff1681565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614610d0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180611ec8602f913960400191505060405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008383905014610daa57600083839050905060005b81811015610da757610d9a858583818110610d7857fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff166115d8565b8080600101915050610d61565b50505b610db381611723565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e632604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b610e15610e10610801565b6115d8565b565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000610ec0610801565b9050610f0c8182600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461149f565b50565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610fa55780601f10610f7a57610100808354040283529160200191610fa5565b820191906000526020600020905b815481529060010190602001808311610f8857829003601f168201915b505050505081565b6000610fc1610fba610801565b8484611538565b6001905092915050565b610fd58134610810565b50565b6000610fe2610801565b905061102e8183600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461149f565b5050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60006110c3610801565b9050600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611167576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806120066027913960400191505060405180910390fd5b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fe3f5ed5f263f1f01764a96edfc7d025f511ec5f7d180e8816908b78bcf74f09881604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600061121b6028611767565b905090565b60008082840190508381101561129e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174684c69623a206164646974696f6e206f766572666c6f77000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561132e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180611f8b602b913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113b4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180611f416029913960400191505060405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6114a983826117fc565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050611533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061202d6025913960400191505060405180910390fd5b505050565b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561159a5761159583838361149f565b6115a6565b6115a58383836119b6565b5b505050565b60006115d08383604051806060016040528060218152602001611f6a60219139611c56565b905092915050565b600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561167b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611ef76028913960400191505060405180910390fd5b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f28b26e7a3d20aedbc5f8f2ebf7da671c0491723a2b78f47a097b0e46dee0714281604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009050611776611d10565b156117ef5760008360003690500390506117e76000368390601485019261179f93929190611e6c565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611dd3565b9150506117f3565b3390505b80915050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611882576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611ea06028913960400191505060405180910390fd5b6118ee8160405180606001604052806026815260200161205260269139600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c569092919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611946816004546115ab90919063ffffffff16565b600481905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a3c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180612078602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ac2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180611fdc602a913960400191505060405180910390fd5b611b1481600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ab90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ba981600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461122090919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290611d03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cc8578082015181840152602081019050611cad565b50505050905090810190601f168015611cf55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b600080600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611dcc57602c60003690501015611dc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611f1f6022913960400191505060405180910390fd5b600190505b8091505090565b6000806014835114611e4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f42797465734c69623a20696e76616c69642064617461206c656e67746800000081525060200191505060405180910390fd5b6c01000000000000000000000000602084015104905080915050919050565b60008085851115611e7c57600080fd5b83861115611e8957600080fd5b600185028301915084860390509450949250505056fe4552433230546f6b656e3a2063616e6e6f74206275726e2066726f6d203078302061646472657373496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742074686520696e697469616c697a657257726170706564576569546f6b656e3a20636f6e73756d657220616c72656164792065786973747347617465776179526563697069656e743a20696e76616c6964206d73672e646174614552433230546f6b656e3a2063616e6e6f7420617070726f766520746f203078302061646472657373536166654d6174684c69623a207375627472616374696f6e206f766572666c6f774552433230546f6b656e3a2063616e6e6f7420617070726f76652066726f6d2030783020616464726573734552433230546f6b656e3a2063616e6e6f74206d696e7420746f2030783020616464726573734552433230546f6b656e3a2063616e6e6f74207472616e7366657220746f20307830206164647265737357726170706564576569546f6b656e3a20636f6e73756d657220646f65736e277420657869737457726170706564576569546f6b656e3a207472616e73616374696f6e2072657665727465644552433230546f6b656e3a206275726e2076616c756520657863656564732062616c616e63654552433230546f6b656e3a2063616e6e6f74207472616e736665722066726f6d203078302061646472657373a164736f6c634300060c000a"; + "0x60806040523480156200001157600080fd5b506200002e67bcc9be562f8a4b0a60c01b620001b860201b60201c565b6200004a67579ae7209daca85260c01b620001b860201b60201c565b326000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000a667d2295553e6d85b4460c01b620001bb60201b60201c565b620000c2674f33f857671bcade60c01b620001be60201b60201c565b620000de6772a61782d26adf1660c01b620001c160201b60201c565b620000fa6741903526ccaa472460c01b620001c160201b60201c565b6040518060400160405280600b81526020017f57726170706564205765690000000000000000000000000000000000000000008152506001908051906020019062000147929190620001c4565b506200016467a44e88e0af10dbc560c01b620001c160201b60201c565b6040518060400160405280600481526020017f575745490000000000000000000000000000000000000000000000000000000081525060029080519060200190620001b1929190620001c4565b506200026a565b50565b50565b50565b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200020757805160ff191683800117855562000238565b8280016001018555821562000238579182015b82811115620002375782518255916020019190600101906200021a565b5b5090506200024791906200024b565b5090565b5b80821115620002665760008160009055506001016200024c565b5090565b6137fe806200027a6000396000f3fe6080604052600436106101e75760003560e01c8063692b0ad911610102578063b760faf911610095578063d84fa10c11610064578063d84fa10c14610c33578063dd62ed3e14610c9f578063f0af072114610d24578063f55647e014610d7a57610213565b8063b760faf914610adc578063c0fb758214610b20578063c454330514610b76578063ca9add8f14610be257610213565b806395d89b41116100d157806395d89b41146109035780639d713549146109935780639f106f7e146109ff578063a9059cbb14610a6b57610213565b8063692b0ad9146107b457806370a0823114610820578063834ff73914610885578063853828b6146108ec57610213565b80632e1a7d4d1161017a578063462d0b2e11610149578063462d0b2e146106355780634b08df6b146106db57806356a3b64b14610731578063683e15fd1461074857610213565b80632e1a7d4d14610549578063313ce56714610584578063392e53cd146105b25780633e260b13146105df57610213565b806318160ddd116101b657806318160ddd146103c6578063205c2878146103f157806323b872dd1461044c57806325921237146104dd57610213565b806306fdde0314610218578063095ea7b3146102a85780630bdaef0514610319578063116191b61461038557610213565b36610213576102006792eb7c3145cf751760c01b610d91565b61021161020b610d94565b34610ddf565b005b600080fd5b34801561022457600080fd5b5061022d6110f9565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561026d578082015181840152602081019050610252565b50505050905090810190601f16801561029a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102b457600080fd5b50610301600480360360408110156102cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611197565b60405180821515815260200191505060405180910390f35b34801561032557600080fd5b5061036d6004803603602081101561033c57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611219565b60405180821515815260200191505060405180910390f35b34801561039157600080fd5b5061039a611224565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103d257600080fd5b506103db61124a565b6040518082815260200191505060405180910390f35b3480156103fd57600080fd5b5061044a6004803603604081101561041457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611250565b005b34801561045857600080fd5b506104c56004803603606081101561046f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112a2565b60405180821515815260200191505060405180910390f35b3480156104e957600080fd5b506105316004803603602081101561050057600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611414565b60405180821515815260200191505060405180910390f35b34801561055557600080fd5b506105826004803603602081101561056c57600080fd5b810190808035906020019092919050505061141f565b005b34801561059057600080fd5b50610599611477565b604051808260ff16815260200191505060405180910390f35b3480156105be57600080fd5b506105c761148a565b60405180821515815260200191505060405180910390f35b3480156105eb57600080fd5b506106336004803603602081101561060257600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061151d565b005b34801561064157600080fd5b506106d96004803603604081101561065857600080fd5b810190808035906020019064010000000081111561067557600080fd5b82018360208201111561068757600080fd5b803590602001918460208302840111640100000000831117156106a957600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611520565b005b3480156106e757600080fd5b5061072f600480360360208110156106fe57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506118a4565b005b34801561073d57600080fd5b506107466118a7565b005b34801561075457600080fd5b5061079c6004803603602081101561076b57600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506118f5565b60405180821515815260200191505060405180910390f35b3480156107c057600080fd5b50610808600480360360208110156107d757600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506118fc565b60405180821515815260200191505060405180910390f35b34801561082c57600080fd5b5061086f6004803603602081101561084357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611903565b6040518082815260200191505060405180910390f35b34801561089157600080fd5b506108d4600480360360208110156108a857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611988565b60405180821515815260200191505060405180910390f35b3480156108f857600080fd5b50610901611a1a565b005b34801561090f57600080fd5b50610918611ad7565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561095857808201518184015260208101905061093d565b50505050905090810190601f1680156109855780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561099f57600080fd5b506109e7600480360360208110156109b657600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611b75565b60405180821515815260200191505060405180910390f35b348015610a0b57600080fd5b50610a5360048036036020811015610a2257600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611b7c565b60405180821515815260200191505060405180910390f35b348015610a7757600080fd5b50610ac460048036036040811015610a8e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b87565b60405180821515815260200191505060405180910390f35b610b1e60048036036020811015610af257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c09565b005b348015610b2c57600080fd5b50610b7460048036036020811015610b4357600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610d91565b005b348015610b8257600080fd5b50610bca60048036036020811015610b9957600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611c52565b60405180821515815260200191505060405180910390f35b348015610bee57600080fd5b50610c3160048036036020811015610c0557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c5d565b005b348015610c3f57600080fd5b50610c8760048036036020811015610c5657600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611d1b565b60405180821515815260200191505060405180910390f35b348015610cab57600080fd5b50610d0e60048036036040811015610cc257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d22565b6040518082815260200191505060405180910390f35b348015610d3057600080fd5b50610d7860048036036020811015610d4757600080fd5b81019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611de5565b005b348015610d8657600080fd5b50610d8f611de8565b005b50565b6000610daa673b19a8263bb5ce2460c01b610d91565b610dbe6707308200f7e8bb4d60c01b610d91565b610dd267a9938f0e39e5eb3d60c01b610d91565b610dda612006565b905090565b610df3675e2153e1f04496b660c01b6118a4565b610e0767bc8dc79551375fc360c01b6118a4565b610e1b67d8c712b22313922360c01b6118a4565b610e2f67e0f6206a227a3a8e60c01b6118a4565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610eb5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806137046026913960400191505060405180910390fd5b610ec967ae039e1267b9559d60c01b6118a4565b610edd67db578c8e6e46de9260c01b6118a4565b610ef167e5ab2d5fbd27ad7b60c01b6118a4565b610f0567d6e3b8bd2f0c381960c01b6118a4565b60008111610f7b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4552433230546f6b656e3a2063616e6e6f74206d696e7420302076616c75650081525060200191505060405180910390fd5b610f8f672123d38f06edc1d960c01b6118a4565b610fa3674b7af22033a895c860c01b6118a4565b610ff581600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461205390919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061104c67ea2406dd5469a09560c01b6118a4565b6110618160045461205390919063ffffffff16565b60048190555061107b675c59db56e0a7542360c01b6118a4565b61108f672022246315104eac60c01b6118a4565b8173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561118f5780601f106111645761010080835404028352916020019161118f565b820191906000526020600020905b81548152906001019060200180831161117257829003601f168201915b505050505081565b60006111ad6753bec140568681c060c01b6118a4565b6111c1673fe4b697901a171d60c01b6118a4565b6111d56730b64dab119d9aa060c01b6118a4565b6111e76111e0610d94565b8484612190565b6111fb67e05419833179c73560c01b6118a4565b61120f677ca1f591274800dd60c01b6118a4565b6001905092915050565b600060019050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b6112646752831001089b6de460c01b610d91565b61127867109e354adc08fcd760c01b610d91565b61128c6708f8eb69ec45706160c01b610d91565b61129e611297610d94565b8383612477565b5050565b60006112b86769df9d60650e32ef60c01b6118a4565b6112cc67d0ac32c0a71a47dd60c01b6118a4565b6112e067499eb90da77634db60c01b6118a4565b60006112ea610d94565b905061130067bb9ddff3033764bb60c01b6118a4565b611314678ab65d386d94fe9660c01b6118a4565b61131f85858561259c565b611333678c2a5f95b7f72efe60c01b6118a4565b61134767ee2bb8b53d569c0460c01b6118a4565b6113e085826113db86600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c390919063ffffffff16565b612190565b6113f467726c4938a33167c360c01b6118a4565b61140867e2df8d12e60e2b3460c01b6118a4565b60019150509392505050565b600060019050919050565b611433675f0e4b215ce3e35b60c01b610d91565b611447679a6e749bc50b015460c01b610d91565b61145b67d9c3d5315c46b14b60c01b610d91565b611474611466610d94565b61146e610d94565b83612477565b50565b600360009054906101000a900460ff1681565b60006114a067e29fe2f351ca6b2760c01b61151d565b6114b4676f5dd3f08b97747760c01b61151d565b6114c8673a9488d62818322a60c01b61151d565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b50565b6115346756e55d7a3416e9c260c01b610d91565b61154867d2ba19feb39e0b7f60c01b61151d565b61155c670c5ad53cdb9edd1560c01b61151d565b61157067b6b588d2ebb9ae6960c01b61151d565b61158467c4ec9a90a885875260c01b61151d565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180613616602f913960400191505060405180910390fd5b61163c67c3785ba1534db95460c01b61151d565b61165067e4202927591248ef60c01b61151d565b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506116a567531cfa2817fbdc8660c01b61151d565b6116b96725112fbc6ad1983560c01b610d91565b6116cd6774de259cf59a52a060c01b610d91565b6116e167413fe8b2561609c360c01b610d91565b6116f5673c40f28155f55a7460c01b610d91565b600083839050146117e45761171467d2bf7add9390b8ab60c01b610d91565b61172867c85fbc643d893c2660c01b610d91565b61173c67e8b07434fefc74b260c01b610d91565b6000838390509050611758670904b86e5b4f176f60c01b610d91565b61176c67f1990e4ec7ff150b60c01b610d91565b60005b818110156117dd5761178b6778daa037f5002fa960c01b610d91565b61179f67bbb76c7699d9c3ab60c01b610d91565b6117d08585838181106117ae57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1661272c565b808060010191505061176f565b50506117f9565b6117f867c96393be4a94ec6d60c01b610d91565b5b61180d67070298a97c7cd85960c01b610d91565b61182167a289f83d4763b18b60c01b610d91565b61182a81612917565b61183e6701520f419008b58e60c01b61151d565b6118526775364c04848b013b60c01b61151d565b7f908408e307fc569b417f6cbec5d5a06f44a0a505ac0479b47d421a4b2fd6a1e632604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b50565b6118bb67fe0e01cc5375259060c01b610d91565b6118cf67fc8caeb1e65f57dd60c01b610d91565b6118e3673313c636cb55688360c01b610d91565b6118f36118ee610d94565b61272c565b565b6000919050565b6000919050565b600061191967d01fdb7dd74bc5aa60c01b6118a4565b61192d670163cf5e2436a2dd60c01b6118a4565b61194167b670bfbcbdad8dbf60c01b6118a4565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600061199e67557a32e63afd7fae60c01b610d91565b6119b267af98f833a3543e5560c01b610d91565b6119c667585c1b6e111b4a0d60c01b610d91565b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611a2e67d10e42b3232f553660c01b610d91565b611a4267ab1899c5f8e6d78d60c01b610d91565b611a5667be0ea1bfa097245160c01b610d91565b6000611a60610d94565b9050611a76679ea6aa7e891d5e2360c01b610d91565b611a8a67973a00b8d03c62a960c01b610d91565b611ad48182600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612477565b50565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b6d5780601f10611b4257610100808354040283529160200191611b6d565b820191906000526020600020905b815481529060010190602001808311611b5057829003601f168201915b505050505081565b6000919050565b600060019050919050565b6000611b9d67a1f7e11949ea673560c01b6118a4565b611bb16787d7d0fd85a9bf1460c01b6118a4565b611bc567fbb8b6f8a252809960c01b6118a4565b611bd7611bd0610d94565b848461259c565b611beb6773727b9781cbc97760c01b6118a4565b611bff679893780bf3355ed360c01b6118a4565b6001905092915050565b611c1d6710d22658e34d8a1e60c01b610d91565b611c316745d71858c148dcc060c01b610d91565b611c45672007145b8fc56ca760c01b610d91565b611c4f8134610ddf565b50565b600060019050919050565b611c7167cb6796f5f55fa8b060c01b610d91565b611c85675f90f5ba6367291660c01b610d91565b611c9967cdbcc0280667dda760c01b610d91565b6000611ca3610d94565b9050611cb9670e82bc9a4e3336a260c01b610d91565b611ccd67e6308fea357f466a60c01b610d91565b611d178183600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612477565b5050565b6000919050565b6000611d3867729c8b6593ca8f8960c01b6118a4565b611d4c67e58501633424d2de60c01b6118a4565b611d6067c33edf4e7d4f7b8660c01b6118a4565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b50565b611dfc679e757f11a69f758760c01b610d91565b611e106787c00fd9cd62c25660c01b610d91565b611e2467bebb895358ec005a60c01b610d91565b6000611e2e610d94565b9050611e44674b64f02e133a70c860c01b610d91565b611e5867fcc1ec6f797b112560c01b610d91565b611e6c67c5142b5459c66f1660c01b610d91565b600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611f0e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806137546027913960400191505060405180910390fd5b611f2267c075cd592854b9ad60c01b610d91565b611f3667e6d6ba5100391fca60c01b610d91565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611fa267b274bd40f3d8ce8660c01b610d91565b611fb667eb389a834e01769d60c01b610d91565b7fe3f5ed5f263f1f01764a96edfc7d025f511ec5f7d180e8816908b78bcf74f09881604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600061201c677ac614d5268cc8ac60c01b611de5565b612030670a6b7ac33c94c4ed60c01b611de5565b61204467e7ef433820a2765360c01b611de5565b61204e6028612983565b905090565b6000612069672797d9bbee8e685760c01b612b19565b61207d67e25930aa3032662f60c01b612b19565b612091673b804ace3fd44ea060c01b612b19565b600082840190506120ac67e0d809daafe36a0460c01b612b19565b6120c067d0d7b021c1a6823260c01b612b19565b6120d46741f1099b5fa09b9360c01b612b19565b8381101561214a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174684c69623a206164646974696f6e206f766572666c6f77000081525060200191505060405180910390fd5b61215e6728a352a27e50889560c01b612b19565b61217267f55e5f024a80111c60c01b612b19565b61218667d865abdcb752192460c01b612b19565b8091505092915050565b6121a467bfc0ff88689df43460c01b6118a4565b6121b8679a14afb3f0a041d360c01b6118a4565b6121cc67bc128d0a874c4c3e60c01b6118a4565b6121e0678d8cbef08defe69360c01b6118a4565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612266576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806136d9602b913960400191505060405180910390fd5b61227a675349b1b172aa0a0b60c01b6118a4565b61228e67a7a8f58d25b50fd860c01b6118a4565b6122a2671ee4a7660e290fa660c01b6118a4565b6122b667815a40a05033c43460c01b6118a4565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561233c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602981526020018061368f6029913960400191505060405180910390fd5b61235067f33c07d56d5928e460c01b6118a4565b612364673937a971ebc35cc360c01b6118a4565b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123f967ca487db6f83002b660c01b6118a4565b61240d67e9b745e5ba7cbe6060c01b6118a4565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b61248b67187ddac9d5bc8bd160c01b610d91565b61249f67fbe7feb4b95b96c560c01b610d91565b6124b367a35ce9908849156360c01b610d91565b6124bd8382612b1c565b6124d167925831981356ea5e60c01b610d91565b6124e567cab401306d87cae360c01b610d91565b6124f96777aed7e1f4f8582460c01b610d91565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050612583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061377b6025913960400191505060405180910390fd5b6125976754a6bfed8f0f6e8f60c01b610d91565b505050565b6125b067881f2d43dfda86ce60c01b610d91565b6125c4675725d33c0352682360c01b610d91565b6125d86739cbd5e8af561a7760c01b610d91565b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156126765761263e6732e98b0a1e609fdd60c01b610d91565b612652678e42a4adb560808d60c01b610d91565b612666675f86e6684580200060c01b610d91565b612671838383612477565b6126be565b61268a6786b10d3e0d3edcd260c01b610d91565b61269e67147fe14eac7d123360c01b610d91565b6126b267cacbb0791179368760c01b610d91565b6126bd838383612d8a565b5b505050565b60006126d967e0716c1000d7d1da60c01b612b19565b6126ed674e44df08c8f0b5bb60c01b612b19565b612701679b7e32e8ae0c005160c01b612b19565b61272483836040518060600160405280602181526020016136b86021913961312e565b905092915050565b61274067a137779df390536260c01b610d91565b612754678e5297a1aa72533860c01b610d91565b6127686734e57ab99ec6b64160c01b610d91565b61277c6711bcf916f600f17460c01b610d91565b600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561281f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806136456028913960400191505060405180910390fd5b61283367f3d6f26f35ccb86060c01b610d91565b61284767b9a863a98600747660c01b610d91565b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506128b3676e060f957467342d60c01b610d91565b6128c767b500732acf97022160c01b610d91565b7f28b26e7a3d20aedbc5f8f2ebf7da671c0491723a2b78f47a097b0e46dee0714281604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b61292b670beab42e12728d3b60c01b611de5565b61293f675ecbac840a5512ec60c01b611de5565b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006129996787c8246a4b35d1f160c01b611de5565b6129ad67976a1e8d41064d2460c01b611de5565b6129c1671867d8bf077bb31160c01b611de5565b60006129d767bdfeda5454a1273960c01b611de5565b6129eb677709e048711a13c960c01b611de5565b6129f3613274565b15612abc57612a0c67d3c6f6b0bcac9b6e60c01b611de5565b612a20673b2573735f5d680260c01b611de5565b612a34675089eb0622c78a2260c01b611de5565b6000836000369050039050612a53674bc94a8e9a6ee57960c01b611de5565b612ab460003683906014850192612a6c939291906135ba565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050613455565b915050612ae8565b612ad0677e45e81af2ec2edc60c01b611de5565b612ae467391e31dbfdfb407e60c01b611de5565b3390505b612afc67c4042e2c7c2c999760c01b611de5565b612b1067fc44c5cccf2cd16760c01b611de5565b80915050919050565b50565b612b3067bc021464e5f3dd5460c01b6118a4565b612b4467bfc9321f335d4b8160c01b6118a4565b612b58673da1f67c1f439b0960c01b6118a4565b612b6c6764f5be91a42ad5bc60c01b6118a4565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612bf2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806135ee6028913960400191505060405180910390fd5b612c06673f1310f25b67216160c01b6118a4565b612c1a672ae8ed6802151ce460c01b6118a4565b612c86816040518060600160405280602681526020016137a060269139600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461312e9092919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612cdd674ae84cdbca296be160c01b6118a4565b612cf2816004546126c390919063ffffffff16565b600481905550612d0c6790c5dcef045f105560c01b6118a4565b612d2067df66109d66fc00c860c01b6118a4565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b612d9e674d9d827b3eb8335f60c01b6118a4565b612db267029e04d47309ef2160c01b6118a4565b612dc6672a3032957b5eca3560c01b6118a4565b612dda676962e5e3dc9f5a1660c01b6118a4565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612e60576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806137c6602c913960400191505060405180910390fd5b612e746781fe059091eccd2260c01b6118a4565b612e8867ddb72a693e1e207f60c01b6118a4565b612e9c67a1475e83b0b9ddea60c01b6118a4565b612eb0674e6d322763042a0660c01b6118a4565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612f36576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061372a602a913960400191505060405180910390fd5b612f4a67df6b8336912560fa60c01b6118a4565b612f5e67617dce23d46bc03d60c01b6118a4565b612fb081600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c390919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613007678bc66573c313c9d660c01b6118a4565b61305981600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461205390919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130b067aa96686749a64e0c60c01b6118a4565b6130c4678ddd20d1037089ef60c01b6118a4565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000613144677d731b0c9f0e103a60c01b612b19565b613158672e44734f88495e8b60c01b612b19565b61316c670d025d40fd1bee3e60c01b612b19565b61318067025828287ef1fd1b60c01b612b19565b83831115829061322b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156131f05780820151818401526020810190506131d5565b50505050905090810190601f16801561321d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5061324067e9c31dd44a0bf91260c01b612b19565b613254675031ed2b8fb2561960c01b612b19565b61326867301f4385f3c6735c60c01b612b19565b82840390509392505050565b600061328a6714ec9ba31585b6f760c01b611de5565b61329e6764d00f8ee4cbc0f460c01b611de5565b6132b26728aef4b71ffef7e260c01b611de5565b60006132c8677b6cf6392b8d09d960c01b611de5565b6132dc67da655f124163f4bc60c01b611de5565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561341157613346678c4556fd14dc507160c01b611de5565b61335a674811af4455ee520960c01b611de5565b61336e67ae36e4b52033411860c01b611de5565b61338267ffe63a27679b309260c01b611de5565b602c600036905010156133e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061366d6022913960400191505060405180910390fd5b6133f467d1762b0b1ca636f360c01b611de5565b6134086769c465f7e405b9f660c01b611de5565b60019050613426565b6134256710f40798097af22060c01b611de5565b5b61343a671855328cbdf7411660c01b611de5565b61344e670e4f1457e534f9ac60c01b611de5565b8091505090565b600061346b670df8d76b8cabf76a60c01b6135b7565b61347f67e180fcce9e2bf4c560c01b6135b7565b613493670dcb70abe8e8bb0b60c01b6135b7565b60006134a967c9f13cc22eb780e060c01b6135b7565b6134bd67c60f8d891ff21de960c01b6135b7565b6134d16782bb9e679e55c73460c01b6135b7565b6014835114613548576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f42797465734c69623a20696e76616c69642064617461206c656e67746800000081525060200191505060405180910390fd5b61355c679ea304b1b6348ade60c01b6135b7565b61357067a0049b4768bf518260c01b6135b7565b6c01000000000000000000000000602084015104905061359a671f4dc55703cfba1860c01b6135b7565b6135ae67afb63a07e82275e260c01b6135b7565b80915050919050565b50565b600080858511156135ca57600080fd5b838611156135d757600080fd5b600185028301915084860390509450949250505056fe4552433230546f6b656e3a2063616e6e6f74206275726e2066726f6d203078302061646472657373496e697469616c697a61626c653a2074782e6f726967696e206973206e6f742074686520696e697469616c697a657257726170706564576569546f6b656e3a20636f6e73756d657220616c72656164792065786973747347617465776179526563697069656e743a20696e76616c6964206d73672e646174614552433230546f6b656e3a2063616e6e6f7420617070726f766520746f203078302061646472657373536166654d6174684c69623a207375627472616374696f6e206f766572666c6f774552433230546f6b656e3a2063616e6e6f7420617070726f76652066726f6d2030783020616464726573734552433230546f6b656e3a2063616e6e6f74206d696e7420746f2030783020616464726573734552433230546f6b656e3a2063616e6e6f74207472616e7366657220746f20307830206164647265737357726170706564576569546f6b656e3a20636f6e73756d657220646f65736e277420657869737457726170706564576569546f6b656e3a207472616e73616374696f6e2072657665727465644552433230546f6b656e3a206275726e2076616c756520657863656564732062616c616e63654552433230546f6b656e3a2063616e6e6f74207472616e736665722066726f6d203078302061646472657373a164736f6c634300060c000a"; type WrappedWeiTokenConstructorParams = | [signer?: Signer] diff --git a/typings/index.ts b/typings/index.ts index 79219e5e..63eccee2 100644 --- a/typings/index.ts +++ b/typings/index.ts @@ -1,27 +1,6 @@ /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ -export type { LPToken } from "./LPToken"; -export type { IConnext } from "./IConnext"; -export type { IDiamondCut } from "./IDiamondCut"; -export type { IDiamondLoupe } from "./IDiamondLoupe"; -export type { IStableSwap } from "./IStableSwap"; -export type { AmplificationUtils } from "./AmplificationUtils"; -export type { AssetLogic } from "./AssetLogic"; -export type { Constants } from "./Constants"; -export type { LibDiamond } from "./LibDiamond"; -export type { SwapUtils } from "./SwapUtils"; -export type { IConnectorManager } from "./IConnectorManager"; -export type { IOutbox } from "./IOutbox"; -export type { TypedMemView } from "./TypedMemView"; -export type { OwnableUpgradeable } from "./OwnableUpgradeable"; -export type { Initializable } from "./Initializable"; -export type { ERC20Upgradeable } from "./ERC20Upgradeable"; -export type { ERC20BurnableUpgradeable } from "./ERC20BurnableUpgradeable"; -export type { IERC20MetadataUpgradeable } from "./IERC20MetadataUpgradeable"; -export type { IERC20Upgradeable } from "./IERC20Upgradeable"; -export type { ContextUpgradeable } from "./ContextUpgradeable"; -export type { IERC20Metadata } from "./IERC20Metadata"; export type { IERC20 } from "./IERC20"; export type { ISuperAgreement } from "./ISuperAgreement"; export type { ISuperfluidToken } from "./ISuperfluidToken"; @@ -33,13 +12,20 @@ export type { DiamondLoupeFacet } from "./DiamondLoupeFacet"; export type { HopFacet } from "./HopFacet"; export type { OwnershipFacet } from "./OwnershipFacet"; export type { StargateFacet } from "./StargateFacet"; +export type { SGReceiver } from "./SGReceiver"; export type { ICBridge } from "./ICBridge"; +export type { IConnext } from "./IConnext"; +export type { IDiamondCut } from "./IDiamondCut"; +export type { IDiamondLoupe } from "./IDiamondLoupe"; export type { IERC165 } from "./IERC165"; export type { IERC173 } from "./IERC173"; export type { IHopBridge } from "./IHopBridge"; +export type { IWETH } from "./IWETH"; export type { IStargateReceiver } from "./IStargateReceiver"; export type { IStargateRouter } from "./IStargateRouter"; -export type { IWETH } from "./IWETH"; +export type { IStargateRouterETH } from "./IStargateRouterETH"; +export type { LibAsset } from "./LibAsset"; +export type { LibDiamond } from "./LibDiamond"; export type { Controlled } from "./Controlled"; export type { Guarded } from "./Guarded"; export type { GuardedMock } from "./GuardedMock"; @@ -54,12 +40,21 @@ export type { AccountRegistryMock } from "./AccountRegistryMock"; export type { BalancesHelper } from "./BalancesHelper"; export type { BalancesHelperV2 } from "./BalancesHelperV2"; export type { ReentrancyGuard } from "./ReentrancyGuard"; +export type { AddressLib } from "./AddressLib"; +export type { BlockLib } from "./BlockLib"; +export type { BytesLib } from "./BytesLib"; +export type { ECDSAExtendedLib } from "./ECDSAExtendedLib"; +export type { ECDSALib } from "./ECDSALib"; +export type { SafeMathLib } from "./SafeMathLib"; +export type { StringsLib } from "./StringsLib"; +export type { Initializable } from "./Initializable"; export type { SignatureValidator } from "./SignatureValidator"; export type { ERC20Token } from "./ERC20Token"; export type { ENSController } from "./ENSController"; export type { ENSHelper } from "./ENSHelper"; export type { ENSRegistry } from "./ENSRegistry"; export type { ENSReverseRegistrar } from "./ENSReverseRegistrar"; +export type { ENSAbstractResolver } from "./ENSAbstractResolver"; export type { ENSAddressResolver } from "./ENSAddressResolver"; export type { ENSNameResolver } from "./ENSNameResolver"; export type { ENSPubKeyResolver } from "./ENSPubKeyResolver"; @@ -75,27 +70,6 @@ export type { PersonalAccountImplementationV1 } from "./PersonalAccountImplement export type { PersonalAccountRegistry } from "./PersonalAccountRegistry"; export type { WrappedWeiToken } from "./WrappedWeiToken"; -export { LPToken__factory } from "./factories/LPToken__factory"; -export { IConnext__factory } from "./factories/IConnext__factory"; -export { IDiamondCut__factory } from "./factories/IDiamondCut__factory"; -export { IDiamondLoupe__factory } from "./factories/IDiamondLoupe__factory"; -export { IStableSwap__factory } from "./factories/IStableSwap__factory"; -export { AmplificationUtils__factory } from "./factories/AmplificationUtils__factory"; -export { AssetLogic__factory } from "./factories/AssetLogic__factory"; -export { Constants__factory } from "./factories/Constants__factory"; -export { LibDiamond__factory } from "./factories/LibDiamond__factory"; -export { SwapUtils__factory } from "./factories/SwapUtils__factory"; -export { IConnectorManager__factory } from "./factories/IConnectorManager__factory"; -export { IOutbox__factory } from "./factories/IOutbox__factory"; -export { TypedMemView__factory } from "./factories/TypedMemView__factory"; -export { OwnableUpgradeable__factory } from "./factories/OwnableUpgradeable__factory"; -export { Initializable__factory } from "./factories/Initializable__factory"; -export { ERC20Upgradeable__factory } from "./factories/ERC20Upgradeable__factory"; -export { ERC20BurnableUpgradeable__factory } from "./factories/ERC20BurnableUpgradeable__factory"; -export { IERC20MetadataUpgradeable__factory } from "./factories/IERC20MetadataUpgradeable__factory"; -export { IERC20Upgradeable__factory } from "./factories/IERC20Upgradeable__factory"; -export { ContextUpgradeable__factory } from "./factories/ContextUpgradeable__factory"; -export { IERC20Metadata__factory } from "./factories/IERC20Metadata__factory"; export { IERC20__factory } from "./factories/IERC20__factory"; export { ISuperAgreement__factory } from "./factories/ISuperAgreement__factory"; export { ISuperfluidToken__factory } from "./factories/ISuperfluidToken__factory"; @@ -107,13 +81,20 @@ export { DiamondLoupeFacet__factory } from "./factories/DiamondLoupeFacet__facto export { HopFacet__factory } from "./factories/HopFacet__factory"; export { OwnershipFacet__factory } from "./factories/OwnershipFacet__factory"; export { StargateFacet__factory } from "./factories/StargateFacet__factory"; +export { SGReceiver__factory } from "./factories/SGReceiver__factory"; export { ICBridge__factory } from "./factories/ICBridge__factory"; +export { IConnext__factory } from "./factories/IConnext__factory"; +export { IDiamondCut__factory } from "./factories/IDiamondCut__factory"; +export { IDiamondLoupe__factory } from "./factories/IDiamondLoupe__factory"; export { IERC165__factory } from "./factories/IERC165__factory"; export { IERC173__factory } from "./factories/IERC173__factory"; export { IHopBridge__factory } from "./factories/IHopBridge__factory"; +export { IWETH__factory } from "./factories/IWETH__factory"; export { IStargateReceiver__factory } from "./factories/IStargateReceiver__factory"; export { IStargateRouter__factory } from "./factories/IStargateRouter__factory"; -export { IWETH__factory } from "./factories/IWETH__factory"; +export { IStargateRouterETH__factory } from "./factories/IStargateRouterETH__factory"; +export { LibAsset__factory } from "./factories/LibAsset__factory"; +export { LibDiamond__factory } from "./factories/LibDiamond__factory"; export { Controlled__factory } from "./factories/Controlled__factory"; export { Guarded__factory } from "./factories/Guarded__factory"; export { GuardedMock__factory } from "./factories/GuardedMock__factory"; @@ -128,12 +109,21 @@ export { AccountRegistryMock__factory } from "./factories/AccountRegistryMock__f export { BalancesHelper__factory } from "./factories/BalancesHelper__factory"; export { BalancesHelperV2__factory } from "./factories/BalancesHelperV2__factory"; export { ReentrancyGuard__factory } from "./factories/ReentrancyGuard__factory"; +export { AddressLib__factory } from "./factories/AddressLib__factory"; +export { BlockLib__factory } from "./factories/BlockLib__factory"; +export { BytesLib__factory } from "./factories/BytesLib__factory"; +export { ECDSAExtendedLib__factory } from "./factories/ECDSAExtendedLib__factory"; +export { ECDSALib__factory } from "./factories/ECDSALib__factory"; +export { SafeMathLib__factory } from "./factories/SafeMathLib__factory"; +export { StringsLib__factory } from "./factories/StringsLib__factory"; +export { Initializable__factory } from "./factories/Initializable__factory"; export { SignatureValidator__factory } from "./factories/SignatureValidator__factory"; export { ERC20Token__factory } from "./factories/ERC20Token__factory"; export { ENSController__factory } from "./factories/ENSController__factory"; export { ENSHelper__factory } from "./factories/ENSHelper__factory"; export { ENSRegistry__factory } from "./factories/ENSRegistry__factory"; export { ENSReverseRegistrar__factory } from "./factories/ENSReverseRegistrar__factory"; +export { ENSAbstractResolver__factory } from "./factories/ENSAbstractResolver__factory"; export { ENSAddressResolver__factory } from "./factories/ENSAddressResolver__factory"; export { ENSNameResolver__factory } from "./factories/ENSNameResolver__factory"; export { ENSPubKeyResolver__factory } from "./factories/ENSPubKeyResolver__factory";