0x60806040525f5f5f6101000a81548160ff0219169083151502179055503480156026575f5ffd5b50335f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506109c6806100745f395ff3fe608060405234801561000f575f5ffd5b5060043610610055575f3560e01c806321c8b1b6146100595780633b111c2514610089578063846f35a2146100a55780638da5cb5b146100d5578063f2fde38b146100f3575b5f5ffd5b610073600480360381019061006e91906105b2565b61010f565b604051610080919061065d565b60405180910390f35b6100a3600480360381019061009e91906106a0565b61011a565b005b6100bf60048036038101906100ba91906106de565b6102c4565b6040516100cc919061065d565b60405180910390f35b6100dd6102cd565b6040516100ea919061065d565b60405180910390f35b61010d60048036038101906101089190610725565b6102f2565b005b5f5f90509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610188576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161017f906107aa565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682836040516024016101b291906107d7565b6040516020818303038152906040527fa6b206bf000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161023c9190610842565b5f6040518083038185875af1925050503d805f8114610276576040519150601f19603f3d011682016040523d82523d5f602084013e61027b565b606091505b50509050806102bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b6906108a2565b60405180910390fd5b505050565b5f5f9050919050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610381576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103789061090a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036103ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103e690610972565b60405180910390fd5b805f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b61045581610443565b811461045f575f5ffd5b50565b5f813590506104708161044c565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6104c48261047e565b810181811067ffffffffffffffff821117156104e3576104e261048e565b5b80604052505050565b5f6104f5610432565b905061050182826104bb565b919050565b5f67ffffffffffffffff8211156105205761051f61048e565b5b6105298261047e565b9050602081019050919050565b828183375f83830152505050565b5f61055661055184610506565b6104ec565b9050828152602081018484840111156105725761057161047a565b5b61057d848285610536565b509392505050565b5f82601f83011261059957610598610476565b5b81356105a9848260208601610544565b91505092915050565b5f5f5f606084860312156105c9576105c861043b565b5b5f6105d686828701610462565b93505060206105e786828701610462565b925050604084013567ffffffffffffffff8111156106085761060761043f565b5b61061486828701610585565b9150509250925092565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106478261061e565b9050919050565b6106578161063d565b82525050565b5f6020820190506106705f83018461064e565b92915050565b61067f8161063d565b8114610689575f5ffd5b50565b5f8135905061069a81610676565b92915050565b5f5f604083850312156106b6576106b561043b565b5b5f6106c38582860161068c565b92505060206106d485828601610462565b9150509250929050565b5f602082840312156106f3576106f261043b565b5b5f82013567ffffffffffffffff8111156107105761070f61043f565b5b61071c84828501610585565b91505092915050565b5f6020828403121561073a5761073961043b565b5b5f6107478482850161068c565b91505092915050565b5f82825260208201905092915050565b7f496e76616c696420636f6e7472616374206164647265737300000000000000005f82015250565b5f610794601883610750565b915061079f82610760565b602082019050919050565b5f6020820190508181035f8301526107c181610788565b9050919050565b6107d181610443565b82525050565b5f6020820190506107ea5f8301846107c8565b92915050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f61081c826107f0565b61082681856107fa565b9350610836818560208601610804565b80840191505092915050565b5f61084d8284610812565b915081905092915050565b7f4661696c656420746f2063616c6c206f7468657220636f6e74726163740000005f82015250565b5f61088c601d83610750565b915061089782610858565b602082019050919050565b5f6020820190508181035f8301526108b981610880565b9050919050565b7f43616c6c6572206973206e6f7420746865206f776e65720000000000000000005f82015250565b5f6108f4601783610750565b91506108ff826108c0565b602082019050919050565b5f6020820190508181035f830152610921816108e8565b9050919050565b7f496e76616c6964206164647265737320666f72206e6577206f776e65720000005f82015250565b5f61095c601d83610750565b915061096782610928565b602082019050919050565b5f6020820190508181035f83015261098981610950565b905091905056fea264697066735822122003d056b0f7390f2a278d1045a5837b755e5ecb15e6f6342601c0c6a511ee4d2f64736f6c634300081c0033