0x608060405234801561001057600080fd5b50610c50806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c57f00f214610030575b600080fd5b61004a60048036038101906100459190610940565b610060565b6040516100579190610a72565b60405180910390f35b606063d5eed86860e01b847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806100bb575063563dd61360e01b847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806100eb575063dc7c0bff60e01b847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061011b5750634d013f0360e01b847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061014b575063f7a7384060e01b847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061017b5750631fe3c6f360e01b847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806101ab5750638e19899e60e01b847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b156102705760006101be848460006106d4565b90506000600167ffffffffffffffff8111156101dd576101dc610a94565b5b60405190808252806020026020018201604052801561020b5781602001602082028036833780820191505090505b50905061021887836106ef565b8160008151811061022c5761022b610ac3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505080925050506106cc565b63fd21ecff60e01b847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19160361040d5760008060006102ae86866000610778565b9250925092506000600367ffffffffffffffff8111156102d1576102d0610a94565b5b6040519080825280602002602001820160405280156102ff5781602001602082028036833780820191505090505b509050838160008151811061031757610316610ac3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061035b89846106ef565b8160018151811061036f5761036e610ac3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506103b389836106ef565b816002815181106103c7576103c6610ac3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050809450505050506106cc565b639cd1999660e01b847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19160361053f57366000610449858560006107be565b9150915060008282905067ffffffffffffffff81111561046c5761046b610a94565b5b60405190808252806020026020018201604052801561049a5781602001602082028036833780820191505090505b50905060005b83839050811015610533578383828181106104be576104bd610ac3565b5b90506020020160208101906104d39190610af2565b8282815181106104e6576104e5610ac3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050808061052b90610b58565b9150506104a0565b508093505050506106cc565b63427da17760e01b847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19160361067f5760008061057b858560006107e2565b915091506000600267ffffffffffffffff81111561059c5761059b610a94565b5b6040519080825280602002602001820160405280156105ca5781602001602082028036833780820191505090505b50905082816000815181106105e2576105e1610ac3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061062688836106ef565b8160018151811061063a57610639610ac3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508093505050506106cc565b600067ffffffffffffffff81111561069a57610699610a94565b5b6040519080825280602002602001820160405280156106c85781602001602082028036833780820191505090505b5090505b949350505050565b600060048260051b8501013561ffff81169150509392505050565b6000808373ffffffffffffffffffffffffffffffffffffffff166352751797846040518263ffffffff1660e01b815260040161072b9190610bbd565b602060405180830381865afa158015610748573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076c9190610bed565b90508091505092915050565b600080600060048460051b8701013561ffff8116925061ffff8160101c16915073ffffffffffffffffffffffffffffffffffffffff8160201c1693505093509350939050565b3660006004808460051b870101358601018035915060208101925050935093915050565b60008060048360051b8601013561ffff8116915073ffffffffffffffffffffffffffffffffffffffff8160101c16925050935093915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061085082610825565b9050919050565b61086081610845565b811461086b57600080fd5b50565b60008135905061087d81610857565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6108b881610883565b81146108c357600080fd5b50565b6000813590506108d5816108af565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112610900576108ff6108db565b5b8235905067ffffffffffffffff81111561091d5761091c6108e0565b5b602083019150836001820283011115610939576109386108e5565b5b9250929050565b6000806000806060858703121561095a5761095961081b565b5b60006109688782880161086e565b9450506020610979878288016108c6565b935050604085013567ffffffffffffffff81111561099a57610999610820565b5b6109a6878288016108ea565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6109e981610845565b82525050565b60006109fb83836109e0565b60208301905092915050565b6000602082019050919050565b6000610a1f826109b4565b610a2981856109bf565b9350610a34836109d0565b8060005b83811015610a65578151610a4c88826109ef565b9750610a5783610a07565b925050600181019050610a38565b5085935050505092915050565b60006020820190508181036000830152610a8c8184610a14565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215610b0857610b0761081b565b5b6000610b168482850161086e565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000610b6382610b4e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610b9557610b94610b1f565b5b600182019050919050565b600061ffff82169050919050565b610bb781610ba0565b82525050565b6000602082019050610bd26000830184610bae565b92915050565b600081519050610be781610857565b92915050565b600060208284031215610c0357610c0261081b565b5b6000610c1184828501610bd8565b9150509291505056fea26469706673582212203e4b2de6727856e36a76f139c821f230f3ba09613f9f33082335d37b5e89cbfc64736f6c63430008120033