0x608060405234801561001057600080fd5b50610923806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806333fbe3e31461004657806399396e5414610076578063ac7412a814610097575b600080fd5b6100596100543660046107a9565b6100ba565b6040516001600160a01b0390911681526020015b60405180910390f35b61008961008436600461080d565b6100cf565b60405190815260200161006d565b6100aa6100a5366004610842565b6100da565b604051901515815260200161006d565b60006100c683836100ef565b90505b92915050565b60006100c98261010b565b60006100e7848484610182565b949350505050565b60006100c66101056101008561010b565b61019a565b83610208565b60007f2a42a8885815a2826f8881cedc35af841dc37cf8c18834f19e062e69842b5e8482600001516101408460200151610214565b60408086015181516020810195909552908401929092526060830152608082015260a0015b604051602081830303815290604052805190602001209050919050565b60006100e7846101946101008661010b565b84610279565b60006100c96101c77f30407b5744a51d812eb4768ec3fd9cc54f17ede30d7ffff3a9b0b8f8483bd0115490565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b60006100c683836102a2565b805160208083015160408085015180519084012081517f710d52af06e140654d61138fd1f546992a166cf6ab3f6d3e5b131e8e8072aed8948101949094526001600160a01b03909416908301526060820152608081019190915260009060a001610165565b60006102858383610208565b6001600160a01b0316846001600160a01b03161490509392505050565b60008060006102b185856102c6565b915091506102be81610334565b509392505050565b60008082516041036102fc5760208301516040840151606085015160001a6102f0878285856104f2565b9450945050505061032d565b8251604003610325576020830151604084015161031a8683836105df565b93509350505061032d565b506000905060025b9250929050565b6000816004811115610348576103486108b6565b036103505750565b6001816004811115610364576103646108b6565b036103b65760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064015b60405180910390fd5b60028160048111156103ca576103ca6108b6565b036104175760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016103ad565b600381600481111561042b5761042b6108b6565b036104835760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016103ad565b6004816004811115610497576104976108b6565b036104ef5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016103ad565b50565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561052957506000905060036105d6565b8460ff16601b1415801561054157508460ff16601c14155b1561055257506000905060046105d6565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156105a6573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166105cf576000600192509250506105d6565b9150600090505b94509492505050565b6000806001600160ff1b038316816105fc60ff86901c601b6108cc565b905061060a878288856104f2565b935093505050935093915050565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561065157610651610618565b60405290565b80356001600160a01b038116811461066e57600080fd5b919050565b600082601f83011261068457600080fd5b813567ffffffffffffffff8082111561069f5761069f610618565b604051601f8301601f19908116603f011681019082821181831017156106c7576106c7610618565b816040528381528660208588010111156106e057600080fd5b836020870160208301376000602085830101528094505050505092915050565b60006060828403121561071257600080fd5b61071a61062e565b905081358152602082013567ffffffffffffffff8082111561073b57600080fd5b908301906060828603121561074f57600080fd5b61075761062e565b61076083610657565b81526020830135602082015260408301358281111561077e57600080fd5b61078a87828601610673565b6040830152508060208501525050506040820135604082015292915050565b600080604083850312156107bc57600080fd5b823567ffffffffffffffff808211156107d457600080fd5b6107e086838701610700565b935060208501359150808211156107f657600080fd5b5061080385828601610673565b9150509250929050565b60006020828403121561081f57600080fd5b813567ffffffffffffffff81111561083657600080fd5b6100e784828501610700565b60008060006060848603121561085757600080fd5b61086084610657565b9250602084013567ffffffffffffffff8082111561087d57600080fd5b61088987838801610700565b9350604086013591508082111561089f57600080fd5b506108ac86828701610673565b9150509250925092565b634e487b7160e01b600052602160045260246000fd5b808201808211156100c957634e487b7160e01b600052601160045260246000fdfea2646970667358221220c599cf52e0ad0cbc4505b144cf940fccf4148e472c3055ba512339896b46955f64736f6c63430008100033