0x608060405234801561001057600080fd5b506107a9806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f1ab873c14610030575b600080fd5b61004a60048036038101906100459190610338565b610060565b60405161005791906104e6565b60405180910390f35b600061009b84848051906020012084604051602001610080929190610472565b60405160208183030381529060405280519060200120610182565b905060008173ffffffffffffffffffffffffffffffffffffffff16846040516100c4919061049e565b6000604051808303816000865af19150503d8060008114610101576040519150601f19603f3d011682016040523d82523d6000602084013e610106565b606091505b5050905080610141576040517f7dabd39900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f50de1c17c7bc451ec35c3b812d5f2c5c30ec94ddc581e8e86e90c4ee0866e79c8583604051610172929190610501565b60405180910390a1509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156101f557826040517fc80b88340000000000000000000000000000000000000000000000000000000081526004016101ec91906104e6565b60405180910390fd5b60008360405160200161020891906104b5565b6040516020818303038152906040529050828151602083016000f59150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561029757816040517fdc7a7a2400000000000000000000000000000000000000000000000000000000815260040161028e91906104e6565b60405180910390fd5b5092915050565b60006102b16102ac8461054f565b61052a565b9050828152602081018484840111156102cd576102cc6106c6565b5b6102d88482856105e7565b509392505050565b6000813590506102ef81610745565b92915050565b600082601f83011261030a576103096106c1565b5b813561031a84826020860161029e565b91505092915050565b6000813590506103328161075c565b92915050565b600080600060608486031215610351576103506106d0565b5b600061035f868287016102e0565b935050602084013567ffffffffffffffff8111156103805761037f6106cb565b5b61038c868287016102f5565b925050604061039d86828701610323565b9150509250925092565b6103b0816105a1565b82525050565b6103c76103c2826105a1565b61065a565b82525050565b6103de6103d9826105b3565b61066c565b82525050565b60006103ef82610580565b6103f9818561058b565b93506104098185602086016105f6565b80840191505092915050565b6000610422600f83610596565b915061042d826106f3565b600f82019050919050565b6000610445601383610596565b91506104508261071c565b601382019050919050565b61046c610467826105dd565b610688565b82525050565b600061047e82856103cd565b60208201915061048e828461045b565b6020820191508190509392505050565b60006104aa82846103e4565b915081905092915050565b60006104c082610438565b91506104cc82846103b6565b6014820191506104db82610415565b915081905092915050565b60006020820190506104fb60008301846103a7565b92915050565b600060408201905061051660008301856103a7565b61052360208301846103a7565b9392505050565b6000610534610545565b90506105408282610629565b919050565b6000604051905090565b600067ffffffffffffffff82111561056a57610569610692565b5b610573826106d5565b9050602081019050919050565b600081519050919050565b600081905092915050565b600081905092915050565b60006105ac826105bd565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156106145780820151818401526020810190506105f9565b83811115610623576000848401525b50505050565b610632826106d5565b810181811067ffffffffffffffff8211171561065157610650610692565b5b80604052505050565b600061066582610676565b9050919050565b6000819050919050565b6000610681826106e6565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000600082015250565b7f602d8060093d393df3363d3d373d3d3d363d7300000000000000000000000000600082015250565b61074e816105a1565b811461075957600080fd5b50565b610765816105dd565b811461077057600080fd5b5056fea2646970667358221220b10a2d94038d35255226724ff3e4230af4d43faa36e087f68db528b88074fd9b64736f6c63430008060033