0x6080604052348015600e575f80fd5b50610e688061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610055575f3560e01c80630a2a25db146100595780630c48042d146100755780631626ba7e146100a557806399b71d5c146100d5578063ca628c78146100df575b5f80fd5b610073600480360381019061006e9190610682565b6100e9565b005b61008f600480360381019061008a91906107c0565b6101b4565b60405161009c91906108e8565b60405180910390f35b6100bf60048036038101906100ba919061093b565b61034e565b6040516100cc91906109d2565b60405180910390f35b6100dd6103ab565b005b6100e76104a8565b005b73959065f2249104fadfef12eccee058394d5d85c273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610134575f80fd5b73a88800cd213da5ae406ce248380802bd53b4764773ffffffffffffffffffffffffffffffffffffffff16630965d04b83836040518363ffffffff1660e01b8152600401610183929190610a45565b5f604051808303815f87803b15801561019a575f80fd5b505af11580156101ac573d5f803e3d5ffd5b505050505050565b606073959065f2249104fadfef12eccee058394d5d85c273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610201575f80fd5b8473ffffffffffffffffffffffffffffffffffffffff1663095ea7b3737a250d5630b4cf539739df2c5dacb4c659f2488d866040518363ffffffff1660e01b8152600401610250929190610a85565b5f604051808303815f87803b158015610267575f80fd5b505af1158015610279573d5f803e3d5ffd5b50505050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff166318cbafe5855f868633426040518763ffffffff1660e01b81526004016102d496959493929190610bd4565b5f604051808303815f875af11580156102ef573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906103179190610d7a565b9050660aa87bee5380008160018151811061033557610334610dc1565b5b602002602001015111610346575f80fd5b949350505050565b5f73959065f2249104fadfef12eccee058394d5d85c273ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161461039a575f80fd5b631626ba7e60e01b90509392505050565b73959065f2249104fadfef12eccee058394d5d85c273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103f6575f80fd5b73dac17f958d2ee523a2206206994597c13d831ec773ffffffffffffffffffffffffffffffffffffffff1663095ea7b3731111111254eeb25477b68fb85ed929f73a9605827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610479929190610a85565b5f604051808303815f87803b158015610490575f80fd5b505af11580156104a2573d5f803e3d5ffd5b50505050565b73959065f2249104fadfef12eccee058394d5d85c273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104f3575f80fd5b73dac17f958d2ee523a2206206994597c13d831ec773ffffffffffffffffffffffffffffffffffffffff1663a9059cbb73959065f2249104fadfef12eccee058394d5d85c273dac17f958d2ee523a2206206994597c13d831ec773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105859190610dee565b602060405180830381865afa1580156105a0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105c49190610e07565b6040518363ffffffff1660e01b81526004016105e1929190610a85565b5f604051808303815f87803b1580156105f8575f80fd5b505af115801561060a573d5f803e3d5ffd5b50505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261064257610641610621565b5b8235905067ffffffffffffffff81111561065f5761065e610625565b5b60208301915083600182028301111561067b5761067a610629565b5b9250929050565b5f806020838503121561069857610697610619565b5b5f83013567ffffffffffffffff8111156106b5576106b461061d565b5b6106c18582860161062d565b92509250509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106f6826106cd565b9050919050565b5f610707826106ec565b9050919050565b610717816106fd565b8114610721575f80fd5b50565b5f813590506107328161070e565b92915050565b5f819050919050565b61074a81610738565b8114610754575f80fd5b50565b5f8135905061076581610741565b92915050565b5f8083601f8401126107805761077f610621565b5b8235905067ffffffffffffffff81111561079d5761079c610625565b5b6020830191508360208202830111156107b9576107b8610629565b5b9250929050565b5f805f80606085870312156107d8576107d7610619565b5b5f6107e587828801610724565b94505060206107f687828801610757565b935050604085013567ffffffffffffffff8111156108175761081661061d565b5b6108238782880161076b565b925092505092959194509250565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61086381610738565b82525050565b5f610874838361085a565b60208301905092915050565b5f602082019050919050565b5f61089682610831565b6108a0818561083b565b93506108ab8361084b565b805f5b838110156108db5781516108c28882610869565b97506108cd83610880565b9250506001810190506108ae565b5085935050505092915050565b5f6020820190508181035f830152610900818461088c565b905092915050565b5f819050919050565b61091a81610908565b8114610924575f80fd5b50565b5f8135905061093581610911565b92915050565b5f805f6040848603121561095257610951610619565b5b5f61095f86828701610927565b935050602084013567ffffffffffffffff8111156109805761097f61061d565b5b61098c8682870161062d565b92509250509250925092565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6109cc81610998565b82525050565b5f6020820190506109e55f8301846109c3565b92915050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f610a2483856109eb565b9350610a318385846109fb565b610a3a83610a09565b840190509392505050565b5f6020820190508181035f830152610a5e818486610a19565b90509392505050565b610a70816106ec565b82525050565b610a7f81610738565b82525050565b5f604082019050610a985f830185610a67565b610aa56020830184610a76565b9392505050565b5f819050919050565b5f819050919050565b5f610ad8610ad3610ace84610aac565b610ab5565b610738565b9050919050565b610ae881610abe565b82525050565b5f82825260208201905092915050565b5f819050919050565b610b10816106ec565b82525050565b5f610b218383610b07565b60208301905092915050565b610b36816106ec565b8114610b40575f80fd5b50565b5f81359050610b5181610b2d565b92915050565b5f610b656020840184610b43565b905092915050565b5f602082019050919050565b5f610b848385610aee565b9350610b8f82610afe565b805f5b85811015610bc757610ba48284610b57565b610bae8882610b16565b9750610bb983610b6d565b925050600181019050610b92565b5085925050509392505050565b5f60a082019050610be75f830189610a76565b610bf46020830188610adf565b8181036040830152610c07818688610b79565b9050610c166060830185610a67565b610c236080830184610a76565b979650505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610c6482610a09565b810181811067ffffffffffffffff82111715610c8357610c82610c2e565b5b80604052505050565b5f610c95610610565b9050610ca18282610c5b565b919050565b5f67ffffffffffffffff821115610cc057610cbf610c2e565b5b602082029050602081019050919050565b5f81519050610cdf81610741565b92915050565b5f610cf7610cf284610ca6565b610c8c565b90508083825260208201905060208402830185811115610d1a57610d19610629565b5b835b81811015610d435780610d2f8882610cd1565b845260208401935050602081019050610d1c565b5050509392505050565b5f82601f830112610d6157610d60610621565b5b8151610d71848260208601610ce5565b91505092915050565b5f60208284031215610d8f57610d8e610619565b5b5f82015167ffffffffffffffff811115610dac57610dab61061d565b5b610db884828501610d4d565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f602082019050610e015f830184610a67565b92915050565b5f60208284031215610e1c57610e1b610619565b5b5f610e2984828501610cd1565b9150509291505056fea2646970667358221220b6da2e5fdcddb2b6289af466074e143248ad91f190db14482bfe5a2a82c3b3d564736f6c634300081a0033