0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f53806100606000396000f3fe60806040526004361061003f5760003560e01c80639e281a9814610044578063c14406e41461006d578063f14210a614610077578063f5537ede146100a0575b600080fd5b34801561005057600080fd5b5061006b60048036038101906100669190610960565b6100c9565b005b610075610374565b005b34801561008357600080fd5b5061009e600480360381019061009991906109a0565b610426565b005b3480156100ac57600080fd5b506100c760048036038101906100c291906109cd565b6105aa565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610157576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014e90610a7d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036101c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101bd90610ae9565b60405180910390fd5b60008111610209576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161020090610b55565b60405180910390fd5b600082905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016102499190610b84565b602060405180830381865afa158015610266573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061028a9190610bb4565b9050828110156102cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102c690610c53565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b815260040161032a929190610c82565b6020604051808303816000875af1158015610349573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036d9190610ce3565b5050505050565b600034116103b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ae90610d5c565b60405180910390fd5b600034905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610422573d6000803e3d6000fd5b5050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ab90610a7d565b60405180910390fd5b600081116104f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ee90610b55565b60405180910390fd5b60004790508181101561053f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053690610dee565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156105a5573d6000803e3d6000fd5b505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062f90610a7d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069e90610ae9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070d90610e5a565b60405180910390fd5b60008111610759576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075090610b55565b60405180910390fd5b600083905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b81526004016107999190610b84565b602060405180830381865afa1580156107b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107da9190610bb4565b90508281101561081f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081690610ec6565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166323b872dd8560008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866040518463ffffffff1660e01b815260040161087c93929190610ee6565b6020604051808303816000875af115801561089b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bf9190610ce3565b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006108f7826108cc565b9050919050565b610907816108ec565b811461091257600080fd5b50565b600081359050610924816108fe565b92915050565b6000819050919050565b61093d8161092a565b811461094857600080fd5b50565b60008135905061095a81610934565b92915050565b60008060408385031215610977576109766108c7565b5b600061098585828601610915565b92505060206109968582860161094b565b9150509250929050565b6000602082840312156109b6576109b56108c7565b5b60006109c48482850161094b565b91505092915050565b6000806000606084860312156109e6576109e56108c7565b5b60006109f486828701610915565b9350506020610a0586828701610915565b9250506040610a168682870161094b565b9150509250925092565b600082825260208201905092915050565b7f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000600082015250565b6000610a67601783610a20565b9150610a7282610a31565b602082019050919050565b60006020820190508181036000830152610a9681610a5a565b9050919050565b7f496e76616c696420746f6b656e20616464726573730000000000000000000000600082015250565b6000610ad3601583610a20565b9150610ade82610a9d565b602082019050919050565b60006020820190508181036000830152610b0281610ac6565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b6000610b3f601d83610a20565b9150610b4a82610b09565b602082019050919050565b60006020820190508181036000830152610b6e81610b32565b9050919050565b610b7e816108ec565b82525050565b6000602082019050610b996000830184610b75565b92915050565b600081519050610bae81610934565b92915050565b600060208284031215610bca57610bc96108c7565b5b6000610bd884828501610b9f565b91505092915050565b7f496e73756666696369656e7420636f6e747261637420746f6b656e2062616c6160008201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b6000610c3d602383610a20565b9150610c4882610be1565b604082019050919050565b60006020820190508181036000830152610c6c81610c30565b9050919050565b610c7c8161092a565b82525050565b6000604082019050610c976000830185610b75565b610ca46020830184610c73565b9392505050565b60008115159050919050565b610cc081610cab565b8114610ccb57600080fd5b50565b600081519050610cdd81610cb7565b92915050565b600060208284031215610cf957610cf86108c7565b5b6000610d0784828501610cce565b91505092915050565b7f4e6f204554482073656e74000000000000000000000000000000000000000000600082015250565b6000610d46600b83610a20565b9150610d5182610d10565b602082019050919050565b60006020820190508181036000830152610d7581610d39565b9050919050565b7f496e73756666696369656e7420636f6e7472616374204554482062616c616e6360008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b6000610dd8602183610a20565b9150610de382610d7c565b604082019050919050565b60006020820190508181036000830152610e0781610dcb565b9050919050565b7f496e76616c69642077616c6c6574206164647265737300000000000000000000600082015250565b6000610e44601683610a20565b9150610e4f82610e0e565b602082019050919050565b60006020820190508181036000830152610e7381610e37565b9050919050565b7f496e73756666696369656e7420746f6b656e2062616c616e6365000000000000600082015250565b6000610eb0601a83610a20565b9150610ebb82610e7a565b602082019050919050565b60006020820190508181036000830152610edf81610ea3565b9050919050565b6000606082019050610efb6000830186610b75565b610f086020830185610b75565b610f156040830184610c73565b94935050505056fea2646970667358221220955b5e9fd70011efbb657cb8b1d86a5ae4a9a9fba7a3eab92252f9390965957264736f6c63430008120033