0x60806040525f5f5f6101000a81548160ff0219169083151502179055503480156026575f5ffd5b50335f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ef9806100745f395ff3fe608060405234801561000f575f5ffd5b50600436106100a7575f3560e01c8063892ace311161006f578063892ace31146101875780638da5cb5b146101b75780639bfd861e146101d5578063c424ce6e14610205578063dde90b8214610235578063f2fde38b14610265576100a7565b80630d4cbc3f146100ab5780633b111c25146100db5780633fb19630146100f75780637cf3a83914610127578063888acee514610157575b5f5ffd5b6100c560048036038101906100c09190610792565b610281565b6040516100d29190610840565b60405180910390f35b6100f560048036038101906100f09190610860565b6102c1565b005b610111600480360381019061010c919061089e565b61046b565b60405161011e91906108e3565b60405180910390f35b610141600480360381019061013c9190610a28565b610475565b60405161014e9190610aa3565b60405180910390f35b610171600480360381019061016c9190610abc565b610481565b60405161017e9190610af6565b60405180910390f35b6101a1600480360381019061019c9190610b0f565b61048a565b6040516101ae9190610840565b60405180910390f35b6101bf6104cb565b6040516101cc9190610af6565b60405180910390f35b6101ef60048036038101906101ea9190610ba5565b6104f0565b6040516101fc91906108e3565b60405180910390f35b61021f600480360381019061021a919061089e565b6104fc565b60405161022c9190610af6565b60405180910390f35b61024f600480360381019061024a9190610bf5565b610573565b60405161025c9190610840565b60405180910390f35b61027f600480360381019061027a919061089e565b6105b4565b005b60606040518060400160405280600781526020017f5375636365737300000000000000000000000000000000000000000000000000815250905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361032f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032690610cab565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682836040516024016103599190610aa3565b6040516020818303038152906040527fa6b206bf000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516103e39190610d0d565b5f6040518083038185875af1925050503d805f811461041d576040519150601f19603f3d011682016040523d82523d5f602084013e610422565b606091505b5050905080610466576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045d90610d6d565b60405180910390fd5b505050565b5f60019050919050565b5f602a90509392505050565b5f5f9050919050565b60606040518060400160405280600781526020017f537563636573730000000000000000000000000000000000000000000000000081525090509392505050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600190509392505050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361056b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056290610dd5565b60405180910390fd5b5f9050919050565b60606040518060400160405280600781526020017f537563636573730000000000000000000000000000000000000000000000000081525090509392505050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610643576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063a90610e3d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036106b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a890610ea5565b60405180910390fd5b805f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b61071781610705565b8114610721575f5ffd5b50565b5f813590506107328161070e565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61076182610738565b9050919050565b61077181610757565b811461077b575f5ffd5b50565b5f8135905061078c81610768565b92915050565b5f5f604083850312156107a8576107a76106fd565b5b5f6107b585828601610724565b92505060206107c68582860161077e565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610812826107d0565b61081c81856107da565b935061082c8185602086016107ea565b610835816107f8565b840191505092915050565b5f6020820190508181035f8301526108588184610808565b905092915050565b5f5f60408385031215610876576108756106fd565b5b5f6108838582860161077e565b925050602061089485828601610724565b9150509250929050565b5f602082840312156108b3576108b26106fd565b5b5f6108c08482850161077e565b91505092915050565b5f8115159050919050565b6108dd816108c9565b82525050565b5f6020820190506108f65f8301846108d4565b92915050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61093a826107f8565b810181811067ffffffffffffffff8211171561095957610958610904565b5b80604052505050565b5f61096b6106f4565b90506109778282610931565b919050565b5f67ffffffffffffffff82111561099657610995610904565b5b61099f826107f8565b9050602081019050919050565b828183375f83830152505050565b5f6109cc6109c78461097c565b610962565b9050828152602081018484840111156109e8576109e7610900565b5b6109f38482856109ac565b509392505050565b5f82601f830112610a0f57610a0e6108fc565b5b8135610a1f8482602086016109ba565b91505092915050565b5f5f5f60608486031215610a3f57610a3e6106fd565b5b5f610a4c8682870161077e565b9350506020610a5d8682870161077e565b925050604084013567ffffffffffffffff811115610a7e57610a7d610701565b5b610a8a868287016109fb565b9150509250925092565b610a9d81610705565b82525050565b5f602082019050610ab65f830184610a94565b92915050565b5f60208284031215610ad157610ad06106fd565b5b5f610ade84828501610724565b91505092915050565b610af081610757565b82525050565b5f602082019050610b095f830184610ae7565b92915050565b5f5f5f60608486031215610b2657610b256106fd565b5b5f84013567ffffffffffffffff811115610b4357610b42610701565b5b610b4f868287016109fb565b9350506020610b608682870161077e565b9250506040610b7186828701610724565b9150509250925092565b610b84816108c9565b8114610b8e575f5ffd5b50565b5f81359050610b9f81610b7b565b92915050565b5f5f5f60608486031215610bbc57610bbb6106fd565b5b5f610bc986828701610b91565b9350506020610bda86828701610724565b9250506040610beb86828701610b91565b9150509250925092565b5f5f5f60608486031215610c0c57610c0b6106fd565b5b5f610c1986828701610724565b9350506020610c2a86828701610b91565b925050604084013567ffffffffffffffff811115610c4b57610c4a610701565b5b610c57868287016109fb565b9150509250925092565b7f496e76616c696420636f6e7472616374206164647265737300000000000000005f82015250565b5f610c956018836107da565b9150610ca082610c61565b602082019050919050565b5f6020820190508181035f830152610cc281610c89565b9050919050565b5f81519050919050565b5f81905092915050565b5f610ce782610cc9565b610cf18185610cd3565b9350610d018185602086016107ea565b80840191505092915050565b5f610d188284610cdd565b915081905092915050565b7f4661696c656420746f2063616c6c206f7468657220636f6e74726163740000005f82015250565b5f610d57601d836107da565b9150610d6282610d23565b602082019050919050565b5f6020820190508181035f830152610d8481610d4b565b9050919050565b7f496e76616c6964206164647265737300000000000000000000000000000000005f82015250565b5f610dbf600f836107da565b9150610dca82610d8b565b602082019050919050565b5f6020820190508181035f830152610dec81610db3565b9050919050565b7f43616c6c6572206973206e6f7420746865206f776e65720000000000000000005f82015250565b5f610e276017836107da565b9150610e3282610df3565b602082019050919050565b5f6020820190508181035f830152610e5481610e1b565b9050919050565b7f496e76616c6964206164647265737320666f72206e6577206f776e65720000005f82015250565b5f610e8f601d836107da565b9150610e9a82610e5b565b602082019050919050565b5f6020820190508181035f830152610ebc81610e83565b905091905056fea26469706673582212207ed953c56597ed49d9fa9d74aa32af0008fb0e9461c8158039b1f0a7871183c664736f6c634300081c0033