0x608060405260016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016000807394580443f9659d1d880753374abd1639f280991e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610d828061012c6000396000f3fe6080604052600436106100435760003560e01c806308ae4b0c1461004f578063178ccc441461008c57806393c99a27146100b5578063beeb441e146100f35761004a565b3661004a57005b600080fd5b34801561005b57600080fd5b50610076600480360381019061007191906105ad565b61011c565b60405161008391906105f5565b60405180910390f35b34801561009857600080fd5b506100b360048036038101906100ae9190610684565b61013c565b005b3480156100c157600080fd5b506100dc60048036038101906100d79190610966565b610278565b6040516100ea929190610aff565b60405180910390f35b3480156100ff57600080fd5b5061011a600480360381019061011591906105ad565b610456565b005b60006020528060005260406000206000915054906101000a900460ff1681565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166101c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101be90610b8c565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16826040516101ed90610bdd565b60006040518083038185875af1925050503d806000811461022a576040519150601f19603f3d011682016040523d82523d6000602084013e61022f565b606091505b5050905080610273576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161026a90610c3e565b60405180910390fd5b505050565b600060606000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102fe90610b8c565b60405180910390fd5b439150825167ffffffffffffffff811115610325576103246106da565b5b60405190808252806020026020018201604052801561035857816020015b60608152602001906001900390816103435790505b50905060005b83518110156104505760008085838151811061037d5761037c610c5e565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff168684815181106103b2576103b1610c5e565b5b6020026020010151602001516040516103cb9190610cbe565b6000604051808303816000865af19150503d8060008114610408576040519150601f19603f3d011682016040523d82523d6000602084013e61040d565b606091505b50915091508161041c57600080fd5b808484815181106104305761042f610c5e565b5b60200260200101819052505050808061044890610d04565b91505061035e565b50915091565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166104e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d890610b8c565b60405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061057a8261054f565b9050919050565b61058a8161056f565b811461059557600080fd5b50565b6000813590506105a781610581565b92915050565b6000602082840312156105c3576105c2610545565b5b60006105d184828501610598565b91505092915050565b60008115159050919050565b6105ef816105da565b82525050565b600060208201905061060a60008301846105e6565b92915050565b600061061b8261054f565b9050919050565b61062b81610610565b811461063657600080fd5b50565b60008135905061064881610622565b92915050565b6000819050919050565b6106618161064e565b811461066c57600080fd5b50565b60008135905061067e81610658565b92915050565b6000806040838503121561069b5761069a610545565b5b60006106a985828601610639565b92505060206106ba8582860161066f565b9150509250929050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610712826106c9565b810181811067ffffffffffffffff82111715610731576107306106da565b5b80604052505050565b600061074461053b565b90506107508282610709565b919050565b600067ffffffffffffffff8211156107705761076f6106da565b5b602082029050602081019050919050565b600080fd5b600080fd5b600080fd5b600080fd5b600067ffffffffffffffff8211156107b0576107af6106da565b5b6107b9826106c9565b9050602081019050919050565b82818337600083830152505050565b60006107e86107e384610795565b61073a565b90508281526020810184848401111561080457610803610790565b5b61080f8482856107c6565b509392505050565b600082601f83011261082c5761082b6106c4565b5b813561083c8482602086016107d5565b91505092915050565b60006040828403121561085b5761085a610786565b5b610865604061073a565b9050600061087584828501610598565b600083015250602082013567ffffffffffffffff8111156108995761089861078b565b5b6108a584828501610817565b60208301525092915050565b60006108c46108bf84610755565b61073a565b905080838252602082019050602084028301858111156108e7576108e6610781565b5b835b8181101561092e57803567ffffffffffffffff81111561090c5761090b6106c4565b5b8086016109198982610845565b855260208501945050506020810190506108e9565b5050509392505050565b600082601f83011261094d5761094c6106c4565b5b813561095d8482602086016108b1565b91505092915050565b60006020828403121561097c5761097b610545565b5b600082013567ffffffffffffffff81111561099a5761099961054a565b5b6109a684828501610938565b91505092915050565b6109b88161064e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610a24578082015181840152602081019050610a09565b60008484015250505050565b6000610a3b826109ea565b610a4581856109f5565b9350610a55818560208601610a06565b610a5e816106c9565b840191505092915050565b6000610a758383610a30565b905092915050565b6000602082019050919050565b6000610a95826109be565b610a9f81856109c9565b935083602082028501610ab1856109da565b8060005b85811015610aed5784840389528151610ace8582610a69565b9450610ad983610a7d565b925060208a01995050600181019050610ab5565b50829750879550505050505092915050565b6000604082019050610b1460008301856109af565b8181036020830152610b268184610a8a565b90509392505050565b600082825260208201905092915050565b7f6e6f74206d656d62657200000000000000000000000000000000000000000000600082015250565b6000610b76600a83610b2f565b9150610b8182610b40565b602082019050919050565b60006020820190508181036000830152610ba581610b69565b9050919050565b600081905092915050565b50565b6000610bc7600083610bac565b9150610bd282610bb7565b600082019050919050565b6000610be882610bba565b9150819050919050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b6000610c28601483610b2f565b9150610c3382610bf2565b602082019050919050565b60006020820190508181036000830152610c5781610c1b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000610c98826109ea565b610ca28185610bac565b9350610cb2818560208601610a06565b80840191505092915050565b6000610cca8284610c8d565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610d0f8261064e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610d4157610d40610cd5565b5b60018201905091905056fea2646970667358221220cad13f56c13c8b3b2197ce0a8b8dc7725b93d61b2643e332e02b7fe81dd5d68f64736f6c63430008110033