0x608060405234801561001057600080fd5b50678ac7230489e800006000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a1b8061006b6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806327e235e31461003b5780638a4068dd1461006b575b600080fd5b61005560048036038101906100509190610788565b610075565b60405161006291906107ce565b60405180910390f35b61007361008d565b005b60006020528060005260406000206000915090505481565b6000600a67ffffffffffffffff8111156100aa576100a96107e9565b5b6040519080825280602002602001820160405280156100d85781602001602082028036833780820191505090505b50905073a18c3e96d7cb1cc23a9b8cbf9443461828471f508160008151811061010457610103610818565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050734eeec9917f0978d568e890eee27683769d03ba358160018151811061016757610166610818565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507342ef326f23f00c4f26a0ca07b557e6bd8bcca79c816002815181106101ca576101c9610818565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507398e97bc3a226245db613d847b45373487f7a1b8d8160038151811061022d5761022c610818565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050734548e92a61fec087d94237578deaf7a76dbc3976816004815181106102905761028f610818565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073fd00d0c6fbd4ab7f03fc1c25899507e999e1cf09816005815181106102f3576102f2610818565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507371fa3b18aff9d91be5654b2aa361f5b1844e31838160068151811061035657610355610818565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050736bfa80bd57144e23e826b1564946625368f10ad8816007815181106103b9576103b8610818565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050731d2652cb7ff04fb97b0c4f00a54c2af1e23de43f8160088151811061041c5761041b610818565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073a9b29aa6d5598b01aeb747ad21c86ef4573f43108160098151811061047f5761047e610818565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600067016345785d8a000090508151816104d39190610876565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054a90610915565b60405180910390fd5b8151816105609190610876565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546105ad9190610935565b9250508190555060005b82518110156106b75760008382815181106105d5576105d4610818565b5b60200260200101519050826000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461062d9190610969565b925050819055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161069191906107ce565b60405180910390a36106a381846106bc565b5080806106af9061099d565b9150506105b7565b505050565b8173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161071991906107ce565b60405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006107558261072a565b9050919050565b6107658161074a565b811461077057600080fd5b50565b6000813590506107828161075c565b92915050565b60006020828403121561079e5761079d610725565b5b60006107ac84828501610773565b91505092915050565b6000819050919050565b6107c8816107b5565b82525050565b60006020820190506107e360008301846107bf565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610881826107b5565b915061088c836107b5565b925082820261089a816107b5565b915082820484148315176108b1576108b0610847565b5b5092915050565b600082825260208201905092915050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b60006108ff6014836108b8565b915061090a826108c9565b602082019050919050565b6000602082019050818103600083015261092e816108f2565b9050919050565b6000610940826107b5565b915061094b836107b5565b925082820390508181111561096357610962610847565b5b92915050565b6000610974826107b5565b915061097f836107b5565b925082820190508082111561099757610996610847565b5b92915050565b60006109a8826107b5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036109da576109d9610847565b5b60018201905091905056fea2646970667358221220e0e413680fc0667cc48166f3a09ce083a76f4b73e108a9115182ab810339189e64736f6c63430008120033