0x608060405234801561001057600080fd5b50611268806100206000396000f3fe6080604052600436106100385760003560e01c806301ac4fb21461007d5780631a788a02146100ba5780631e006fd2146100f757610078565b36610078576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161006f906109de565b60405180910390fd5b600080fd5b34801561008957600080fd5b506100a4600480360381019061009f9190610bc9565b610134565b6040516100b19190610d87565b60405180910390f35b3480156100c657600080fd5b506100e160048036038101906100dc9190610da9565b6101f9565b6040516100ee9190610e64565b60405180910390f35b34801561010357600080fd5b5061011e60048036038101906101199190610bc9565b610664565b60405161012b9190610fa4565b60405180910390f35b60606000825167ffffffffffffffff81111561015357610152610a28565b5b60405190808252806020026020018201604052801561018c57816020015b610179610863565b8152602001906001900390816101715790505b50905060005b83518110156101ef576101be8482815181106101b1576101b0610fc6565b5b60200260200101516101f9565b8282815181106101d1576101d0610fc6565b5b602002602001018190525080806101e790611024565b915050610192565b5080915050919050565b610201610863565b6000823b9050600081111561065d5760008373ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561025d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102819190611098565b9050600081111561065b576000808573ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b81526004016040805180830381865afa1580156102d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102fd91906110f1565b915091506040518060e001604052808773ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610373573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103979190611146565b73ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104219190611146565b73ffffffffffffffffffffffffffffffffffffffff168152602001836dffffffffffffffffffffffffffff168152602001826dffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d79190611146565b73ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610521573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054591906111ac565b60ff166dffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105cc9190611146565b73ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610616573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061063a91906111ac565b60ff166dffffffffffffffffffffffffffff1681525094505050505061065f565b505b505b919050565b60606000825167ffffffffffffffff81111561068357610682610a28565b5b6040519080825280602002602001820160405280156106bc57816020015b6106a9610922565b8152602001906001900390816106a15790505b50905060005b83518110156108595760405180606001604052808583815181106106e9576106e8610fc6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16815260200185838151811061071f5761071e610fc6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166322be3de16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610771573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107959190611205565b151581526020018583815181106107af576107ae610fc6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663218cf69a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610801573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108259190611098565b81525082828151811061083b5761083a610fc6565b5b6020026020010181905250808061085190611024565b9150506106c2565b5080915050919050565b6040518060e00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160006dffffffffffffffffffffffffffff16815260200160006dffffffffffffffffffffffffffff16815260200160006dffffffffffffffffffffffffffff16815260200160006dffffffffffffffffffffffffffff1681525090565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600015158152602001600081525090565b600082825260208201905092915050565b7f50616972436865636b657220646f6573206e6f7420616363657074207061796d60008201527f656e747300000000000000000000000000000000000000000000000000000000602082015250565b60006109c860248361095b565b91506109d38261096c565b604082019050919050565b600060208201905081810360008301526109f7816109bb565b9050919050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610a6082610a17565b810181811067ffffffffffffffff82111715610a7f57610a7e610a28565b5b80604052505050565b6000610a926109fe565b9050610a9e8282610a57565b919050565b600067ffffffffffffffff821115610abe57610abd610a28565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610aff82610ad4565b9050919050565b610b0f81610af4565b8114610b1a57600080fd5b50565b600081359050610b2c81610b06565b92915050565b6000610b45610b4084610aa3565b610a88565b90508083825260208201905060208402830185811115610b6857610b67610acf565b5b835b81811015610b915780610b7d8882610b1d565b845260208401935050602081019050610b6a565b5050509392505050565b600082601f830112610bb057610baf610a12565b5b8135610bc0848260208601610b32565b91505092915050565b600060208284031215610bdf57610bde610a08565b5b600082013567ffffffffffffffff811115610bfd57610bfc610a0d565b5b610c0984828501610b9b565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b610c4781610af4565b82525050565b60006dffffffffffffffffffffffffffff82169050919050565b610c7081610c4d565b82525050565b60e082016000820151610c8c6000850182610c3e565b506020820151610c9f6020850182610c3e565b506040820151610cb26040850182610c3e565b506060820151610cc56060850182610c67565b506080820151610cd86080850182610c67565b5060a0820151610ceb60a0850182610c67565b5060c0820151610cfe60c0850182610c67565b50505050565b6000610d108383610c76565b60e08301905092915050565b6000602082019050919050565b6000610d3482610c12565b610d3e8185610c1d565b9350610d4983610c2e565b8060005b83811015610d7a578151610d618882610d04565b9750610d6c83610d1c565b925050600181019050610d4d565b5085935050505092915050565b60006020820190508181036000830152610da18184610d29565b905092915050565b600060208284031215610dbf57610dbe610a08565b5b6000610dcd84828501610b1d565b91505092915050565b60e082016000820151610dec6000850182610c3e565b506020820151610dff6020850182610c3e565b506040820151610e126040850182610c3e565b506060820151610e256060850182610c67565b506080820151610e386080850182610c67565b5060a0820151610e4b60a0850182610c67565b5060c0820151610e5e60c0850182610c67565b50505050565b600060e082019050610e796000830184610dd6565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60008115159050919050565b610ec081610eab565b82525050565b6000819050919050565b610ed981610ec6565b82525050565b606082016000820151610ef56000850182610c3e565b506020820151610f086020850182610eb7565b506040820151610f1b6040850182610ed0565b50505050565b6000610f2d8383610edf565b60608301905092915050565b6000602082019050919050565b6000610f5182610e7f565b610f5b8185610e8a565b9350610f6683610e9b565b8060005b83811015610f97578151610f7e8882610f21565b9750610f8983610f39565b925050600181019050610f6a565b5085935050505092915050565b60006020820190508181036000830152610fbe8184610f46565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061102f82610ec6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361106157611060610ff5565b5b600182019050919050565b61107581610ec6565b811461108057600080fd5b50565b6000815190506110928161106c565b92915050565b6000602082840312156110ae576110ad610a08565b5b60006110bc84828501611083565b91505092915050565b6110ce81610c4d565b81146110d957600080fd5b50565b6000815190506110eb816110c5565b92915050565b6000806040838503121561110857611107610a08565b5b6000611116858286016110dc565b9250506020611127858286016110dc565b9150509250929050565b60008151905061114081610b06565b92915050565b60006020828403121561115c5761115b610a08565b5b600061116a84828501611131565b91505092915050565b600060ff82169050919050565b61118981611173565b811461119457600080fd5b50565b6000815190506111a681611180565b92915050565b6000602082840312156111c2576111c1610a08565b5b60006111d084828501611197565b91505092915050565b6111e281610eab565b81146111ed57600080fd5b50565b6000815190506111ff816111d9565b92915050565b60006020828403121561121b5761121a610a08565b5b6000611229848285016111f0565b9150509291505056fea26469706673582212200ba6e45336f43e068452598575e6bf6a71d537f8d7bf1e05c3f5551f3658a7b364736f6c63430008120033